mirror of
https://github.com/zeldaret/st
synced 2026-09-02 09:51:55 -04:00
Misc Stuff 2 (#33)
* match UnkStruct_ov000_020b4f84_00_Base * lots of random stuff * match other funcs from game.cpp * data_02049a2c -> gGame, UnkStruct_02049a2c -> Game * match operator new * fix regressions * fix some warnings * another round of random things * another round of random things 2 * complete slots column in overlays.md * add scene indices * gamemode stuff * misc stuff * fix build issues * document random things * fix regressions * final round of random things (for now)
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/GameMode.hpp"
|
||||
#include "Game/GameModeStartUp.hpp"
|
||||
#include "Save/SaveManager.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
typedef void (*GameUnkCallback1)(void);
|
||||
typedef void (*GameUnkCallback2)(void);
|
||||
typedef unk32 (*GameUnkCallback3)(void);
|
||||
|
||||
class GameModeFileSelect;
|
||||
|
||||
class UnkStruct_02049a2c_1C {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ STRUCT_PAD(0x08, 0xCC);
|
||||
/* CC */
|
||||
|
||||
UnkStruct_02049a2c_1C();
|
||||
unk32 func_02013e18(void *param1, unk32 param2);
|
||||
|
||||
// data_020437d8 vtable
|
||||
/* 00 */ virtual ~UnkStruct_02049a2c_1C();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
};
|
||||
|
||||
class Game {
|
||||
public:
|
||||
/* 00 */ GameModeBase *mpCurrentGameMode;
|
||||
/* 04 */ GameModeCreateCallback createCallback;
|
||||
/* 08 */ GameUnkCallback1 mUnk_08; // seems related to entering and leaving houses/grottos??
|
||||
/* 0C */ unk32 mFrameCounter;
|
||||
/* 10 */ SaveFile *mpSaveFile;
|
||||
/* 14 */ GameUnkCallback2 mUnk_14; // only set for wireless stuff?
|
||||
/* 18 */ GameUnkCallback3 mUnk_18; // same as above
|
||||
/* 1C */ UnkStruct_02049a2c_1C mUnk_1C;
|
||||
/* E8 */
|
||||
|
||||
Game();
|
||||
|
||||
void Run();
|
||||
void func_02013370(unk32 param1);
|
||||
bool TrySetCreateCallback(GameModeCreateCallback createCallback);
|
||||
|
||||
void func_ov000_020576d0();
|
||||
void func_ov000_0205770c();
|
||||
|
||||
void func_ov018_020c48a4();
|
||||
void func_ov018_020c48f8(); // loads overlay 0
|
||||
|
||||
GameModeFileSelect *GetGameModeFileSelect() {
|
||||
return (GameModeFileSelect *) this->mpCurrentGameMode;
|
||||
}
|
||||
|
||||
static GameModeStartUp *func_ov018_020c4ba8();
|
||||
};
|
||||
|
||||
extern Game gGame;
|
||||
@@ -12,8 +12,8 @@ public:
|
||||
|
||||
// data_02044018 vtable
|
||||
/* 00 */ virtual ~GameModeBase();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C() = 0;
|
||||
/* 08 */ virtual void vfunc_08(); // Init
|
||||
/* 0C */ virtual void vfunc_0C() = 0; // Update
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual void vfunc_18();
|
||||
@@ -22,3 +22,5 @@ public:
|
||||
/* 24 */ virtual unk32 vfunc_24();
|
||||
/* 28 */
|
||||
};
|
||||
|
||||
typedef GameModeBase *(*GameModeCreateCallback)(void);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "FileSelect/FileSelect.hpp"
|
||||
#include "Game/Game.hpp"
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "Unknown/UnkStruct_02049a2c.hpp"
|
||||
#include "Unknown/UnkStruct_02049bd4.hpp"
|
||||
#include "Unknown/UnkStruct_0204a110.hpp"
|
||||
|
||||
@@ -18,7 +18,7 @@ public:
|
||||
this->mSaveSlotIndex = 0;
|
||||
data_02049bd4.func_02014cdc(2);
|
||||
data_02049bd4.mUnk_02 &= 0xFFFB;
|
||||
data_02049a2c.func_02013370(1);
|
||||
gGame.func_02013370(1);
|
||||
data_0204999c.mUnk_60 = 0xD6D8;
|
||||
data_ov000_020b504c.func_ov001_020be668();
|
||||
data_0204a110.func_ov001_020bd514(2, FileSelectManager::Create, 0, 1);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/GameMode.hpp"
|
||||
#include "Player/TouchControl.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkStruct_02049b18.hpp"
|
||||
@@ -193,7 +194,37 @@ public:
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1);
|
||||
/* 2C */ virtual void vfunc_2C(unk8 *param1);
|
||||
/* 30 */ virtual void vfunc_30(unk32 param1);
|
||||
/* 34 */ virtual void vfunc_34();
|
||||
/* 34 */ virtual void vfunc_34(unk32 param1, unk32 param2);
|
||||
|
||||
static GameModeManagerBase *Create(unk32 param1);
|
||||
};
|
||||
|
||||
class TitleScreen;
|
||||
class MainGame;
|
||||
|
||||
class TitleScreenManager_Base : public GameModeManagerBase {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 154 */ GameModeBase *mpGameMode;
|
||||
|
||||
TitleScreenManager_Base();
|
||||
|
||||
TitleScreen *GetTitleScreen() {
|
||||
return (TitleScreen *) this->mpGameMode;
|
||||
}
|
||||
|
||||
MainGame *GetMainGame() {
|
||||
return (MainGame *) this->mpGameMode;
|
||||
}
|
||||
|
||||
// data_ov000_020b1d14 vtable
|
||||
/* 08 */ virtual ~TitleScreenManager_Base() override;
|
||||
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2, unk32 param3) override;
|
||||
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
/* 3C */ virtual void vfunc_3C();
|
||||
/* 40 */ virtual void vfunc_40();
|
||||
/* 44 */ virtual void vfunc_44();
|
||||
/* 48 */
|
||||
};
|
||||
|
||||
extern TitleScreenManager_Base *data_027e0994;
|
||||
|
||||
Reference in New Issue
Block a user