mirror of
https://github.com/HarbourMasters/Starship
synced 2026-08-13 04:29:33 -04:00
enemy drawing routines decomped (#28)
* graphics? * more stuff * missed one
This commit is contained in:
+105
-45
@@ -4,6 +4,11 @@
|
||||
#include "global.h"
|
||||
#include "sf64math.h"
|
||||
|
||||
#define UNK_TYPE s32
|
||||
|
||||
typedef s32 (*OverrideLimbDraw)(s32, Gfx**, Vec3f*, Vec3f*, s32*);
|
||||
typedef void (*PostLimbDraw)(s32, Vec3f*, s32*);
|
||||
|
||||
typedef struct {
|
||||
s32 unk0;
|
||||
u16* unk4;
|
||||
@@ -148,12 +153,33 @@ typedef struct {
|
||||
/* 0x14 */ char pad14[0x14];
|
||||
} UnkStruct_D_80175A10; // size = 0x28
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 unk_00;
|
||||
/* 0x01 */ u8 unk_01;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ f32 unk_14;
|
||||
/* 0x18 */ f32 unk_18;
|
||||
/* 0x1C */ f32 unk_1C;
|
||||
/* 0x20 */ f32 unk_20;
|
||||
/* 0x24 */ f32 unk_24;
|
||||
/* 0x28 */ f32 unk_28;
|
||||
/* 0x2C */ s8 unk_2C;
|
||||
/* 0x30 */ f32 unk_30;
|
||||
/* 0x34 */ f32 unk_34;
|
||||
/* 0x38 */ f32 unk_38;
|
||||
} UnkStruct_D_80161630; // size = 0x3C
|
||||
|
||||
typedef struct UnkStruct_D_80178280 {
|
||||
/* 0x000 */ char pad0[0xC];
|
||||
/* 0x00C */ f32 unk_00C;
|
||||
/* 0x010 */ char pad10[0x30];
|
||||
/* 0x040 */ Vec3f unk_40;
|
||||
/* 0x04C */ char pad4C[0xC];
|
||||
/* 0x010 */ char pad10[0x24];
|
||||
/* 0x034 */ f32 unk_034;
|
||||
/* 0x038 */ char pad38[8];
|
||||
/* 0x040 */ Vec3f unk_040;
|
||||
/* 0x04C */ Vec3f unk_04C;
|
||||
/* 0x058 */ f32 unk_058;
|
||||
/* 0x05C */ f32 unk_05C;
|
||||
/* 0x060 */ char pad060[0x14];
|
||||
@@ -174,17 +200,24 @@ typedef struct UnkStruct_D_80178280 {
|
||||
/* 0x110 */ f32 unk_110;
|
||||
/* 0x114 */ f32 unk_114;
|
||||
/* 0x118 */ f32 unk_118;
|
||||
/* 0x11C */ char pad11C[8];
|
||||
/* 0x11C */ char pad11C[4];
|
||||
/* 0x120 */ f32 unk_120;
|
||||
/* 0x124 */ f32 unk_124;
|
||||
/* 0x128 */ char pad128[0x10];
|
||||
/* 0x138 */ f32 unk_138;
|
||||
/* 0x13C */ char pad13C[0x8C];
|
||||
/* 0x13C */ char pad13C[8];
|
||||
/* 0x144 */ f32 unk_144;
|
||||
/* 0x148 */ char pad148[0x54];
|
||||
/* 0x19C */ s32 unk_19C;
|
||||
/* 0x1A0 */ char pad1A0[0x28];
|
||||
/* 0x1C8 */ s32 unk_1C8;
|
||||
/* 0x1CC */ s32 unk_1CC;
|
||||
/* 0x1D0 */ s32 unk_1D0;
|
||||
/* 0x1D4 */ char pad1D4[0x20];
|
||||
/* 0x1F4 */ s32 unk_1F4;
|
||||
/* 0x1F8 */ char pad1F8[0x18];
|
||||
/* 0x1F8 */ char pad1F8[0xC];
|
||||
/* 0x204 */ s32 unk_204;
|
||||
/* 0x208 */ char pad208[8];
|
||||
/* 0x210 */ s32 unk_210;
|
||||
/* 0x214 */ char pad214[0x10];
|
||||
/* 0x224 */ s32 unk_224;
|
||||
@@ -202,10 +235,10 @@ typedef struct UnkStruct_D_80178280 {
|
||||
/* 0x2B8 */ char pad2B8[0x4];
|
||||
/* 0x2BC */ f32 unk_2BC;
|
||||
/* 0x2C0 */ char pad2C0[0x1A0];
|
||||
/* 0x460 */ f32 unk_460[1]; // might be Vec3f
|
||||
/* 0x464 */ char pad464[0x38];
|
||||
/* 0x49C */ u8 unk_49C;
|
||||
/* 0x49D */ u8 unk_49D;
|
||||
/* 0x460 */ Vec3f unk_460[1];
|
||||
/* 0x46C */ char pad46C[0x30];
|
||||
/* 0x49C */ u8 unk_49C; // could be array
|
||||
/* 0x49C */ u8 unk_49D;
|
||||
/* 0x49E */ char pad49E[0x42];
|
||||
} UnkStruct_D_80178280; // size = 0x4E0 Might be Player
|
||||
|
||||
@@ -228,20 +261,25 @@ typedef struct {
|
||||
} Object; // size = 0x1C
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ char unk0[0x8];
|
||||
/* 0x08 */ void (*unk_8)(Object*);
|
||||
/* 0x0C */ void* unk_C;
|
||||
/* 0x00 */ void (*unk_00)(Object*);
|
||||
/* 0x00 */ u8 unk_04;
|
||||
/* 0x08 */ void (*unk_08)(Object*);
|
||||
/* 0x0C */ void* unk_0C;
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ char unk14[0x2];
|
||||
/* 0x14 */ s16 unk_14;
|
||||
/* 0x16 */ s16 unk_16;
|
||||
/* 0x18 */ char unk18[0x8];
|
||||
/* 0x18 */ u8 unk_18;
|
||||
/* 0x19 */ u8 unk_19;
|
||||
/* 0x1C */ f32 unk_1C;
|
||||
/* 0x20 */ u8 unk_20;
|
||||
} ObjectStruct_1C; // size = 0x24
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Object obj;
|
||||
/* 0x1C */ ObjectStruct_1C unk_1C;
|
||||
/* 0x40 */ char unk40[0x18];
|
||||
/* 0x40 */ char unk40[0x8];
|
||||
/* 0x48 */ Vec3f unk_48;
|
||||
/* 0x54 */ f32 unk_54;
|
||||
} Object_58; // size = 0x58
|
||||
|
||||
typedef struct {
|
||||
@@ -256,8 +294,12 @@ typedef struct {
|
||||
/* 0x1C */ f32 unk_1C;
|
||||
/* 0x20 */ f32 unk_20;
|
||||
/* 0x24 */ f32 unk_24;
|
||||
/* 0x28 */ char pad28[8];
|
||||
} UnkStruct_D_80174750;
|
||||
/* 0x28 */ f32 unk_28;
|
||||
/* 0x2C */ u8 unk_2C; // possibly a color struct
|
||||
/* 0x2D */ u8 unk_2D;
|
||||
/* 0x2E */ u8 unk_2E;
|
||||
/* 0x2F */ u8 unk_2F;
|
||||
} UnkStruct_D_80174750; // size = 0x30
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ Object obj;
|
||||
@@ -270,8 +312,8 @@ typedef struct {
|
||||
/* 0x60 */ f32 unk_60;
|
||||
/* 0x64 */ f32 unk_64;
|
||||
/* 0x68 */ char pad68[8];
|
||||
/* 0x70 */ f32 unk_70;
|
||||
/* 0x74 */ char pad74[0xC];
|
||||
/* 0x70 */ Vec3f unk_70;
|
||||
/* 0x7C */ char pad7C[4];
|
||||
} Object_80; // size = 0x80
|
||||
|
||||
typedef struct {
|
||||
@@ -281,7 +323,7 @@ typedef struct {
|
||||
/* 0x44 */ char pad44[1];
|
||||
/* 0x45 */ u8 unk_45; // could be short loaded as u8
|
||||
/* 0x46 */ s8 unk_46;
|
||||
/* 0x47 */ char pad47[5];
|
||||
/* 0x48 */ s32 unk_48;
|
||||
} Object_4C; // size = 0x4C
|
||||
|
||||
typedef struct {
|
||||
@@ -297,7 +339,7 @@ typedef struct {
|
||||
/* 0x50 */ f32 unk_50;
|
||||
/* 0x54 */ f32 unk_54;
|
||||
/* 0x58 */ f32 unk_58;
|
||||
/* 0x5C */ f32 unk_5C[3]; // could be Vec3f
|
||||
/* 0x5C */ Vec3f unk_5C;
|
||||
/* 0x68 */ f32 unk_68;
|
||||
} Object_6C; // size 0x6C
|
||||
|
||||
@@ -316,18 +358,17 @@ typedef struct {
|
||||
/* 0x54 */ f32 unk_54;
|
||||
/* 0x58 */ f32 unk_58;
|
||||
/* 0x5C */ f32 unk_5C;
|
||||
/* 0x60 */ char pad60[0xC];
|
||||
/* 0x60 */ Vec3f unk_60;
|
||||
/* 0x6C */ f32 unk_6C;
|
||||
/* 0x70 */ f32 unk_70;
|
||||
/* 0x74 */ char pad74[0xC];
|
||||
/* 0x80 */ f32 unk_80[1]; // unknown size. Could be Vec3f
|
||||
/* 0x84 */ char pad84[0x8];
|
||||
/* 0x80 */ Vec3f unk_80;
|
||||
} Object_8C; // size 0x8C
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ Object obj;
|
||||
/* 0x01C */ ObjectStruct_1C unk_01C;
|
||||
/* 0x040 */ s32 unk_40;
|
||||
/* 0x040 */ s32 unk_040;
|
||||
/* 0x044 */ char unk_44[0xA];
|
||||
/* 0x04E */ s16 unk_04E;
|
||||
/* 0x050 */ s16 unk_050;
|
||||
@@ -337,31 +378,43 @@ typedef struct {
|
||||
/* 0x058 */ s16 unk_058;
|
||||
/* 0x05A */ s16 unk_05A;
|
||||
/* 0x05C */ s16 unk_05C;
|
||||
/* 0x05E */ char pad5E[4];
|
||||
/* 0x05E */ u8 unk_05E;
|
||||
/* 0x05F */ char pad5F[3];
|
||||
/* 0x062 */ s8 unk_062;
|
||||
/* 0x063 */ char pad63[9];
|
||||
/* 0x06C */ f32 unk_6C;
|
||||
/* 0x070 */ f32 unk_70;
|
||||
/* 0x074 */ f32 unk_74;
|
||||
/* 0x063 */ char pad63[5];
|
||||
/* 0x068 */ f32 unk_068;
|
||||
/* 0x06C */ f32 unk_06C;
|
||||
/* 0x070 */ f32 unk_070;
|
||||
/* 0x074 */ f32 unk_074;
|
||||
/* 0x078 */ char pad78[0xC];
|
||||
/* 0x084 */ f32 unk_84;
|
||||
/* 0x088 */ char pad88[0x54];
|
||||
/* 0x084 */ f32 unk_084;
|
||||
/* 0x088 */ char pad88[0x3E];
|
||||
/* 0x0C6 */ u16 unk_0C6;
|
||||
/* 0x0C8 */ char padC8[1];
|
||||
/* 0x0C9 */ u8 unk_0C9;
|
||||
/* 0x0CA */ char padCA[0x12];
|
||||
/* 0x0DC */ f32 unk_0DC;
|
||||
/* 0x0E0 */ f32 unk_0E0;
|
||||
/* 0x0E4 */ char padE4[0x314];
|
||||
/* 0x0E4 */ f32 unk_0E4;
|
||||
/* 0x0E8 */ char padE8[0x28];
|
||||
/* 0x110 */ f32 unk_110;
|
||||
/* 0x114 */ char pad114[0x1F4];
|
||||
/* 0x308 */ Vec3f unk_308;
|
||||
/* 0x314 */ char pad314[0xE4];
|
||||
/* 0x3F8 */ f32 unk_3F8;
|
||||
/* 0x3FC */ f32 unk_3FC;
|
||||
/* 0x400 */ char pad400[8];
|
||||
/* 0x3FC */ Vec3f unk_3FC;
|
||||
} Object_408; // size = 0x408
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ Object obj;
|
||||
/* 0x01C */ ObjectStruct_1C unk_01C;
|
||||
/* 0x040 */ s32 unk_040;
|
||||
/* 0x044 */ u8 unk_44;
|
||||
/* 0x046 */ s16 unk_46;
|
||||
/* 0x048 */ s16 unk_48;
|
||||
/* 0x04A */ char pad4A[6];
|
||||
/* 0x044 */ u8 unk_044;
|
||||
/* 0x046 */ s16 unk_046;
|
||||
/* 0x048 */ s16 unk_048;
|
||||
/* 0x04A */ s16 unk_04A;
|
||||
/* 0x04C */ char pad4C[2];
|
||||
/* 0x04E */ s16 unk_04E;
|
||||
/* 0x050 */ s32 unk_050;
|
||||
/* 0x054 */ s32 unk_054;
|
||||
/* 0x058 */ s32 unk_058;
|
||||
@@ -375,9 +428,11 @@ typedef struct {
|
||||
/* 0x078 */ s32 unk_078;
|
||||
/* 0x07C */ s32 unk_07C;
|
||||
/* 0x080 */ s32 unk_080;
|
||||
/* 0x084 */ char pad84[8];
|
||||
/* 0x084 */ char pad84[4];
|
||||
/* 0x088 */ s32 unk_88;
|
||||
/* 0x08C */ s32 unk_8C;
|
||||
/* 0x090 */ char pad90[0x24];
|
||||
/* 0x090 */ char pad90[0x20];
|
||||
/* 0x0B0 */ s32 unk_0B0;
|
||||
/* 0x0B4 */ s16 unk_0B4;
|
||||
/* 0x0B6 */ s16 unk_0B6;
|
||||
/* 0x0B8 */ s16 unk_0B8;
|
||||
@@ -405,7 +460,7 @@ typedef struct {
|
||||
/* 0x0F4 */ f32 unk_0F4;
|
||||
/* 0x0F8 */ f32 unk_0F8; // angle
|
||||
/* 0x0FC */ f32 unk_0FC;
|
||||
/* 0x100 */ f32 unk_100[3]; // may be Vec3f
|
||||
/* 0x100 */ Vec3f unk_100; // may be Vec3f
|
||||
/* 0x10C */ f32 unk_10C;
|
||||
/* 0x110 */ f32 unk_110;
|
||||
/* 0x114 */ f32 unk_114;
|
||||
@@ -423,7 +478,11 @@ typedef struct {
|
||||
/* 0x14C */ f32 unk_14C;
|
||||
/* 0x150 */ f32 unk_150;
|
||||
/* 0x154 */ f32 unk_154;
|
||||
/* 0x158 */ char pad158[0x14];
|
||||
/* 0x158 */ f32 unk_158;
|
||||
/* 0x15C */ char pad15C[4];
|
||||
/* 0x160 */ f32 unk_160;
|
||||
/* 0x164 */ f32 unk_164;
|
||||
/* 0x168 */ f32 unk_168;
|
||||
/* 0x16C */ f32 unk_16C;
|
||||
/* 0x170 */ char pad170[8];
|
||||
/* 0x178 */ f32 unk_178;
|
||||
@@ -431,7 +490,8 @@ typedef struct {
|
||||
/* 0x180 */ f32 unk_180;
|
||||
/* 0x184 */ f32 unk_184;
|
||||
/* 0x188 */ f32 unk_188;
|
||||
/* 0x18C */ char pad18C[0x150];
|
||||
/* 0x18C */ Vec3f unk_18C; // could be joint table
|
||||
/* 0x198 */ char pad198[0x144];
|
||||
/* 0x2DC */ Vec3f unk_2DC;
|
||||
/* 0x2E8 */ Vec3f unk_2E8;
|
||||
} Object_2F4; // size = 0x2F4
|
||||
|
||||
Reference in New Issue
Block a user