Files
st/include/MainGame/PassengerManager.hpp
Yanis 90203403dd Decompile overlay 24 (Part 1) (#65)
* GameModeAdventure_001 OK

* GameModeAdventure_024 17%

* GameModeAdventure_024 73%

* GameModeAdventure_024 99%

* jp region differences

* rename GameModeAdventure_024 and GameModeAdventure + UnkStruct_ov000_020d8660_024 OK

* UnkActorSystem1OK

* UnkActorSystem2 OK

* delink more of ov024 & UnkStruct_027e0998_024 OK

* improve instance stuff & UnkStruct_027e0cf8_024 OK

* AdventureModeManager_160_024 OK & GameModeStartUp OK

* fix regressions

* fix regressions 2

* AdventureModeManager_170 OK

* AdventureModeManager_174_Base OK

* AdventureModeManager_174 OK

* mark GameModeAdventure_024 as complete

* AdventureModeManager_178 OK

* AdventureModeManager_180 OK

* AdventureModeManager_184_024 OK

* AdventureModeManager_18C_024 OK & AdventureModeManager_190_024 OK

* AdventureModeManager_15C_20_00 61%

* AdventureModeManager_15C_20_00 OK

* jp version differences

* delink what's left in the overlay

* fix regressions

* AdventureModeManager_1B8_Base_024 98%

* AdventureModeManager_1B8 48% and link AdventureModeManager_024

* AdventureModeManager_1B8_Base and AdventureModeManager_1B8 OK

* oops

* mark statics as local
2026-05-18 21:14:27 +02:00

92 lines
2.2 KiB
C++

#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();
// 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;