2025-01-25 03:07:39 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
2025-07-06 14:47:44 +02:00
|
|
|
#include "nds/math.h"
|
|
|
|
|
|
|
|
|
|
#include "DTCM/UnkStruct_027e077c.hpp"
|
|
|
|
|
#include "Game/Game.hpp"
|
2025-01-25 03:07:39 +01:00
|
|
|
#include "Message/BMG.hpp"
|
2025-02-12 20:20:34 +01:00
|
|
|
#include "System/SysNew.hpp"
|
2025-07-13 15:11:50 +02:00
|
|
|
#include "Unknown/UnkStruct_020eec9c.hpp"
|
2025-01-29 16:36:55 +01:00
|
|
|
#include "Unknown/func_ov000_020d0644.hpp"
|
2025-01-25 03:07:39 +01:00
|
|
|
|
|
|
|
|
// temp
|
|
|
|
|
#define UNK_TYPE void
|
|
|
|
|
|
2025-01-26 23:54:14 +01:00
|
|
|
#define ESCAPE_SEQUENCE_MARKER '\x1A'
|
2025-01-31 02:01:55 +01:00
|
|
|
#define CHECK_UNK_FLAGS(val) (((data_02056be4[data_027e077c.mUnk_0] & (val)) != 0))
|
2025-01-26 23:54:14 +01:00
|
|
|
|
2025-01-25 21:25:14 +01:00
|
|
|
typedef struct UnkStruct_0203b264 {
|
|
|
|
|
/* 0 */ u8 mUnk_0[0x4];
|
|
|
|
|
/* 4 */ u16 *mUnk_4;
|
|
|
|
|
/* 8 */
|
|
|
|
|
} UnkStruct_0203b264;
|
|
|
|
|
|
2025-02-05 01:47:40 +01:00
|
|
|
class UnkStruct_020397f8_410 {
|
2025-01-25 21:25:14 +01:00
|
|
|
public:
|
2025-02-12 20:20:34 +01:00
|
|
|
/* 0x00 */ struct UnkStruct_020397f8 *mUnk_00;
|
2025-01-25 21:25:14 +01:00
|
|
|
/* 0x04 */
|
|
|
|
|
|
|
|
|
|
void func_0203ec34(void);
|
2025-01-26 23:54:14 +01:00
|
|
|
void func_0203ebe0(void);
|
2025-01-26 03:36:11 +01:00
|
|
|
void func_0203ebf8(void);
|
2025-02-12 20:20:34 +01:00
|
|
|
void func_0203ec4c(UnkStruct_0203b264 *param_2, unk32 param_3, s32 param_4, s32 param_5);
|
2025-01-25 21:25:14 +01:00
|
|
|
};
|
|
|
|
|
|
2025-02-05 01:47:40 +01:00
|
|
|
// same as UnkStruct_020397f8_410?
|
|
|
|
|
class UnkStruct_020397f8_424 {
|
2025-01-25 21:25:14 +01:00
|
|
|
public:
|
2025-02-12 20:20:34 +01:00
|
|
|
/* 0x00 */ struct UnkStruct_020397f8 *mUnk_00;
|
2025-01-25 21:25:14 +01:00
|
|
|
/* 0x04 */
|
|
|
|
|
|
|
|
|
|
void func_0203ee80(unk32);
|
|
|
|
|
void func_0203ef78(unk16, u16, unk8);
|
2025-01-26 03:36:11 +01:00
|
|
|
void func_0203ef78(unk16); // overload?
|
2025-01-26 23:54:14 +01:00
|
|
|
void func_0203ee48(void);
|
2025-02-12 20:20:34 +01:00
|
|
|
UnkStruct_0203b264 *func_0203eeb0(unk32 param_2, unk32 param_3);
|
2025-01-25 21:25:14 +01:00
|
|
|
};
|
|
|
|
|
|
2025-02-05 01:47:40 +01:00
|
|
|
class UnkStruct_0203dae0_114 : public SysObject {
|
2025-01-29 16:36:55 +01:00
|
|
|
public:
|
|
|
|
|
/* 0x00 (vtable) */
|
2025-02-12 20:20:34 +01:00
|
|
|
/* 0x04 */ unk32 *mUnk_04;
|
2025-01-29 16:36:55 +01:00
|
|
|
/* 0x08 */
|
|
|
|
|
|
2025-02-05 01:47:40 +01:00
|
|
|
UnkStruct_0203dae0_114();
|
|
|
|
|
/* 0x00 */ virtual ~UnkStruct_0203dae0_114() override;
|
2025-02-12 20:20:34 +01:00
|
|
|
/* 0x08 */ virtual unk32 vfunc_08(void *);
|
2025-02-05 17:52:48 +01:00
|
|
|
/* 0x08 */ virtual unk32 vfunc_0c(void);
|
2025-01-29 16:36:55 +01:00
|
|
|
/* 0x0C */
|
2025-01-30 16:43:18 +01:00
|
|
|
|
2025-02-12 20:20:34 +01:00
|
|
|
unk32 *func_0203d1b4(void);
|
2025-01-29 16:36:55 +01:00
|
|
|
};
|
|
|
|
|
|
2025-01-31 02:01:55 +01:00
|
|
|
struct func_02038f44_param4 {
|
2025-02-05 00:46:13 +01:00
|
|
|
u8 mUnk_00;
|
|
|
|
|
u8 mUnk_01;
|
|
|
|
|
u8 mUnk_02;
|
|
|
|
|
u8 mUnk_03;
|
|
|
|
|
unk32 mUnk_04;
|
|
|
|
|
unk32 mUnk_08;
|
|
|
|
|
unk32 mUnk_0c;
|
|
|
|
|
unk32 mUnk_10;
|
|
|
|
|
unk8 mUnk_14;
|
|
|
|
|
u8 mUnk_15;
|
2025-01-31 02:01:55 +01:00
|
|
|
};
|
|
|
|
|
|
2025-01-27 20:23:50 +01:00
|
|
|
// TEMPORARY
|
|
|
|
|
|
|
|
|
|
extern "C" u32 func_01ff9b4c(unk32, unk32);
|
|
|
|
|
extern "C" unk32 func_0203c084(void);
|
|
|
|
|
extern "C" unk32 func_ov000_02079e04(void);
|
|
|
|
|
extern "C" unk32 func_02016fcc(unk32);
|
2025-02-12 20:20:34 +01:00
|
|
|
extern "C" unk32 func_0202d5b4(char *, char *, unk32, unk32, unk32);
|
2025-01-27 20:23:50 +01:00
|
|
|
extern unk32 data_020691a0;
|
|
|
|
|
extern unk32 data_02056af0;
|
2025-02-12 20:20:34 +01:00
|
|
|
extern unk32 *data_02056a00;
|
|
|
|
|
extern char *data_02057f08; // "MSP"
|
|
|
|
|
extern char *data_02057eec; // "Menu/UI_main/opening.bin"
|
|
|
|
|
extern char *data_02057ed8; // "MSP:opening.nclr"
|
2025-01-27 20:23:50 +01:00
|
|
|
|
|
|
|
|
struct Struct_027e0db0 {
|
2025-02-05 00:46:13 +01:00
|
|
|
/* 0x00 */ unk32 mUnk_00;
|
|
|
|
|
/* 0x04 */ unk32 mUnk_04;
|
2025-07-06 14:47:44 +02:00
|
|
|
|
|
|
|
|
void func_ov000_0207b288(GameModeId modeId);
|
2025-07-22 16:17:02 +02:00
|
|
|
void func_ov000_0207b2f0(unk32 param_1, bool param_2);
|
|
|
|
|
void func_ov000_0207b334(unk32 param_1);
|
2025-07-19 18:51:07 +02:00
|
|
|
void func_ov000_0207b378(unk32 param_1);
|
2025-07-22 15:54:46 +02:00
|
|
|
void func_ov000_0207b43c();
|
2025-01-27 20:23:50 +01:00
|
|
|
};
|
|
|
|
|
extern Struct_027e0db0 data_027e0db0;
|
|
|
|
|
|
|
|
|
|
class UnkClass_027e0cbc {
|
|
|
|
|
public:
|
2025-07-06 14:47:44 +02:00
|
|
|
void func_0203d57c();
|
|
|
|
|
void func_0203d5c0();
|
2025-07-19 18:51:07 +02:00
|
|
|
void func_0203d64c(s32);
|
|
|
|
|
void func_0203d664(s32);
|
2025-07-22 15:54:46 +02:00
|
|
|
void func_0203d67c(u16 *);
|
2025-07-06 14:47:44 +02:00
|
|
|
void func_0203d6d0();
|
2025-01-27 20:23:50 +01:00
|
|
|
unk32 func_0203d7e0(unk32);
|
|
|
|
|
unk32 func_0203d77c(unk32, s32, s32);
|
|
|
|
|
};
|
|
|
|
|
extern UnkClass_027e0cbc data_027e0cbc;
|
|
|
|
|
extern unk16 data_02056a10[];
|
|
|
|
|
extern unk16 data_02056a16[];
|
|
|
|
|
extern unk32 data_02056a04[];
|
2025-02-12 20:20:34 +01:00
|
|
|
extern "C" void func_0203489c(unk32, unk16, unk32 *, unk32 *);
|
|
|
|
|
extern "C" void func_020347b0(unk32, unk16, unk32 *, unk32 *, unk32, unk32);
|
2025-01-27 20:23:50 +01:00
|
|
|
extern THUMB unk32 func_0202ab48(void);
|
2025-01-28 18:47:44 +01:00
|
|
|
extern "C" void func_02034984(unk32, u8, unk32, unk32);
|
2025-02-12 20:20:34 +01:00
|
|
|
extern "C" void func_02034698(unk32, unk32, unk32 *, unk32 *);
|
2025-02-06 22:45:45 +01:00
|
|
|
extern struct TouchControl gTouchControl;
|
2025-01-27 20:23:50 +01:00
|
|
|
|
|
|
|
|
class UnkClass_027e0e28 {
|
|
|
|
|
public:
|
|
|
|
|
unk32 func_ov000_0207bc48();
|
2025-07-05 16:36:04 +02:00
|
|
|
void func_ov000_0207bc9c();
|
2025-01-27 20:23:50 +01:00
|
|
|
};
|
2025-02-12 20:20:34 +01:00
|
|
|
extern UnkClass_027e0e28 *data_027e0e28;
|
|
|
|
|
extern unk32 *data_ov009_0211f5b4;
|
|
|
|
|
extern "C" unk32 func_ov003_020f3f94(unk32 *);
|
2025-07-05 16:36:04 +02:00
|
|
|
extern "C" void func_ov003_020f4060(unk32 **);
|
2025-02-12 20:20:34 +01:00
|
|
|
extern unk32 *data_02057ed4;
|
2025-01-27 20:23:50 +01:00
|
|
|
|
|
|
|
|
// see Actor.cpp
|
|
|
|
|
typedef struct UnkStruct_01ffbe34 {
|
|
|
|
|
/* 00 */ unk32 mUnk_00;
|
|
|
|
|
/* 04 */ unk32 mUnk_04;
|
|
|
|
|
/* 08 */ unk8 mUnk_08;
|
|
|
|
|
/* 09 */ unk8 mUnk_09;
|
|
|
|
|
/* 0a */ unk8 mUnk_0a;
|
|
|
|
|
/* 0b */ unk8 mUnk_0b;
|
|
|
|
|
/* 0c */ unk32 mUnk_0c;
|
|
|
|
|
/* 10 */ unk32 mUnk_10;
|
|
|
|
|
/* 14 */ unk8 mUnk_14;
|
|
|
|
|
/* 15 */ unk8 mUnk_15;
|
|
|
|
|
/* 16 */ unk16 mUnk_16;
|
|
|
|
|
/* 18 */ unk32 mUnk_18;
|
|
|
|
|
/* 1c */ unk32 mUnk_1c;
|
|
|
|
|
/* 20 */
|
|
|
|
|
} UnkStruct_01ffbe34;
|
|
|
|
|
extern "C" void func_01ffbe34(UnkStruct_01ffbe34 *param1);
|
|
|
|
|
|
2025-01-30 14:28:49 +01:00
|
|
|
struct UnkClass_027e1054_unk_00_unk00 {
|
2025-02-05 12:28:21 +01:00
|
|
|
/* 0x00 */ u8 mUnk_00[0x95];
|
2025-02-05 00:46:13 +01:00
|
|
|
/* 0x95 */ u8 mUnk_95;
|
2025-01-30 14:28:49 +01:00
|
|
|
};
|
|
|
|
|
struct UnkClass_027e1054_unk_00 {
|
2025-02-05 00:46:13 +01:00
|
|
|
/* 0x00 */ unk32 mUnk_04;
|
2025-02-12 20:20:34 +01:00
|
|
|
/* 0x00 */ UnkClass_027e1054_unk_00_unk00 *mUnk_00;
|
2025-01-30 14:28:49 +01:00
|
|
|
};
|
2025-01-27 20:23:50 +01:00
|
|
|
class UnkClass_027e1054 {
|
|
|
|
|
public:
|
2025-02-12 20:20:34 +01:00
|
|
|
UnkClass_027e1054_unk_00 *mUnk_00;
|
2025-02-05 00:46:13 +01:00
|
|
|
unk32 mUnk_04;
|
2025-01-27 20:23:50 +01:00
|
|
|
|
|
|
|
|
void func_ov003_020f4874(void);
|
2025-01-30 14:28:49 +01:00
|
|
|
void func_ov003_020f4760(u8, unk32);
|
2025-07-05 16:36:04 +02:00
|
|
|
unk32 func_ov003_020f4960(void);
|
|
|
|
|
void func_ov003_020f4a5c(void);
|
|
|
|
|
void func_ov003_02f46f8(void);
|
|
|
|
|
void func_ov003_020f4678(unk32);
|
2025-01-27 20:23:50 +01:00
|
|
|
};
|
2025-07-05 16:36:04 +02:00
|
|
|
extern UnkClass_027e1054 *data_027e1054;
|
2025-01-29 23:38:06 +01:00
|
|
|
|
|
|
|
|
class UnkClass_ov000_027e0d04 {
|
|
|
|
|
public:
|
2025-02-05 00:46:13 +01:00
|
|
|
/* 0x00 */ unk16 mUnk_00;
|
2025-01-29 23:43:03 +01:00
|
|
|
|
2025-07-19 18:51:07 +02:00
|
|
|
void func_0203fe00();
|
2025-01-29 23:38:06 +01:00
|
|
|
void func_0203fe60(unk32);
|
|
|
|
|
};
|
|
|
|
|
extern UnkClass_ov000_027e0d04 data_027e0d04;
|
2025-01-30 14:28:49 +01:00
|
|
|
|
|
|
|
|
class UnkClass_data_027e0f7c {
|
|
|
|
|
public:
|
2025-02-12 20:20:34 +01:00
|
|
|
u8 *func_ov000_0209d90c(s8, s8);
|
2025-01-30 14:28:49 +01:00
|
|
|
};
|
|
|
|
|
extern UnkClass_data_027e0f7c data_027e0f7c;
|