Files

169 lines
4.5 KiB
C++
Raw Permalink Normal View History

2024-01-06 10:39:33 +01:00
#pragma once
#include "types.h"
2024-03-02 08:29:32 +01:00
2025-04-26 08:41:25 +02:00
#include <nds/overlay.h>
2024-03-02 08:29:32 +01:00
#include "Item/Item.hpp"
2024-01-06 10:39:33 +01:00
2025-04-26 08:41:25 +02:00
EXTERN_OVERLAY_ID(0);
EXTERN_OVERLAY_ID(1);
EXTERN_OVERLAY_ID(2);
EXTERN_OVERLAY_ID(3);
EXTERN_OVERLAY_ID(4);
EXTERN_OVERLAY_ID(5);
EXTERN_OVERLAY_ID(6);
EXTERN_OVERLAY_ID(7);
EXTERN_OVERLAY_ID(8);
EXTERN_OVERLAY_ID(9);
EXTERN_OVERLAY_ID(10);
EXTERN_OVERLAY_ID(11);
EXTERN_OVERLAY_ID(12);
EXTERN_OVERLAY_ID(13);
EXTERN_OVERLAY_ID(14);
EXTERN_OVERLAY_ID(15);
EXTERN_OVERLAY_ID(16);
EXTERN_OVERLAY_ID(17);
EXTERN_OVERLAY_ID(18);
EXTERN_OVERLAY_ID(19);
EXTERN_OVERLAY_ID(20);
EXTERN_OVERLAY_ID(21);
EXTERN_OVERLAY_ID(22);
EXTERN_OVERLAY_ID(23);
EXTERN_OVERLAY_ID(24);
EXTERN_OVERLAY_ID(25);
EXTERN_OVERLAY_ID(26);
EXTERN_OVERLAY_ID(27);
EXTERN_OVERLAY_ID(28);
EXTERN_OVERLAY_ID(29);
EXTERN_OVERLAY_ID(30);
EXTERN_OVERLAY_ID(31);
EXTERN_OVERLAY_ID(32);
EXTERN_OVERLAY_ID(33);
EXTERN_OVERLAY_ID(34);
EXTERN_OVERLAY_ID(35);
EXTERN_OVERLAY_ID(36);
EXTERN_OVERLAY_ID(37);
EXTERN_OVERLAY_ID(38);
EXTERN_OVERLAY_ID(39);
EXTERN_OVERLAY_ID(40);
EXTERN_OVERLAY_ID(41);
EXTERN_OVERLAY_ID(42);
EXTERN_OVERLAY_ID(43);
EXTERN_OVERLAY_ID(44);
EXTERN_OVERLAY_ID(45);
EXTERN_OVERLAY_ID(46);
EXTERN_OVERLAY_ID(47);
EXTERN_OVERLAY_ID(48);
EXTERN_OVERLAY_ID(49);
EXTERN_OVERLAY_ID(50);
EXTERN_OVERLAY_ID(51);
EXTERN_OVERLAY_ID(52);
EXTERN_OVERLAY_ID(53);
EXTERN_OVERLAY_ID(54);
EXTERN_OVERLAY_ID(55);
EXTERN_OVERLAY_ID(56);
EXTERN_OVERLAY_ID(57);
EXTERN_OVERLAY_ID(58);
EXTERN_OVERLAY_ID(59);
EXTERN_OVERLAY_ID(60);
EXTERN_OVERLAY_ID(61);
2024-01-06 10:39:33 +01:00
typedef u32 OverlayId;
2025-04-26 08:41:25 +02:00
#define OverlayId_None -1
#define OverlayId_Core OVERLAY_ID(0)
#define OverlayId_01 OVERLAY_ID(1)
#define OverlayId_02 OVERLAY_ID(2)
#define OverlayId_03 OVERLAY_ID(3)
2025-07-06 14:47:44 +02:00
#define OverlayId_Load OVERLAY_ID(4)
2025-04-26 08:41:25 +02:00
#define OverlayId_05 OVERLAY_ID(5)
#define OverlayId_06 OVERLAY_ID(6)
2025-07-06 14:47:44 +02:00
#define OverlayId_DownloadPlay OVERLAY_ID(7)
#define OverlayId_GameStart OVERLAY_ID(8)
#define OverlayId_Adventure OVERLAY_ID(9)
#define OverlayId_FileSelect OVERLAY_ID(10)
#define OverlayId_DwcSetup OVERLAY_ID(11)
#define OverlayId_Battle OVERLAY_ID(12)
#define OverlayId_Contact OVERLAY_ID(13)
2025-04-26 08:41:25 +02:00
#define OverlayId_Land OVERLAY_ID(14)
2025-07-06 14:47:44 +02:00
#define OverlayId_Sea OVERLAY_ID(15)
#define OverlayId_Startup OVERLAY_ID(16)
#define OverlayId_Dungeon OVERLAY_ID(17)
#define OverlayId_Overworld OVERLAY_ID(18)
2025-04-26 08:41:25 +02:00
#define OverlayId_19 OVERLAY_ID(19)
#define OverlayId_20 OVERLAY_ID(20)
#define OverlayId_21 OVERLAY_ID(21)
#define OverlayId_22 OVERLAY_ID(22)
#define OverlayId_23 OVERLAY_ID(23)
#define OverlayId_24 OVERLAY_ID(24)
#define OverlayId_25 OVERLAY_ID(25)
#define OverlayId_26 OVERLAY_ID(26)
#define OverlayId_27 OVERLAY_ID(27)
#define OverlayId_28 OVERLAY_ID(28)
#define OverlayId_29 OVERLAY_ID(29)
#define OverlayId_30 OVERLAY_ID(30)
#define OverlayId_31 OVERLAY_ID(31)
#define OverlayId_32 OVERLAY_ID(32)
#define OverlayId_33 OVERLAY_ID(33)
#define OverlayId_34 OVERLAY_ID(34)
#define OverlayId_35 OVERLAY_ID(35)
#define OverlayId_36 OVERLAY_ID(36)
#define OverlayId_37 OVERLAY_ID(37)
#define OverlayId_38 OVERLAY_ID(38)
#define OverlayId_39 OVERLAY_ID(39)
#define OverlayId_40 OVERLAY_ID(40)
#define OverlayId_41 OVERLAY_ID(41)
#define OverlayId_42 OVERLAY_ID(42)
#define OverlayId_43 OVERLAY_ID(43)
#define OverlayId_44 OVERLAY_ID(44)
#define OverlayId_45 OVERLAY_ID(45)
#define OverlayId_46 OVERLAY_ID(46)
#define OverlayId_47 OVERLAY_ID(47)
#define OverlayId_48 OVERLAY_ID(48)
#define OverlayId_49 OVERLAY_ID(49)
#define OverlayId_50 OVERLAY_ID(50)
#define OverlayId_51 OVERLAY_ID(51)
#define OverlayId_52 OVERLAY_ID(52)
#define OverlayId_PlayerBoomerang OVERLAY_ID(53)
#define OverlayId_PlayerScoop OVERLAY_ID(54)
#define OverlayId_PlayerBomb OVERLAY_ID(55)
#define OverlayId_PlayerBow OVERLAY_ID(56)
#define OverlayId_PlayerRope OVERLAY_ID(57)
#define OverlayId_PlayerBombchu OVERLAY_ID(58)
#define OverlayId_PlayerHammer OVERLAY_ID(59)
#define OverlayId_60 OVERLAY_ID(60)
#define OverlayId_61 OVERLAY_ID(61)
2024-01-06 10:39:33 +01:00
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_EquipItem,
OverlayIndex_12,
OverlayIndex_COUNT,
};
class OverlayManager {
2024-02-17 13:41:27 +01:00
public:
2024-01-06 10:39:33 +01:00
OverlayId mLoadedOverlays[OverlayIndex_COUNT];
void Load(OverlayIndex index, OverlayId id);
void LoadIfNotLoaded(OverlayIndex index, OverlayId id);
2025-01-18 09:44:01 +01:00
void Unload(OverlayIndex index);
2025-07-04 20:57:03 +02:00
void LoadGameMode(s32 mode);
void UnloadGameMode();
2025-01-18 09:44:01 +01:00
2024-01-06 10:39:33 +01:00
void LoadEquipItem(ItemFlag equipId);
};
extern OverlayManager gOverlayManager;