diff options
| author | MegaMech <MegaMech@users.noreply.github.com> | 2022-04-26 16:48:36 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-26 15:48:36 -0700 |
| commit | 2f8a1bfcb663adea7bea935ef1dcb8a2f82d46cb (patch) | |
| tree | f5cd483c48f0c2b4b97089c9648e4ae990d92bcc /include | |
| parent | 626513f90aca28597857768ff5fd45acd1dd9b59 (diff) | |
Actor decomp (#183)
* Actor decomp
Diffstat (limited to 'include')
| -rw-r--r-- | include/actor_types.h | 207 | ||||
| -rw-r--r-- | include/common_structs.h | 51 | ||||
| -rw-r--r-- | include/types.h | 21 |
3 files changed, 61 insertions, 218 deletions
diff --git a/include/actor_types.h b/include/actor_types.h index 2ce7afaf9..2624689ce 100644 --- a/include/actor_types.h +++ b/include/actor_types.h @@ -1,179 +1,46 @@ #include <ultra64.h> #include <macros.h> +#include <common_structs.h> // Made this because there will likely be a lot of structs in this file that will be compiled into one eventually. // This keeps the other files cleaner. -struct choochoo { - s32 unk0; - s16 unk4; - s16 unk6; - s32 unk8; - -}; - -struct choochooTrain { - s32 unk0; - s16 unk4; - s16 unk6; - f32 unk8; - s32 unkC; - s32 unk10; - s32 unk14; - f32 unk18; - s32 unk1C; - s32 unk20; - f32 unk24; - s32 unk28; - s32 unk2C; - s32 unk2E; - s32 unk30; - s32 unk32; - s32 unk34; - s32 unk36; - s32 unk38; -}; - -struct UnkStruct_802976D8 { - s16 unk0; - s16 unk2; - s16 unk4; +struct piranha_plant { + /* 0x00 */ s16 unk0; // 0xC, 0xD, or 0x2B + #ifdef AVOID_UB + /* 0x02 */ u16 unk2; + #else + s16 unk2; // bitflag + #endif + /* 0x04 */ s16 unk4; // Timer? + /* 0x06 */ s16 unk6; // 1 + /* 0x08 */ s16 unk8; + /* 0x0A */ s16 unkA; + /* 0x0C */ f32 unkC; + /* 0x10 */ Vec3s unk10; // Actor rotation + /* 0x18 */ s32 unk18; + /* 0x1C */ f32 unk1C; + /* 0x20 */ s16 unk20; + /* 0x22 */ s16 unk22; + /* 0x24 */ s16 unk24; + /* 0x26 */ s16 unk26; + /* 0x28 */ s16 unk28; + /* 0x2A */ s16 unk2A; }; -// copied from player struct -struct bigboi { - /* 0x0000 */ f32 unk_000; - /* 0x0004 */ f32 unk_004; - /* 0x0008 */ f32 unk_008; - /* 0x000C */ s32 unk_00C; - /* 0x0010 */ char unk_010[0x4]; - /* 0x0014 */ f32 posX; - /* 0x0018 */ f32 unk_018; - /* 0x001C */ f32 unk_01C; - /* 0x0020 */ f32 unk_020; - /* 0x0024 */ f32 rotY; - /* 0x0028 */ f32 rotZ; - /* 0x002C */ s16 unk_02C; - /* 0x002E */ s16 unk_02E; - /* 0x0030 */ s16 unk_030; - /* 0x0032 */ char unk_032[0x2]; - /* 0x0034 */ f32 unk_034; - /* 0x0038 */ s16 unk_038; - s16 unk_03A; - /* 0x003C */ f32 unk_03C; - /* 0x0040 */ char unk_040[0x2]; - /* 0x0042 */ s16 unk_042; - /* 0x0044 */ s16 unk_044; - /* 0x0046 */ s16 unk_046; - /* 0x0048 */ char unk_048[0x10]; - /* 0x0058 */ f32 unk_058; - /* 0x005C */ f32 unk_05C; - /* 0x0060 */ f32 unk_060; - /* 0x0064 */ f32 unk_064; - /* 0x0068 */ f32 unk_068; - /* 0x006C */ f32 unk_06C; - /* 0x0070 */ f32 unk_070; - /* 0x0074 */ f32 unk_074; - /* 0x0078 */ s16 unk_078; - /* 0x007A */ s16 unk_07A; - /* 0x007C */ s32 unk_07C; - /* 0x0080 */ f32 unk_080; - /* 0x0084 */ f32 unk_084; - /* 0x0088 */ f32 unk_088; - /* 0x008C */ f32 unk_08C; - /* 0x0090 */ f32 unk_090; - /* 0x0094 */ f32 unk_094; - /* 0x0098 */ f32 unk_098; - /* 0x009C */ f32 unk_09C; - /* 0x00A0 */ f32 unk_0A0; - /* 0x00A4 */ f32 unk_0A4; - /* 0x00A8 */ s16 unk_0A8; - /* 0x00AA */ s16 unk_0AA; - /* 0x00AC */ s16 unk_0AC; - /* 0x00AE */ s16 unk_0AE; - /* 0x00B0 */ s16 unk_0B0; - /* 0x00B2 */ s16 unk_0B2; - /* 0x00B4 */ s16 unk_0B4; - /* 0x00B6 */ s16 unk_0B6; - /* 0x00B8 */ f32 unk_0B8; - /* 0x00BC */ s32 unk_0BC; - /* 0x00C0 */ s16 unk_0C0; - /* 0x00C2 */ s16 unk_0C2; - /* 0x00C4 */ s16 unk_0C4; - /* 0x00C6 */ s16 unk_0C6; - /* 0x00C8 */ s16 unk_0C8; - /* 0x00CA */ s16 unk_0CA; - /* 0x00CC */ char unk_0CC[0x10]; - /* 0x00DC */ s16 unk_0DC; - /* 0x00DE */ s16 unk_0DE; - /* 0x00E0 */ s16 unk_0E0; - /* 0x00E2 */ s16 unk_0E2; - /* 0x00E4 */ f32 unk_0E4; - /* 0x00E8 */ f32 unk_0E8; - /* 0x00EC */ f32 unk_0EC; - /* 0x00F0 */ f32 unk_0F0; - /* 0x00F4 */ f32 unk_0F4; - /* 0x00F8 */ char unk_0F8[0x2]; - /* 0x00FA */ s16 unk_0FA; - /* 0x00FC */ f32 unk_0FC; - /* 0x0100 */ f32 unk_100; - /* 0x0104 */ f32 unk_104; - /* 0x0108 */ f32 unk_108; - /* 0x010C */ s16 unk_10C; - /* 0x010E */ char unk_10E[0x2]; - /* 0x0110 */ s16 unk_110; - /* 0x0112 */ s16 unk_112; - /* 0x0114 */ s16 unk_114; - /* 0x0116 */ s16 unk_116; - /* 0x0118 */ s16 unk_118; - /* 0x011A */ s16 unk_11A; - /* 0x011C */ f32 unk_11C; - /* 0x0120 */ f32 unk_120; - /* 0x0124 */ f32 unk_124; - /* 0x0128 */ f32 unk_128; - /* 0x012C */ f32 unk_12C; - /* 0x0130 */ f32 unk_130; - /* 0x0134 */ f32 unk_134; - /* 0x0138 */ f32 unk_138; - /* 0x013C */ f32 unk_13C; - /* 0x0140 */ f32 unk_140; - /* 0x0144 */ f32 unk_144; - /* 0x0148 */ f32 unk_148; - /* 0x014C */ char unk_14C[0x4]; - /* 0x0150 */ f32 unk_150[9]; - /* 0x0174 */ f32 unk_174[9]; - /* 0x0198 */ f32 unk_198; - /* 0x019C */ f32 unk_19C; - /* 0x01A0 */ f32 unk_1A0; - /* 0x01A4 */ s8 unk_1A4; - /* 0x01A5 */ s8 unk_1A5; - /* 0x01A6 */ s16 unk_1A6; - /* 0x01A8 */ f32 unk_1A8; - /* 0x01AC */ s32 unk_1AC; - /* 0x01B0 */ f32 unk_1B0; - /* 0x01B4 */ f32 unk_1B4; - /* 0x01B8 */ f32 unk_1B8; - /* 0x01BC */ s8 unk_1BC; - /* 0x01BD */ s8 unk_1BD; - /* 0x01BE */ s16 unk_1BE; - /* 0x01C0 */ f32 unk_1C0; - /* 0x01C4 */ s32 unk_1C4; - /* 0x01C8 */ f32 unk_1C8; - /* 0x01CC */ f32 unk_1CC; - /* 0x01D0 */ f32 unk_1D0; - /* 0x01D4 */ s8 unk_1D4; - /* 0x01D5 */ s8 unk_1D5; - /* 0x01D6 */ s16 unk_1D6; - /* 0x01D8 */ f32 unk_1D8; - /* 0x01DC */ s32 unk_1DC; - /* 0x01E0 */ f32 unk_1E0; - /* 0x01E4 */ f32 unk_1E4; - /* 0x01E8 */ f32 unk_1E8; - /* 0x01EC */ s8 unk_1EC; - /* 0x01ED */ s8 unk_1ED; - /* 0x01EE */ s16 unk_1EE; - /* 0x01F0 */ f32 unk_1F0; - /* 0x01F4 */ s32 unk_1F4; - /* 0x01F8 */ f32 unk_1F8; - /* 0x01FC */ f32 unk_1FC; +struct Actor { + /* 0x00 */ s16 unk0; // 0xC, 0xD, or 0x2B + #ifdef AVOID_UB + /* 0x02 */ u16 unk2; + #else + s16 unk2; // bitflags + #endif + /* 0x04 */ s16 unk4; // Timer? + /* 0x06 */ s16 unk6; // 1 // train wheel rot? + /* 0x08 */ f32 unk8; + f32 unkC; + /* 0x0C */ Vec3s unk10; // Actor rotation + /* 0x18 */ Vec3f unk18; + /* 0x24 */ Vec3f unk24; + /* 0x30 */ UnkActorInner unk30; }; diff --git a/include/common_structs.h b/include/common_structs.h index 0006f1a71..8103f992b 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -6,6 +6,7 @@ typedef f32 Vec3f[3]; typedef s16 Vec3s[3]; +typedef s16 Vec4s[4]; typedef enum { /* 0x00 */ COURSE_MARIO_RACEWAY = 0, @@ -113,9 +114,7 @@ typedef struct { f32 angleX; f32 angleY; f32 angleZ; - s16 rotX; - s16 rotX2; - s16 rotY; // unused? + Vec3s rotX; s16 rotZ; s32 unk3; // zero s32 unk4; // 0x4119999A @@ -159,9 +158,7 @@ typedef struct { } Camera; typedef struct { - /* 0x00 */ f32 unk_000; - /* 0x04 */ f32 unk_004; - /* 0x08 */ f32 unk_008; + /* 0x00 */ Vec3f unk_000; /* 0x0C */ f32 unk_00C; /* 0x10 */ u16 unk_010; /* 0x12 */ u16 unk_012; @@ -258,6 +255,24 @@ typedef struct { #define BACK_LEFT_TYRE 2 #define BACK_RIGHT_TYRE 3 + +typedef struct { + /* 0x00 */ u16 unk30; + /* 0x02 */ u16 unk32; + /* 0x04 */ u16 unk34; + /* 0x06 */ u16 unk36; + /* 0x08 */ u16 unk38; + /* 0x0A */ u16 unk3A; + /* 0x0C */ f32 unk3C; + /* 0x10 */ f32 unk40; + /* 0x14 */ f32 unk44; + /* 0x18 */ Vec3f unk48; + /* 0x24 */ Vec3f unk54; + /* 0x30 */ Vec3f unk60; + /* 0x3C */ f32 unk6C; +} UnkActorInner; + + typedef struct { /* 0x0000 */ u16 unk_000; /* 0x0002 */ u16 unk_002; @@ -268,9 +283,7 @@ typedef struct { /* 0x000C */ s32 unk_00C; /* 0x0010 */ s16 unk_010; /* 0x0012 */ s16 unk_012; - /* 0x0014 */ f32 posX; - /* 0x0018 */ f32 posY; - /* 0x001C */ f32 posZ; + /* 0x0014 */ Vec3f pos; /* 0x0020 */ f32 rotX; /* 0x0024 */ f32 rotY; /* 0x0028 */ f32 rotZ; @@ -341,25 +354,7 @@ typedef struct { /* 0x0108 */ f32 unk_108; /* 0x010C */ s16 unk_10C; /* 0x010E */ char unk_10E[0x2]; - /* 0x0110 */ s16 unk_110; - /* 0x0112 */ s16 unk_112; - /* 0x0114 */ s16 unk_114; - /* 0x0116 */ s16 unk_116; - /* 0x0118 */ s16 unk_118; - /* 0x011A */ s16 unk_11A; - /* 0x011C */ f32 unk_11C; - /* 0x0120 */ f32 unk_120; - /* 0x0124 */ f32 unk_124; - /* 0x0128 */ f32 unk_128; - /* 0x012C */ f32 unk_12C; - /* 0x0130 */ f32 unk_130; - /* 0x0134 */ f32 unk_134; - /* 0x0138 */ f32 unk_138; - /* 0x013C */ f32 unk_13C; - /* 0x0140 */ f32 unk_140; - /* 0x0144 */ f32 unk_144; - /* 0x0148 */ f32 unk_148; - /* 0x014C */ char unk_14C[0x4]; + /* 0x0110 */ UnkActorInner unk_110; /* 0x0150 */ f32 unk_150[9]; /* 0x0174 */ f32 unk_174[9]; /* 0x0198 */ KartBoundingBoxCorner boundingBoxCorners[4]; diff --git a/include/types.h b/include/types.h index 6298dbf11..e952822cc 100644 --- a/include/types.h +++ b/include/types.h @@ -6,6 +6,7 @@ typedef f32 Mat4[4][4]; + enum SpTaskState { SPTASK_STATE_NOT_STARTED, SPTASK_STATE_RUNNING, @@ -159,26 +160,6 @@ struct UnkStruct_800DDB40 { u16 unk26; }; -// math util structs -struct UnkStruct_802B51E8 { - f32 unk0; - f32 unk4; - f32 unk8; - f32 unkC; -}; - -struct UnkStruct_802B52D8 { - f32 unk0; - f32 unk4; - f32 unk8; -}; - -struct UnkStruct_802B52BC { - s16 unk0; - s16 unk2; - s16 unk4; -}; - struct UnkStruct_802B53C8 { f32 unk0; f32 unk4; |
