mirror of
https://github.com/zeldaret/st
synced 2026-06-20 16:01:24 -04:00
Decompile overlay 1 (Part 1) (#89)
* start overlay 1 * match courselist and delink a lot of files (+ remove SysObject) * fix build issues * fix regressions
This commit is contained in:
@@ -124,7 +124,7 @@ public:
|
||||
typedef s16 ActorState;
|
||||
#define ActorState_None -1
|
||||
|
||||
class Actor : public SysObject {
|
||||
class Actor {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ VecFx32 mPos;
|
||||
|
||||
@@ -44,13 +44,16 @@ public:
|
||||
ActorManager();
|
||||
~ActorManager();
|
||||
|
||||
// itcm
|
||||
Actor **func_01fff350(void *param1, Actor **ppActorTable);
|
||||
Actor *func_01fff3b4(ActorRef ref);
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_02096e44(int index);
|
||||
unk32 func_ov000_0209704c();
|
||||
unk32 func_ov000_020970c8(u16 param1, unk32 *param2);
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bafdc();
|
||||
void func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param2 *param1);
|
||||
void func_ov001_020bb488();
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
class Actor;
|
||||
|
||||
class ActorProfile : public SysObject {
|
||||
class ActorProfile {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ Cylinder mUnk_04;
|
||||
|
||||
@@ -179,8 +179,6 @@ public:
|
||||
void func_ov000_020a9a50();
|
||||
void func_ov000_020a9a94();
|
||||
void func_ov000_020a9abc();
|
||||
void func_ov000_020a9ae0();
|
||||
void func_ov000_020a9afc();
|
||||
|
||||
static void func_ov000_020a9804();
|
||||
|
||||
|
||||
@@ -0,0 +1,213 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
/*
|
||||
naming scheme:
|
||||
- test_xxx: debug area
|
||||
- e3_xxx: E3 demo area
|
||||
- t_xxx: "T" for "Train" -> overworld area
|
||||
- d_xxx: "D" for "Dungeon" -> dungeon area
|
||||
- b_xxx: "B" for "Boss" -> dungeon boss area
|
||||
- f_xxx: "F" for "Field" -> normal gameplay area (also known as a "land" area)
|
||||
*/
|
||||
typedef u32 SceneIndex;
|
||||
typedef u16 SceneIndex_Half;
|
||||
typedef s16 SceneIndex_Halfs;
|
||||
enum SceneIndex_ {
|
||||
/* -1 */ SceneIndex_None = -1,
|
||||
/* 0 */ SceneIndex_test_trn = 0x00, //
|
||||
/* 1 */ SceneIndex_test_trn2 = 0x01, //
|
||||
/* 2 */ SceneIndex_test_pre = 0x02, //
|
||||
/* 3 */ SceneIndex_test_iwa = 0x03, //
|
||||
/* 4 */ SceneIndex_t_area0 = 0x04, // Forest Realm
|
||||
/* 5 */ SceneIndex_t_area1 = 0x05, // Snow Realm
|
||||
/* 6 */ SceneIndex_t_area2 = 0x06, // Ocean Realm
|
||||
/* 7 */ SceneIndex_t_area3 = 0x07, // Fire Realm
|
||||
/* 8 */ SceneIndex_t_tutorial = 0x08, //
|
||||
/* 9 */ SceneIndex_t_forest = 0x09, //
|
||||
/* 10 */ SceneIndex_t_smarine = 0x0A, //
|
||||
/* 11 */ SceneIndex_t_smount = 0x0B, // rocktite scene?
|
||||
/* 12 */ SceneIndex_t_smount2 = 0x0C, // rocktite scene?
|
||||
/* 13 */ SceneIndex_t_smount3 = 0x0D, // rocktite fire realm scene?
|
||||
/* 14 */ SceneIndex_t_minigame = 0x0E, // goron target range minigame
|
||||
/* 15 */ SceneIndex_t_dark = 0x0F, // Dark Realm
|
||||
/* 16 */ SceneIndex_t_eviltrain = 0x10, // train cole fight
|
||||
/* 17 */ SceneIndex_t_eviltrain2 = 0x11, // same as above
|
||||
/* 18 */ SceneIndex_t_eviltrain3 = 0x12, // same as above
|
||||
/* 19 */ SceneIndex_d_main = 0x13, // Tower Of Spirits
|
||||
/* 20 */ SceneIndex_d_main_f = 0x14, // ToS base
|
||||
/* 21 */ SceneIndex_d_main_s = 0x15, // ToS top stairs
|
||||
/* 22 */ SceneIndex_d_main_a = 0x16, // ToS altar
|
||||
/* 23 */ SceneIndex_d_main_w = 0x17, // ToS inner Stairs
|
||||
/* 24 */ SceneIndex_d_tutorial = 0x18, // Tunnel to ToS
|
||||
/* 25 */ SceneIndex_d_forest = 0x19, // Forest Temple
|
||||
/* 26 */ SceneIndex_d_snow26 = 0x1A, // Snow Temple
|
||||
/* 27 */ SceneIndex_d_water27 = 0x1B, // Water Temple
|
||||
/* 28 */ SceneIndex_d_flame = 0x1C, // Fire Temple
|
||||
/* 29 */ SceneIndex_d_sand = 0x1D, // Sand Temple
|
||||
/* 30 */ SceneIndex_b_forest = 0x1E, // Stagnox
|
||||
/* 31 */ SceneIndex_b_snow = 0x1F, // Fraaz
|
||||
/* 32 */ SceneIndex_b_water = 0x20, // Phytops
|
||||
/* 33 */ SceneIndex_b_flame = 0x21, // Cragma
|
||||
/* 34 */ SceneIndex_b_sand = 0x22, // Skeldritch
|
||||
/* 35 */ SceneIndex_b_deago = 0x23, // Byrne
|
||||
/* 36 */ SceneIndex_b_last1 = 0x24, // demon zelda train
|
||||
/* 37 */ SceneIndex_b_last2 = 0x25, // malladus beast 1
|
||||
/* 38 */ SceneIndex_b_last22 = 0x26, // malladus song
|
||||
/* 39 */ SceneIndex_b_last23 = 0x27, // mallasdus beast 2
|
||||
/* 40 */ SceneIndex_f_hyral = 0x28, // hyrule castle
|
||||
/* 41 */ SceneIndex_f_htown = 0x29, // castle town
|
||||
/* 42 */ SceneIndex_f_forest1 = 0x2A, // Whittleton
|
||||
/* 43 */ SceneIndex_f_snow = 0x2B, // Anouki Village
|
||||
/* 44 */ SceneIndex_f_water = 0x2C, // Papuchia Village
|
||||
/* 45 */ SceneIndex_f_flame = 0x2D, // Goron Village
|
||||
/* 46 */ SceneIndex_f_flame5 = 0x2E,
|
||||
/* 47 */ SceneIndex_f_first = 0x2F, // Aboda Village
|
||||
/* 48 */ SceneIndex_f_forest2 = 0x30, // Forest Sanctuary
|
||||
/* 49 */ SceneIndex_f_snow2 = 0x31, // Snow Sanctuary
|
||||
/* 50 */ SceneIndex_f_water2 = 0x32, // Water Sanctuary
|
||||
/* 51 */ SceneIndex_f_flame2 = 0x33, // Fire Sanctuary
|
||||
/* 52 */ SceneIndex_f_sand = 0x34, // Sand Sanctuary
|
||||
/* 53 */ SceneIndex_f_tetsuo = 0x35, // Icy Spring
|
||||
/* 54 */ SceneIndex_f_bridge = 0x36, // Bridge Worker's House
|
||||
/* 55 */ SceneIndex_f_bridge2 = 0x37, // Trading Post
|
||||
/* 56 */ SceneIndex_f_forest3 = 0x38, // whittleton forest
|
||||
/* 57 */ SceneIndex_f_water3 = 0x39, // papuchia south and lost at sea station
|
||||
/* 58 */ SceneIndex_f_ajito = 0x3A, // Pirate Hideout
|
||||
/* 59 */ SceneIndex_f_ajito2 = 0x3B, // same as above
|
||||
/* 60 */ SceneIndex_f_flame3 = 0x3C, // Goron Target Range
|
||||
/* 61 */ SceneIndex_f_flame4 = 0x3D, // Dark Ore Mine
|
||||
/* 62 */ SceneIndex_f_rabbit = 0x3E, // Rabbit Haven
|
||||
/* 63 */ SceneIndex_f_kakushi1 = 0x3F, // Snowdrift Station
|
||||
/* 64 */ SceneIndex_f_kakushi2 = 0x40, // Disorientation Station
|
||||
/* 65 */ SceneIndex_f_kakushi3 = 0x41, // Ends of the Earth Station
|
||||
/* 66 */ SceneIndex_f_kakushi4 = 0x42, // train required?
|
||||
/* 67 */ SceneIndex_f_pirate = 0x43, // Train passenger pirate attack (including Carben)
|
||||
/* 68 */ SceneIndex_f_passenger = 0x44, // Anjean force gem
|
||||
/* 69 */ SceneIndex_f_trnnpc = 0x45, // Ferrus encounter
|
||||
/* 70 */ SceneIndex_tekiya00 = 0x46, // take em all on?
|
||||
/* 71 */ SceneIndex_tekiya01 = 0x47, // take em all on?
|
||||
/* 72 */ SceneIndex_tekiya02 = 0x48, // take em all on?
|
||||
/* 73 */ SceneIndex_tekiya03 = 0x49, // take em all on?
|
||||
/* 74 */ SceneIndex_tekiya04 = 0x4A, // take em all on?
|
||||
/* 75 */ SceneIndex_tekiya05 = 0x4B, // take em all on?
|
||||
/* 76 */ SceneIndex_tekiya06 = 0x4C, // take em all on?
|
||||
/* 77 */ SceneIndex_tekiya07 = 0x4D, // take em all on?
|
||||
/* 78 */ SceneIndex_tekiya08 = 0x4E, // take em all on?
|
||||
/* 79 */ SceneIndex_tekiya09 = 0x4F, // take em all on?
|
||||
/* 80 */ SceneIndex_demo_train = 0x50, // title screen?
|
||||
/* 81 */ SceneIndex_e3_train = 0x51, // ?
|
||||
/* 82 */ SceneIndex_e3_dungeon = 0x52, // ?
|
||||
/* 83 */ SceneIndex_e3_boss = 0x53, // forest temple boss
|
||||
/* 84 */ SceneIndex_e3_bossm = 0x54, // fake forest temple room
|
||||
/* 85 */ SceneIndex_e3_smount = 0x55, // ?
|
||||
/* 86 */ SceneIndex_test_hiratsu = 0x56, // ?
|
||||
/* 87 */ SceneIndex_test_sik = 0x57, // ?
|
||||
/* 88 */ SceneIndex_test_fuj = 0x58, // ?
|
||||
/* 89 */ SceneIndex_test_nit = 0x59, // ?
|
||||
/* 90 */ SceneIndex_test_mri = 0x5A, // ?
|
||||
/* 91 */ SceneIndex_test_morita = 0x5B, // ?
|
||||
/* 92 */ SceneIndex_test_yamaz = 0x5C, // ?
|
||||
/* 93 */ SceneIndex_test_sako = 0x5D, // ?
|
||||
/* 94 */ SceneIndex_test_kita = 0x5E, // ?
|
||||
/* 95 */ SceneIndex_test_take = 0x5F, // ?
|
||||
/* 96 */ SceneIndex_test_suzuki = 0x60, // ?
|
||||
/* 97 */ SceneIndex_test_okane = 0x61, // ?
|
||||
/* 98 */ SceneIndex_test_dera = 0x62, // ?
|
||||
/* 99 */ SceneIndex_test_hosaka = 0x63, // ?
|
||||
/* 100 */ SceneIndex_test_hosaka_f = 0x64, // ?
|
||||
/* 101 */ SceneIndex_test_kato = 0x65, // ?
|
||||
/* 102 */ SceneIndex_test_okane_f = 0x66, // ?
|
||||
/* 103 */ SceneIndex_test_yamaz_f = 0x67, // ?
|
||||
/* 104 */ SceneIndex_test_sako_f = 0x68, // ?
|
||||
/* 105 */ SceneIndex_test_take_f = 0x69, // ?
|
||||
/* 106 */ SceneIndex_test_kiuchi = 0x6A, // ?
|
||||
/* 107 */ SceneIndex_test_dera_f = 0x6B, // ?
|
||||
/* 108 */ SceneIndex_test_slope = 0x6C, // ?
|
||||
/* 109 */ SceneIndex_battle01 = 0x6D, // battle mode?
|
||||
/* 110 */ SceneIndex_battle02 = 0x6E, // battle mode?
|
||||
/* 111 */ SceneIndex_battle03 = 0x6F, // battle mode?
|
||||
/* 112 */ SceneIndex_battle04 = 0x70, // battle mode?
|
||||
/* 113 */ SceneIndex_battle05 = 0x71, // battle mode?
|
||||
/* 114 */ SceneIndex_battle06 = 0x72, // battle mode?
|
||||
/* 115 */ SceneIndex_battle07 = 0x73, // battle mode?
|
||||
/* 116 */ SceneIndex_battle08 = 0x74, // battle mode?
|
||||
/* 117 */ SceneIndex_battle09 = 0x75, // battle mode?
|
||||
/* 118 */ SceneIndex_battle10 = 0x76, // battle mode?
|
||||
/* 119 */ SceneIndex_battle11 = 0x77, // battle mode?
|
||||
/* 120 */ SceneIndex_battle12 = 0x78, // battle mode?
|
||||
/* 121 */ SceneIndex_Max = 0x79
|
||||
};
|
||||
|
||||
enum SaveCourseIndex_ {
|
||||
/* -1 */ SaveCourseIndex_None = 0xFF,
|
||||
/* 0 */ SaveCourseIndex_t_area0 = 0x00,
|
||||
/* 1 */ SaveCourseIndex_t_area1 = 0x01,
|
||||
/* 2 */ SaveCourseIndex_t_area2 = 0x02,
|
||||
/* 3 */ SaveCourseIndex_t_area3 = 0x03,
|
||||
/* 4 */ SaveCourseIndex_t_tutorial = 0x04,
|
||||
/* 5 */ SaveCourseIndex_t_forest = 0x05,
|
||||
/* 6 */ SaveCourseIndex_t_smarine = 0x06,
|
||||
/* 7 */ SaveCourseIndex_t_smount = 0x07,
|
||||
/* 8 */ SaveCourseIndex_t_smount2 = 0x08,
|
||||
/* 9 */ SaveCourseIndex_t_smount3 = 0x09,
|
||||
/* 10 */ SaveCourseIndex_t_eviltrain = 0x0A,
|
||||
/* 11 */ SaveCourseIndex_d_main = 0x0B,
|
||||
/* 12 */ SaveCourseIndex_d_main_f = 0x0C,
|
||||
/* 13 */ SaveCourseIndex_d_main_s = 0x0D,
|
||||
/* 14 */ SaveCourseIndex_d_main_a = 0x0E,
|
||||
/* 15 */ SaveCourseIndex_d_main_w = 0x0F,
|
||||
/* 16 */ SaveCourseIndex_d_tutorial = 0x10,
|
||||
/* 17 */ SaveCourseIndex_d_forest = 0x11,
|
||||
/* 18 */ SaveCourseIndex_d_snow = 0x12,
|
||||
/* 19 */ SaveCourseIndex_d_water = 0x13,
|
||||
/* 20 */ SaveCourseIndex_d_flame = 0x14,
|
||||
/* 21 */ SaveCourseIndex_d_sand = 0x15,
|
||||
/* 22 */ SaveCourseIndex_b_forest = 0x16,
|
||||
/* 23 */ SaveCourseIndex_b_snow = 0x17,
|
||||
/* 24 */ SaveCourseIndex_b_water = 0x18,
|
||||
/* 25 */ SaveCourseIndex_b_flame = 0x19,
|
||||
/* 26 */ SaveCourseIndex_b_sand = 0x1A,
|
||||
/* 27 */ SaveCourseIndex_b_deago = 0x1B,
|
||||
/* 28 */ SaveCourseIndex_b_last1 = 0x1C,
|
||||
/* 29 */ SaveCourseIndex_b_last2 = 0x1D,
|
||||
/* 30 */ SaveCourseIndex_b_last22 = 0x1E,
|
||||
/* 31 */ SaveCourseIndex_b_last23 = 0x1F,
|
||||
/* 32 */ SaveCourseIndex_f_hyral = 0x20,
|
||||
/* 33 */ SaveCourseIndex_f_htown = 0x21,
|
||||
/* 34 */ SaveCourseIndex_f_forest1 = 0x22,
|
||||
/* 35 */ SaveCourseIndex_f_snow = 0x23,
|
||||
/* 36 */ SaveCourseIndex_f_water = 0x24,
|
||||
/* 37 */ SaveCourseIndex_f_flame = 0x25,
|
||||
/* 38 */ SaveCourseIndex_f_flame5 = 0x26,
|
||||
/* 39 */ SaveCourseIndex_f_first = 0x27,
|
||||
/* 40 */ SaveCourseIndex_f_forest2 = 0x28,
|
||||
/* 41 */ SaveCourseIndex_f_snow2 = 0x29,
|
||||
/* 42 */ SaveCourseIndex_f_water2 = 0x2A,
|
||||
/* 43 */ SaveCourseIndex_f_flame2 = 0x2B,
|
||||
/* 44 */ SaveCourseIndex_f_sand = 0x2C,
|
||||
/* 45 */ SaveCourseIndex_f_tetsuo = 0x2D,
|
||||
/* 46 */ SaveCourseIndex_f_bridge = 0x2E,
|
||||
/* 47 */ SaveCourseIndex_f_bridge2 = 0x2F,
|
||||
/* 48 */ SaveCourseIndex_f_forest3 = 0x30,
|
||||
/* 49 */ SaveCourseIndex_f_water3 = 0x31,
|
||||
/* 50 */ SaveCourseIndex_f_ajito = 0x32,
|
||||
/* 51 */ SaveCourseIndex_f_ajito2 = 0x33,
|
||||
/* 52 */ SaveCourseIndex_f_flame3 = 0x34,
|
||||
/* 53 */ SaveCourseIndex_f_flame4 = 0x35,
|
||||
/* 54 */ SaveCourseIndex_f_rabbit = 0x36,
|
||||
/* 55 */ SaveCourseIndex_f_kakushi1 = 0x37,
|
||||
/* 56 */ SaveCourseIndex_f_kakushi2 = 0x38,
|
||||
/* 57 */ SaveCourseIndex_f_kakushi3 = 0x39,
|
||||
/* 58 */ SaveCourseIndex_f_kakushi4 = 0x3A,
|
||||
/* 59 */ SaveCourseIndex_f_pirate = 0x3B,
|
||||
/* 60 */ SaveCourseIndex_f_passenger = 0x3C,
|
||||
/* 61 */ SaveCourseIndex_f_trnnpc = 0x3D,
|
||||
/* 62 */ SaveCourseIndex_e3_train = 0x3E,
|
||||
/* 63 */ SaveCourseIndex_e3_dungeon = 0x3F,
|
||||
/* 64 */ SaveCourseIndex_e3_boss = 0x40,
|
||||
/* 65 */ SaveCourseIndex_e3_bossm = 0x41,
|
||||
/* 66 */ SaveCourseIndex_e3_smount = 0x42,
|
||||
/* 96 */ SaveCourseIndex_Max = 0x60,
|
||||
};
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
|
||||
typedef u32 CutsceneIndex;
|
||||
enum CutsceneIndex_ {
|
||||
/* 0 */ CutsceneIndex_TitleScreen,
|
||||
/* 1 */ CutsceneIndex_Intro,
|
||||
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
/* 00 */ virtual ~FileSelect_UnkClass2_Sub4_Base() override {}
|
||||
};
|
||||
|
||||
class FileSelectSubScreen : public SysObject, public FileSelect_UnkClass2_Sub4_Base {
|
||||
class FileSelectSubScreen : public FileSelect_UnkClass2_Sub4_Base {
|
||||
public:
|
||||
/* 0000 (base) */
|
||||
/* 001C */ unk32 mUnk_001C;
|
||||
|
||||
@@ -28,7 +28,7 @@ public:
|
||||
UnkStruct_ov019_020d24c8_2C_24_FC3() {}
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d24c8_2C_24_FB0 : public SysObject {
|
||||
class UnkStruct_ov019_020d24c8_2C_24_FB0 {
|
||||
public:
|
||||
/* 00 */ UnkSystem2_UnkSubSystem5 *mUnk_00[6];
|
||||
/* 18 */
|
||||
@@ -36,7 +36,7 @@ public:
|
||||
UnkStruct_ov019_020d24c8_2C_24_FB0() {}
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d24c8_2C_24_FB8 : public SysObject {
|
||||
class UnkStruct_ov019_020d24c8_2C_24_FB8 {
|
||||
public:
|
||||
/* 00 */ UnkSystem2_UnkSubSystem1_Derived1 *mUnk_00[6];
|
||||
/* 18 */
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "System/SysNew.hpp"
|
||||
#include "global.h"
|
||||
|
||||
class FileSelectManager_UnkDrawBase : public SysObject {
|
||||
class FileSelectManager_UnkDrawBase {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ LinkListImpl mUnk_04;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "types.h"
|
||||
|
||||
// file tab manager?
|
||||
class UnkSubStruct9 : public SysObject {
|
||||
class UnkSubStruct9 {
|
||||
public:
|
||||
/* 000 */ u8 mSaveSlotIndex; // save slot index, 0 for file 1 and 1 for file 2
|
||||
/* 001 */ unk8 mUnk_001;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "System/SysNew.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class GameModeBase : public SysObject {
|
||||
class GameModeBase {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */
|
||||
|
||||
@@ -15,7 +15,7 @@ class GameModeManagerBase;
|
||||
class GameModeManagerBase_104;
|
||||
class GameModeManagerBase_104_0C;
|
||||
|
||||
class GameModeManagerBase_004 : public SysObject {
|
||||
class GameModeManagerBase_004 {
|
||||
public:
|
||||
unk32 *mUnk_00;
|
||||
|
||||
@@ -79,7 +79,7 @@ public:
|
||||
void func_ov088_0217230c();
|
||||
};
|
||||
|
||||
class GameModeManagerBase : public SysObject {
|
||||
class GameModeManagerBase {
|
||||
public:
|
||||
/* 000 (vtable) */
|
||||
/* 004 */ GameModeManagerBase_004 mUnk_004;
|
||||
|
||||
@@ -54,7 +54,7 @@ public:
|
||||
bool func_ov031_020db8f8();
|
||||
};
|
||||
|
||||
class ItemManager : public SysObject {
|
||||
class ItemManager {
|
||||
public:
|
||||
/* 00 */ ItemFlag mEquippedItem;
|
||||
/* 04 */ ItemFlag mForcedItem;
|
||||
@@ -124,9 +124,9 @@ public:
|
||||
static AdventureFlag GetAdvFlagFromItem(ItemId itemId);
|
||||
};
|
||||
|
||||
class TreasureManager : public AutoInstance<TreasureManager>, public ItemManager {
|
||||
class TreasureManager : public AutoInstance<TreasureManager> {
|
||||
public:
|
||||
/* 28 */ unk8 mUnk_28[0x3C - 0x28];
|
||||
/* 28 */ unk8 mUnk_00[0x3C - 0x00];
|
||||
/* 3C */ s16 mUnk_3C[TreasureType_Max]; // treasures
|
||||
/* 5C */ unk16 mUnk_5C;
|
||||
/* 5E */ unk16 mUnk_5E;
|
||||
@@ -137,6 +137,7 @@ public:
|
||||
TreasureManager();
|
||||
~TreasureManager();
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_020a9b10(void *param1);
|
||||
static unk32 func_ov000_020a9b2c(unk32 param1);
|
||||
static unk32 func_ov000_020a9b3c(unk32 param1);
|
||||
@@ -153,6 +154,11 @@ public:
|
||||
static unk32 func_ov000_020a9f4c(unk32 param1);
|
||||
ItemId func_ov000_020aa02c(ItemId itemId);
|
||||
void func_ov000_020aa0ac(ItemId itemId);
|
||||
|
||||
static TreasureManager *Create();
|
||||
|
||||
// overlay 1
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern TreasureManager *gpTreasureManager;
|
||||
|
||||
@@ -91,6 +91,7 @@ public:
|
||||
return this->GetNumPostcards() >= MAX_PRICECARDS ? true : false;
|
||||
}
|
||||
|
||||
// overlay 24
|
||||
void func_ov024_020d6310(MiscAdvManager *pSrc);
|
||||
void GiveLetterOrPriceCard(ItemId itemId);
|
||||
void GiveLetter(AdventureFlag_Half flag);
|
||||
@@ -108,6 +109,9 @@ public:
|
||||
void func_ov024_020d6610();
|
||||
|
||||
static MiscAdvManager *Create();
|
||||
|
||||
// overlay 1
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern MiscAdvManager *gpMiscAdvManager;
|
||||
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
static void func_ov000_0209c7ac(MapObjectId mapObjId);
|
||||
};
|
||||
|
||||
class MapObject : public SysObject {
|
||||
class MapObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ VecFx32 mPos;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
typedef void (*UnkCallback_func_01fff4cc)(void *, void *);
|
||||
|
||||
class MapObjectManager {
|
||||
class MapObjectManager : public AutoInstance<MapObjectManager> {
|
||||
public:
|
||||
/* 00 */ MapObject **mMapObjTable;
|
||||
/* 04 */ MapObject **mMapObjTableEnd;
|
||||
@@ -26,20 +26,25 @@ public:
|
||||
/* 6C */ void *mUnk_6C;
|
||||
/* 70 */
|
||||
|
||||
MapObjectManager();
|
||||
~MapObjectManager();
|
||||
|
||||
// itcm
|
||||
MapObject *func_01fff498(Vec2b param1);
|
||||
void func_01fff4cc(UnkCallback_func_01fff4cc param1, void *param2);
|
||||
MapObject **func_01fff520(UnkStruct_ov000_020b34c4 *param1, MapObject **param2);
|
||||
void func_01fff6d0(VecFx32 *param1, s32 *param2, s32 *param3);
|
||||
|
||||
// overlay 0
|
||||
MapObjectId func_ov000_0209c3a8(Vec2b *param1);
|
||||
void func_ov000_0209c3e8();
|
||||
void func_ov000_0209c444();
|
||||
|
||||
void SetInstance(); // func_ov001_020baf4c
|
||||
void ClearInstance(); // func_ov001_020baf58
|
||||
|
||||
static void func_ov000_0209c490();
|
||||
static MapObjectManager *Create(); // func_ov001_020bac40
|
||||
|
||||
// overlay 1
|
||||
static MapObjectManager *Create();
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern MapObjectManager *gpMapObjManager;
|
||||
|
||||
@@ -13,7 +13,7 @@ class MapObject;
|
||||
class MapObject_20;
|
||||
class MapObjectProfile_Derived2_20;
|
||||
|
||||
class MapObjectProfile : public SysObject {
|
||||
class MapObjectProfile {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ unk8 mUnk_04[2];
|
||||
|
||||
@@ -195,7 +195,7 @@ struct BMGFileInfo {
|
||||
/* 1C */
|
||||
};
|
||||
|
||||
class BMGGroups : public SysObject {
|
||||
class BMGGroups {
|
||||
public:
|
||||
/* 00 */ BMGFileInfo *entries; // accessed with `groupId`
|
||||
/* 04 */ s32 numEntries;
|
||||
|
||||
@@ -101,7 +101,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class UnkStruct_PlayerGet_74_base : public SysObject {
|
||||
class UnkStruct_PlayerGet_74_base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
|
||||
|
||||
@@ -404,6 +404,7 @@ public:
|
||||
void LoadEquipItem(ItemFlag equipId);
|
||||
|
||||
void func_020148d0(OverlayIndex index);
|
||||
void func_02014918(OverlayIndex index);
|
||||
void func_02014994(unk32 param1);
|
||||
};
|
||||
|
||||
|
||||
@@ -33,13 +33,10 @@ enum HeapIndex_ {
|
||||
HeapIndex_Max = 9
|
||||
};
|
||||
|
||||
class SysObject {
|
||||
public:
|
||||
void operator delete[](void *ptr);
|
||||
};
|
||||
|
||||
void *operator new(size_t length, u32 id, u32 idLength = 4);
|
||||
void *operator new[](size_t length, u32 id, u32 idLength = 4);
|
||||
void operator delete[](void *ptr);
|
||||
|
||||
inline void *operator new(size_t length, void *ptr = nullptr) {
|
||||
#pragma unused(length)
|
||||
return ptr;
|
||||
@@ -61,7 +58,7 @@ public:
|
||||
/* 2C */ unk8 mUnk_2C[0x60 - 0x2C];
|
||||
};
|
||||
|
||||
class UnkStruct_02011e10 : public SysObject {
|
||||
class UnkStruct_02011e10 {
|
||||
public:
|
||||
/* 00 */ UnkStruct_02011e10_Sub1 *mUnk_00[HeapIndex_Max]; // the pointer seems to match arena lo
|
||||
/* 24 */ unk32 mUnk_24[2];
|
||||
|
||||
@@ -65,7 +65,7 @@ public:
|
||||
UnkSubStruct1_Methods;
|
||||
};
|
||||
|
||||
class TitleScreen : public SysObject, public GameModeManagerBase_104 { // 0233c6d4
|
||||
class TitleScreen : public GameModeManagerBase_104 { // 0233c6d4
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 01C */ TitleScreenState mState;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
class GameModeFileSelect;
|
||||
|
||||
class UnkStruct_0204a060_Base3 : public LinkList<UnkStruct_0204a060_Base3> {
|
||||
class UnkStruct_0204a060_Base2 : public LinkList<UnkStruct_0204a060_Base2> {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 (base) */
|
||||
@@ -18,30 +18,27 @@ public:
|
||||
/* 0D */ unk8 mUnk_0D;
|
||||
/* 0E */ unk8 mUnk_0E;
|
||||
/* 0F */ unk8 mUnk_0F;
|
||||
/* 10 */
|
||||
|
||||
UnkStruct_0204a060_Base3();
|
||||
|
||||
// data_020440f4 vtable
|
||||
/* 00 */ virtual ~UnkStruct_0204a060_Base3();
|
||||
/* 08 */ virtual bool vfunc_08(unk32 param1);
|
||||
/* 0C */
|
||||
};
|
||||
|
||||
class UnkStruct_0204a060_Base2 : public UnkStruct_0204a060_Base3 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 10 */ unk16 mUnk_10;
|
||||
/* 12 */ unk16 mUnk_12;
|
||||
/* 14 */
|
||||
|
||||
UnkStruct_0204a060_Base2();
|
||||
|
||||
// data_020440f4 vtable
|
||||
/* 00 */ virtual ~UnkStruct_0204a060_Base2() override;
|
||||
/* 08 */ virtual bool vfunc_08(unk32 param1);
|
||||
/* 0C */
|
||||
|
||||
void func_0201ba68();
|
||||
};
|
||||
|
||||
class UnkStruct_0204a060_Base3 : public UnkStruct_0204a060_Base2 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkStruct_0204a060_Base3();
|
||||
};
|
||||
|
||||
class UnkStruct_0204a060_Base : public UnkStruct_0204a060_Base2 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "System/SysNew.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_0204a088_Base : public SysObject {
|
||||
class UnkStruct_0204a088_Base {
|
||||
public:
|
||||
UnkStruct_0204a088_Base();
|
||||
~UnkStruct_0204a088_Base(); //! TODO: most likely inlined but can't make it work for some reasons
|
||||
|
||||
@@ -263,8 +263,10 @@ public:
|
||||
|
||||
UnkStruct_0204a110();
|
||||
|
||||
// itcm
|
||||
unk32 func_01ff9b50();
|
||||
|
||||
// main
|
||||
void func_02018be0(unk32 param1);
|
||||
void func_02018c2c();
|
||||
void func_02018c78(unk32 param1);
|
||||
@@ -284,9 +286,13 @@ public:
|
||||
bool func_02019548();
|
||||
UnkStruct_func_02019590 *func_02019590(unk16 param1, unk32 param2);
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bd514(unk32 param1, void *param2, unk32 param3, unk32 param4);
|
||||
void func_ov001_020bd58c(void);
|
||||
void func_ov001_020bd638(void);
|
||||
void func_ov001_020bd5b0(void);
|
||||
|
||||
// overlay 18
|
||||
void func_ov018_020c5300(void);
|
||||
};
|
||||
|
||||
|
||||
@@ -26,8 +26,7 @@ public:
|
||||
|
||||
class UnkStruct_0204e5f8 {
|
||||
public:
|
||||
/* 00 */ UnkStruct_0204a060_Base3 mUnk_00;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 00 */ UnkStruct_0204a060_Base2 mUnk_00;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ bool mUnk_18;
|
||||
/* 19 */ unk8 mUnk_19;
|
||||
|
||||
@@ -4,17 +4,27 @@
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e0954 {
|
||||
class UnkStruct_027e0954_00 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 04 */ LinkList<int> mUnk_04; //! TODO: unknown target type
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ LinkListImpl mUnk_14;
|
||||
/* 10 */
|
||||
|
||||
~UnkStruct_027e0954_00();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0954 : public AutoInstance<UnkStruct_027e0954> {
|
||||
public:
|
||||
/* 00 */ UnkStruct_027e0954_00 mUnk_00[4];
|
||||
/* 40 */
|
||||
|
||||
UnkStruct_027e0954();
|
||||
~UnkStruct_027e0954();
|
||||
~UnkStruct_027e0954() {}
|
||||
|
||||
// overlay 0
|
||||
static UnkStruct_027e0954 *Create();
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0954 *data_027e0954;
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e0958 : public AutoInstance<UnkStruct_027e0958> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_027e0958();
|
||||
~UnkStruct_027e0958() {}
|
||||
|
||||
// overlay 0
|
||||
static UnkStruct_027e0958 *Create();
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0958 *data_027e0958;
|
||||
@@ -5,13 +5,19 @@
|
||||
|
||||
class UnkStruct_027e095c : public AutoInstance<UnkStruct_027e095c> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 000 */ unk32 mUnk_000;
|
||||
/* 944 */
|
||||
|
||||
UnkStruct_027e095c();
|
||||
~UnkStruct_027e095c();
|
||||
~UnkStruct_027e095c() {}
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_020592ec();
|
||||
void func_ov000_020592a0();
|
||||
|
||||
// overlay 1
|
||||
static UnkStruct_027e095c *Create();
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e095c *data_027e095c;
|
||||
|
||||
@@ -59,7 +59,7 @@ public:
|
||||
bool func_ov000_02059ccc(u8 param1, u8 param2);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0960 {
|
||||
class UnkStruct_027e0960 : public AutoInstance<UnkStruct_027e0960> {
|
||||
public:
|
||||
/* 00 */ Iterator<UnkStruct_027e0960_TableEntry> mTable;
|
||||
/* 08 */
|
||||
@@ -67,8 +67,17 @@ public:
|
||||
UnkStruct_027e0960();
|
||||
~UnkStruct_027e0960();
|
||||
|
||||
// overlay 0
|
||||
UnkStruct_027e0960_TableEntry *func_ov000_0205a390(u8 param1);
|
||||
UnkStruct_027e0960_TableEntry *func_ov000_0205a3fc(VecFx32 param1, unk32 param4);
|
||||
|
||||
static UnkStruct_027e0960 *Create();
|
||||
|
||||
// overlay 1
|
||||
void func_ov000_0205a164();
|
||||
void func_ov000_0205a160();
|
||||
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0960 *data_027e0960;
|
||||
|
||||
@@ -1,123 +1,46 @@
|
||||
#pragma once
|
||||
|
||||
#include "Course/Course.hpp"
|
||||
#include "Unknown/UnkFileSystem.hpp"
|
||||
#include "files.h"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
enum SaveCourseIndex_ {
|
||||
SaveCourseIndex_None = 0xFF,
|
||||
SaveCourseIndex_t_area0 = 0x00,
|
||||
SaveCourseIndex_t_area1 = 0x01,
|
||||
SaveCourseIndex_t_area2 = 0x02,
|
||||
SaveCourseIndex_t_area3 = 0x03,
|
||||
SaveCourseIndex_t_tutorial = 0x04,
|
||||
SaveCourseIndex_t_forest = 0x05,
|
||||
SaveCourseIndex_t_smarine = 0x06,
|
||||
SaveCourseIndex_t_smount = 0x07,
|
||||
SaveCourseIndex_t_smount2 = 0x08,
|
||||
SaveCourseIndex_t_smount3 = 0x09,
|
||||
SaveCourseIndex_t_eviltrain = 0x0A,
|
||||
SaveCourseIndex_d_main = 0x0B,
|
||||
SaveCourseIndex_d_main_f = 0x0C,
|
||||
SaveCourseIndex_d_main_s = 0x0D,
|
||||
SaveCourseIndex_d_main_a = 0x0E,
|
||||
SaveCourseIndex_d_main_w = 0x0F,
|
||||
SaveCourseIndex_d_tutorial = 0x10,
|
||||
SaveCourseIndex_d_forest = 0x11,
|
||||
SaveCourseIndex_d_snow = 0x12,
|
||||
SaveCourseIndex_d_water = 0x13,
|
||||
SaveCourseIndex_d_flame = 0x14,
|
||||
SaveCourseIndex_d_sand = 0x15,
|
||||
SaveCourseIndex_b_forest = 0x16,
|
||||
SaveCourseIndex_b_snow = 0x17,
|
||||
SaveCourseIndex_b_water = 0x18,
|
||||
SaveCourseIndex_b_flame = 0x19,
|
||||
SaveCourseIndex_b_sand = 0x1A,
|
||||
SaveCourseIndex_b_deago = 0x1B,
|
||||
SaveCourseIndex_b_last1 = 0x1C,
|
||||
SaveCourseIndex_b_last2 = 0x1D,
|
||||
SaveCourseIndex_b_last22 = 0x1E,
|
||||
SaveCourseIndex_b_last23 = 0x1F,
|
||||
SaveCourseIndex_f_hyral = 0x20,
|
||||
SaveCourseIndex_f_htown = 0x21,
|
||||
SaveCourseIndex_f_forest1 = 0x22,
|
||||
SaveCourseIndex_f_snow = 0x23,
|
||||
SaveCourseIndex_f_water = 0x24,
|
||||
SaveCourseIndex_f_flame = 0x25,
|
||||
SaveCourseIndex_f_flame5 = 0x26,
|
||||
SaveCourseIndex_f_first = 0x27,
|
||||
SaveCourseIndex_f_forest2 = 0x28,
|
||||
SaveCourseIndex_f_snow2 = 0x29,
|
||||
SaveCourseIndex_f_water2 = 0x2A,
|
||||
SaveCourseIndex_f_flame2 = 0x2B,
|
||||
SaveCourseIndex_f_sand = 0x2C,
|
||||
SaveCourseIndex_f_tetsuo = 0x2D,
|
||||
SaveCourseIndex_f_bridge = 0x2E,
|
||||
SaveCourseIndex_f_bridge2 = 0x2F,
|
||||
SaveCourseIndex_f_forest3 = 0x30,
|
||||
SaveCourseIndex_f_water3 = 0x31,
|
||||
SaveCourseIndex_f_ajito = 0x32,
|
||||
SaveCourseIndex_f_ajito2 = 0x33,
|
||||
SaveCourseIndex_f_flame3 = 0x34,
|
||||
SaveCourseIndex_f_flame4 = 0x35,
|
||||
SaveCourseIndex_f_rabbit = 0x36,
|
||||
SaveCourseIndex_f_kakushi1 = 0x37,
|
||||
SaveCourseIndex_f_kakushi2 = 0x38,
|
||||
SaveCourseIndex_f_kakushi3 = 0x39,
|
||||
SaveCourseIndex_f_kakushi4 = 0x3A,
|
||||
SaveCourseIndex_f_pirate = 0x3B,
|
||||
SaveCourseIndex_f_passenger = 0x3C,
|
||||
SaveCourseIndex_f_trnnpc = 0x3D,
|
||||
SaveCourseIndex_e3_train = 0x3E,
|
||||
SaveCourseIndex_e3_dungeon = 0x3F,
|
||||
SaveCourseIndex_e3_boss = 0x40,
|
||||
SaveCourseIndex_e3_bossm = 0x41,
|
||||
SaveCourseIndex_e3_smount = 0x42,
|
||||
SaveCourseIndex_Max = 0x60,
|
||||
};
|
||||
|
||||
struct UnkStruct_func_ov000_020702a8 {
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x20);
|
||||
/* 20 */ unk16 mUnk_20;
|
||||
};
|
||||
|
||||
struct CourseRoomEntry {
|
||||
/* 00 */ u8 roomIndex;
|
||||
/* 01 */ u8 mapPaintIndex;
|
||||
/* 02 */ u8 unk_02;
|
||||
/* 03 */ u8 unk_03;
|
||||
/* 04 */
|
||||
};
|
||||
|
||||
struct CourseEntry {
|
||||
/* 00 */ const char name[16];
|
||||
/* 10 */ unk32 unk_10;
|
||||
/* 14 */ unk8 numRooms;
|
||||
/* 15 */ unk8 unk_15;
|
||||
/* 16 */ unk8 titleCardMsgIndex;
|
||||
/* 17 */ u8 saveCourseIndex;
|
||||
/* 18 */ STRUCT_PAD(0x18, 0x1B);
|
||||
/* 1B */ u8 unk_1B;
|
||||
/* 1C */ u8 unk_1C;
|
||||
/* 1D */ u8 unk_1D;
|
||||
/* 1E */ u8 unk_1E;
|
||||
/* 1F */ u8 unk_1F;
|
||||
/* 20 */ u8 defaultMapPaintIndex;
|
||||
/* 24 */ CourseRoomEntry roomEntries[];
|
||||
};
|
||||
|
||||
class UnkStruct_027e09a0 {
|
||||
class CourseInitBinary {
|
||||
public:
|
||||
/* 00 */ CourseEntry **mUnk_00; // elements from courselist.clb
|
||||
/* 0000 */ CourseInitEntry mEntries[SceneIndex_Max];
|
||||
/* 1104 */
|
||||
|
||||
CourseInitBinary();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09a0 : public AutoInstance<UnkStruct_027e09a0> {
|
||||
public:
|
||||
/* 00 */ CourseListEntry **mpCourseTable; // elements from courselist.clb
|
||||
/* 04 */ UnkFileSystem5 *mpCourseFile;
|
||||
/* 08 */ unk8 mUnk_08[0x10];
|
||||
/* 18 */
|
||||
|
||||
UnkStruct_027e09a0();
|
||||
~UnkStruct_027e09a0();
|
||||
|
||||
CourseEntry *GetCourseEntry(u32 sceneIndex);
|
||||
CourseListEntry *GetCourseEntry(u32 sceneIndex);
|
||||
UnkStruct_func_ov000_020702a8 *func_ov000_020702a8(unk32 param1);
|
||||
unk32 GetRoomEntryIndex();
|
||||
CourseRoomEntry *GetRoomEntry(u32 sceneIndex, unk32 param2);
|
||||
CourseListRoomEntry *GetRoomEntry(u32 sceneIndex, unk32 param2);
|
||||
u32 GetSceneIndexFromName(const char *sceneName);
|
||||
bool func_ov000_02070378(u32 param1);
|
||||
|
||||
// overlay 1
|
||||
void InitCourseTable();
|
||||
|
||||
static UnkStruct_027e09a0 *Create();
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09a0 *data_027e09a0;
|
||||
|
||||
@@ -1,177 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
#include "Course/Course.hpp"
|
||||
#include "Cutscene/Cutscene.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkStruct_0204a060.hpp"
|
||||
#include "Unknown/UnkStruct_027e09a0.hpp"
|
||||
#include "global.h"
|
||||
#include "iterator.hpp"
|
||||
#include "types.h"
|
||||
|
||||
struct SaveFile;
|
||||
class UnkStruct_027e09a4;
|
||||
|
||||
/*
|
||||
naming scheme:
|
||||
- test_xxx: debug area
|
||||
- e3_xxx: E3 demo area
|
||||
- t_xxx: "T" for "Train" -> overworld area
|
||||
- d_xxx: "D" for "Dungeon" -> dungeon area
|
||||
- b_xxx: "B" for "Boss" -> dungeon boss area
|
||||
- f_xxx: "F" for "Field" -> normal gameplay area (also known as a "land" area)
|
||||
*/
|
||||
typedef u32 SceneIndex;
|
||||
typedef u16 SceneIndex_Half;
|
||||
enum SceneIndex_ {
|
||||
/* -1 */ SceneIndex_None = -1,
|
||||
/* 0 */ SceneIndex_test_trn = 0x00, //
|
||||
/* 1 */ SceneIndex_test_trn2 = 0x01, //
|
||||
/* 2 */ SceneIndex_test_pre = 0x02, //
|
||||
/* 3 */ SceneIndex_test_iwa = 0x03, //
|
||||
/* 4 */ SceneIndex_t_area0 = 0x04, // Forest Realm
|
||||
/* 5 */ SceneIndex_t_area1 = 0x05, // Snow Realm
|
||||
/* 6 */ SceneIndex_t_area2 = 0x06, // Ocean Realm
|
||||
/* 7 */ SceneIndex_t_area3 = 0x07, // Fire Realm
|
||||
/* 8 */ SceneIndex_t_tutorial = 0x08, //
|
||||
/* 9 */ SceneIndex_t_forest = 0x09, //
|
||||
/* 10 */ SceneIndex_t_smarine = 0x0A, //
|
||||
/* 11 */ SceneIndex_t_smount = 0x0B, // rocktite scene?
|
||||
/* 12 */ SceneIndex_t_smount2 = 0x0C, // rocktite scene?
|
||||
/* 13 */ SceneIndex_t_smount3 = 0x0D, // rocktite fire realm scene?
|
||||
/* 14 */ SceneIndex_t_minigame = 0x0E, // goron target range minigame
|
||||
/* 15 */ SceneIndex_t_dark = 0x0F, // Dark Realm
|
||||
/* 16 */ SceneIndex_t_eviltrain = 0x10, // train cole fight
|
||||
/* 17 */ SceneIndex_t_eviltrain2 = 0x11, // same as above
|
||||
/* 18 */ SceneIndex_t_eviltrain3 = 0x12, // same as above
|
||||
/* 19 */ SceneIndex_d_main = 0x13, // Tower Of Spirits
|
||||
/* 20 */ SceneIndex_d_main_f = 0x14, // ToS base
|
||||
/* 21 */ SceneIndex_d_main_s = 0x15, // ToS top stairs
|
||||
/* 22 */ SceneIndex_d_main_a = 0x16, // ToS altar
|
||||
/* 23 */ SceneIndex_d_main_w = 0x17, // ToS inner Stairs
|
||||
/* 24 */ SceneIndex_d_tutorial = 0x18, // Tunnel to ToS
|
||||
/* 25 */ SceneIndex_d_forest = 0x19, // Forest Temple
|
||||
/* 26 */ SceneIndex_d_snow26 = 0x1A, // Snow Temple
|
||||
/* 27 */ SceneIndex_d_water27 = 0x1B, // Water Temple
|
||||
/* 28 */ SceneIndex_d_flame = 0x1C, // Fire Temple
|
||||
/* 29 */ SceneIndex_d_sand = 0x1D, // Sand Temple
|
||||
/* 30 */ SceneIndex_b_forest = 0x1E, // Stagnox
|
||||
/* 31 */ SceneIndex_b_snow = 0x1F, // Fraaz
|
||||
/* 32 */ SceneIndex_b_water = 0x20, // Phytops
|
||||
/* 33 */ SceneIndex_b_flame = 0x21, // Cragma
|
||||
/* 34 */ SceneIndex_b_sand = 0x22, // Skeldritch
|
||||
/* 35 */ SceneIndex_b_deago = 0x23, // Byrne
|
||||
/* 36 */ SceneIndex_b_last1 = 0x24, // demon zelda train
|
||||
/* 37 */ SceneIndex_b_last2 = 0x25, // malladus beast 1
|
||||
/* 38 */ SceneIndex_b_last22 = 0x26, // malladus song
|
||||
/* 39 */ SceneIndex_b_last23 = 0x27, // mallasdus beast 2
|
||||
/* 40 */ SceneIndex_f_hyral = 0x28, // hyrule castle
|
||||
/* 41 */ SceneIndex_f_htown = 0x29, // castle town
|
||||
/* 42 */ SceneIndex_f_forest1 = 0x2A, // Whittleton
|
||||
/* 43 */ SceneIndex_f_snow = 0x2B, // Anouki Village
|
||||
/* 44 */ SceneIndex_f_water = 0x2C, // Papuchia Village
|
||||
/* 45 */ SceneIndex_f_flame = 0x2D, // Goron Village
|
||||
/* 46 */ SceneIndex_f_flame5 = 0x2E,
|
||||
/* 47 */ SceneIndex_f_first = 0x2F, // Aboda Village
|
||||
/* 48 */ SceneIndex_f_forest2 = 0x30, // Forest Sanctuary
|
||||
/* 49 */ SceneIndex_f_snow2 = 0x31, // Snow Sanctuary
|
||||
/* 50 */ SceneIndex_f_water2 = 0x32, // Water Sanctuary
|
||||
/* 51 */ SceneIndex_f_flame2 = 0x33, // Fire Sanctuary
|
||||
/* 52 */ SceneIndex_f_sand = 0x34, // Sand Sanctuary
|
||||
/* 53 */ SceneIndex_f_tetsuo = 0x35, // Icy Spring
|
||||
/* 54 */ SceneIndex_f_bridge = 0x36, // Bridge Worker's House
|
||||
/* 55 */ SceneIndex_f_bridge2 = 0x37, // Trading Post
|
||||
/* 56 */ SceneIndex_f_forest3 = 0x38, // whittleton forest
|
||||
/* 57 */ SceneIndex_f_water3 = 0x39, // papuchia south and lost at sea station
|
||||
/* 58 */ SceneIndex_f_ajito = 0x3A, // Pirate Hideout
|
||||
/* 59 */ SceneIndex_f_ajito2 = 0x3B, // same as above
|
||||
/* 60 */ SceneIndex_f_flame3 = 0x3C, // Goron Target Range
|
||||
/* 61 */ SceneIndex_f_flame4 = 0x3D, // Dark Ore Mine
|
||||
/* 62 */ SceneIndex_f_rabbit = 0x3E, // Rabbit Haven
|
||||
/* 63 */ SceneIndex_f_kakushi1 = 0x3F, // Snowdrift Station
|
||||
/* 64 */ SceneIndex_f_kakushi2 = 0x40, // Disorientation Station
|
||||
/* 65 */ SceneIndex_f_kakushi3 = 0x41, // Ends of the Earth Station
|
||||
/* 66 */ SceneIndex_f_kakushi4 = 0x42, // train required?
|
||||
/* 67 */ SceneIndex_f_pirate = 0x43, // Train passenger pirate attack (including Carben)
|
||||
/* 68 */ SceneIndex_f_passenger = 0x44, // Anjean force gem
|
||||
/* 69 */ SceneIndex_f_trnnpc = 0x45, // Ferrus encounter
|
||||
/* 70 */ SceneIndex_tekiya00 = 0x46, // take em all on?
|
||||
/* 71 */ SceneIndex_tekiya01 = 0x47, // take em all on?
|
||||
/* 72 */ SceneIndex_tekiya02 = 0x48, // take em all on?
|
||||
/* 73 */ SceneIndex_tekiya03 = 0x49, // take em all on?
|
||||
/* 74 */ SceneIndex_tekiya04 = 0x4A, // take em all on?
|
||||
/* 75 */ SceneIndex_tekiya05 = 0x4B, // take em all on?
|
||||
/* 76 */ SceneIndex_tekiya06 = 0x4C, // take em all on?
|
||||
/* 77 */ SceneIndex_tekiya07 = 0x4D, // take em all on?
|
||||
/* 78 */ SceneIndex_tekiya08 = 0x4E, // take em all on?
|
||||
/* 79 */ SceneIndex_tekiya09 = 0x4F, // take em all on?
|
||||
/* 80 */ SceneIndex_demo_train = 0x50, // title screen?
|
||||
/* 81 */ SceneIndex_e3_train = 0x51, // ?
|
||||
/* 82 */ SceneIndex_e3_dungeon = 0x52, // ?
|
||||
/* 83 */ SceneIndex_e3_boss = 0x53, // forest temple boss
|
||||
/* 84 */ SceneIndex_e3_bossm = 0x54, // fake forest temple room
|
||||
/* 85 */ SceneIndex_e3_smount = 0x55, // ?
|
||||
/* 86 */ SceneIndex_test_hiratsu = 0x56, // ?
|
||||
/* 87 */ SceneIndex_test_sik = 0x57, // ?
|
||||
/* 88 */ SceneIndex_test_fuj = 0x58, // ?
|
||||
/* 89 */ SceneIndex_test_nit = 0x59, // ?
|
||||
/* 90 */ SceneIndex_test_mri = 0x5A, // ?
|
||||
/* 91 */ SceneIndex_test_morita = 0x5B, // ?
|
||||
/* 92 */ SceneIndex_test_yamaz = 0x5C, // ?
|
||||
/* 93 */ SceneIndex_test_sako = 0x5D, // ?
|
||||
/* 94 */ SceneIndex_test_kita = 0x5E, // ?
|
||||
/* 95 */ SceneIndex_test_take = 0x5F, // ?
|
||||
/* 96 */ SceneIndex_test_suzuki = 0x60, // ?
|
||||
/* 97 */ SceneIndex_test_okane = 0x61, // ?
|
||||
/* 98 */ SceneIndex_test_dera = 0x62, // ?
|
||||
/* 99 */ SceneIndex_test_hosaka = 0x63, // ?
|
||||
/* 100 */ SceneIndex_test_hosaka_f = 0x64, // ?
|
||||
/* 101 */ SceneIndex_test_kato = 0x65, // ?
|
||||
/* 102 */ SceneIndex_test_okane_f = 0x66, // ?
|
||||
/* 103 */ SceneIndex_test_yamaz_f = 0x67, // ?
|
||||
/* 104 */ SceneIndex_test_sako_f = 0x68, // ?
|
||||
/* 105 */ SceneIndex_test_take_f = 0x69, // ?
|
||||
/* 106 */ SceneIndex_test_kiuchi = 0x6A, // ?
|
||||
/* 107 */ SceneIndex_test_dera_f = 0x6B, // ?
|
||||
/* 108 */ SceneIndex_test_slope = 0x6C, // ?
|
||||
/* 109 */ SceneIndex_battle01 = 0x6D, // battle mode?
|
||||
/* 110 */ SceneIndex_battle02 = 0x6E, // battle mode?
|
||||
/* 111 */ SceneIndex_battle03 = 0x6F, // battle mode?
|
||||
/* 112 */ SceneIndex_battle04 = 0x70, // battle mode?
|
||||
/* 113 */ SceneIndex_battle05 = 0x71, // battle mode?
|
||||
/* 114 */ SceneIndex_battle06 = 0x72, // battle mode?
|
||||
/* 115 */ SceneIndex_battle07 = 0x73, // battle mode?
|
||||
/* 116 */ SceneIndex_battle08 = 0x74, // battle mode?
|
||||
/* 117 */ SceneIndex_battle09 = 0x75, // battle mode?
|
||||
/* 118 */ SceneIndex_battle10 = 0x76, // battle mode?
|
||||
/* 119 */ SceneIndex_battle11 = 0x77, // battle mode?
|
||||
/* 120 */ SceneIndex_battle12 = 0x78, // battle mode?
|
||||
/* 121 */ SceneIndex_Max = 0x79
|
||||
};
|
||||
#define ROOM_INDEX_NONE 0xFF
|
||||
|
||||
struct UnkStruct_SceneChange1_Base {
|
||||
struct UnkStruct_SceneChange1 {
|
||||
/* 00 */ unk32 mSceneIndex;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk16 mUnk_08;
|
||||
/* 0A */ u8 mRoomIndex;
|
||||
/* 0B */ u8 mSpawnIndex;
|
||||
/* 0C */ bool mIsCS;
|
||||
/* 0D */ unk8 mUnk_0D;
|
||||
/* 0D */ u8 mUnk_0D;
|
||||
/* 0E */ u8 mCutsceneIndex;
|
||||
/* 0F */ unk8 mUnk_0F;
|
||||
};
|
||||
|
||||
struct UnkStruct_SceneChange1 : public UnkStruct_SceneChange1_Base {
|
||||
/* 10 */ unk8 mUnk_10;
|
||||
/* 11 */ unk8 mUnk_11;
|
||||
/* 12 */ unk8 mUnk_12;
|
||||
/* 13 */ unk8 mUnk_13;
|
||||
/* 0F */ u8 mUnk_0F;
|
||||
/* 10 */ u8 mUnk_10;
|
||||
/* 11 */ u8 mUnk_11;
|
||||
/* 12 */ u16 mUnk_12;
|
||||
/* 14 */
|
||||
|
||||
UnkStruct_SceneChange1() {
|
||||
this->mSceneIndex = SceneIndex_Max;
|
||||
this->mUnk_04 = 0;
|
||||
this->mUnk_08 = 0;
|
||||
this->mRoomIndex = 0xFF; // this changes when you enter a house, it's not clear if it has another purpose yet
|
||||
this->mSpawnIndex = 0; // changing this then saving will change your spawn location after opening the save again
|
||||
// (not the area)
|
||||
this->mSceneIndex = SceneIndex_Max;
|
||||
this->mUnk_04 = 0;
|
||||
this->mUnk_08 = 0;
|
||||
this->mRoomIndex = ROOM_INDEX_NONE;
|
||||
this->mSpawnIndex = 0;
|
||||
this->mIsCS = false;
|
||||
this->mUnk_0D = 0;
|
||||
this->mCutsceneIndex = CutsceneIndex_None;
|
||||
@@ -196,31 +59,136 @@ struct UnkStruct_SceneChange1 : public UnkStruct_SceneChange1_Base {
|
||||
this->mUnk_0F = 0;
|
||||
this->mUnk_10 = 0;
|
||||
}
|
||||
|
||||
UnkStruct_SceneChange1(s32) {}
|
||||
};
|
||||
|
||||
class UnkStruct_WarpUnk1_24 : public UnkStruct_0204a060_Base3 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 14 */ STRUCT_PAD(0x14, 0x2A);
|
||||
/* 2A */ bool mUnk_2A;
|
||||
/* 2C */
|
||||
|
||||
UnkStruct_WarpUnk1_24();
|
||||
void func_ov000_02070f58(unk32 param1);
|
||||
};
|
||||
|
||||
class UnkStruct_WarpUnk1_50 : public UnkStruct_0204a060_Base3 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1C */ unk32 mUnk_1C;
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */ unk32 mUnk_24;
|
||||
/* 28 */
|
||||
|
||||
UnkStruct_WarpUnk1_50();
|
||||
void func_ov000_02065f68(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
|
||||
};
|
||||
|
||||
class UnkStruct_WarpUnk1_A0 {
|
||||
public:
|
||||
/* 00 */ SceneIndex_Halfs mSceneIndex;
|
||||
/* 02 */ unk16 mRoomIndex;
|
||||
/* 04 */ VecFx32 mUnk_04;
|
||||
/* 10 */ s16 mUnk_10;
|
||||
/* 12 */ u16 mUnk_12;
|
||||
/* 14 */
|
||||
};
|
||||
|
||||
class UnkStruct_WarpUnk1 : public UnkStruct_0204a060_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 24 */ STRUCT_PAD(0x24, 0x78);
|
||||
/* 24 */ UnkStruct_WarpUnk1_24 mUnk_24;
|
||||
/* 50 */ UnkStruct_WarpUnk1_50 mUnk_50;
|
||||
/* 78 */ UnkStruct_SceneChange1 mUnk_78; // current scene?
|
||||
/* 8C */ UnkStruct_SceneChange1 mUnk_8C; // next scene
|
||||
/* A0 */ STRUCT_PAD(0xA0, 0xB4);
|
||||
/* A0 */ UnkStruct_WarpUnk1_A0 mUnk_A0;
|
||||
/* B4 */ unk32 mSpawnTransitionType; // the behavior of Link when entering a new scene
|
||||
/* B8 */
|
||||
|
||||
UnkStruct_WarpUnk1();
|
||||
~UnkStruct_WarpUnk1() {}
|
||||
|
||||
bool func_ov001_020b7144();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09a4 : public SysObject {
|
||||
struct UnkStruct_027e09a4_2C {
|
||||
/* 00 */ SceneIndex_Halfs mSceneIndex;
|
||||
/* 02 */ unk16 mUnk_02;
|
||||
/* 04 */ VecFx32 mUnk_04;
|
||||
/* 10 */ u16 mUnk_10;
|
||||
/* 14 */
|
||||
};
|
||||
|
||||
class UnkStruct_027e09a4_54_04 {
|
||||
public:
|
||||
/* 00 */ UnkStruct_SceneChange1_Base mUnk_00; // the infos of the current area, this isn't saved when you save the game
|
||||
/* 10 */ unk32 *mUnk_10;
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x10);
|
||||
/* 10 */
|
||||
|
||||
~UnkStruct_027e09a4_54_04() {}
|
||||
};
|
||||
|
||||
class UnkStruct_027e09a4_54_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ Iterator<UnkStruct_027e09a4_54_04> mUnk_04;
|
||||
/* 0C */ wchar_t mUnk_0C[8];
|
||||
/* 1C */ UnkStruct_SceneChange1 mUnk_1C;
|
||||
/* 30 */ unk16 mUnk_30;
|
||||
/* 32 */ bool mUnk_32;
|
||||
/* 33 */ unk8 mUnk_33;
|
||||
/* 34 */
|
||||
|
||||
UnkStruct_027e09a4_54_Base(unk32 *param1);
|
||||
|
||||
/* 00 */ virtual bool vfunc_00(void *param1);
|
||||
/* 04 */ virtual ~UnkStruct_027e09a4_54_Base();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */
|
||||
|
||||
void func_ov001_020b6fa0(CourseListEntry *pCourseEntry);
|
||||
void func_ov001_020b7048();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09a4_54_Type1 : public UnkStruct_027e09a4_54_Base {
|
||||
public:
|
||||
UnkStruct_027e09a4_54_Type1(UnkStruct_027e09a4 *param1);
|
||||
};
|
||||
|
||||
class UnkStruct_027e09a4_54_Type2 : public UnkStruct_027e09a4_54_Base {
|
||||
public:
|
||||
UnkStruct_027e09a4_54_Type2(UnkStruct_027e09a4 *param1);
|
||||
};
|
||||
|
||||
class UnkStruct_027e09a4_54_Type3 : public UnkStruct_027e09a4_54_Base {
|
||||
public:
|
||||
UnkStruct_027e09a4_54_Type3(UnkStruct_027e09a4 *param1);
|
||||
};
|
||||
|
||||
class UnkStruct_027e09a4_54_Type4 : public UnkStruct_027e09a4_54_Base {
|
||||
public:
|
||||
UnkStruct_027e09a4_54_Type4(UnkStruct_027e09a4 *param1);
|
||||
};
|
||||
|
||||
class UnkStruct_027e09a4_54_Type5 : public UnkStruct_027e09a4_54_Base {
|
||||
public:
|
||||
UnkStruct_027e09a4_54_Type5(UnkStruct_027e09a4 *param1);
|
||||
};
|
||||
|
||||
class UnkStruct_027e09a4 : public AutoInstance<UnkStruct_027e09a4> {
|
||||
public:
|
||||
/* 00 */ UnkStruct_SceneChange1 mUnk_00; // the infos of the current area, this isn't saved when you save the game
|
||||
/* 14 */ UnkStruct_SceneChange1 mUnk_14;
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 2C */ s16 mUnk_2C;
|
||||
/* 2C */ unk16 mUnk_2E;
|
||||
/* 30 */ VecFx32 mUnk_30;
|
||||
/* 3C */ STRUCT_PAD(0x3C, 0x54);
|
||||
/* 54 */ void *mUnk_54; // vtable
|
||||
/* 2C */ UnkStruct_027e09a4_2C mUnk_2C;
|
||||
/* 40 */ UnkStruct_027e09a4_2C mUnk_40;
|
||||
/* 54 */ UnkStruct_027e09a4_54_Base *mUnk_54;
|
||||
/* 58 */ UnkStruct_WarpUnk1 *mpWarpUnk1;
|
||||
/* 5C */ unk32 mUnk_5C;
|
||||
/* 5C */ unk16 mUnk_5C;
|
||||
/* 5E */ unk16 mUnk_5E;
|
||||
/* 60 */ unk32 mUnk_60; // related to ds download?
|
||||
/* 64 */ unk32 mUnk_64;
|
||||
/* 68 */
|
||||
@@ -298,12 +266,13 @@ public:
|
||||
return this->mUnk_00.mSceneIndex == SceneIndex_f_passenger;
|
||||
}
|
||||
|
||||
UnkStruct_027e09a4(unk32 param1);
|
||||
~UnkStruct_027e09a4();
|
||||
|
||||
// itcm
|
||||
bool IsLand();
|
||||
bool IsTrain();
|
||||
CourseEntry *GetCurrentCourseEntry() const;
|
||||
CourseListEntry *GetCurrentCourseEntry() const;
|
||||
|
||||
// overlay 0
|
||||
unk8 func_ov000_02070bd0(unk32 csIndex, unk32 param2);
|
||||
@@ -315,12 +284,22 @@ public:
|
||||
void func_ov000_02070938(unk32 param1);
|
||||
void func_ov000_02070a4c(unk32 param1);
|
||||
unk32 func_ov000_02070554();
|
||||
unk16 *func_ov000_02070538();
|
||||
UnkStruct_WarpUnk1_A0 *func_ov000_02070538();
|
||||
bool func_ov000_02070a9c(UnkStruct_SceneChange1 *param1);
|
||||
bool func_ov000_02072154(UnkStruct_SceneChange1 *param1, unk32 param2);
|
||||
bool func_ov000_0207056c();
|
||||
void func_ov000_020705e8(SaveFile *param1, unk32 param2);
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020b662c();
|
||||
void func_ov001_020b66dc();
|
||||
void func_ov001_020b6758(const UnkStruct_SceneChange1 *param1, bool param2);
|
||||
void func_ov001_020b68a4(bool param1, bool param2, bool param3);
|
||||
void func_ov001_020b6924(const UnkStruct_SceneChange1 *param1, bool param2);
|
||||
void func_ov001_020b69b4(const UnkStruct_SceneChange1 *param1, bool param2);
|
||||
|
||||
static UnkStruct_027e09a4 *Create(unk32 param1);
|
||||
|
||||
// overlay 17
|
||||
void func_ov017_020bb994(void *param1);
|
||||
void func_ov017_020bb994(unk32 param1);
|
||||
|
||||
@@ -78,8 +78,16 @@ public:
|
||||
UnkStruct_027e09ac();
|
||||
~UnkStruct_027e09ac();
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_020726f0(unk32 param1, unk32 param2, unk32 param3);
|
||||
void func_ov000_020729c4(UnkStruct_027e09ac_14 *param1, u16 param2, u16 param3, s16 param4, s16 param5);
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bec8c();
|
||||
void func_ov001_020bebb8();
|
||||
|
||||
static UnkStruct_027e09ac *Create();
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09ac *data_027e09ac;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "Cutscene/Cutscene.hpp"
|
||||
#include "MapObject/MapObject.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
#include "types.h"
|
||||
@@ -63,7 +64,7 @@ public:
|
||||
~UnkStruct_027e09b8_10();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8 {
|
||||
class UnkStruct_027e09b8 : public AutoInstance<UnkStruct_027e09b8> {
|
||||
public:
|
||||
/* 00 */ UnkStruct_027e09b8_00 *mUnk_00;
|
||||
/* 04 */ UnkStruct_027e09b8_04 *mUnk_04;
|
||||
@@ -80,8 +81,13 @@ public:
|
||||
return GET_FLAG(this->mAdventureFlags, flag);
|
||||
}
|
||||
|
||||
UnkStruct_027e09b8();
|
||||
~UnkStruct_027e09b8();
|
||||
|
||||
// itcm
|
||||
unk32 func_01ffd420();
|
||||
|
||||
// overlay 0
|
||||
unk32 func_ov000_020732ec(unk32 param1);
|
||||
unk32 func_ov000_020732fc(unk32 param1);
|
||||
bool func_ov000_020732dc(unk32 param1);
|
||||
@@ -94,6 +100,13 @@ public:
|
||||
#if IS_JP
|
||||
void func_ov000_02074d78(unk32 param1);
|
||||
#endif
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020b76c0(CutsceneIndex csIndex);
|
||||
void func_ov001_020b7700();
|
||||
|
||||
static UnkStruct_027e09b8 *Create();
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09b8 *data_027e09b8;
|
||||
|
||||
@@ -13,7 +13,7 @@ public:
|
||||
bool func_ov000_02078764(VecFx32 *param1, void *param2, unk32 param3);
|
||||
};
|
||||
|
||||
class UnkStruct_027e09bc {
|
||||
class UnkStruct_027e09bc : public AutoInstance<UnkStruct_027e09bc> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ UnkStruct_027e09bc_0C *mUnk_04;
|
||||
@@ -22,6 +22,13 @@ public:
|
||||
|
||||
UnkStruct_027e09bc();
|
||||
~UnkStruct_027e09bc();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020babc8();
|
||||
void func_ov001_020bab5c();
|
||||
|
||||
static UnkStruct_027e09bc *Create();
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09bc *data_027e09bc;
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e09c0 : public AutoInstance<UnkStruct_027e09c0> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_027e09c0();
|
||||
~UnkStruct_027e09c0();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020be3c4();
|
||||
void func_ov001_020be394();
|
||||
|
||||
static UnkStruct_027e09c0 *Create();
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09c0 *data_027e09c0;
|
||||
@@ -130,7 +130,7 @@ public:
|
||||
UnkStruct_027e0cd8_04();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8 {
|
||||
class UnkStruct_027e0cd8 : public AutoInstance<UnkStruct_027e0cd8> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ UnkStruct_027e0cd8_04 *mUnk_04; // stage flags
|
||||
@@ -142,6 +142,10 @@ public:
|
||||
/* 34 */ STRUCT_PAD(0x34, 0x4C);
|
||||
/* 4C */
|
||||
|
||||
UnkStruct_027e0cd8();
|
||||
~UnkStruct_027e0cd8();
|
||||
|
||||
// overlay 0
|
||||
bool func_ov000_02081e30(unk32 param1, unk32 param2);
|
||||
void func_ov000_02081d7c(unk32 flagValue, unk32 param2, bool doSet);
|
||||
void func_ov000_02081ecc(unk16 param1, unk32 param2);
|
||||
@@ -150,6 +154,14 @@ public:
|
||||
u32 func_ov000_02081d5c(); // returns current room index?
|
||||
bool func_ov000_02082124();
|
||||
bool func_ov000_02081c28();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020b7a7c();
|
||||
void func_ov001_020b7830(UnkStruct_SceneChange1 *param1);
|
||||
void func_ov001_020b7c08(UnkStruct_SceneChange1 *param1, UnkStruct_WarpUnk1_A0 *param2);
|
||||
|
||||
static UnkStruct_027e0cd8 *Create();
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0cd8 *data_027e0cd8;
|
||||
|
||||
@@ -376,7 +376,7 @@ public:
|
||||
};
|
||||
|
||||
// PlayerManager?
|
||||
class UnkStruct_027e0ce0 {
|
||||
class UnkStruct_027e0ce0 : public AutoInstance<UnkStruct_027e0ce0> {
|
||||
public:
|
||||
/* 00 */ unk8 mHealth;
|
||||
/* 01 */ unk8 mHealthMax;
|
||||
@@ -400,6 +400,10 @@ public:
|
||||
/* 40 */ UnkStruct_027e0ce0_40 *mUnk_40; // pointer to data_027e0478 when not on the train
|
||||
/* 44 */
|
||||
|
||||
UnkStruct_027e0ce0();
|
||||
~UnkStruct_027e0ce0();
|
||||
|
||||
// itcm
|
||||
VecFx32 *func_01fff148(unk32 param1);
|
||||
bool func_01fff1a4();
|
||||
bool func_01fff1e0();
|
||||
@@ -413,6 +417,13 @@ public:
|
||||
|
||||
static UnkStruct_027e0ce0_34 *func_ov000_0205c904();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bc5f8();
|
||||
void func_ov001_020bc524(bool param1);
|
||||
|
||||
static UnkStruct_027e0ce0 *Create();
|
||||
static void Destroy();
|
||||
|
||||
// overlay 17
|
||||
void func_ov017_020bd69c();
|
||||
};
|
||||
|
||||
@@ -4,13 +4,19 @@
|
||||
#include "math.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e0cec {
|
||||
class UnkStruct_027e0cec : public AutoInstance<UnkStruct_027e0cec> {
|
||||
public:
|
||||
UnkStruct_027e0cec();
|
||||
~UnkStruct_027e0cec();
|
||||
|
||||
void func_ov000_0209feac(unk32 param1, VecFx32 *param2, unk32 param3, unk32 param4, unk32 param5);
|
||||
void func_ov000_0209ff8c(UnkStruct_PlayerGet_ec *param1, unk32 param2, VecFx32 *param3, unk32 param4);
|
||||
void func_ov000_020a0000(UnkStruct_PlayerGet_ec *param1, void *param2, unk32 *param3, VecFx32 *param4, unk32 param5);
|
||||
void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1);
|
||||
void func_ov000_020a0220(void *param1, void *param2);
|
||||
|
||||
// overlay 1
|
||||
static UnkStruct_027e0cec *Create();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0cec *data_027e0cec;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "System/SysNew.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e0cf4 : public SysObject {
|
||||
class UnkStruct_027e0cf4 {
|
||||
public:
|
||||
~UnkStruct_027e0cf4();
|
||||
void func_ov021_020f8cdc();
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "System/SysNew.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e0d70 : public SysObject {
|
||||
class UnkStruct_027e0d70 {
|
||||
public:
|
||||
~UnkStruct_027e0d70();
|
||||
void func_ov071_0215e8f8();
|
||||
|
||||
@@ -96,7 +96,7 @@ public:
|
||||
/* 14 */
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_020b504c_Sub3 : public SysObject {
|
||||
class UnkStruct_ov000_020b504c_Sub3 {
|
||||
public:
|
||||
/* 00 */ BMGEntry **mpBMGTable;
|
||||
/* 04 */ BMGHeader **mUnk_04;
|
||||
@@ -148,6 +148,7 @@ public:
|
||||
|
||||
UnkStruct_ov000_020b504c();
|
||||
|
||||
// overlay 0
|
||||
void *func_ov000_02067bb4(unk32 param1);
|
||||
UnkStruct_ov000_02067bc4 *func_ov000_02067bc4(unk32);
|
||||
unk8 func_ov000_02067cf8(unk32 param1, unk32 param2, UnkStruct_ov000_02067bc4::UnkStruct1 *param3); // ShowText?
|
||||
@@ -161,9 +162,11 @@ public:
|
||||
bool func_ov000_0206807c(unk32 param1, void *param2);
|
||||
void func_ov000_02067b60();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020be510();
|
||||
void func_ov001_020be668(void);
|
||||
void func_ov001_020be6f4(void);
|
||||
void func_ov001_020be8e0(void);
|
||||
};
|
||||
|
||||
// gMessageManager?
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
#include "System/SysNew.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov018_020c5ac0 : public SysObject {
|
||||
class UnkStruct_SceneChange1;
|
||||
|
||||
class UnkStruct_ov018_020c5ac0 {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00;
|
||||
/* 00 */ unk8 mUnk_01;
|
||||
@@ -43,6 +45,7 @@ public:
|
||||
|
||||
UnkStruct_ov000_020b50c0();
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_02069d3c(unk32 param1);
|
||||
void func_ov000_02069d7c(unk32 param1);
|
||||
void func_ov000_02069f58(void);
|
||||
@@ -53,12 +56,17 @@ public:
|
||||
void func_ov000_0206a740(void);
|
||||
void func_ov000_0206a758(void);
|
||||
void func_ov000_0206a77c(void);
|
||||
void func_ov000_0206a014(void);
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bd854();
|
||||
void func_ov001_020bd87c(void);
|
||||
void func_ov001_020bd8dc(void);
|
||||
void func_ov001_020bd8ac(void);
|
||||
void func_ov001_020bde04(UnkStruct_SceneChange1 *param1);
|
||||
void func_ov001_020bd970(UnkStruct_SceneChange1 *param1);
|
||||
|
||||
// overlay 18
|
||||
UnkStruct_ov018_020c5ac0 *func_ov018_020c5718(void);
|
||||
};
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include "Unknown/UnkStruct_ov000_020b5214.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov000_020b51b8_00 : public SysObject {
|
||||
class UnkStruct_ov000_020b51b8_00 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ STRUCT_PAD(0x04, 0xA0);
|
||||
@@ -17,7 +17,7 @@ public:
|
||||
/* 0C */ virtual void vfunc_0C(unk32 param1);
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_020b51b8_04 : public SysObject {
|
||||
class UnkStruct_ov000_020b51b8_04 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x98);
|
||||
|
||||
@@ -16,7 +16,7 @@ struct UnkStruct5 {
|
||||
};
|
||||
|
||||
// data_ov000_020b2078
|
||||
class UnkSystem1_ov000_Base : public SysObject {
|
||||
class UnkSystem1_ov000_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ unk16 mUnk_04;
|
||||
|
||||
@@ -14,6 +14,8 @@ enum FileType_ {
|
||||
FileType_ZOB = 'BLOZ',
|
||||
FileType_ZTB = '1BTZ',
|
||||
FileType_ZMB = '1BMZ',
|
||||
FileType_CIB = 'ZCIB',
|
||||
FileType_CLB = 'ZCLB',
|
||||
};
|
||||
|
||||
typedef struct FileInfos {
|
||||
@@ -167,6 +169,53 @@ typedef struct ZMBSectionRALB {
|
||||
/* 0C */ ZMBEntryRALB entries[];
|
||||
} ZMBSectionRALB;
|
||||
|
||||
// .cib
|
||||
typedef struct CourseInitEntry {
|
||||
/* 00 */ const char name[16];
|
||||
/* 10 */ STRUCT_PAD(0x10, 0x24);
|
||||
} CourseInitEntry; // size = 0x24
|
||||
|
||||
typedef struct CourseInitHeader {
|
||||
/* 00 */ FileType type; // always "ZCIB"
|
||||
/* 04 */ size_t nSize;
|
||||
/* 08 */ u32 nEntries;
|
||||
/* 0C */ u32 nEntries2; // same value as above?
|
||||
} CourseInitHeader; // size = 0x10
|
||||
|
||||
// .clb
|
||||
typedef struct CourseListRoomEntry {
|
||||
/* 00 */ u8 roomIndex;
|
||||
/* 01 */ u8 mapPaintIndex;
|
||||
/* 02 */ u8 unk_02;
|
||||
/* 03 */ u8 unk_03;
|
||||
} CourseListRoomEntry; // size = 0x08
|
||||
|
||||
typedef struct CourseListEntry {
|
||||
/* 00 */ const char name[16];
|
||||
/* 10 */ unk32 unk_10;
|
||||
/* 14 */ unk8 numRooms;
|
||||
/* 15 */ unk8 unk_15;
|
||||
/* 16 */ unk8 titleCardMsgIndex;
|
||||
/* 17 */ u8 saveCourseIndex;
|
||||
/* 18 */ u8 unk_18;
|
||||
/* 19 */ u8 unk_19;
|
||||
/* 1A */ u8 unk_1A;
|
||||
/* 1B */ u8 unk_1B;
|
||||
/* 1C */ u8 unk_1C;
|
||||
/* 1D */ u8 unk_1D;
|
||||
/* 1E */ u8 unk_1E;
|
||||
/* 1F */ u8 unk_1F;
|
||||
/* 20 */ u8 defaultMapPaintIndex;
|
||||
/* 24 */ CourseListRoomEntry roomEntries[];
|
||||
} CourseListEntry; // size >= 0x28
|
||||
|
||||
typedef struct CourseListHeader {
|
||||
/* 00 */ FileType type; // always "ZCIB"
|
||||
/* 04 */ size_t nSize;
|
||||
/* 08 */ u32 nEntries;
|
||||
/* 0C */ u32 nEntries2; // same value as above?
|
||||
} CourseListHeader; // size = 0x10
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
+20
-8
@@ -50,14 +50,26 @@ public:
|
||||
~AutoInstance() {}
|
||||
};
|
||||
|
||||
#define DECL_INSTANCE(T, gpInstance) \
|
||||
template <typename T> Instance<T>::Instance() { \
|
||||
gpInstance = (T *) this; \
|
||||
} \
|
||||
template <typename T> Instance<T>::~Instance() { \
|
||||
gpInstance = NULL; \
|
||||
} \
|
||||
template class Instance<T>
|
||||
#define DECL_INSTANCE_CTOR(T, gpInstance) \
|
||||
template <typename T> Instance<T>::Instance() { \
|
||||
gpInstance = (T *) this; \
|
||||
} \
|
||||
template class Instance<T>;
|
||||
|
||||
#define DECL_INSTANCE_DTOR(T, gpInstance) \
|
||||
Instance<T>::~Instance() { \
|
||||
gpInstance = NULL; \
|
||||
}
|
||||
|
||||
#define DECL_INSTANCE(T, gpInstance) \
|
||||
DECL_INSTANCE_CTOR(T, gpInstance) \
|
||||
DECL_INSTANCE_DTOR(T, gpInstance)
|
||||
|
||||
template <typename T> struct StaticInstance {
|
||||
static T sInstance;
|
||||
};
|
||||
|
||||
#define DECL_STATIC_INSTANCE(T) T StaticInstance<T>::sInstance
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user