mirror of
https://github.com/zeldaret/st
synced 2026-07-11 15:18:45 -04:00
Match GameModeManager and nearby/related functions (#22)
* match GameModeManager and surroundings * add small comment about data_ov000_020b1e48 * minor fixes * overlay 0 gamemode stuff * tool hotfix
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
#include "Game/GameModeManager.hpp"
|
||||
|
||||
ARM GameModeManagerBase_104::GameModeManagerBase_104() :
|
||||
mUnk_18(false),
|
||||
mUnk_19(false),
|
||||
mUnk_1A(false) {}
|
||||
|
||||
ARM GameModeManagerBase_104::~GameModeManagerBase_104() {
|
||||
GameModeLinkList<GameModeManagerBase_104_0C> *pNode = this->mUnk_0C.mList.GetPrev();
|
||||
GameModeLinkList<GameModeManagerBase_104_0C> *pOrigin =
|
||||
(GameModeLinkList<GameModeManagerBase_104_0C> *) ((u8 *) this + offsetof(GameModeManagerBase_104, mUnk_0C));
|
||||
|
||||
while (pNode != pOrigin) {
|
||||
GameModeLinkList<GameModeManagerBase_104_0C> *pNextNode = pNode->GetNext2();
|
||||
delete pNode->GetTarget();
|
||||
pNode = pNextNode;
|
||||
}
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase_104::vfunc_08(Input *pButtons, TouchControl *pTouchControl) {}
|
||||
|
||||
ARM void GameModeManagerBase_104::vfunc_0C(unk32 param1) {}
|
||||
|
||||
ARM void GameModeManagerBase_104::vfunc_10(unk8 *param1) {}
|
||||
|
||||
ARM void GameModeManagerBase_104::vfunc_14(unk8 *param1) {}
|
||||
|
||||
ARM void GameModeManagerBase_104::vfunc_18(void) {}
|
||||
@@ -0,0 +1,7 @@
|
||||
#include "Game/GameModeManager.hpp"
|
||||
|
||||
GameModeManagerBase_104_0C::~GameModeManagerBase_104_0C() {}
|
||||
|
||||
void GameModeManagerBase_104_0C::vfunc_08(void *param1) {}
|
||||
|
||||
void GameModeManagerBase_104_0C::vfunc_0C(void *param1) {}
|
||||
@@ -13,7 +13,6 @@
|
||||
|
||||
extern "C" {
|
||||
void func_02013768(void *param1);
|
||||
void func_020141dc(unk16 *param1);
|
||||
void func_020261f0(unk32 param1, void *param2);
|
||||
void func_0201245c();
|
||||
void func_02027a28(void *param1, unk32 param2);
|
||||
@@ -37,7 +36,6 @@ void func_0202e820();
|
||||
unk32 func_020271b0();
|
||||
unk32 func_0202e864(void *param1);
|
||||
void func_0202e8f8(void *param1);
|
||||
void func_020183b8();
|
||||
|
||||
void func_0200a7b0(unk32 param1, void *param2, void *param3, void *param4, unk32 param5, unk32 param6, unk32 param7,
|
||||
unk32 param8);
|
||||
@@ -150,7 +148,6 @@ ARM UnkStruct_02049b80::UnkStruct_02049b80() {
|
||||
ARM UnkStruct_02049b18_06::UnkStruct_02049b18_06() {
|
||||
unk8 auStack_18[8];
|
||||
|
||||
func_020141dc(&this->mUnk_00);
|
||||
func_0202e820();
|
||||
|
||||
if (func_020271b0() != 0) {
|
||||
@@ -208,7 +205,7 @@ ARM void GameModeStartUp::vfunc_0C() {
|
||||
this->mUnk_2C = SHARED_WORK_C3C;
|
||||
data_02049a2c.func_ov018_020c48f8();
|
||||
} else if (!this->mUnk_2A && (SHARED_WORK_C3C - this->mUnk_2C) >= 0x3C) {
|
||||
this->mUnk_2A = data_0204a060.func_020183d4(false, func_020183b8, 1);
|
||||
this->mUnk_2A = data_0204a060.func_020183d4(false, UnkStruct_0204a060::func_020183b8, 1);
|
||||
|
||||
if (data_ov018_020c5bc0 != 0) {
|
||||
data_0204a060.func_0201bb84(1, 0, 1);
|
||||
|
||||
@@ -24,7 +24,6 @@ extern "C" {
|
||||
unk32 func_02014fe0();
|
||||
unk16 func_02026738();
|
||||
void func_02023548();
|
||||
void func_020141dc(unk16 *param1);
|
||||
void func_020327c8(void *param1, unk32 param2);
|
||||
void func_02030d48(u16 param1);
|
||||
void func_02030d58(u16 param1);
|
||||
@@ -82,7 +81,6 @@ ARM UnkStruct_ov000_020b4f84_00::~UnkStruct_ov000_020b4f84_00() {}
|
||||
ARM UnkStruct_ov000_020b504c::UnkStruct_ov000_020b504c() :
|
||||
mUnk_008(NULL),
|
||||
mUnk_030(1) {
|
||||
func_020141dc(&this->mUnk_03A);
|
||||
Fill32(0, this->mUnk_05C, sizeof(this->mUnk_05C));
|
||||
|
||||
this->mUnk_06F = 0;
|
||||
|
||||
@@ -156,7 +156,7 @@ ARM FileSelectMain::FileSelectMain() :
|
||||
params.param1 = &this->mUnk_0C;
|
||||
this->mUnk_03E0.Init(¶ms);
|
||||
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_0100.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_0100.mUnk_04);
|
||||
this->mUnk_0100.mUnk_2A = 0;
|
||||
this->mUnk_0488.mUnk_2C = 1;
|
||||
this->mUnk_07E4.mUnk_2C = 1;
|
||||
@@ -188,7 +188,7 @@ ARM FileSelectMain::FileSelectMain() :
|
||||
REG_DISPCNT &= 0xFFFFE0FF;
|
||||
REG_DISPCNT |= 0x00001C00;
|
||||
func_020249d4(®_BLDCNT, 4, 8, 0, 0x10);
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_005C.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_005C.mUnk_04);
|
||||
this->func_ov019_020c63dc();
|
||||
this->func_ov019_020c6d10();
|
||||
}
|
||||
@@ -200,31 +200,31 @@ ARM FileSelectMain::~FileSelectMain() {
|
||||
ARM void FileSelectMain::func_ov019_020c6c14() {}
|
||||
|
||||
ARM void FileSelectMain::func_ov019_020c6c18() {
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_0488.mUnk_04);
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_07E4.mUnk_04);
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_0AC4.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_0488.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_07E4.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_0AC4.mUnk_04);
|
||||
}
|
||||
|
||||
ARM void FileSelectMain::func_ov019_020c6c54() {
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_0DA4.mUnk_04);
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_11BC.mUnk_04);
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_15D4.mUnk_04);
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_18EC.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_0DA4.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_11BC.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_15D4.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_18EC.mUnk_04);
|
||||
}
|
||||
|
||||
ARM void FileSelectMain::func_ov019_020c6c9c() {}
|
||||
|
||||
ARM void FileSelectMain::func_ov019_020c6ca0() {
|
||||
this->mUnk_0488.mUnk_04.func_020166ac();
|
||||
this->mUnk_07E4.mUnk_04.func_020166ac();
|
||||
this->mUnk_0AC4.mUnk_04.func_020166ac();
|
||||
GameModeLinkListNode::func_020166ac(&this->mUnk_0488.mUnk_04);
|
||||
GameModeLinkListNode::func_020166ac(&this->mUnk_07E4.mUnk_04);
|
||||
GameModeLinkListNode::func_020166ac(&this->mUnk_0AC4.mUnk_04);
|
||||
}
|
||||
|
||||
ARM void FileSelectMain::func_ov019_020c6cd0() {
|
||||
this->mUnk_0DA4.mUnk_04.func_020166ac();
|
||||
this->mUnk_11BC.mUnk_04.func_020166ac();
|
||||
this->mUnk_15D4.mUnk_04.func_020166ac();
|
||||
this->mUnk_18EC.mUnk_04.func_020166ac();
|
||||
GameModeLinkListNode::func_020166ac(&this->mUnk_0DA4.mUnk_04);
|
||||
GameModeLinkListNode::func_020166ac(&this->mUnk_11BC.mUnk_04);
|
||||
GameModeLinkListNode::func_020166ac(&this->mUnk_15D4.mUnk_04);
|
||||
GameModeLinkListNode::func_020166ac(&this->mUnk_18EC.mUnk_04);
|
||||
}
|
||||
|
||||
ARM void FileSelectMain::func_ov019_020c6d08() {}
|
||||
@@ -1112,7 +1112,7 @@ ARM void FileSelectMain::func_ov019_020c80e8() {
|
||||
ARM void FileSelectMain::func_ov019_020c80f4() {}
|
||||
|
||||
// non-matching
|
||||
ARM void FileSelectMain::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {
|
||||
ARM void FileSelectMain::vfunc_08(Input *pButtons, TouchControl *pTouchControl) {
|
||||
for (int i = 0; i < MAX_SAVE_SLOTS; i++) {
|
||||
this->mUnk_03E8[i].func_ov000_02063f64();
|
||||
this->GetUnk03E0(i).func_ov019_020cbb94();
|
||||
|
||||
@@ -32,26 +32,16 @@ ARM FileSelectManager::~FileSelectManager() {
|
||||
}
|
||||
|
||||
ARM void FileSelectManager::vfunc_10(unk32 param1, unk32 param2, unk32 param3) {
|
||||
void *unkPtr;
|
||||
|
||||
this->mUnk_004.func_0201c00c(0x25, 1);
|
||||
|
||||
FileSelectMain *newSub3 = new(HeapIndex_1) FileSelectMain();
|
||||
unkPtr = newSub3;
|
||||
if (newSub3 != NULL) {
|
||||
unkPtr = &newSub3->mUnk_04;
|
||||
}
|
||||
this->mUnk_158 = newSub3;
|
||||
this->mUnk_154->mUnk_04.func_020166cc(unkPtr);
|
||||
this->mUnk_158 = newSub3;
|
||||
this->mUnk_154->mList.func_020166cc(newSub3->GetNode());
|
||||
newSub3->vfunc_18();
|
||||
|
||||
FileSelectSubScreen *newSub4 = new(HeapIndex_1) FileSelectSubScreen();
|
||||
unkPtr = newSub4;
|
||||
if (newSub4 != NULL) {
|
||||
unkPtr = &newSub4->mUnk_04;
|
||||
}
|
||||
this->mUnk_15C = newSub4;
|
||||
this->mUnk_154->mUnk_04.func_020166cc(unkPtr);
|
||||
this->mUnk_15C = newSub4;
|
||||
this->mUnk_154->mList.func_020166cc(newSub4->GetNode());
|
||||
newSub4->vfunc_18();
|
||||
|
||||
this->mUnk_160 = new(HeapIndex_1) FileSelectManager_160(&this->mUnk_104, this->mUnk_158);
|
||||
@@ -65,7 +55,7 @@ ARM void FileSelectManager::vfunc_24() {
|
||||
this->func_0201875c();
|
||||
this->func_02018908();
|
||||
|
||||
if (this->mUnk_132 == 0) {
|
||||
if (!this->mTouchControl.mTouch) {
|
||||
this->mUnk_148 = -1;
|
||||
}
|
||||
|
||||
@@ -119,12 +109,12 @@ ARM void FileSelectManager::func_ov019_020c503c() {
|
||||
}
|
||||
}
|
||||
|
||||
ARM void FileSelectManager::vfunc_28(unk32 param1) {
|
||||
ARM void FileSelectManager::vfunc_28(unk8 *param1) {
|
||||
this->GameModeManagerBase::vfunc_28(param1);
|
||||
this->func_02018a14(param1);
|
||||
}
|
||||
|
||||
ARM void FileSelectManager::vfunc_2C(unk32 param1) {
|
||||
ARM void FileSelectManager::vfunc_2C(unk8 *param1) {
|
||||
this->func_02018984(param1);
|
||||
this->func_02018830(param1);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ ARM void FileSelectManager_160::vfunc_10() {
|
||||
data_0204999c.mUnk_60 = 0xD6D8;
|
||||
data_0204a088->func_ov000_02061248();
|
||||
data_0204a110.func_02019538(0x27, 1);
|
||||
this->mUnk_10->mUnk_04.func_020166ac();
|
||||
GameModeLinkListNode::func_020166ac(&this->mUnk_10->mList);
|
||||
this->mUnk_10->func_ov019_020cb664();
|
||||
this->mUnk_14 = func_ov003_020b6520(&this->mUnk_18, this->mUnk_1C);
|
||||
REG_DISPCNT &= 0xFFFFE0FF;
|
||||
@@ -88,7 +88,7 @@ ARM void FileSelectManager_160::vfunc_20() {
|
||||
data_0204a110.func_02019538(0x25, 1);
|
||||
|
||||
FileSelectMain *temp_r4 = this->mUnk_10;
|
||||
this->mUnk_18->mUnk_04.func_020166cc(temp_r4 == NULL ? temp_r4 : (FileSelectMain *) ((unk32 *) temp_r4 + 1));
|
||||
this->mUnk_18->mList.func_020166cc(temp_r4->GetNode());
|
||||
temp_r4->vfunc_18();
|
||||
|
||||
this->mUnk_10->func_ov019_020cb5dc();
|
||||
|
||||
@@ -50,14 +50,13 @@ ARM void FileSelectManager_164::vfunc_10() {
|
||||
data_0204999c.func_02013014();
|
||||
data_0204999c.mUnk_60 = 0xD6D8;
|
||||
data_ov000_020b50c0.func_ov000_0206a758();
|
||||
this->mUnk_10->mUnk_04.func_020166ac();
|
||||
GameModeLinkListNode::func_020166ac(&this->mUnk_10->mList);
|
||||
this->mUnk_10->func_ov019_020cb664();
|
||||
data_0204a110.func_02019538(0x26, 1);
|
||||
FileSelectOptionsManager::Create(this->mUnk_18, this->mUnk_10->mSaveSlotIndex);
|
||||
|
||||
FileSelectOptionsManager *pVar1 = gpFSOptionsManager;
|
||||
this->mUnk_14->mUnk_04.func_020166cc(gpFSOptionsManager == NULL ? (u32 *) gpFSOptionsManager
|
||||
: (u32 *) gpFSOptionsManager + 1);
|
||||
this->mUnk_14->mList.func_020166cc(pVar1->GetNode());
|
||||
pVar1->vfunc_18();
|
||||
|
||||
data_0204999c.func_02013070();
|
||||
@@ -98,7 +97,7 @@ ARM void FileSelectManager_164::vfunc_20() {
|
||||
data_0204a110.func_02019538(0x25, 1);
|
||||
|
||||
FileSelectMain *temp_r4 = this->mUnk_10;
|
||||
this->mUnk_14->mUnk_04.func_020166cc(temp_r4 == NULL ? temp_r4 : (FileSelectMain *) ((unk32 *) temp_r4 + 1));
|
||||
this->mUnk_14->mList.func_020166cc(temp_r4->GetNode());
|
||||
temp_r4->vfunc_18();
|
||||
|
||||
this->mUnk_10->func_ov019_020cb5dc();
|
||||
|
||||
@@ -56,7 +56,7 @@ ARM FileSelectMicTest::FileSelectMicTest() :
|
||||
mUnk_304(0x05, 0x8E, 0x00, 0x01, 0x8E, 0x00),
|
||||
mUnk_3F8(0x8D, 0x01),
|
||||
mUnk_630(1) {
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_304.mUnk_044.mUnk_04.mUnk_00);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_304.mUnk_044.mUnk_04);
|
||||
this->mUnk_020.func_0201f730(0x00020006);
|
||||
this->mUnk_3F8.mUnk_14E = 1;
|
||||
this->mUnk_3F8.func_0201f730(0x00020043);
|
||||
@@ -138,7 +138,7 @@ ARM void FileSelectMicTest::func_ov019_020cebcc() {
|
||||
this->mUnk_304.mUnk_0A4.func_ov000_0206415c(&local_10, 7, data_ov019_020d2248.mUnk_00, 0);
|
||||
}
|
||||
|
||||
ARM void FileSelectMicTest::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {
|
||||
ARM void FileSelectMicTest::vfunc_08(Input *pButtons, TouchControl *pTouchControl) {
|
||||
switch (this->mState) {
|
||||
case FSMicTestState_MicTestIdle:
|
||||
this->mUnk_270.func_ov019_020cf168();
|
||||
|
||||
@@ -97,7 +97,6 @@ ARM GameModeManagerBase_104 *FileSelectOptionsManager::Create(void *param1, s32
|
||||
return new(HeapIndex_1) FileSelectOptionsManager(param1, saveSlotIndex);
|
||||
}
|
||||
|
||||
// non-matching
|
||||
//! TODO: move to class
|
||||
ARM FileSelectOptionsManager::FileSelectOptionsManager(void *param1, s32 saveSlotIndex) {
|
||||
this->mUnk_24 = (GameModeManagerBase_104 *) param1;
|
||||
@@ -106,9 +105,9 @@ ARM FileSelectOptionsManager::FileSelectOptionsManager(void *param1, s32 saveSlo
|
||||
this->mpMicTest = new(HeapIndex_1) FileSelectMicTest();
|
||||
|
||||
FileSelectOptions *var_r5 = new(HeapIndex_1) FileSelectOptions(saveSlotIndex);
|
||||
this->mpOptions = var_r5 == NULL ? var_r5 : (FileSelectOptions *) &var_r5->mUnk_04;
|
||||
this->mUnk_24->mUnk_04.func_020166cc(&var_r5->mUnk_04);
|
||||
this->vfunc_18();
|
||||
this->mpOptions = var_r5;
|
||||
this->mUnk_24->mList.func_020166cc(var_r5->GetNode());
|
||||
var_r5->vfunc_18();
|
||||
}
|
||||
|
||||
ARM FileSelectOptionsManager::~FileSelectOptionsManager() {
|
||||
@@ -119,7 +118,7 @@ ARM FileSelectOptionsManager::~FileSelectOptionsManager() {
|
||||
this->mpOptions = NULL;
|
||||
}
|
||||
|
||||
ARM void FileSelectOptionsManager::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {
|
||||
ARM void FileSelectOptionsManager::vfunc_08(Input *pButtons, TouchControl *pTouchControl) {
|
||||
if (this->mUnk_20 == 0) {
|
||||
return;
|
||||
}
|
||||
@@ -129,25 +128,17 @@ ARM void FileSelectOptionsManager::vfunc_08(GameModePTMFParam2Struct *param1, To
|
||||
switch (this->mUnk_1C) {
|
||||
case 0:
|
||||
FileSelectOptions *pFVar4 = this->mpOptions;
|
||||
FileSelectOptions *pFVar2 = pFVar4;
|
||||
if (pFVar4 != NULL) {
|
||||
pFVar2 = (FileSelectOptions *) &pFVar4->mUnk_04;
|
||||
}
|
||||
this->mUnk_24->mUnk_04.func_020166cc(&pFVar2->mUnk_04);
|
||||
this->mUnk_24->mList.func_020166cc(pFVar4->GetNode());
|
||||
pFVar4->vfunc_18();
|
||||
this->mpOptions->func_ov019_020cde9c();
|
||||
this->mpMicTest->mUnk_04.func_020166ac();
|
||||
GameModeLinkListNode::func_020166ac(&this->mpMicTest->mList);
|
||||
break;
|
||||
case 1:
|
||||
FileSelectMicTest *pFVar5 = this->mpMicTest;
|
||||
FileSelectMicTest *pFVar3 = pFVar5;
|
||||
if (pFVar5 != NULL) {
|
||||
pFVar3 = (FileSelectMicTest *) &pFVar5->mUnk_04;
|
||||
}
|
||||
this->mUnk_24->mUnk_04.func_020166cc(&pFVar3->mUnk_04);
|
||||
this->mUnk_24->mList.func_020166cc(pFVar5->GetNode());
|
||||
pFVar5->vfunc_18();
|
||||
this->mpMicTest->func_ov019_020cefe4();
|
||||
this->mpOptions->mUnk_04.func_020166ac();
|
||||
GameModeLinkListNode::func_020166ac(&this->mpOptions->mList);
|
||||
break;
|
||||
case 2:
|
||||
this->mpOptions->func_ov019_020ccdf4();
|
||||
@@ -188,10 +179,10 @@ ARM FileSelectOptions::FileSelectOptions(s32 saveSlotIndex) :
|
||||
mUnk_1A68(&mUnk_19D0),
|
||||
mUnk_1AB8(&mUnk_19D0, 0x8C, 0x09, 0x00020007) {
|
||||
this->mUnk_1CF5 = false;
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_10A8.mUnk_04);
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_19D0.mUnk_04);
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_1388.mUnk_04);
|
||||
this->mUnk_0C.mUnk_04.mUnk_00.func_020166cc(&this->mUnk_16AC.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_10A8.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_19D0.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_1388.mUnk_04);
|
||||
this->mUnk_0C.mList.func_020166cc(&this->mUnk_16AC.mUnk_04);
|
||||
this->mUnk_10A8.mUnk_2A = false;
|
||||
this->mUnk_1388.mUnk_2C = true;
|
||||
this->mUnk_16AC.mUnk_2C = true;
|
||||
@@ -213,7 +204,7 @@ ARM void FileSelectOptions::func_ov019_020ccd40() {
|
||||
CALL_PTMF(PTMF<FileSelectOptions>, data_ov019_020d21c0[this->mState]);
|
||||
}
|
||||
|
||||
ARM void FileSelectOptions::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {
|
||||
ARM void FileSelectOptions::vfunc_08(Input *pButtons, TouchControl *pTouchControl) {
|
||||
CALL_PTMF(PTMF<FileSelectOptions>, data_ov019_020d2188[this->mState]);
|
||||
}
|
||||
|
||||
@@ -632,12 +623,12 @@ ARM UnkStruct_ov019_020d24c8_2C_24::UnkStruct_ov019_020d24c8_2C_24(GameModeManag
|
||||
this->mUnk_FC2 = pSaveSub17->mUnk_02;
|
||||
this->mUnk_103E = pSaveSub17[1].mUnk_00;
|
||||
|
||||
param1->mUnk_04.mUnk_00.func_020166cc(&this->mUnk_490.mUnk_04);
|
||||
param1->mUnk_04.mUnk_00.func_020166cc(&this->mUnk_4F0.mUnk_04);
|
||||
param1->mUnk_04.mUnk_00.func_020166cc(&this->mUnk_9C0.mUnk_04);
|
||||
param1->mUnk_04.mUnk_00.func_020166cc(&this->mUnk_A20.mUnk_04);
|
||||
param1->mUnk_04.mUnk_00.func_020166cc(&this->mUnk_EF0.mUnk_04);
|
||||
param1->mUnk_04.mUnk_00.func_020166cc(&this->mUnk_F50.mUnk_04);
|
||||
param1->mList.func_020166cc(&this->mUnk_490.mUnk_04);
|
||||
param1->mList.func_020166cc(&this->mUnk_4F0.mUnk_04);
|
||||
param1->mList.func_020166cc(&this->mUnk_9C0.mUnk_04);
|
||||
param1->mList.func_020166cc(&this->mUnk_A20.mUnk_04);
|
||||
param1->mList.func_020166cc(&this->mUnk_EF0.mUnk_04);
|
||||
param1->mList.func_020166cc(&this->mUnk_F50.mUnk_04);
|
||||
|
||||
this->mUnk_490.mPosOffset.x = 0;
|
||||
this->mUnk_490.mPosOffset.y = 0;
|
||||
|
||||
@@ -77,7 +77,7 @@ ARM FileSelectSubScreen::FileSelectSubScreen() :
|
||||
this->func_ov019_020cf73c(2, 1);
|
||||
}
|
||||
|
||||
ARM void FileSelectSubScreen::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {
|
||||
ARM void FileSelectSubScreen::vfunc_08(Input *pButtons, TouchControl *pTouchControl) {
|
||||
this->mUnk_0024 = this->mUnk_0020;
|
||||
this->mUnk_0020 += 0x800;
|
||||
|
||||
|
||||
@@ -31,15 +31,15 @@ ARM GameModeFileSelect::~GameModeFileSelect() {
|
||||
}
|
||||
|
||||
// https://decomp.me/scratch/bJVks
|
||||
ARM void GameModeFileSelect::vfunc_08(unk32 param1, unk32 param2, unk32 param3) {
|
||||
ARM void GameModeFileSelect::vfunc_08() {
|
||||
gSaveManager.func_ov019_020d0964();
|
||||
this->func_02018374();
|
||||
this->GameModeBase::vfunc_08();
|
||||
|
||||
const UnkStruct_ov019_020d1d80 *ptr2 = &data_ov019_020d1d80;
|
||||
this->mUnk_04.mUnk_14 = gSaveManager.mpSaveFile;
|
||||
data_ov000_020b504c.func_ov000_0206807c((void *) &data_ov019_020d1d80, &this->mUnk_04);
|
||||
|
||||
data_ov000_020b50c0.func_ov000_020bd8ac();
|
||||
data_ov000_020b50c0.func_ov001_020bd8ac();
|
||||
data_ov000_020b51b8.func_ov000_0206c9a8(3, 0, 0x7F, 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -49,8 +49,8 @@ struct stack_struct {
|
||||
/* 14 */
|
||||
};
|
||||
|
||||
ARM void GameModeTitleScreen::vfunc_08(unk32 param1, unk32 param2, unk32 param3) {
|
||||
this->GameModeBase::vfunc_08(param1, param2, param3);
|
||||
ARM void GameModeTitleScreen::vfunc_08() {
|
||||
this->GameModeBase::vfunc_08();
|
||||
|
||||
UnkStruct_ov000_020a782c *iVar1 = func_ov000_020a782c(0);
|
||||
u8 mUnk_04 = iVar1->mUnk_04;
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
#include <string.h>
|
||||
|
||||
extern "C" {
|
||||
void func_02018424();
|
||||
void func_ov000_0205be34(void *param1, unk32 param2);
|
||||
void func_ov000_0205bedc(void *param1, void *param2, void *param3, void *param4, unk32 param5, int);
|
||||
}
|
||||
@@ -168,7 +167,7 @@ void TitleScreen::func_ov025_020c4ea0(TitleScreenState state) {
|
||||
}
|
||||
}
|
||||
|
||||
void TitleScreen::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {
|
||||
void TitleScreen::vfunc_08(Input *pButtons, TouchControl *pTouchControl) {
|
||||
if (this->mShowUI) {
|
||||
this->mUnk_024.func_ov000_020609c4();
|
||||
this->mUnk_09C.func_ov000_020609c4();
|
||||
@@ -178,29 +177,29 @@ void TitleScreen::vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouc
|
||||
this->mUnk_2CC.func_ov000_020609c4();
|
||||
}
|
||||
|
||||
CALL_PTMF(TitleScreenPTMF<TitleScreen>, data_ov025_020c5aec[this->mState], param1, pTouchControl);
|
||||
CALL_PTMF(TitleScreenPTMF<TitleScreen>, data_ov025_020c5aec[this->mState], pButtons, pTouchControl);
|
||||
data_0204aeac.func_0201c4d8(0, 0x0B, 8);
|
||||
data_0204aeac.func_0201c504(1, 10, 0x10, 8);
|
||||
}
|
||||
|
||||
void TitleScreen::func_ov025_020c5200(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {}
|
||||
void TitleScreen::func_ov025_020c5200(Input *pButtons, TouchControl *pTouchControl) {}
|
||||
|
||||
// https://decomp.me/scratch/6nDGM
|
||||
void TitleScreen::func_ov025_020c5204(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {
|
||||
void TitleScreen::func_ov025_020c5204(Input *pButtons, TouchControl *pTouchControl) {
|
||||
if (pTouchControl->mFlags & 1) {
|
||||
this->mUnk_021 = 1U;
|
||||
}
|
||||
if ((pTouchControl->mFlags & 2) && (this->mUnk_021 != 0)) {
|
||||
goto test;
|
||||
}
|
||||
if (!(param1->mButtons & 8)) {
|
||||
if (!(pButtons->press & 8)) {
|
||||
return;
|
||||
}
|
||||
test:
|
||||
func_ov025_020c4e54();
|
||||
}
|
||||
|
||||
void TitleScreen::func_ov025_020c5240(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {
|
||||
void TitleScreen::func_ov025_020c5240(Input *pButtons, TouchControl *pTouchControl) {
|
||||
this->mUnk_218.UnkOperations();
|
||||
this->mUnk_204.mUnk_10 = this->mUnk_218.func_0201f04c();
|
||||
|
||||
@@ -223,7 +222,7 @@ void TitleScreen::func_ov025_020c5240(GameModePTMFParam2Struct *param1, TouchCon
|
||||
this->func_ov025_020c4ea0(TitleScreenState_IdleBeforeFileSelect);
|
||||
}
|
||||
|
||||
void TitleScreen::func_ov025_020c53d0(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {
|
||||
void TitleScreen::func_ov025_020c53d0(Input *pButtons, TouchControl *pTouchControl) {
|
||||
this->mUnk_344++;
|
||||
|
||||
if (this->mUnk_344 == 15) {
|
||||
@@ -262,14 +261,14 @@ void TitleScreen::func_ov025_020c53d0(GameModePTMFParam2Struct *param1, TouchCon
|
||||
}
|
||||
}
|
||||
|
||||
void TitleScreen::func_ov025_020c55a4(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {
|
||||
if (CHECK_TOUCH_FLAGS(pTouchControl, TouchFlag_UntouchedNow) || CHECK_BUTTON_COMBO(param1->mButtons, BTN_START)) {
|
||||
void TitleScreen::func_ov025_020c55a4(Input *pButtons, TouchControl *pTouchControl) {
|
||||
if (CHECK_TOUCH_FLAGS(pTouchControl, TouchFlag_UntouchedNow) || CHECK_BUTTON_COMBO(pButtons->press, BTN_START)) {
|
||||
data_ov000_020b5214.func_ov000_0206db44(0x0B);
|
||||
this->func_ov025_020c4ea0(TitleScreenState_ToFileSelect);
|
||||
}
|
||||
}
|
||||
|
||||
void TitleScreen::func_ov025_020c55e4(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) {
|
||||
void TitleScreen::func_ov025_020c55e4(Input *pButtons, TouchControl *pTouchControl) {
|
||||
if (this->mUnk_024.func_ov000_02060af8() == 0) {
|
||||
return;
|
||||
}
|
||||
@@ -286,7 +285,7 @@ void TitleScreen::func_ov025_020c55e4(GameModePTMFParam2Struct *param1, TouchCon
|
||||
return;
|
||||
}
|
||||
|
||||
data_0204a060.func_020183d4(true, func_02018424, 1);
|
||||
data_0204a060.func_020183d4(true, UnkStruct_0204a060::func_02018424, 1);
|
||||
}
|
||||
|
||||
void TitleScreen::vfunc_14(unk8 *param1) {
|
||||
@@ -348,17 +347,10 @@ void TitleScreen::vfunc_10(unk8 *param1) {
|
||||
}
|
||||
}
|
||||
|
||||
//! TODO: fake match?
|
||||
void TitleScreen::vfunc_0C(unk32 param1) {
|
||||
if (param1 == 1 && this->mShowUI) {
|
||||
UnkStruct_027e0954 *ptr = data_027e0954;
|
||||
void *iVar1 = &this->mUnk_204;
|
||||
|
||||
if (iVar1 != NULL) {
|
||||
iVar1 = (u32 *) iVar1 + 1;
|
||||
}
|
||||
|
||||
ptr->mUnk_14.func_020166f4(iVar1);
|
||||
ptr->mUnk_14.func_020166f4(this->mUnk_204.GetNode());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,13 +17,8 @@ ARM void TitleScreenManager::vfunc_14() {
|
||||
this->mUnk_004.func_0201c00c(0x24, 1);
|
||||
|
||||
TitleScreen *pTitleScreen = new(HeapIndex_1) TitleScreen();
|
||||
void *pUVar2 = pTitleScreen;
|
||||
if (pTitleScreen != NULL) {
|
||||
pUVar2 = &pTitleScreen->mUnk_04;
|
||||
}
|
||||
this->mpTitleScreen = pTitleScreen;
|
||||
|
||||
this->mUnk_104.mUnk_04.func_020166cc(pUVar2);
|
||||
this->mpTitleScreen = pTitleScreen;
|
||||
this->mUnk_104.mList.func_020166cc(pTitleScreen->GetNode());
|
||||
pTitleScreen->vfunc_18();
|
||||
}
|
||||
|
||||
@@ -40,12 +35,12 @@ ARM void TitleScreenManager::vfunc_24() {
|
||||
this->func_02018908();
|
||||
}
|
||||
|
||||
ARM void TitleScreenManager::vfunc_28(unk32 param1) {
|
||||
ARM void TitleScreenManager::vfunc_28(unk8 *param1) {
|
||||
this->GameModeManagerBase::vfunc_28(param1);
|
||||
this->func_02018a14(param1);
|
||||
}
|
||||
|
||||
ARM void TitleScreenManager::vfunc_2C(unk32 param1) {
|
||||
ARM void TitleScreenManager::vfunc_2C(unk8 *param1) {
|
||||
this->func_02018984(param1);
|
||||
this->func_02018830(param1);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
#include "Game/GameMode.hpp"
|
||||
#include "Unknown/UnkStruct_0204a110.hpp"
|
||||
|
||||
GameModeBase::GameModeBase() {}
|
||||
|
||||
GameModeBase::~GameModeBase() {
|
||||
data_0204a110.func_ov001_020bd58c();
|
||||
}
|
||||
|
||||
void GameModeBase::vfunc_08() {
|
||||
data_0204a110.func_02018d34();
|
||||
}
|
||||
|
||||
void GameModeBase::vfunc_14() {}
|
||||
|
||||
void GameModeBase::vfunc_10() {}
|
||||
|
||||
void GameModeBase::vfunc_18() {}
|
||||
|
||||
void GameModeBase::vfunc_1C() {}
|
||||
|
||||
void GameModeBase::vfunc_20() {}
|
||||
|
||||
unk32 GameModeBase::vfunc_24() {
|
||||
return 1;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
#include "Game/GameModeManager.hpp"
|
||||
|
||||
ARM GameModeLinkListNode::GameModeLinkListNode() {
|
||||
this->mNext = this;
|
||||
this->mPrev = this;
|
||||
}
|
||||
|
||||
ARM GameModeLinkListNode::~GameModeLinkListNode() {
|
||||
this->mNext->mPrev = this->mPrev;
|
||||
this->mPrev->mNext = this->mNext;
|
||||
}
|
||||
|
||||
ARM void GameModeLinkListNode::func_020166ac(GameModeLinkListNode *node) {
|
||||
node->mNext->mPrev = node->mPrev;
|
||||
node->mPrev->mNext = node->mNext;
|
||||
|
||||
node->mNext = node;
|
||||
node->mPrev = node;
|
||||
}
|
||||
|
||||
ARM void GameModeLinkListNode::func_020166cc(GameModeLinkListNode *node) {
|
||||
this->func_020166ac(node);
|
||||
|
||||
GameModeLinkListNode *nextNode = this->mNext;
|
||||
nextNode->mPrev = node;
|
||||
node->mNext = nextNode;
|
||||
node->mPrev = this;
|
||||
this->mNext = node;
|
||||
}
|
||||
|
||||
ARM void GameModeLinkListNode::func_020166f4(GameModeLinkListNode *node) {
|
||||
this->func_020166ac(node);
|
||||
|
||||
GameModeLinkListNode *prevNode = this->mPrev;
|
||||
prevNode->mNext = node;
|
||||
node->mPrev = prevNode;
|
||||
node->mNext = this;
|
||||
this->mPrev = node;
|
||||
}
|
||||
@@ -0,0 +1,247 @@
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "Unknown/UnkStruct_02049b18.hpp"
|
||||
#include "Unknown/UnkStruct_0204a110.hpp"
|
||||
#include "Unknown/UnkStruct_0204e5f8.hpp"
|
||||
#include "Unknown/UnkStruct_027e09b8.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_020b50c0.hpp"
|
||||
|
||||
THUMB GameModeManagerBase *GameModeManagerBase::Create(unk32 param1) {
|
||||
return new(HeapIndex_1) GameModeManagerBase(param1);
|
||||
}
|
||||
|
||||
THUMB GameModeManagerBase::GameModeManagerBase(unk32 param1) :
|
||||
mUnk_100((void *) param1),
|
||||
mUnk_148(-1),
|
||||
mUnk_14C(-1),
|
||||
mUnk_150(false) {
|
||||
data_ov000_020b504c.mUnk_004 = &this->mUnk_004;
|
||||
}
|
||||
|
||||
THUMB void GameModeManagerBase::func_02018550(void) {}
|
||||
|
||||
THUMB void GameModeManagerBase::func_02018554(void) {}
|
||||
|
||||
THUMB GameModeManagerBase::~GameModeManagerBase() {
|
||||
this->func_02018a8c();
|
||||
}
|
||||
|
||||
THUMB void GameModeManagerBase::vfunc_10(unk32 param1, unk32 param2, unk32 param3) {}
|
||||
|
||||
THUMB void GameModeManagerBase::vfunc_14() {}
|
||||
|
||||
THUMB void GameModeManagerBase::vfunc_18() {}
|
||||
|
||||
THUMB void GameModeManagerBase::vfunc_1C() {}
|
||||
|
||||
THUMB void GameModeManagerBase::vfunc_20() {}
|
||||
|
||||
ARM void GameModeManagerBase::vfunc_00() {
|
||||
data_ov000_020b50c0.func_ov000_02069d3c(1);
|
||||
|
||||
if (!this->mUnk_150) {
|
||||
this->mUnk_150 = true;
|
||||
}
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::vfunc_04() {
|
||||
data_ov000_020b50c0.func_ov000_02069d7c();
|
||||
|
||||
if (this->mUnk_150) {
|
||||
this->mUnk_150 = false;
|
||||
}
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::func_02018634(unk32 param1) {
|
||||
this->mButtons.func_02013b24(this->mButtons.func_02013c08(data_02049b18.mUnk_28));
|
||||
this->mTouchControl.func_02014478(&data_02049b4c, param1);
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::vfunc_24() {
|
||||
this->mUnk_14C = -1;
|
||||
this->mUnk_004.func_0201bf24();
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::vfunc_28(unk8 *param1) {
|
||||
this->mUnk_004.func_0201bf54();
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::vfunc_2C(unk8 *param1) {}
|
||||
|
||||
ARM void GameModeManagerBase::vfunc_30(unk32 param1) {
|
||||
GameModeLinkList<GameModeManagerBase_104> *pNode;
|
||||
|
||||
for (pNode = this->mUnk_104.mList.GetNext(); pNode != this->mUnk_104.GetOrigin(); pNode = pNode->GetPrev()) {
|
||||
pNode->GetTarget()->vfunc_0C(param1);
|
||||
}
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::vfunc_34() {}
|
||||
|
||||
struct UnkStruct3 {
|
||||
unk32 mUnk_00;
|
||||
unk32 *mUnk_04;
|
||||
};
|
||||
|
||||
//! TODO: fake match
|
||||
ARM void *GameModeManagerBase::func_020186f8(unk32 param1) {
|
||||
return ((UnkStruct3 *) (((u32 *) this) + param1))->mUnk_04;
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::func_02018704(void) {
|
||||
this->mUnk_004.func_0201c22c();
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::func_02018714(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5) {
|
||||
this->mUnk_004.func_0201c124(param1, param2, param3, param4, param5);
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::func_0201873c(void) {
|
||||
this->mUnk_004.func_0201c19c();
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::func_0201874c(void) {
|
||||
this->mUnk_004.func_0201c1e4();
|
||||
}
|
||||
|
||||
struct UnkStruct4 {
|
||||
void *a;
|
||||
void *b;
|
||||
void *c;
|
||||
void *d;
|
||||
};
|
||||
|
||||
// non-matching
|
||||
ARM void GameModeManagerBase::func_0201875c(void) {
|
||||
GameModeLinkList<GameModeManagerBase_104_0C> *pNode2;
|
||||
GameModeLinkList<GameModeManagerBase_104> *pNode;
|
||||
|
||||
UnkStruct4 local_30;
|
||||
local_30.a = &this->mUnk_148;
|
||||
local_30.b = &this->mUnk_14C;
|
||||
local_30.c = &this->mButtons;
|
||||
local_30.d = &this->mTouchControl;
|
||||
|
||||
for (pNode = this->mUnk_104.mList.GetNext(); pNode != this->mUnk_104.GetOrigin(); pNode = pNode->GetPrev()) {
|
||||
if (this->func_02018af0(pNode) && this->func_02018b54(pNode)) {
|
||||
for (pNode2 = pNode->GetTarget()->mUnk_0C.mList.GetNext(); pNode2 != pNode->GetTarget()->mUnk_0C.GetOrigin();
|
||||
pNode2 = pNode2->GetPrev()) {
|
||||
pNode2->GetTarget()->vfunc_08(&local_30);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct UnkStruct5 {
|
||||
unk32 a;
|
||||
void *b;
|
||||
};
|
||||
|
||||
// non-matching
|
||||
ARM void GameModeManagerBase::func_02018830(unk8 *param1) {
|
||||
GameModeLinkList<GameModeManagerBase_104_0C> *pNode2;
|
||||
GameModeLinkList<GameModeManagerBase_104> *pNode;
|
||||
|
||||
UnkStruct5 local_28;
|
||||
local_28.a = this->mUnk_148;
|
||||
local_28.b = param1;
|
||||
|
||||
for (pNode = this->mUnk_104.mList.GetPrev(); pNode != this->mUnk_104.GetOrigin(); pNode = pNode->GetNext2()) {
|
||||
if (this->func_02018af0(pNode) && this->func_02018b54(pNode) && this->func_02018b90(pNode, (unk8 *) param1)) {
|
||||
for (pNode2 = pNode->GetTarget()->mUnk_0C.mList.GetPrev(); pNode2 != pNode->GetTarget()->mUnk_0C.GetOrigin();
|
||||
pNode2 = pNode2->GetNext2()) {
|
||||
pNode2->GetTarget()->vfunc_0C(&local_28);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::func_02018908() {
|
||||
GameModeLinkList<GameModeManagerBase_104> *pNode;
|
||||
|
||||
for (pNode = this->mUnk_104.mList.GetNext(); pNode != this->mUnk_104.GetOrigin(); pNode = pNode->GetPrev()) {
|
||||
if (this->func_02018af0(pNode) && this->func_02018b54(pNode)) {
|
||||
pNode->GetTarget()->vfunc_08(&this->mButtons, &this->mTouchControl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::func_02018984(unk8 *param1) {
|
||||
GameModeLinkList<GameModeManagerBase_104> *pNode;
|
||||
|
||||
for (pNode = this->mUnk_104.mList.GetPrev(); pNode != this->mUnk_104.GetOrigin(); pNode = pNode->GetNext2()) {
|
||||
if (this->func_02018af0(pNode) && this->func_02018b54(pNode) && this->func_02018b90(pNode, param1)) {
|
||||
pNode->GetTarget()->vfunc_10(param1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::func_02018a14(unk8 *param1) {
|
||||
GameModeLinkList<GameModeManagerBase_104> *pNode;
|
||||
|
||||
for (pNode = this->mUnk_104.mList.GetNext(); pNode != this->mUnk_104.GetOrigin(); pNode = pNode->GetPrev()) {
|
||||
if (this->func_02018af0(pNode) && this->func_02018b54(pNode)) {
|
||||
pNode->GetTarget()->vfunc_14(param1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ARM void GameModeManagerBase::func_02018a8c() {
|
||||
this->mUnk_004.func_0201bf90();
|
||||
}
|
||||
|
||||
void GameModeManagerBase::func_02018a9c(unk32 param1, unk32 param2) {
|
||||
this->mUnk_004.func_0201c00c(param1, param2);
|
||||
}
|
||||
|
||||
void GameModeManagerBase::func_02018aac(unk32 param1) {
|
||||
this->mUnk_004.func_0201c068(param1);
|
||||
}
|
||||
|
||||
void GameModeManagerBase::func_02018ac4(void) {
|
||||
this->mUnk_004.func_0201bfec();
|
||||
}
|
||||
|
||||
bool GameModeManagerBase::func_02018ad4(void) {
|
||||
return !this->mUnk_0F4 && !this->mUnk_0F5;
|
||||
}
|
||||
|
||||
bool GameModeManagerBase::func_02018af0(GameModeLinkList<GameModeManagerBase_104> *param1) {
|
||||
if (param1->GetTarget()->mUnk_18) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (data_027e09b8 != NULL) {
|
||||
if (data_027e09b8->func_ov000_020732dc(0) != 0 || data_027e09b8->func_ov000_020732dc(4) != 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameModeManagerBase::func_02018b54(GameModeLinkList<GameModeManagerBase_104> *param1) {
|
||||
if (param1->GetTarget()->mUnk_19) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (data_0204e5f8.mUnk_18 || data_0204e5f8.mUnk_3A != 0 || data_0204e5f8.mUnk_3E != 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GameModeManagerBase::func_02018b90(GameModeLinkList<GameModeManagerBase_104> *param1, unk8 *param2) {
|
||||
if (param1->GetTarget()->mUnk_1A) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (data_0204a110.mUnk_008 == 1 && param2[1] == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
#include "Unknown/UnkStruct_0204a060.hpp"
|
||||
#include "System/OverlayManager.hpp"
|
||||
#include "Unknown/UnkStruct_02049a2c.hpp"
|
||||
#include "Unknown/UnkStruct_0204e5f8.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_020b51b8.hpp"
|
||||
|
||||
extern "C" void func_ov001_020be078();
|
||||
|
||||
THUMB bool UnkStruct_0204a060::vfunc_0C(void) {
|
||||
return data_02049a2c.func_02013724(this->callback);
|
||||
}
|
||||
|
||||
THUMB void UnkStruct_0204a060::func_020183b8(void) {
|
||||
func_ov001_020be078();
|
||||
}
|
||||
|
||||
THUMB void UnkStruct_0204a060::func_020183c0(void) {
|
||||
this->func_020183d4(false, func_ov001_020be078, 1);
|
||||
}
|
||||
|
||||
THUMB bool UnkStruct_0204a060::func_020183d4(bool param1, void *param2, unk32 param3) {
|
||||
if (this->mUnk_0C) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this->mUnk_14 = param1 ? 0x00010000 : 0xFFFF0000;
|
||||
this->callback = param2;
|
||||
this->func_0201bb84(0x20, 4, 0x20);
|
||||
|
||||
if (param3 != 0) {
|
||||
data_ov000_020b51b8.func_ov000_0206d0bc(this->mUnk_1A);
|
||||
}
|
||||
|
||||
data_0204e5f8.func_0201b9a8(this);
|
||||
return true;
|
||||
}
|
||||
|
||||
THUMB void UnkStruct_0204a060::func_02018424(void) {
|
||||
data_02049ba0.func_020148d0(0x18)->func_ov018_020c4840();
|
||||
}
|
||||
|
||||
ARM UnkStruct_0204a060::~UnkStruct_0204a060() {}
|
||||
Reference in New Issue
Block a user