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
This commit is contained in:
Yanis
2026-05-18 21:14:27 +02:00
committed by GitHub
parent 0f74fd4201
commit 90203403dd
250 changed files with 10263 additions and 2619 deletions
+12 -22
View File
@@ -38,7 +38,6 @@ THUMB ActorManager *ActorManager::Create() {
}
THUMB ActorManager::ActorManager() {
this->SetInstance(this);
this->mUnk_20 = 0;
this->mUnk_21 = 0;
this->mUnk_22 = 0;
@@ -63,8 +62,6 @@ THUMB ActorManager::~ActorManager() {
if (this->mActorTable != NULL) {
delete this->mActorTable;
}
this->ClearInstance();
}
THUMB void ActorManager::func_ov001_020bafdc() {
@@ -98,7 +95,7 @@ THUMB void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param
int aligned0A = ALIGN_NEXT(unk_0A, 8);
int aligned08 = ALIGN_NEXT(unk_08, 8);
int iVar5 = data_027e09a0->func_ov000_020702a8(data_027e09a4->mSceneIndex)->mUnk_20;
int iVar5 = data_027e09a0->func_ov000_020702a8(data_027e09a4->mUnk_00.mSceneIndex)->mUnk_20;
s32 allocCount;
if (data_027e09a4->mUnk_60 == 0) {
@@ -124,7 +121,7 @@ THUMB void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param
unk32 iVar5;
if (func_01ffd3b0() != 0) {
iVar5 = data_027e09a4->mSceneIndex;
iVar5 = data_027e09a4->mUnk_00.mSceneIndex;
if (iVar5 == SceneIndex_f_rabbit) {
this->mUnk_34 = 0xFFFFECCD; // ~0x1332
@@ -154,8 +151,8 @@ THUMB void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param
auStack_28.func_ov000_02059270(0x24, "drop4", 0x2D200000);
auStack_28.func_ov000_02059270(0x25, "drop5", 0x2D200000);
CourseEntry *ptr = data_027e09a0->func_ov000_0207029c(iVar5);
if ((ptr->mUnk_1D - 1) == 1) {
CourseEntry *ptr = data_027e09a0->GetCourseEntry(iVar5);
if ((ptr->unk_1D - 1) == 1) {
auStack_28.func_ov000_02059270(0x38, "mic_0", 0x35B00000);
auStack_28.func_ov000_02059270(0x39, "mic_1", 0x35B00000);
auStack_28.func_ov000_02059270(0x3A, "mic_on", 0x35B00000);
@@ -199,7 +196,7 @@ THUMB void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param
}
}
if (data_027e09a4->UnkCheck(data_027e09a4->mSceneIndex)) {
if (data_027e09a4->UnkCheck(data_027e09a4->mUnk_00.mSceneIndex)) {
func_ov071_0215e8d4();
}
@@ -212,7 +209,7 @@ THUMB void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param
THUMB void ActorManager::func_ov001_020bb414(ActorManager *instance) {
func_ov001_020ba59c(&data_0204999c);
if (data_027e09a4->UnkCheck(data_027e09a4->mSceneIndex)) {
if (data_027e09a4->UnkCheck(data_027e09a4->mUnk_00.mSceneIndex)) {
instance->func_ov001_020bb844();
}
@@ -225,7 +222,7 @@ THUMB void ActorManager::func_ov001_020bb414(ActorManager *instance) {
}
THUMB void ActorManager::func_ov001_020bb488() {
if (data_027e09a4->mUnk_0C != 1) {
if (data_027e09a4->IsNotCutscene()) {
switch (data_027e09a4->func_01ffd400()->mUnk_10) {
case 0x00:
case 0x01:
@@ -244,7 +241,7 @@ THUMB void ActorManager::func_ov001_020bb488() {
data_027e0cf4->func_ov021_020f8cdc();
}
if (data_027e09a4->UnkCheck(data_027e09a4->mSceneIndex)) {
if (data_027e09a4->UnkCheck(data_027e09a4->mUnk_00.mSceneIndex)) {
data_027e0d70->func_ov071_0215e8f8();
}
}
@@ -264,7 +261,7 @@ THUMB void ActorManager::func_ov001_020bb548() {
i++;
}
unk32 value = data_027e09a4->mSceneIndex;
unk32 value = data_027e09a4->mUnk_00.mSceneIndex;
if (data_027e09a4->UnkCheck(value)) {
data_027e0d70->func_ov071_0215e9ac();
@@ -321,7 +318,7 @@ THUMB void ActorManager::func_ov001_020bb6b0(UnkStruct_SceneChange1 *param1) {
for (int i = 0; i < ARRAY_LEN(data_ov000_020ab1ac); i++) {
UnkStruct_ov000_020ab1ac *pEntry = &data_ov000_020ab1ac[i];
if (pEntry->mUnk_00 == iVar5->mActorId && pEntry->mUnk_04 == param1->mNextSceneIndex &&
if (pEntry->mUnk_00 == iVar5->mActorId && pEntry->mUnk_04 == param1->mSceneIndex &&
pEntry->mUnk_08 == param1->mRoomIndex) {
(*piVar1)->mUnk_39 = 1;
(*piVar1)->vfunc_08();
@@ -337,7 +334,7 @@ THUMB void ActorManager::func_ov001_020bb6b0(UnkStruct_SceneChange1 *param1) {
THUMB bool ActorManager::func_ov001_020bb728(s32 param1) {
UnkStruct_SceneChange1 *piVar1 = data_027e09a4->func_ov000_02070560();
if (piVar1->mNextSceneIndex != SceneIndex_f_water || piVar1->mRoomIndex != 0) {
if (piVar1->mSceneIndex != SceneIndex_f_water || piVar1->mRoomIndex != 0) {
return false;
}
@@ -402,11 +399,4 @@ THUMB void ActorManager::func_ov001_020bb844() {
}
}
THUMB void ActorManager::SetInstance(ActorManager *instance) {
gpActorManager = instance;
}
THUMB int ActorManager::ClearInstance() {
gpActorManager = NULL;
//! @bug: the function expects a return value (though it seems unused)
}
DECL_INSTANCE(ActorManager, gpActorManager);
+2 -9
View File
@@ -12,7 +12,7 @@ CargoManager::CargoManager() {
CargoManager::~CargoManager() {}
void CargoManager::func_ov001_020bf830() {
if (this->mCargo.mAmount == 0 && data_027e09a4->func_01ffd3d8() == 0) {
if (this->mCargo.mAmount == 0 && !data_027e09a4->func_01ffd3d8()) {
this->mCargo.mType = CargoType_None;
}
@@ -20,13 +20,6 @@ void CargoManager::func_ov001_020bf830() {
this->mUnk_1C = 0;
}
void CargoManager::SetInstance(CargoManager *pInstance) {
gpCargoManager = pInstance;
}
bool CargoManager::ClearInstance() {
gpCargoManager = NULL;
//! @bug: missing return
}
DECL_INSTANCE(CargoManager, gpCargoManager);
THUMB_END
@@ -0,0 +1,366 @@
#include "Game/Game.hpp"
#include "Game/GameModeAdventure.hpp"
#include "MainGame/AdventureMode.hpp"
#include "Save/SaveManager.hpp"
#include "System/OverlayManager.hpp"
#include "Unknown/UnkStruct_0204a110.hpp"
#include "Unknown/UnkStruct_020d8698.hpp"
#include "Unknown/UnkStruct_027e0998.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
#include "Unknown/UnkStruct_027e0cf8.hpp"
#include "Unknown/UnkStruct_ov000_020b4f70.hpp"
#include "Unknown/UnkStruct_ov024_020d8694.hpp"
#include "Unknown/UnkStruct_ov024_020d86a0.hpp"
#include "Unknown/UnkStruct_ov088_02177218.hpp"
#include <dsprot.h>
extern "C" {
void *func_ov024_020d1658();
void *func_ov000_02066294();
void *func_ov024_020ccd1c();
void GX_SetGraphicsMode(unk32 param1, unk32 param2, unk32 param3);
void GXS_SetGraphicsMode(unk32 param1);
}
extern int data_ov001_020c27a8;
extern int data_ov001_020c276c;
THUMB_BEGIN
AdventureModeManager *AdventureModeManager::Create(unk32 param1) {
return new(HeapIndex_1) AdventureModeManager(param1);
}
AdventureModeManager::AdventureModeManager(unk32 param1) {
this->mUnk_154 = 0;
this->mUnk_158 = &this->mUnk_104;
this->mUnk_15C = new(HeapIndex_1) AdventureModeManager_15C();
this->mUnk_160 = NULL;
this->mUnk_164 = NULL;
this->mUnk_168 = NULL;
this->mUnk_16C = NULL;
this->mUnk_174 = NULL;
this->mUnk_178 = NULL;
this->mUnk_17C = NULL;
this->mUnk_180 = NULL;
this->mUnk_184 = NULL;
this->mUnk_188 = NULL;
this->mUnk_18C = NULL;
this->mUnk_190 = NULL;
this->mUnk_194 = NULL;
this->mUnk_198 = NULL;
this->mUnk_19C = NULL;
this->mUnk_1A0 = NULL;
this->mUnk_1A4 = NULL;
this->mUnk_1A8 = NULL;
this->mUnk_1AC = new(HeapIndex_1) AdventureModeManager_1AC();
this->mUnk_1B0 = NULL;
this->mUnk_1B4 = false;
this->mUnk_1B5 = false;
this->mUnk_1B8 = NULL;
this->mUnk_1BC = NULL;
this->mUnk_1C0 = 0;
this->mAllowMapPaint = false;
UnkStruct_027e0998::Create();
func_ov024_020d1658();
this->mUnk_170 = new(HeapIndex_1) AdventureModeManager_170(&this->mUnk_104);
GX_SetGraphicsMode(1, 0, 1);
GXS_SetGraphicsMode(5);
this->mUnk_1C4.sceneIndex = SceneIndex_None;
this->mUnk_1C4.unk_04 = 0;
this->mUnk_1C4.unk_06 = -1;
}
void AdventureModeManager::vfunc_10(unk32 param1, unk32 param2, unk32 param3) {
data_027e0998->func_ov000_02061760();
}
void AdventureModeManager::func_ov001_020c00d4() {
GetAdventureModeManager()->mUnk_16C = new(HeapIndex_1) AdventureModeManager_16C(&GetAdventureModeManager()->mUnk_104);
}
void AdventureModeManager::func_ov001_020c0104() {
GetAdventureModeManager()->mUnk_1B8 = new(HeapIndex_1) AdventureModeManager_1B8(2, 1, 1);
GetAdventureModeManager()->mUnk_1B8->mUnk_08 = 1;
GetAdventureModeManager()->mUnk_164 =
new(HeapIndex_1) AdventureModeManager_164(&GetAdventureModeManager()->mUnk_104, &GetAdventureModeManager()->mUnk_004);
GetAdventureModeManager()->mUnk_19C = new(HeapIndex_1) AdventureModeManager_19C(&GetAdventureModeManager()->mUnk_104);
if (DSProt_DetectNotDummy(NULL) != 0) {
DSProt_DetectNotFlashcart(AdventureModeManager::func_ov001_020c00d4);
}
}
void AdventureModeManager::func_ov001_020c0194() {
GetAdventureModeManager()->mUnk_1B8 = new(HeapIndex_1) AdventureModeManager_1B8(2, 1, 1);
GetAdventureModeManager()->mUnk_1B8->mUnk_08 = 1;
GetAdventureModeManager()->mUnk_164 =
new(HeapIndex_1) AdventureModeManager_164(&GetAdventureModeManager()->mUnk_104, &GetAdventureModeManager()->mUnk_004);
GetAdventureModeManager()->mUnk_19C = new(HeapIndex_1) AdventureModeManager_19C(&GetAdventureModeManager()->mUnk_104);
}
void AdventureModeManager::vfunc_14() {
data_027e09a4->func_ov000_0207056c();
UnkStruct_027e0cf8::Create();
if (data_027e09a4->func_01ffd3d8()) {
this->mUnk_004.func_ov001_020bd734(&data_ov001_020c276c);
if (data_027e09a4->IsNotCutscene()) {
if (data_027e09a4->IsDarkRealm()) {
this->mUnk_004.func_0201c00c(6, 1);
} else {
this->mUnk_004.func_0201c00c(4, 1);
}
}
} else {
this->mUnk_004.func_ov001_020bd734(&data_ov001_020c27a8);
if (data_027e09a4->IsNotCutscene()) {
this->mUnk_004.func_0201c00c(0, 1);
}
}
if (data_027e09a4->func_01ffd3d8()) {
if (DSProt_DetectEmulator(AdventureModeManager::func_ov001_020c0194) == 0) {
AdventureModeManager::func_ov001_020c0104();
}
} else {
if (gOverlayManager.mLoadedOverlays[OverlaySlot_9] == OverlayIndex_PlayerSub) {
this->mUnk_1BC = new(HeapIndex_1) AdventureModeManager_1BC();
}
this->mUnk_1B8 = new(HeapIndex_1) AdventureModeManager_1B8(2, 1, 0);
if (data_027e09a4->IsNotCutscene()) {
this->mUnk_168 = new(HeapIndex_1) AdventureModeManager_168(&this->mUnk_104);
}
this->mUnk_188 = new(HeapIndex_1) AdventureModeManager_188(&this->mUnk_104);
if (gOverlayManager.mLoadedOverlays[OverlaySlot_6] == OverlayIndex_Land) {
this->mUnk_194 = new(HeapIndex_1) AdventureModeManager_194(&this->mUnk_104);
}
if (gOverlayManager.mLoadedOverlays[OverlaySlot_7] == OverlayIndex_Field) {
this->mUnk_198 = new(HeapIndex_1) AdventureModeManager_198(&this->mUnk_104);
}
if (gOverlayManager.mLoadedOverlays[OverlaySlot_8] == OverlayIndex_Village) {
this->mUnk_17C = new(HeapIndex_1) AdventureModeManager_17C(&this->mUnk_104);
this->mUnk_1A0 = new(HeapIndex_1) AdventureModeManager_1A0(&this->mUnk_104);
this->mUnk_1A4 = new(HeapIndex_1) AdventureModeManager_1A4(&this->mUnk_104);
}
if (data_027e09a4->IsCutscene()) {
this->mUnk_1A8 = new(HeapIndex_1) AdventureModeManager_1A8(&this->mUnk_104);
}
AdventureModeManager_1B0 *var_r5 = new(HeapIndex_1) AdventureModeManager_1B0();
this->mUnk_1B0 = var_r5;
if (data_027e09a4->IsNotCutscene()) {
//! TODO: fake match?
GameModeLinkListNode *pList = (GameModeLinkListNode *) &this->mUnk_104;
((GameModeLinkListNode *) ((u8 *) pList + 4))->func_020166cc(var_r5->GetNode());
var_r5->vfunc_18();
this->mUnk_1B5 = true;
}
if (data_027e09a4->IsCutscene()) {
this->mUnk_104.func_ov088_0217230c();
}
func_ov000_02066294();
}
func_ov024_020ccd1c();
if (data_027e09a4->IsNotCutscene()) {
GameModeManagerBase_104 *ptr = &this->mUnk_104;
GameModeLinkListNode *origin = data_ov024_020d8698->GetOrigin();
ptr->mList.func_020166cc(data_ov024_020d8698->GetNode());
((UnkStruct_020d8698 *) origin)->vfunc_18();
this->mUnk_1B4 = true;
}
this->mUnk_160 = new(HeapIndex_1) AdventureModeManager_160(&this->mUnk_104, this->mUnk_1B8);
this->mUnk_184 = new(HeapIndex_1) AdventureModeManager_184(&this->mUnk_104);
this->mUnk_174 = new(HeapIndex_1) AdventureModeManager_174(&this->mUnk_104);
this->mUnk_178 = new(HeapIndex_1) AdventureModeManager_178(&this->mUnk_104);
this->mUnk_180 = new(HeapIndex_1) AdventureModeManager_180(&this->mUnk_104);
this->mUnk_18C = new(HeapIndex_1) AdventureModeManager_18C(&this->mUnk_104);
this->mUnk_190 = new(HeapIndex_1) AdventureModeManager_190(&this->mUnk_104);
UnkStruct_ov024_020d8694::Create(&this->mUnk_004);
data_ov024_020d86a0->func_ov001_020bd818();
}
void AdventureModeManager::vfunc_18() {
delete this->mUnk_1B8;
this->mUnk_1B8 = NULL;
delete this->mUnk_160;
this->mUnk_160 = NULL;
delete this->mUnk_190;
this->mUnk_190 = NULL;
delete this->mUnk_18C;
this->mUnk_18C = NULL;
delete this->mUnk_180;
this->mUnk_180 = NULL;
delete this->mUnk_17C;
this->mUnk_17C = NULL;
delete this->mUnk_178;
this->mUnk_178 = NULL;
delete this->mUnk_174;
this->mUnk_174 = NULL;
delete this->mUnk_184;
this->mUnk_184 = NULL;
AdventureModeManager::func_ov001_020c083c();
if (data_ov024_020d8698 != NULL) {
AdventureModeManager::func_ov001_020c0894();
this->mUnk_1B4 = false;
}
if (data_027e09a4->func_01ffd3d8()) {
delete this->mUnk_16C;
this->mUnk_16C = NULL;
delete this->mUnk_19C;
this->mUnk_19C = NULL;
delete this->mUnk_164;
this->mUnk_164 = NULL;
} else {
if (data_027e09a4->IsCutscene()) {
AdventureModeManager::func_ov001_020c0824();
}
delete this->mUnk_1B0;
this->mUnk_1B0 = NULL;
this->mUnk_1B5 = false;
if (this->mUnk_168 != NULL) {
delete this->mUnk_168;
this->mUnk_168 = NULL;
}
delete this->mUnk_188;
this->mUnk_188 = NULL;
AdventureModeManager::func_ov001_020c0854();
delete this->mUnk_1BC;
this->mUnk_1BC = NULL;
delete this->mUnk_198;
this->mUnk_198 = NULL;
delete this->mUnk_194;
this->mUnk_194 = NULL;
if (gOverlayManager.mLoadedOverlays[8] == OverlayIndex_Village) {
delete this->mUnk_1A0;
this->mUnk_1A0 = NULL;
delete this->mUnk_1A4;
this->mUnk_1A4 = NULL;
}
if (data_027e09a4->IsCutscene()) {
delete this->mUnk_1A8;
this->mUnk_1A8 = NULL;
}
}
AdventureModeManager::func_ov001_020c0874();
this->mUnk_004.func_ov001_020bd784();
}
void AdventureModeManager::vfunc_1C() {
if (this->mUnk_1BC != NULL) {
this->mUnk_1BC->func_ov093_02175514();
}
data_ov024_020d8698->func_ov024_020cd094();
data_ov024_020d8698->func_ov024_020cd150();
if (!data_027e09a4->func_01ffd3d8()) {
this->mUnk_1B0->func_ov031_0210fad0();
}
}
void AdventureModeManager::vfunc_20() {
if (data_ov000_020b4f70 != NULL) {
data_ov000_020b4f70->func_ov000_020662e8();
}
this->func_ov024_020c699c();
data_ov024_020d8694->func_ov024_020cb0c4();
}
void AdventureModeManager::func_ov001_020c0824() {
if (data_ov088_02177218 != NULL) {
delete data_ov088_02177218;
}
}
void AdventureModeManager::func_ov001_020c083c() {
if (data_ov024_020d8694 != NULL) {
delete data_ov024_020d8694;
}
}
void AdventureModeManager::func_ov001_020c0854() {
if (data_ov000_020b4f70 != NULL) {
delete data_ov000_020b4f70;
}
}
void AdventureModeManager::func_ov001_020c0874() {
if (data_027e0cf8 != NULL) {
delete data_027e0cf8;
}
}
void AdventureModeManager::func_ov001_020c0894() {
if (data_ov024_020d8698 != NULL) {
delete data_ov024_020d8698;
}
}
UnkStruct_ov000_020b4f70::~UnkStruct_ov000_020b4f70() {
data_ov000_020b4f70 = NULL;
}
AdventureModeManager_15C::AdventureModeManager_15C() :
mUnk_00(0),
mUnk_20(&this->mUnk_04) {
this->mUnk_44 = 0;
this->mUnk_45 = 0;
this->mUnk_46 = 0;
this->mUnk_47 = 0;
unk32 value = data_0204999c.func_02013014();
this->mUnk_20.mUnk_00 = new(HeapIndex_1) AdventureModeManager_15C_20_00(0);
data_0204999c.func_020130d4(value);
}
AdventureModeManager_15C::~AdventureModeManager_15C() {
delete this->mUnk_20.mUnk_00;
}
THUMB_END
@@ -0,0 +1,26 @@
#include "Game/Game.hpp"
#include "Game/GameModeAdventure.hpp"
#include "MainGame/AdventureMode.hpp"
#include "Unknown/UnkStruct_0204a110.hpp"
extern "C" {
void *func_ov001_020b6520(unk32 param1);
void func_ov020_020c4ac0(void *);
void func_0201659c();
}
extern int data_ov001_020c27a8;
extern int data_ov001_020c276c;
THUMB_BEGIN
GameModeAdventure::GameModeAdventure() {
func_0201659c();
gGame.func_02013370(2);
data_0204a110.func_ov001_020bd514(0, AdventureModeManager::Create, 0, 1);
gSaveManager.func_ov001_020ba670();
gSaveManager.func_ov001_020ba7a8();
func_ov020_020c4ac0(func_ov001_020b6520(0));
}
THUMB_END
+2 -2
View File
@@ -5,11 +5,11 @@
#include "Unknown/UnkStruct_027e09a4.hpp"
THUMB void ItemManager::func_ov001_020bb9f8() {
if (data_027e09a4->mUnk_0C != 1 && gOverlayManager.mLoadedOverlays[OverlaySlot_10] != OverlayIndex_PlayerPhantom) {
if (data_027e09a4->IsNotCutscene() && gOverlayManager.mLoadedOverlays[OverlaySlot_10] != OverlayIndex_PlayerPhantom) {
this->mTearsAmount = 0;
}
CourseEntry *pEntry = data_027e09a0->func_ov000_0207029c(data_027e09a4->mSceneIndex);
CourseEntry *pEntry = data_027e09a0->GetCourseEntry(data_027e09a4->mUnk_00.mSceneIndex);
if (pEntry->mSaveCourseIndex < SaveCourseIndex_Max) {
this->mKeyAmount = gSaveManager.mUnk_000->mUnk_36[pEntry->mSaveCourseIndex].mKeyAmount;
+4 -11
View File
@@ -26,7 +26,7 @@ inline bool Test3(s32 val) {
bool ret = true;
if (!Test2(val)) {
if (*((volatile unk32 *) &data_027e09a4->mSceneIndex) != 36) {
if (*((volatile unk32 *) &data_027e09a4->mUnk_00.mSceneIndex) != 36) {
ret = false;
}
}
@@ -36,11 +36,11 @@ inline bool Test3(s32 val) {
// https://decomp.me/scratch/svwnb
bool PassengerManager::func_ov001_020bf870() {
s32 sceneIndex = data_027e09a4->mSceneIndex;
s32 sceneIndex = data_027e09a4->mUnk_00.mSceneIndex;
bool ret = true;
if (!Test3(sceneIndex)) {
if (*((volatile unk32 *) &data_027e09a4->mSceneIndex) != 37) {
if (*((volatile unk32 *) &data_027e09a4->mUnk_00.mSceneIndex) != 37) {
ret = false;
}
}
@@ -78,13 +78,6 @@ bool PassengerManager::func_ov001_020bfa1c() {
return !((date2 << 0x1B) & 1);
}
void PassengerManager::SetInstance(PassengerManager *pInstance) {
gpPassengerManager = pInstance;
}
bool PassengerManager::ClearInstance() {
gpPassengerManager = NULL;
//! @bug missing return
}
DECL_INSTANCE(PassengerManager, gpPassengerManager);
THUMB_END