mirror of
https://github.com/zeldaret/st
synced 2026-09-08 19:42:26 -04:00
Misc stuff 4 (#59)
* playrget progress and match treasuremanager remaining functions * some docs * fix build issues * random docs * match func_ov094_02172290 * random docs * actor cleanup * match freestanding item funcs * mType -> mpProfile * decompile random functions * docs and start of wip chest stuff * random docs * more random docs * match func_ov036_0211d0a8 * match func_ov036_0211d2dc & func_ov036_0211d570 * match func_ov110_02184a40 * random doc * document letter/stamps system * match func_ov001_020bb9f8 * fix build issues * decompile tres * start decomp chest base * fix regressions * name TRES * name UnkStruct_ov024_020d86b0 * name stamp types and update save struct stuff * name things and document BMG IDs
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
#pragma once
|
||||
|
||||
#include "Item/Item.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include <nitro/math.h>
|
||||
|
||||
#define MAX_PRICECARDS 99
|
||||
|
||||
enum LetterType_ {
|
||||
/* -1 */ LetterType_None = -1,
|
||||
/* 0 */ LetterType_MetPostmanFirst = 0, // AdventureFlag_MetPostmanFirstLetter
|
||||
/* 1 */ LetterType_ReceivedZeldas = 1, // AdventureFlag_ReceivedZeldasLetter
|
||||
/* 2 */ LetterType_ReceivedAlfonzos = 2, // AdventureFlag_ReceivedAlfonzosLetter
|
||||
/* 3 */ LetterType_ReceivedRussells = 3, // AdventureFlag_ReceivedRussellsLetter
|
||||
/* 4 */ LetterType_ObtainedLinebecks = 4, // AdventureFlag_ObtainedLinebecksLetter
|
||||
/* 5 */ LetterType_ReceivedBeedlesFirst = 5, // AdventureFlag_ReceivedBeedlesFirstLetter
|
||||
/* 6 */ LetterType_Unk_03E = 6, // AdventureFlag_Unk_03E
|
||||
/* 7 */ LetterType_Unk_03F = 7, // AdventureFlag_Unk_03F
|
||||
/* 8 */ LetterType_Unk_040 = 8, // AdventureFlag_Unk_040
|
||||
/* 9 */ LetterType_Unk_041 = 9, // AdventureFlag_Unk_041
|
||||
/* 10 */ LetterType_Unk_042 = 10, // AdventureFlag_Unk_042
|
||||
/* 11 */ LetterType_Unk_043 = 11, // AdventureFlag_Unk_043
|
||||
/* 12 */ LetterType_Unk_044 = 12, // AdventureFlag_Unk_044
|
||||
/* 13 */ LetterType_Unk_045 = 13, // AdventureFlag_Unk_045
|
||||
/* 14 */ LetterType_ReceivedCarbens = 14, // AdventureFlag_ReceivedCarbensLetter
|
||||
/* 15 */ LetterType_ReceivedNikos = 15, // AdventureFlag_ReceivedNikosLetter
|
||||
/* 16 */ LetterType_ReceivedFerrus1 = 16, // AdventureFlag_ReceivedFerrusLetter1
|
||||
/* 17 */ LetterType_ReceivedFerrus2 = 17, // AdventureFlag_ReceivedFerrusLetter2
|
||||
/* 18 */ LetterType_ReceivedFerrus3 = 18, // AdventureFlag_ReceivedFerrusLetter3
|
||||
/* 19 */ LetterType_ReceivedKagorons = 19, // AdventureFlag_ReceivedKagoronsLetter
|
||||
/* 20 */ LetterType_Max = 20,
|
||||
};
|
||||
|
||||
enum StampType_ {
|
||||
/* -1 */ StampType_None = -1,
|
||||
/* 0 */ StampType_TowerOfSpirits = 0,
|
||||
/* 1 */ StampType_CastleTown = 1,
|
||||
/* 2 */ StampType_OutsetVillage = 2,
|
||||
/* 3 */ StampType_Mayscore = 3,
|
||||
/* 4 */ StampType_WoodlandSanctuary = 4,
|
||||
/* 5 */ StampType_AnoukiVillage = 5,
|
||||
/* 6 */ StampType_SnowfallSanctuary = 6,
|
||||
/* 7 */ StampType_PapuziaVillage = 7,
|
||||
/* 8 */ StampType_IslandSanctuary = 8,
|
||||
/* 9 */ StampType_GoronVillage = 9,
|
||||
/* 10 */ StampType_ValleySanctuary = 10,
|
||||
/* 11 */ StampType_DuneSanctuary = 11,
|
||||
/* 12 */ StampType_WoodedTemple = 12,
|
||||
/* 13 */ StampType_BlizzardTemple = 13,
|
||||
/* 14 */ StampType_MarineTemple = 14,
|
||||
/* 15 */ StampType_MountainTemple = 15,
|
||||
/* 16 */ StampType_DesertTemple = 16,
|
||||
/* 17 */ StampType_PirateHideout = 17,
|
||||
/* 18 */ StampType_TradingPost = 18,
|
||||
/* 19 */ StampType_IcySpring = 19,
|
||||
/* 20 */ StampType_Max = 20,
|
||||
};
|
||||
|
||||
class MiscAdvManager {
|
||||
public:
|
||||
/* 00 */ u16 mStampDates[StampType_Max];
|
||||
/* 28 */ u16 mUnk_28;
|
||||
/* 2A */ u16 mPostDate;
|
||||
/* 2C */ Vec2b mStampPositions[StampType_Max];
|
||||
/* 54 */ s8 mObtainedLetters[LetterType_Max];
|
||||
/* 68 */ s8 mObtainedStamps[StampType_Max];
|
||||
/* 7C */ u8 mLastRandomNum;
|
||||
/* 7D */ u8 mRandomNum;
|
||||
/* 7E */ s8 mNumPriceCards; // current amount of price cards
|
||||
/* 7F */ s8 mNumPostedPriceCards; // current amount of posted price cards
|
||||
/* 80 */ unk8 mUnk_80;
|
||||
/* 81 */ unk8 mUnk_81; // pad?
|
||||
/* 82 */ unk8 mUnk_82; // pad?
|
||||
/* 83 */ unk8 mUnk_83; // pad?
|
||||
/* 84 */ unk32 mLettersRead; // bitfield
|
||||
/* 88 */ unk32 mStampsFlag; // bitfield, related to the checkmarks from the stampbook
|
||||
/* 8C */ unk16 mSongs; // bitfield
|
||||
/* 8E */ unk16 mUnk_8E; // pad?
|
||||
/* 90 */
|
||||
|
||||
MiscAdvManager();
|
||||
~MiscAdvManager();
|
||||
|
||||
bool GotMaxPriceCards() {
|
||||
return this->GetNumPostcards() >= MAX_PRICECARDS ? true : false;
|
||||
}
|
||||
|
||||
void func_ov024_020d6310(MiscAdvManager *pSrc);
|
||||
void GiveLetterOrPriceCard(ItemId itemId);
|
||||
void GiveLetter(AdventureFlag_Half flag);
|
||||
unk32 GetObtainedLetterCount();
|
||||
bool GotUnreadLetters();
|
||||
unk32 func_ov024_020d6468();
|
||||
unk32 GetStamp(unk32 index);
|
||||
u16 *GetStampDate(unk32 index);
|
||||
Vec2b *GetStampPos(unk32 index);
|
||||
void func_ov024_020d64b4(unk32 param1, unk32 param2, u16 *param3);
|
||||
void func_ov024_020d6530();
|
||||
unk32 GetNumPostcards();
|
||||
void GivePriceCard(unk32 amount);
|
||||
void PostPriceCard(unk32 amount, unk32 param2);
|
||||
void func_ov024_020d6610();
|
||||
|
||||
static MiscAdvManager *Create();
|
||||
static void SetInstance(MiscAdvManager *pInstance);
|
||||
static int ClearInstance();
|
||||
};
|
||||
|
||||
extern MiscAdvManager *gpMiscAdvManager;
|
||||
Reference in New Issue
Block a user