Couple matches, non matches, and non equivalents. (#437)

* Early WIP func_8002BAB0

* More func_8002BAB0 WIP: 12266

* func_8002BAB0 : 9332

* func_8002BAB0 : 425

* func_8002BAB0 : 55

* func_8002BAB0 NON_MATCHING

* Label magic code usages

* Hide warnings about switches not containing all possible enum values, and fix other warnings.

* WIP func_80074B34

* Half assed func_80074EB8 attempt. Utter failure.

* Identify some vars for the fish entry init, and fix it's prototype.

* Near match obj_init_fish

* Fix INCONSISTENT function signatures

* Update fish entry

* Match func_800AFC3C

* A little cleanup

* Match func_800B3E64

* Update README
This commit is contained in:
Ryan Myers
2023-11-30 11:18:56 -05:00
committed by GitHub
parent 76af1da31f
commit 1df542bb56
18 changed files with 632 additions and 680 deletions
+11 -6
View File
@@ -24,12 +24,6 @@ typedef struct LevelObjectEntry_Scenery {
/* 0x0B */ u8 solid;
} LevelObjectEntry_Scenery;
typedef struct LevelObjectEntry_Fish {
/* 0x00 */ LevelObjectEntryCommon common;
/* 0x08 */ u8 pad8[0x4];
/* 0x0C */ u8 unkC[1]; //Unknown size
} LevelObjectEntry_Fish;
typedef struct LevelObjectEntry_Animator {
/* 0x00 */ LevelObjectEntryCommon common;
/* 0x08 */ s8 batchID;
@@ -430,6 +424,17 @@ typedef struct LevelObjectEntry_Butterfly {
/* 0x0B */ u8 unkB;
} LevelObjectEntry_Butterfly;
typedef struct LevelObjectEntry_Fish {
/* 0x00 */ LevelObjectEntryCommon common;
/* 0x08 */ u16 unk8;
/* 0x0A */ u8 unkA;
/* 0x0B */ u8 unkB;
/* 0x0C */ u8 unkC;
/* 0x0D */ u8 unkD;
/* 0x0E */ u8 unkE;
/* 0x0F */ u8 unkF;
} LevelObjectEntry_Fish;
typedef struct LevelObjectEntry_Parkwarden {
/* 0x00 */ LevelObjectEntryCommon common;
} LevelObjectEntry_Parkwarden;
+43 -6
View File
@@ -634,8 +634,8 @@ typedef struct LevelModelSegment {
/* 0x08 */ s32 unk8;
/* 0x0C */ TriangleBatchInfo *batches;
/* 0x10 */ s16 *unk10;
/* 0x14 */ u8 *unk14;
/* 0x18 */ s16 *unk18;
/* 0x14 */ u16 *unk14;
/* 0x18 */ f32 *unk18;
/* 0x1C */ s16 numberOfVertices;
/* 0x1E */ s16 numberOfTriangles;
/* 0x20 */ s16 numberOfBatches;
@@ -1713,9 +1713,10 @@ typedef struct Object_68 {
/* Size: 0x20 bytes */
typedef struct Object_6C {
/* 0x00 */ u8 pad0[0x4];
/* 0x00 */ struct Particle *unk0;
/* 0x04 */ s16 unk4;
/* 0x05 */ u8 pad6[0x4];
/* 0x06 */ u8 unk6;
/* 0x07 */ u8 pad7[0x3];
/* 0x0A */ s16 unkA;
/* 0x0C */ u8 padC[0x14];
} Object_6C;
@@ -1866,6 +1867,36 @@ typedef struct ObjectSegment {
/* 0x0040 */ ObjectHeader *header;
} ObjectSegment;
typedef struct Object_LightData_UnkC_Unk44 {
u8 pad0[8];
Vertex *unk8;
} Object_LightData_UnkC_Unk44;
typedef struct Object_LightData_UnkC {
/* 0x00 */ ObjectTransform trans;
/* 0x18 */ u8 pad18[0x22];
/* 0x3A */ s16 unk3A;
/* 0x3C */ u8 pad3C[0x8];
/* 0x44 */ Object_LightData_UnkC_Unk44 *unk44;
/* 0x48 */ u8 pad48[0x14];
/* 0x5C */ s16 unk5C;
/* 0x5E */ u8 pad5E[0xE];
/* 0x6C */ u8 unk6C;
/* 0x6D */ u8 unk6D;
/* 0x6E */ u8 unk6E;
/* 0x6F */ u8 pad6F[0x6];
/* 0x75 */ u8 unk75;
/* 0x76 */ u8 pad76;
/* 0x77 */ s8 unk77;
} Object_LightData_UnkC;
typedef struct Object_LightData {
/* 0x00 */ u8 pad0[6];
/* 0x06 */ u8 unk6;
/* 0x07 */ u8 pad7[5];
/* 0x0C */ Object_LightData_UnkC **unkC;
} Object_LightData;
/* Size: 0x0630 bytes */
typedef struct Object {
/* 0x0000 */ ObjectSegment segment;
@@ -1881,7 +1912,7 @@ typedef struct Object {
/* 0x0064 */ Object_64 *unk64; //player + 0x98
/* 0x0068 */ Object_68 **unk68; //player + 0x80
/* 0x006C */ Object_6C *unk6C; //player + 0x370
/* 0x0070 */ u32 *lightData;
/* 0x0070 */ Object_LightData **lightData;
/* 0x0074 */ u32 unk74;
/* 0x0078 */ ObjProperties properties;
/* 0x0080 */ void *unk80;
@@ -1912,7 +1943,13 @@ typedef struct GhostHeader {
};
s16 unk2;
};
s16 time; // In frames, where 60 frames = 1 second.
union {
struct {
u8 unk4;
s8 unk5;
};
s16 time; // In frames, where 60 frames = 1 second.
};
s16 nodeCount;
} GhostHeader;