mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-03-21 17:55:13 -05:00
420 lines
9.9 KiB
C
420 lines
9.9 KiB
C
#ifndef POKEPLATINUM_SPL_H
|
|
#define POKEPLATINUM_SPL_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "struct_defs/struct_020147B8.h"
|
|
|
|
typedef void * (* UnkFuncPtr_0209CD00)(u32);
|
|
|
|
typedef union {
|
|
u32 unk_00;
|
|
struct {
|
|
u32 unk_04_0 : 4;
|
|
u32 unk_04_4 : 2;
|
|
u32 unk_04_6 : 2;
|
|
u32 unk_05_0 : 1;
|
|
u32 unk_05_1 : 1;
|
|
u32 unk_05_2 : 1;
|
|
u32 unk_05_3 : 1;
|
|
u32 unk_05_4 : 1;
|
|
u32 unk_05_5 : 1;
|
|
u32 unk_05_6 : 1;
|
|
u32 unk_05_7 : 1;
|
|
u32 unk_06_0 : 1;
|
|
u32 unk_06_1 : 2;
|
|
u32 unk_06_3 : 1;
|
|
u32 unk_06_4 : 1;
|
|
u32 unk_06_5 : 1;
|
|
u32 unk_06_6 : 1;
|
|
u32 unk_06_7 : 1;
|
|
u32 unk_07_0 : 1;
|
|
u32 unk_07_1 : 1;
|
|
u32 unk_07_2 : 1;
|
|
u32 unk_07_3 : 1;
|
|
u32 unk_07_4 : 1;
|
|
u32 unk_07_5 : 1;
|
|
u32 unk_07_6 : 1;
|
|
u32 unk_07_7 : 1;
|
|
};
|
|
} UnkSPLUnion1; // size=0x4
|
|
|
|
typedef union {
|
|
u16 unk_00;
|
|
struct {
|
|
u16 unk_02_0 : 1;
|
|
u16 unk_02_1 : 1;
|
|
u16 unk_02_2 : 1;
|
|
u16 unk_02_3 : 2;
|
|
u16 unk_02_5 : 1;
|
|
u16 unk_02_6 : 1;
|
|
u16 unk_02_7 : 2;
|
|
u16 unk_03_1 : 2;
|
|
u16 unk_03_3 : 1;
|
|
u16 reserved_03_4 : 4;
|
|
};
|
|
} UnkSPLUnion2; // size=0x2
|
|
|
|
typedef union {
|
|
u16 val1;
|
|
struct {
|
|
u16 val2_00 : 8;
|
|
u16 val2_01 : 8;
|
|
};
|
|
} UnkSPLUnion3; // size=0x2
|
|
|
|
typedef union {
|
|
u32 unk_00;
|
|
struct {
|
|
u32 unk_04_0 : 8;
|
|
u32 unk_05_0 : 8;
|
|
u32 unk_06_0 : 8;
|
|
u32 unk_07_0 : 8;
|
|
};
|
|
} UnkSPLUnion4; // size=0x4
|
|
|
|
typedef union {
|
|
u32 val1;
|
|
struct {
|
|
u32 val2_00_0 : 4;
|
|
u32 val2_00_4 : 4;
|
|
u32 val2_01_0 : 4;
|
|
u32 val2_01_4 : 2;
|
|
u32 val2_01_6 : 2;
|
|
u32 val2_02_0 : 1;
|
|
u32 val2_02_1 : 1;
|
|
u32 val2_02_2 : 8;
|
|
u32 val2_03_2 : 6;
|
|
};
|
|
} UnkSPLUnion5;
|
|
|
|
typedef struct UnkSPLStruct8_t {
|
|
struct UnkSPLStruct8_t * unk_00;
|
|
struct UnkSPLStruct8_t * unk_04;
|
|
VecFx32 unk_08;
|
|
VecFx32 unk_14;
|
|
u16 unk_20;
|
|
s16 unk_22;
|
|
u16 unk_24;
|
|
u16 unk_26;
|
|
u16 unk_28;
|
|
u16 unk_2A;
|
|
struct {
|
|
u16 unk_00 : 8;
|
|
u16 unk_01 : 8;
|
|
} unk_2C;
|
|
struct {
|
|
u16 unk_00_0 : 5;
|
|
u16 unk_00_5 : 5;
|
|
u16 unk_01_2 : 6;
|
|
} unk_2E;
|
|
fx32 unk_30;
|
|
fx16 unk_34;
|
|
GXRgb unk_36;
|
|
VecFx32 unk_38;
|
|
} UnkSPLStruct8; // size=0x44
|
|
|
|
typedef struct UnkSPLStruct3_t {
|
|
UnkSPLStruct8 * unk_00;
|
|
u8 padding_04[8];
|
|
} UnkSPLStruct3; // size=0xc
|
|
|
|
typedef struct {
|
|
u8 padding_00[4];
|
|
} UnkSPLStruct7;
|
|
|
|
typedef struct UnkSPLStruct9_t {
|
|
UnkSPLUnion1 unk_00;
|
|
VecFx32 unk_04;
|
|
fx32 unk_10;
|
|
fx32 unk_14;
|
|
fx32 unk_18;
|
|
VecFx16 unk_1C;
|
|
GXRgb unk_22;
|
|
fx32 unk_24;
|
|
fx32 unk_28;
|
|
fx32 unk_2C;
|
|
fx16 unk_30;
|
|
u16 unk_32;
|
|
s16 unk_34;
|
|
s16 unk_36;
|
|
u16 unk_38;
|
|
u16 reserved_3A;
|
|
u16 unk_3C;
|
|
u16 unk_40;
|
|
struct {
|
|
u32 unk_00_0 : 8;
|
|
u32 unk_01_0 : 8;
|
|
u32 unk_02_0 : 8;
|
|
u32 reserved_03_0 : 8;
|
|
} unk_44;
|
|
|
|
struct {
|
|
u32 unk_00_0 : 8;
|
|
u32 unk_01_0 : 8;
|
|
u32 unk_02_0 : 8;
|
|
u32 unk_03_0 : 8;
|
|
u32 unk_04_0 : 8;
|
|
u32 unk_05_0 : 16;
|
|
u32 unk_07_0 : 2;
|
|
u32 unk_07_2 : 2;
|
|
u32 unk_07_4 : 3;
|
|
u32 unk_07_7 : 1;
|
|
u32 unk_08_0 : 1;
|
|
u32 unk_08_1 : 1;
|
|
u32 unk_08_2 : 3;
|
|
u32 unk_08_5 : 27;
|
|
} unk_48;
|
|
fx16 unk_54;
|
|
fx16 unk_56;
|
|
struct {
|
|
u32 unk_00_0 : 8;
|
|
u32 reserved_01_0 : 24;
|
|
} unk_58;
|
|
} UnkSPLStruct9; // size=0x5C
|
|
|
|
typedef struct UnkSPLStruct10_t {
|
|
fx16 unk_00;
|
|
fx16 unk_02;
|
|
fx16 unk_04;
|
|
UnkSPLUnion3 unk_06;
|
|
struct {
|
|
u16 unk_00_0 : 1;
|
|
u16 reserved_00_1 : 15;
|
|
} unk_08;
|
|
u16 reserved_0A;
|
|
} UnkSPLStruct10; // size=0xc
|
|
|
|
typedef struct UnkSPLStruct11_t {
|
|
GXRgb unk_00;
|
|
GXRgb unk_02;
|
|
UnkSPLUnion4 unk_04;
|
|
struct {
|
|
u16 unk_00_0 : 1;
|
|
u16 unk_00_1 : 1;
|
|
u16 unk_00_2 : 1;
|
|
u16 unk_00_3 : 13;
|
|
} unk_08;
|
|
u16 reserved_0A;
|
|
} UnkSPLStruct11;
|
|
|
|
typedef struct UnkSPLStruct12_t {
|
|
union {
|
|
u16 val1;
|
|
struct {
|
|
u16 val2_00_0 : 5;
|
|
u16 val2_00_5 : 5;
|
|
u16 val2_01_2 : 5;
|
|
u16 val2_reserved_01_7 : 1;
|
|
};
|
|
} unk_00;
|
|
struct {
|
|
u16 unk_00_0 : 8;
|
|
u16 unk_01_0 : 1;
|
|
u16 unk_01_1 : 7;
|
|
} unk_02;
|
|
UnkSPLUnion3 unk_04;
|
|
u16 reserved_06;
|
|
} UnkSPLStruct12; // size=0x8
|
|
|
|
typedef struct UnkSPLStruct13_t {
|
|
u8 unk_00[8];
|
|
struct {
|
|
u32 unk_00_0 : 8;
|
|
u32 unk_01_0 : 8;
|
|
u32 unk_02_0 : 1;
|
|
u32 unk_02_1 : 1;
|
|
u32 reserved_02_2 : 14;
|
|
} unk_08;
|
|
} UnkSPLStruct13;
|
|
|
|
typedef struct UnkSPLStruct14_t {
|
|
UnkSPLUnion2 unk_00;
|
|
fx16 unk_02;
|
|
fx16 unk_04;
|
|
u16 unk_06;
|
|
struct {
|
|
u16 unk_00_0 : 8;
|
|
u16 unk_01_0 : 8;
|
|
} unk_08;
|
|
GXRgb unk_0A;
|
|
struct {
|
|
u32 unk_00_0 : 8;
|
|
u32 unk_01_0 : 8;
|
|
u32 unk_02_0 : 8;
|
|
u32 unk_03_0 : 8;
|
|
u32 unk_04_0 : 2;
|
|
u32 unk_04_2 : 2;
|
|
u32 unk_04_4 : 1;
|
|
u32 unk_04_5 : 1;
|
|
u32 unk_04_6 : 1;
|
|
u32 reserved_04_7 : 25;
|
|
} unk_0C;
|
|
} UnkSPLStruct14;
|
|
|
|
typedef struct UnkSPLStruct15_t {
|
|
u32 unk_00;
|
|
UnkSPLUnion5 unk_04;
|
|
u32 unk_08;
|
|
u32 unk_0C;
|
|
u32 unk_10;
|
|
u32 unk_14;
|
|
u32 unk_18;
|
|
u32 unk_1C;
|
|
} UnkSPLStruct15;
|
|
|
|
typedef struct UnkSPLStruct4_t {
|
|
UnkSPLStruct9 * unk_00;
|
|
UnkSPLStruct10 * unk_04;
|
|
UnkSPLStruct11 * unk_08;
|
|
UnkSPLStruct12 * unk_0C;
|
|
UnkSPLStruct13 * unk_10;
|
|
UnkSPLStruct14 * unk_14;
|
|
UnkStruct_020147B8 * unk_18;
|
|
u16 unk_1C;
|
|
u16 reserved_1E;
|
|
} UnkSPLStruct4;
|
|
|
|
typedef struct UnkSPLStruct5_t {
|
|
const void * unk_00;
|
|
u32 unk_04;
|
|
u32 unk_08;
|
|
UnkSPLUnion5 unk_0C;
|
|
u16 unk_10;
|
|
u16 unk_12;
|
|
} UnkSPLStruct5;
|
|
|
|
typedef struct UnkSPLStruct6_t {
|
|
struct UnkSPLStruct6_t * unk_00;
|
|
struct UnkSPLStruct6_t * unk_04;
|
|
UnkSPLStruct3 unk_08;
|
|
UnkSPLStruct3 unk_4C;
|
|
UnkSPLStruct4 * unk_90;
|
|
UnkSPLStruct7 unk_94;
|
|
VecFx32 unk_98;
|
|
VecFx32 unk_A4;
|
|
VecFx32 unk_B0;
|
|
u16 unk_BC;
|
|
fx16 unk_BE;
|
|
VecFx16 unk_C0;
|
|
u16 unk_C6;
|
|
fx32 unk_C8;
|
|
fx32 unk_CC;
|
|
fx32 unk_D0;
|
|
fx32 unk_D4;
|
|
fx32 unk_D8;
|
|
fx32 unk_DC;
|
|
u16 unk_E0;
|
|
GXRgb unk_E2;
|
|
fx32 unk_E4;
|
|
fx16 unk_E8;
|
|
fx16 unk_EA;
|
|
fx16 unk_EC;
|
|
fx16 unk_EE;
|
|
struct {
|
|
u32 unk_00_0 : 8;
|
|
u32 unk_01_0 : 8;
|
|
u32 unk_02_0 : 3;
|
|
u32 unk_02_3 : 13;
|
|
} unk_F0;
|
|
VecFx16 unk_F4;
|
|
VecFx16 unk_FA;
|
|
void (* unk_100)(struct UnkSPLStruct6_t *, unsigned int);
|
|
void * unk_104;
|
|
union {
|
|
u32 unk_108_val1;
|
|
u16 unk_108_val2[2];
|
|
u8 unk_108_val3[4];
|
|
} unk_108;
|
|
} UnkSPLStruct6;
|
|
|
|
typedef struct UnkSPLStruct2_t {
|
|
UnkSPLStruct6 * unk_00;
|
|
int unk_04;
|
|
UnkSPLStruct6 * unk_08;
|
|
} UnkSPLStruct2; // size=0xc
|
|
|
|
typedef struct UnkSPLStruct1_t {
|
|
UnkFuncPtr_0209CD00 unk_00;
|
|
UnkSPLStruct2 unk_04;
|
|
UnkSPLStruct2 unk_10;
|
|
UnkSPLStruct3 unk_1C;
|
|
UnkSPLStruct4 * unk_28;
|
|
UnkSPLStruct5 * unk_2C;
|
|
u16 unk_30;
|
|
u16 unk_32;
|
|
u16 unk_34;
|
|
u16 unk_36;
|
|
struct {
|
|
u32 unk_00_0 : 6;
|
|
u32 unk_00_6 : 6;
|
|
u32 unk_01_4 : 6;
|
|
u32 unk_02_2 : 6;
|
|
u32 unk_03_0 : 1;
|
|
u32 unk_03_7 : 7;
|
|
} unk_38;
|
|
s32 unk_3C;
|
|
struct {
|
|
UnkSPLStruct6 * unk_00;
|
|
const MtxFx43 * unk_04;
|
|
} unk_40;
|
|
u16 unk_48;
|
|
u16 unk_4A;
|
|
} UnkSPLStruct1; // size=0x4c
|
|
|
|
void SPL_0209C400(UnkSPLStruct1 * param0);
|
|
void SPL_0209C444(UnkSPLStruct1 * param0, UnkSPLStruct6 * param1);
|
|
UnkSPLStruct6 * SPL_0209C4D8(UnkSPLStruct1 * param0, int param1, void (* param2)(struct UnkSPLStruct6_t *));
|
|
void SPL_0209C5E0(UnkSPLStruct1 * param0, const MtxFx43 * param1);
|
|
UnkSPLStruct6 * SPL_0209C56C(UnkSPLStruct1 * param0, int param1, const VecFx32 * param2);
|
|
void SPL_0209C6A8(UnkSPLStruct1 * param0);
|
|
BOOL SPL_0209C7E0(UnkSPLStruct1 * param0);
|
|
BOOL SPL_0209C7F4(UnkSPLStruct1 * param0);
|
|
BOOL SPL_0209C808(UnkSPLStruct1 * param0, u32 (* param1)(u32, BOOL));
|
|
BOOL SPL_0209C8BC(UnkSPLStruct1 * param0, u32 (* param1)(u32, BOOL));
|
|
void SPL_0209C988(UnkSPLStruct1 * param0, const void * param1);
|
|
UnkSPLStruct1 * SPL_0209CD00(UnkFuncPtr_0209CD00 param0, u16 param1, u16 param2, u16 param3, u16 param4, u16 param5);
|
|
|
|
void SPL_020A1E30(const void * param0, UnkSPLStruct8 * param1, VecFx32 * param2, struct UnkSPLStruct6_t * param3);
|
|
void SPL_020A1EC4(const void * param0, UnkSPLStruct8 * param1, VecFx32 * param2, struct UnkSPLStruct6_t * param3);
|
|
void SPL_020A1FE0(const void * param0, UnkSPLStruct8 * param1, VecFx32 * param2, struct UnkSPLStruct6_t * param3);
|
|
void SPL_020A20B8(const void * param0, UnkSPLStruct8 * param1, VecFx32 * param2, struct UnkSPLStruct6_t * param3);
|
|
void SPL_020A213C(const void * param0, UnkSPLStruct8 * param1, VecFx32 * param2, struct UnkSPLStruct6_t * param3);
|
|
void SPL_020A2204(const void * param0, UnkSPLStruct8 * param1, VecFx32 * param2, struct UnkSPLStruct6_t * param3);
|
|
|
|
static inline void SPL_UnkInline1 (UnkSPLStruct6 * param0, const VecFx32 * param1)
|
|
{
|
|
param0->unk_98.x = param1->x + param0->unk_90->unk_00->unk_04.x;
|
|
param0->unk_98.y = param1->y + param0->unk_90->unk_00->unk_04.y;
|
|
param0->unk_98.z = param1->z + param0->unk_90->unk_00->unk_04.z;
|
|
}
|
|
|
|
static inline void SPL_UnkInline2 (UnkSPLStruct6 * param0, fx32 param1)
|
|
{
|
|
param0->unk_98.x = param1 + param0->unk_90->unk_00->unk_04.x;
|
|
}
|
|
|
|
static inline void SPL_UnkInline3 (UnkSPLStruct6 * param0, fx32 param1)
|
|
{
|
|
param0->unk_98.y = param1 + param0->unk_90->unk_00->unk_04.y;
|
|
}
|
|
|
|
static inline void SPL_UnkInline4 (UnkSPLStruct6 * param0, fx32 param1)
|
|
{
|
|
param0->unk_98.z = param1 + param0->unk_90->unk_00->unk_04.z;
|
|
}
|
|
|
|
static inline void SPL_UnkInline5 (UnkSPLStruct6 * param0, const VecFx16 * param1)
|
|
{
|
|
param0->unk_C0 = *param1;
|
|
}
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // POKEPLATINUM_SPL_H
|