mirror of
https://github.com/zeldaret/st
synced 2026-05-24 07:10:56 -04:00
90203403dd
* 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
92 lines
2.2 KiB
C++
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;
|