mirror of
https://github.com/zeldaret/st
synced 2026-07-11 15:18:45 -04:00
Misc Stuff 5 (#63)
* name item 31 to 34 * name item 25 to 29 * decompile PassengerManager (95%) * started cargo manager * local attribute * passenger/cargo manager ov001 functions * name item manager functions * fix build issues & more docs on 027e0cd8 * format
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
enum CargoType_ {
|
||||
CargoType_None = -1,
|
||||
CargoType_MegaIce,
|
||||
CargoType_Wood,
|
||||
CargoType_Iron,
|
||||
CargoType_Fish,
|
||||
CargoType_Cuccos,
|
||||
CargoType_Vessel,
|
||||
CargoType_DarkOre,
|
||||
CargoType_Max,
|
||||
};
|
||||
|
||||
class Cargo {
|
||||
public:
|
||||
/* 00 */ unk32 mType;
|
||||
/* 04 */ unk32 mAmount;
|
||||
/* 08 */ u32 mDecayTimer;
|
||||
/* 0C */
|
||||
|
||||
Cargo() {
|
||||
this->Clear();
|
||||
}
|
||||
|
||||
void Set(unk32 type, unk32 amount) {
|
||||
this->mType = type;
|
||||
this->mAmount = amount;
|
||||
this->mDecayTimer = 0;
|
||||
}
|
||||
|
||||
void Clear() {
|
||||
this->mType = CargoType_None;
|
||||
this->mAmount = 0;
|
||||
this->mDecayTimer = 0;
|
||||
}
|
||||
};
|
||||
|
||||
class CargoManager : public AutoInstance<CargoManager> {
|
||||
public:
|
||||
/* 00 */ Cargo mCargo;
|
||||
/* 0C */ Cargo mCargo2;
|
||||
/* 18 */ unk32 mUnk_18; // invicibility timer?
|
||||
/* 1C */ bool mUnk_1C;
|
||||
/* 20 */
|
||||
|
||||
// overlay 1
|
||||
CargoManager();
|
||||
~CargoManager();
|
||||
|
||||
void func_ov001_020bf830();
|
||||
|
||||
static void SetInstance(CargoManager *pInstance);
|
||||
static bool ClearInstance();
|
||||
static void Destroy(); // func_ov001_020bf428
|
||||
|
||||
// overlay 17
|
||||
void Update();
|
||||
void Reset();
|
||||
void Init(unk32 type, unk32 amount);
|
||||
void func_ov017_020bebdc();
|
||||
void func_ov017_020bec20();
|
||||
void RemoveAmount(unk32 decr);
|
||||
bool func_ov017_020bec9c();
|
||||
|
||||
static void DoUpdate();
|
||||
static bool IsNotUsingTimer(unk32 type);
|
||||
|
||||
// overlay 24
|
||||
void SetCargo(unk32 type, unk32 amount);
|
||||
void GetTypeAndAmount(unk32 *pType, unk32 *pAmount);
|
||||
void func_ov024_020d5900();
|
||||
void func_ov024_020d591c();
|
||||
|
||||
static CargoManager *Create();
|
||||
};
|
||||
|
||||
extern CargoManager *gpCargoManager;
|
||||
@@ -11,16 +11,16 @@
|
||||
|
||||
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
|
||||
/* 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
|
||||
@@ -69,16 +69,16 @@ public:
|
||||
/* 68 */ s8 mObtainedStamps[StampType_Max];
|
||||
/* 7C */ u8 mLastRandomNum;
|
||||
/* 7D */ u8 mRandomNum;
|
||||
/* 7E */ s8 mNumPriceCards; // current amount of price cards
|
||||
/* 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?
|
||||
/* 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?
|
||||
/* 88 */ unk32 mStampsFlag; // bitfield, related to the checkmarks from the stampbook
|
||||
/* 8C */ unk16 mSongs; // bitfield
|
||||
/* 8E */ unk16 mUnk_8E; // pad?
|
||||
/* 90 */
|
||||
|
||||
MiscAdvManager();
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
#pragma once
|
||||
|
||||
#include "Actor/ActorId.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
#include "Unknown/UnkStruct_027e09a4.hpp"
|
||||
#include "types.h"
|
||||
|
||||
enum HappinessLevel_ {
|
||||
HappinessLevel_0,
|
||||
HappinessLevel_1,
|
||||
HappinessLevel_2,
|
||||
HappinessLevel_3,
|
||||
HappinessLevel_4,
|
||||
HappinessLevel_5,
|
||||
};
|
||||
|
||||
struct UnkStruct_Param1 {
|
||||
ActorId actorId;
|
||||
s16 mUnk_04;
|
||||
SceneIndex_Half sceneIndex;
|
||||
u8 roomIndex;
|
||||
unk32 mUnk_0C;
|
||||
unk32 happiness;
|
||||
u16 mUnk_14;
|
||||
};
|
||||
|
||||
class Passenger {
|
||||
public:
|
||||
/* 00 */ ActorId mActorId;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ SceneIndex mSceneIndex;
|
||||
/* 0C */ u8 mRoomIndex;
|
||||
/* 10 */ unk32 mHappiness;
|
||||
|
||||
Passenger();
|
||||
void Reset();
|
||||
};
|
||||
|
||||
class PassengerManager : public AutoInstance<PassengerManager> {
|
||||
public:
|
||||
/* 00 */ Passenger mPassenger;
|
||||
/* 14 */ Passenger mPassenger2;
|
||||
/* 28 */ u16 mDate;
|
||||
/* 2A */ unk16 mUnk_2A;
|
||||
/* 2C */ unk32 mUnk_2C;
|
||||
/* 30 */ unk32 mUnk_30;
|
||||
/* 34 */
|
||||
|
||||
// overlay 1
|
||||
PassengerManager();
|
||||
~PassengerManager();
|
||||
|
||||
void func_ov001_020bf8e4();
|
||||
void func_ov001_020bf90c();
|
||||
void func_ov001_020bf910();
|
||||
bool func_ov001_020bfa1c();
|
||||
|
||||
static bool func_ov001_020bf870();
|
||||
static void SetInstance(PassengerManager *pInstance); // func_ov001_020bfa38
|
||||
static bool ClearInstance(); // func_ov001_020bfa44
|
||||
|
||||
// overlay 24
|
||||
void func_ov024_020d41bc(UnkStruct_Param1 *pActorId);
|
||||
void func_ov024_020d41f4(UnkStruct_Param1 *param1);
|
||||
void func_ov024_020d4228();
|
||||
void func_ov024_020d4258();
|
||||
bool TryBoardTrain(ActorId actorId, SceneIndex sceneIndex, u32 roomIndex);
|
||||
bool TryReset();
|
||||
bool TryResetAtDestination();
|
||||
bool ReachedDestination(SceneIndex sceneIndex, u32 roomIndex);
|
||||
bool TrySetCaughtByPirates();
|
||||
bool CaughtByPiratesTryReset();
|
||||
void GiveHappiness(unk32 amount);
|
||||
unk32 GetHappiness();
|
||||
unk32 GetHappinessCond();
|
||||
bool CanCompleteTrip();
|
||||
bool IsCaughtByPirates();
|
||||
ActorId GetActorId();
|
||||
PassengerManager *GetInstance();
|
||||
void func_ov024_020d4554();
|
||||
void Reset();
|
||||
bool IsDateUnset();
|
||||
s16 GetDate();
|
||||
u32 GetRandomIndex(u32 arg1, s32 arg2);
|
||||
void SetFailedFlag();
|
||||
|
||||
static u32 GetPassengerInfoIndex(ActorId actorId);
|
||||
static AdventureFlag GetBoardFlag(ActorId actorId);
|
||||
static AdventureFlag GetFailFlag(ActorId actorId);
|
||||
static PassengerManager *Create();
|
||||
};
|
||||
|
||||
extern PassengerManager *gpPassengerManager;
|
||||
Reference in New Issue
Block a user