mirror of
https://github.com/zeldaret/st
synced 2026-07-05 21:39:16 -04:00
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:
@@ -46,82 +46,30 @@ public:
|
||||
};
|
||||
|
||||
// similar to UnkSubStruct1
|
||||
class TitleScreen_Sub3 {
|
||||
class TitleScreen_Sub3 : public UnkSubStruct1_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ u16 mUnk_04;
|
||||
/* 04 */ u16 mUnk_06;
|
||||
/* 08 */ u16 mUnk_08; // 220
|
||||
/* 08 */ bool mUnk_0A; // 222
|
||||
/* 08 */ bool mUnk_0B; // 223
|
||||
/* 0C */ bool mUnk_0C; // 224
|
||||
/* 0C */ bool mUnk_0D;
|
||||
/* 0C */ bool mUnk_0E;
|
||||
/* 0C */ bool mUnk_0F;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1C */ unk32 mUnk_1C;
|
||||
/* 00 (base) */
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */
|
||||
|
||||
TitleScreen_Sub3();
|
||||
void func_0201effc(unk32 param1, unk32 param2, unk32 param3);
|
||||
bool func_0201f04c();
|
||||
|
||||
// data_020442d4 vtable
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual void vfunc_04() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
|
||||
void UnkOperations() {
|
||||
int iVar1;
|
||||
|
||||
if (this->mUnk_08 != 0) {
|
||||
iVar1 = this->mUnk_08 - this->mUnk_0D;
|
||||
this->mUnk_08 = CLAMP(iVar1, 0, 0xFFFF);
|
||||
} else {
|
||||
if (this->mUnk_0A) {
|
||||
if (this->mUnk_04 < this->mUnk_06) {
|
||||
iVar1 = this->mUnk_04 + this->mUnk_0D;
|
||||
|
||||
if (iVar1 > this->mUnk_06) {
|
||||
iVar1 = this->mUnk_06;
|
||||
} else if (iVar1 < 0) {
|
||||
iVar1 = 0;
|
||||
}
|
||||
|
||||
this->mUnk_04 = iVar1;
|
||||
this->vfunc_00();
|
||||
|
||||
if (this->mUnk_04 >= this->mUnk_06) {
|
||||
this->mUnk_10 = this->mUnk_18;
|
||||
this->mUnk_0A = false;
|
||||
this->mUnk_0C = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (this->mUnk_0B && this->mUnk_04 != 0) {
|
||||
iVar1 = this->mUnk_04 - this->mUnk_0D;
|
||||
|
||||
if (iVar1 > this->mUnk_06) {
|
||||
iVar1 = this->mUnk_06;
|
||||
} else if (iVar1 < 0) {
|
||||
iVar1 = 0;
|
||||
}
|
||||
|
||||
this->mUnk_04 = iVar1;
|
||||
this->vfunc_04();
|
||||
|
||||
if (this->mUnk_04 == 0) {
|
||||
this->mUnk_10 = this->mUnk_14;
|
||||
this->mUnk_0B = false;
|
||||
this->mUnk_0C = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void Subprocess1_UnkValueSets() {
|
||||
this->mUnk_10 = this->mUnk_18;
|
||||
}
|
||||
|
||||
void Subprocess2_UnkValueSets() {
|
||||
this->mUnk_10 = this->mUnk_14;
|
||||
}
|
||||
|
||||
UnkSubStruct1_Methods;
|
||||
};
|
||||
|
||||
class TitleScreen : public SysObject, public GameModeManagerBase_104 { // 0233c6d4
|
||||
@@ -181,6 +129,7 @@ public:
|
||||
class TitleScreenManager : public TitleScreenManager_Base {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 154 */ GameModeBase *mpGameMode;
|
||||
/* 158 */
|
||||
|
||||
TitleScreenManager(unk32 param1) NO_INLINE {
|
||||
@@ -200,7 +149,7 @@ public:
|
||||
/* 24 */ virtual void vfunc_24() override;
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
|
||||
/* 2C */ virtual void vfunc_2C(unk8 *param1) override;
|
||||
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3, unk32 param4) override;
|
||||
/* 38 */ virtual void vfunc_38(u32 param1, u8 param2, unk16 param3, unk16 param4) override;
|
||||
|
||||
static TitleScreenManager *Create(unk32 param1);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user