2023-10-23 13:01:29 -03:00
|
|
|
#ifndef STRUCTS_H
|
|
|
|
#define STRUCTS_H
|
|
|
|
|
2023-11-28 14:03:47 -06:00
|
|
|
#include "libultra/ultra64.h"
|
2023-10-23 13:01:29 -03:00
|
|
|
#include "sf64math.h"
|
|
|
|
|
2023-11-22 08:56:29 -06:00
|
|
|
#define UNK_TYPE s32
|
|
|
|
|
2023-11-07 16:32:09 -06:00
|
|
|
typedef struct {
|
2024-01-13 19:33:38 -06:00
|
|
|
/* bit 0 */ u8 unk_0 : 3;
|
|
|
|
/* bit 3 */ u8 expertMedal : 1;
|
|
|
|
/* bit 4 */ u8 expertClear : 1;
|
|
|
|
/* bit 5 */ u8 played : 1;
|
|
|
|
/* bit 6 */ u8 normalMedal : 1;
|
|
|
|
/* bit 7 */ u8 normalClear : 1;
|
2023-12-24 13:12:09 -03:00
|
|
|
} PlanetData; // size = 0x1
|
2023-11-22 11:47:38 -03:00
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
/* bit 0 */ u16 unk_0 : 8;
|
|
|
|
/* bit 8 */ u16 unk_8 : 4;
|
|
|
|
/* bit C */ u16 unk_C : 1;
|
|
|
|
/* bit D */ u16 unk_D : 1;
|
|
|
|
/* bit E */ u16 unk_E : 1;
|
|
|
|
/* bit F */ u16 unk_F : 1;
|
2023-11-24 13:11:20 -06:00
|
|
|
} Save_SubStruct_5E; // size = 0x10
|
2023-11-22 11:47:38 -03:00
|
|
|
|
2023-11-24 13:11:20 -06:00
|
|
|
typedef struct{
|
2023-12-24 13:12:09 -03:00
|
|
|
/* 0x00 */ PlanetData planet[16];
|
2023-11-22 11:47:38 -03:00
|
|
|
/* 0x10 */ char pad10[0x4];
|
2023-12-14 08:41:43 -06:00
|
|
|
/* 0x14 */ u8 soundMode;
|
|
|
|
/* 0x15 */ u8 musicVolume;
|
|
|
|
/* 0x16 */ u8 voiceVolume;
|
|
|
|
/* 0x17 */ u8 sfxVolume;
|
2023-11-22 11:47:38 -03:00
|
|
|
/* 0x18 */ u8 unk_18[10][3];
|
|
|
|
/* 0x36 */ u8 unk_36[10];
|
2023-12-04 12:19:33 -03:00
|
|
|
/* 0x40 */ u8 unk_40[10];
|
2023-11-30 19:35:40 -03:00
|
|
|
/* 0x4A */ u16 unk_4A[10];
|
2023-11-24 13:11:20 -06:00
|
|
|
/* 0x5E */ Save_SubStruct_5E unk_5E[10][7];
|
2023-11-22 11:47:38 -03:00
|
|
|
/* 0xEA */ u8 unk_EA;
|
|
|
|
/* 0xEB */ char padEB[0x3];
|
2023-11-24 13:11:20 -06:00
|
|
|
/* 0xEE */ char padEE[0x10];
|
|
|
|
} SaveData; // size = 0xFE
|
2023-11-22 11:47:38 -03:00
|
|
|
|
|
|
|
typedef struct {
|
2023-11-24 13:11:20 -06:00
|
|
|
/* 0x00 */ union {
|
2023-11-26 15:27:05 -06:00
|
|
|
u8 raw[sizeof(SaveData)];
|
|
|
|
SaveData data;
|
2023-11-24 13:11:20 -06:00
|
|
|
};
|
|
|
|
/* 0xFE */ u16 checksum;
|
2023-11-25 17:08:39 -03:00
|
|
|
} Save; // size = 0x100
|
2023-11-24 13:11:20 -06:00
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
/* 0x000 */ Save save;
|
|
|
|
/* 0x100 */ Save backup;
|
2023-11-12 16:49:03 -06:00
|
|
|
} SaveFile; // size = 0x200
|
2023-11-07 16:32:09 -06:00
|
|
|
|
2023-11-22 08:56:29 -06:00
|
|
|
typedef struct {
|
|
|
|
/* 0x00 */ u8 unk_00;
|
2023-12-14 08:41:43 -06:00
|
|
|
/* 0x01 */ char pad01[0x1];
|
|
|
|
/* 0x02 */ u16 unk_02;
|
|
|
|
/* 0x04 */ Vec3f pos;
|
|
|
|
/* 0x10 */ f32 unk_10;
|
|
|
|
/* 0x14 */ char pad14[0x14];
|
|
|
|
} UnkEntity28; // size = 0x28
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
/* 0x00 */ u8 mode;
|
|
|
|
/* 0x02 */ u16 timer;
|
|
|
|
/* 0x04 */ Vec3f unk_04;
|
|
|
|
/* 0x10 */ Vec3f unk_10;
|
|
|
|
/* 0x1C */ f32 unk_1C;
|
|
|
|
/* 0x20 */ f32 unk_20;
|
|
|
|
/* 0x24 */ f32 unk_24;
|
|
|
|
/* 0x28 */ f32 unk_28;
|
|
|
|
/* 0x2C */ u8 unk_2C; // possibly a color struct
|
|
|
|
/* 0x2D */ u8 unk_2D;
|
|
|
|
/* 0x2E */ u8 unk_2E;
|
|
|
|
/* 0x2F */ u8 unk_2F;
|
|
|
|
} UnkEntity30; // size = 0x30
|
|
|
|
|
2023-12-06 08:29:49 -05:00
|
|
|
typedef struct {
|
2023-12-19 08:54:50 -06:00
|
|
|
/* 0x00 */ u8 hits;
|
2023-12-13 17:48:05 -05:00
|
|
|
/* 0x04 */ Vec3f pos;
|
2023-12-06 08:29:49 -05:00
|
|
|
/* 0x10 */ f32 unk_10;
|
|
|
|
/* 0x14 */ char pad14[0x4];
|
2023-12-19 08:54:50 -06:00
|
|
|
/* 0x18 */ u16 timer;
|
2023-12-14 08:41:43 -06:00
|
|
|
} UnkEntity1C; // size = 0x1C
|
2023-12-06 08:29:49 -05:00
|
|
|
|
2024-01-04 12:53:38 -03:00
|
|
|
typedef struct {
|
|
|
|
/* 0x00 */ f32 unk_00;
|
|
|
|
/* 0x04 */ f32 unk_04;
|
|
|
|
/* 0x08 */ f32 unk_08;
|
|
|
|
/* 0x0C */ f32 unk_0C;
|
|
|
|
/* 0x10 */ f32 unk_10;
|
|
|
|
/* 0x14 */ f32 unk_14;
|
2024-01-14 01:30:21 -03:00
|
|
|
} UnkStruct_D_menu_801B8294; // size = 0x18
|
2024-01-04 12:53:38 -03:00
|
|
|
|
2024-01-13 19:33:38 -06:00
|
|
|
typedef enum OptionState {
|
|
|
|
OPTION_WAIT,
|
|
|
|
OPTION_SETUP,
|
|
|
|
OPTION_UPDATE
|
|
|
|
} OptionState;
|
|
|
|
|
2023-10-23 13:01:29 -03:00
|
|
|
#endif
|