Files
st/src/024_MainGame/Game/AdventureModeManager_180_024.cpp
T
Yanis 2c723299b7 Merge every extern "C" to a common header (#157)
* create CommonFuncs.hpp

* merge every `extern "C"` to a common header

* fix regressions

* I'm dumb
2026-10-07 15:51:47 +02:00

243 lines
6.9 KiB
C++

#include "CommonFuncs.hpp"
#include "MainGame/AdventureMode.hpp"
#include "MapObject/MapObjectManager.hpp"
#include "MapObject/MapObjectUnkSPTB.hpp"
#include "Unknown/UnkStruct_0204a088.hpp"
#include "Unknown/UnkStruct_0204a110.hpp"
#include "Unknown/UnkStruct_0204e5f8.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
#include "Unknown/UnkStruct_ov000_020b4f70.hpp"
THUMB_BEGIN
void AdventureModeManager_180_18::vfunc_0C(void) {
data_0204a088->func_ov000_02061224();
}
AdventureModeManager_180::AdventureModeManager_180(GameModeManagerBase_104 *param1) :
mUnk_0C(0),
mUnk_10(0),
mUnk_14(param1),
mUnk_40(0x14),
mUnk_44(false),
mUnk_45(false) {
data_0204a088->func_ov000_020611dc(this, 0x0C);
}
AdventureModeManager_180::~AdventureModeManager_180() {}
void AdventureModeManager_180::vfunc2_08(unk32 param1) {
this->mUnk_0C = 1;
switch (param1) {
case 5:
this->mUnk_18.mUnk_18 = true;
this->mUnk_18.mUnk_19 = true;
this->mUnk_18.func_0201bb84(0x10, 2, 0x10);
data_0204e5f8.func_0201b9a8(&this->mUnk_18);
break;
case 1:
this->mUnk_18.mUnk_18 = false;
this->mUnk_18.mUnk_19 = true;
this->mUnk_18.func_0201bb84(0x14, 2, 0x14);
data_0204e5f8.func_0201b9a8(&this->mUnk_18);
break;
default:
break;
}
}
void AdventureModeManager_180::vfunc2_0C(unk32 param1) {
switch (param1) {
case 5:
if (this->mUnk_18.mUnk_0D == this->mUnk_18.mUnk_10) {
this->mUnk_0C = 0;
data_0204a088->func_ov000_02061230();
}
break;
case 1:
switch (this->mUnk_0C) {
case 1:
if (data_0204a110.mUnk_008 != 1 && this->mUnk_44) {
this->mUnk_44 = false;
this->func_ov024_020c9430(1, this->mUnk_40);
}
if (this->mUnk_18.mUnk_0D == this->mUnk_18.mUnk_10) {
this->mUnk_0C = 2;
this->func_ov024_020c957c();
}
break;
case 2:
if (data_0204a110.mUnk_DA8.mUnk_0C < 0) {
this->mUnk_0C = 0;
data_0204a088->func_ov000_02061230();
}
break;
default:
break;
}
break;
default:
break;
}
}
#pragma opt_dead_assignments off
void AdventureModeManager_180::vfunc_54(unk32 param1, unk32 param2) {
if (param2 != 1) {
return;
}
unk32 r6 = 0;
switch (param1) {
case 5:
data_0204a110.func_02019538(0x0D, 1);
this->func_ov024_020c9430(0, -1);
break;
case 1:
this->mUnk_44 = true;
data_0204a110.func_02019538(0x0E, 1);
if (data_ov000_020b4f70 != NULL) {
data_ov000_020b4f70->func_ov000_0206654c();
}
if (data_0204a110.mUnk_008 == 1) {
this->mUnk_45 = true;
data_0204a110.mUnk_DFE = true;
}
break;
default:
break;
}
}
#pragma opt_dead_assignments reset
void AdventureModeManager_180::func_ov024_020c9430(unk32 param1, unk32 param2) {
data_0204a088->func_ov000_02061248();
this->mUnk_10 = func_ov014_020b6520(&this->mUnk_14, param1, param2);
}
void AdventureModeManager_180::vfunc2_18(unk32 param1) {
switch (param1) {
case 5:
this->mUnk_18.func_0201bb84(0x10, 2, 0x10);
data_0204e5f8.func_0201b9a8(&this->mUnk_18);
break;
case 1:
this->func_ov024_020c95c4();
break;
default:
break;
}
}
void AdventureModeManager_180::vfunc_5C(unk32 param1) {
switch (param1) {
case 5:
if (this->mUnk_18.mUnk_0D == this->mUnk_18.mUnk_10) {
data_0204a088->func_ov000_02061230();
}
break;
case 1:
switch (this->mUnk_0C) {
case 3:
if (data_0204a110.mUnk_DA8.mUnk_0C < 0) {
this->mUnk_0C = 1;
this->mUnk_18.func_0201bb84(0x14, 2, 0x14);
data_0204e5f8.func_0201b9a8(&this->mUnk_18);
}
break;
case 1:
if (this->mUnk_18.mUnk_0D == this->mUnk_18.mUnk_10) {
data_0204a088->func_ov000_02061230();
}
break;
default:
break;
}
break;
default:
break;
}
}
void AdventureModeManager_180::vfunc_58(unk32 param1, unk32 param2) {
if (param2 != 1) {
return;
}
this->mUnk_10 = 0;
data_0204a088->func_ov000_02061248();
switch (param1) {
case 5:
break;
case 1:
if (this->mUnk_45) {
this->mUnk_45 = false;
data_0204a110.mUnk_DFE = true;
}
GetAdventureModeManager()->func_ov024_020c555c(0);
GetAdventureModeManager()->func_ov024_020c53e8();
if (data_027e09a4->IsTrain()) {
GetAdventureModeManager()->func_ov024_020c671c();
} else {
GetAdventureModeManager()->func_ov024_020c66c0();
}
if (data_ov000_020b4f70 != NULL) {
data_ov000_020b4f70->func_ov000_020665b8();
}
break;
default:
break;
}
}
void AdventureModeManager_180::vfunc_60() {}
void AdventureModeManager_180::func_ov024_020c957c() {
data_0204a110.mUnk_DA8.func_0201ced8();
this->mUnk_0C = 2;
struct {
void *ptr;
unk32 actorId;
} local_10;
local_10.ptr = &data_ov000_020b34c4;
local_10.actorId = MapObjectId_SPTB;
MapObject **ppMapObj =
gpMapObjManager->func_01fff520((UnkStruct_ov000_020b34c4 *) &local_10, gpMapObjManager->mMapObjTable);
if (gpMapObjManager->mUnk_08 != ppMapObj) {
MapObjectUnkSPTB *pStampStation = (MapObjectUnkSPTB *) *ppMapObj;
pStampStation->func_ov031_0210b9c4();
}
}
void AdventureModeManager_180::func_ov024_020c95c4() {
data_0204a110.mUnk_DA8.func_0201cf30();
this->mUnk_0C = 3;
struct {
void *ptr;
unk32 actorId;
} local_10;
local_10.ptr = &data_ov000_020b34c4;
local_10.actorId = MapObjectId_SPTB;
MapObject **ppMapObj =
gpMapObjManager->func_01fff520((UnkStruct_ov000_020b34c4 *) &local_10, gpMapObjManager->mMapObjTable);
if (gpMapObjManager->mUnk_08 != ppMapObj) {
MapObjectUnkSPTB *pStampStation = (MapObjectUnkSPTB *) *ppMapObj;
pStampStation->func_ov031_0210b9e0();
}
}
THUMB_END