Files
st/include/System/OverlayManager.hpp
T
2025-07-17 18:00:05 +02:00

164 lines
4.6 KiB
C++

#pragma once
#include "types.h"
// #include "Item/Item.hpp"
typedef u32 ItemFlag;
typedef u32 OverlayId;
enum OverlayId_ {
/* -1 */ OverlayId_None = -1,
/* 00 */ OverlayId_Second,
/* 01 */ OverlayId_SceneInit,
/* 02 */ OverlayId_Collect,
/* 03 */ OverlayId_SoftKeyboard,
/* 04 */ OverlayId_Factory,
/* 05 */ OverlayId_NormalScreen,
/* 06 */ OverlayId_Paint,
/* 07 */ OverlayId_RailEdit,
/* 08 */ OverlayId_GameOver,
/* 09 */ OverlayId_CloseUp,
/* 10 */ OverlayId_TabMenu,
/* 11 */ OverlayId_WorldMap,
/* 12 */ OverlayId_PanFlute,
/* 13 */ OverlayId_TetsuoMap,
/* 14 */ OverlayId_Stamp,
/* 15 */ OverlayId_Shop,
/* 16 */ OverlayId_RabbitCapture,
/* 17 */ OverlayId_CourseExec,
/* 18 */ OverlayId_StartUp,
/* 19 */ OverlayId_MainSelect,
/* 20 */ OverlayId_WirelessCommon,
/* 21 */ OverlayId_BattleGame,
/* 22 */ OverlayId_Download,
/* 23 */ OverlayId_Wxc,
/* 24 */ OverlayId_MainGame,
/* 25 */ OverlayId_Title,
/* 26 */ OverlayId_Train,
/* 27 */ OverlayId_TrainForest,
/* 28 */ OverlayId_TrainSnow,
/* 29 */ OverlayId_TrainWater,
/* 30 */ OverlayId_TrainFlame,
/* 31 */ OverlayId_Land,
/* 32 */ OverlayId_MapA1,
/* 33 */ OverlayId_MapA2,
/* 34 */ OverlayId_MapA3,
/* 35 */ OverlayId_MapA4,
/* 36 */ OverlayId_MapA5,
/* 37 */ OverlayId_MapA6,
/* 38 */ OverlayId_MapA7,
/* 39 */ OverlayId_MapA8,
/* 40 */ OverlayId_MapB1,
/* 41 */ OverlayId_MapB2,
/* 42 */ OverlayId_MapB3,
/* 43 */ OverlayId_MapB4,
/* 44 */ OverlayId_MapB5,
/* 45 */ OverlayId_MapB6,
/* 46 */ OverlayId_MapB7,
/* 47 */ OverlayId_MapC1,
/* 48 */ OverlayId_MapC2,
/* 49 */ OverlayId_MapC3,
/* 50 */ OverlayId_MapC4,
/* 51 */ OverlayId_MapC5,
/* 52 */ OverlayId_MapC6,
/* 53 */ OverlayId_MapD1,
/* 54 */ OverlayId_MapD2,
/* 55 */ OverlayId_MapD3,
/* 56 */ OverlayId_MapD4,
/* 57 */ OverlayId_MapD5,
/* 58 */ OverlayId_Field,
/* 59 */ OverlayId_InTrain,
/* 60 */ OverlayId_Castle,
/* 61 */ OverlayId_CastleTown,
/* 62 */ OverlayId_Village,
/* 63 */ OverlayId_Shrine,
/* 64 */ OverlayId_FldForest,
/* 65 */ OverlayId_FldSnow,
/* 66 */ OverlayId_FldWater,
/* 67 */ OverlayId_FldFlame,
/* 68 */ OverlayId_FldAjito,
/* 69 */ OverlayId_FldRabbit,
/* 70 */ OverlayId_Dungeon,
/* 71 */ OverlayId_Tower,
/* 72 */ OverlayId_TowerLobby,
/* 73 */ OverlayId_BossDeago,
/* 74 */ OverlayId_BossLast1,
/* 75 */ OverlayId_BossLast2,
/* 76 */ OverlayId_DgnLv1,
/* 77 */ OverlayId_DgnForest,
/* 78 */ OverlayId_BossForest,
/* 79 */ OverlayId_DgnSnow,
/* 80 */ OverlayId_BossSnow,
/* 81 */ OverlayId_DgnLv3,
/* 82 */ OverlayId_DgnWater,
/* 83 */ OverlayId_BossWater,
/* 84 */ OverlayId_BossFlame,
/* 85 */ OverlayId_DgnLv5,
/* 86 */ OverlayId_DgnDesert,
/* 87 */ OverlayId_BossDesert,
/* 88 */ OverlayId_Stb,
/* 89 */ OverlayId_ASR,
/* 90 */ OverlayId_TrainNormal,
/* 91 */ OverlayId_TrainExtra,
/* 92 */ OverlayId_TrainDark,
/* 93 */ OverlayId_PlayerSub,
/* 94 */ OverlayId_Land2,
/* 95 */ OverlayId_PlayerPhantom,
/* 96 */ OverlayId_PlayerZelda,
/* 97 */ OverlayId_TrainMsg,
/* 98 */ OverlayId_MapWater,
/* 99 */ OverlayId_MapLava,
/* 100 */ OverlayId_CollectMsg,
/* 101 */ OverlayId_SceneInitLand,
/* 102 */ OverlayId_CourseExecLand,
/* 103 */ OverlayId_PlayerTornado,
/* 104 */ OverlayId_PlayerBoomerang,
/* 105 */ OverlayId_PlayerWhip,
/* 106 */ OverlayId_PlayerBow,
/* 107 */ OverlayId_PlayerSandrock,
/* 108 */ OverlayId_PlayerPanFlute,
/* 109 */ OverlayId_PlayerBomb,
/* 110 */ OverlayId_PlayerGet,
/* 111 */ OverlayId_PlayerDown,
/* 112 */ OverlayId_PlayerSceneChange,
/* 113 */ OverlayId_PlayerDemo,
};
typedef u32 OverlayIndex;
enum OverlayIndex_ {
OverlayIndex_Core,
OverlayIndex_1,
OverlayIndex_2,
OverlayIndex_3,
OverlayIndex_4,
OverlayIndex_5,
OverlayIndex_6,
OverlayIndex_7,
OverlayIndex_8,
OverlayIndex_9,
OverlayIndex_10,
OverlayIndex_11,
OverlayIndex_12,
OverlayIndex_13,
OverlayIndex_14,
OverlayIndex_15,
OverlayIndex_16,
OverlayIndex_17,
OverlayIndex_COUNT,
};
class OverlayManager {
public:
OverlayId mLoadedOverlays[OverlayIndex_COUNT];
void Load(OverlayIndex index, OverlayId id);
void LoadIfNotLoaded(OverlayIndex index, OverlayId id);
void Unload(OverlayIndex index);
void LoadOverlaySetup(s32 index);
void UnloadOverlaySetup();
void LoadEquipItem(ItemFlag equipId);
};
extern OverlayManager gOverlayManager;