From 4cb6f8cc2a676fbb73caa9587a8d454f023ed58e Mon Sep 17 00:00:00 2001 From: Fazana <52551480+FazanaJ@users.noreply.github.com> Date: Wed, 27 Apr 2022 18:55:36 +0100 Subject: [PATCH] object_racers rework --- include/structs.h | 169 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 131 insertions(+), 38 deletions(-) diff --git a/include/structs.h b/include/structs.h index 3df8e273..0285994a 100644 --- a/include/structs.h +++ b/include/structs.h @@ -783,13 +783,20 @@ typedef struct Object_Racer { /* 0x000 */ s16 playerIndex; // -1 = AI Controlled, 0 to 3 = Object controlled /* 0x002 */ u8 unk2; /* 0x003 */ s8 characterId; // Affects minimap color, horn, voice, etc. - /* 0x004 */ u8 pad4[0x20]; + /* 0x004 */ s32 unk4; + /* 0x008 */ s32 unk8; + /* 0x00C */ s32 unkC; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ s32 unk18; + /* 0x01C */ s32 unk1C; + /* 0x020 */ s32 unk20; /* 0x024 */ s32 unk24; /* 0x028 */ u16 unk28; /* 0x02A */ u16 unk2A; /* 0x02C */ f32 velocity; /* 0x030 */ f32 lateral_velocity; - /* 0x034 */ u8 pad[0x4]; + /* 0x034 */ s32 unk34; /* 0x038 */ f32 ox1; /* 0x03C */ f32 oy1; /* 0x040 */ f32 oz1; @@ -802,114 +809,200 @@ typedef struct Object_Racer { /* 0x05C */ f32 prev_x_position; /* 0x060 */ f32 prev_y_position; /* 0x064 */ f32 prev_z_position; - /* 0x068 */ u8 pad68[0x10]; + /* 0x068 */ s32 unk68; + /* 0x06C */ s32 unk6C; + /* 0x070 */ s32 unk70; + /* 0x074 */ s32 unk74; /* 0x078 */ f32 unk78; /* 0x07C */ f32 unk7C; /* 0x080 */ f32 unk80; - /* 0x084 */ u8 pad84[0x8]; + /* 0x084 */ f32 unk84; + /* 0x088 */ f32 unk88; /* 0x08C */ f32 stretch_height; /* 0x090 */ f32 stretch_height_cap; /* 0x094 */ f32 camera_zoom; - /* 0x098 */ u8 pad98[0x4]; + /* 0x098 */ f32 unk98; /* 0x09C */ f32 pitch; - /* 0x0A0 */ u8 padA0[0x8]; + /* 0x0A0 */ f32 unkA0; + /* 0x0A4 */ s32 unkA4; /* 0x0A8 */ f32 checkpoint_distance; - /* 0x0AC */ u8 padAC[0x8]; + /* 0x0AC */ f32 unkAC; + /* 0x0B0 */ f32 unkB0; /* 0x0B4 */ f32 throttle; /* 0x0B8 */ f32 brake; - /* 0x0BC */ u8 padBC[0x14]; + /* 0x0BC */ f32 unkBC; + /* 0x0C0 */ f32 unkC0; + /* 0x0C4 */ f32 unkC4; + /* 0x0C8 */ f32 unkC8; + /* 0x0CC */ f32 unkCC; /* 0x0D0 */ f32 unkD0; - /* 0x0D4 */ u8 padD4[0x34]; + /* 0x0D4 */ s32 unkD4; + /* 0x0D8 */ f32 unkD8; + /* 0x0DC */ f32 unkDC; + /* 0x0E0 */ f32 unkE0; + /* 0x0E4 */ f32 unkE4; + /* 0x0E8 */ f32 unkE8; + /* 0x0EC */ f32 unkEC; + /* 0x0F0 */ f32 unkF0; + /* 0x0F4 */ f32 unkF4; + /* 0x0F8 */ f32 unkF8; + /* 0x0FC */ f32 unkFC; + /* 0x100 */ f32 unk100; + /* 0x104 */ f32 unk104; /* 0x108 */ s32 unk108; - /* 0x10C */ u8 pad10C[0xC]; + /* 0x10C */ s32 unk10C; + /* 0x110 */ s32 unk110; + /* 0x114 */ s32 unk114; /* 0x118 */ s32 unk118; - /* 0x11C */ u8 pad11C[0xC]; + /* 0x11C */ s32 unk11C; + /* 0x120 */ s32 unk120; + /* 0x124 */ s32 unk124; /* 0x128 */ u32 lap_times[3]; - /* 0x134 */ u8 pad134[0x10]; + /* 0x134 */ s32 unk134; + /* 0x138 */ s32 unk138; + /* 0x13C */ s32 unk13C; + /* 0x140 */ s32 unk140; /* 0x144 */ struct Object *held_obj; /* 0x148 */ struct Object *unk148; /* 0x14C */ struct Object *unk14C; - /* 0x150 */ u8 pad150[0x4]; + /* 0x150 */ struct Object *unk150; /* 0x154 */ struct Object *unk154; - /* 0x158 */ u8 pad158[0x8]; + /* 0x158 */ s32 unk158; + /* 0x15C */ s32 unk15C; /* 0x160 */ s16 unk160; /* 0x162 */ s16 unk162; /* 0x164 */ s16 unk164; /* 0x166 */ s16 unk166; - /* 0x168 */ u8 pad168[0x4]; + /* 0x168 */ s16 unk168; + /* 0x16A */ s16 unk16A; /* 0x166 */ s16 unk16C; - /* 0x168 */ u8 pad16E[0x4]; + /* 0x16E */ s16 unk16E; + /* 0x170 */ s16 unk170; /* 0x172 */ u8 balloon_type; /* 0x173 */ u8 balloon_quantity; /* 0x174 */ u8 balloon_level; - /* 0x175 */ u8 pad175[0xE]; + /* 0x175 */ u8 unk175; + /* 0x176 */ s16 unk176; + /* 0x178 */ s32 unk178; + /* 0x17C */ s32 unk17C; + /* 0x180 */ s8 unk180; + /* 0x181 */ s8 unk181; + /* 0x182 */ s8 unk182; /* 0x183 */ s8 unk183; /* 0x184 */ s8 pad184; /* 0x185 */ s8 bananas; /* 0x186 */ u8 unk186; /* 0x187 */ s8 unk187; - /* 0x188 */ u8 pad188[0x4]; + /* 0x188 */ s32 unk188; /* 0x18C */ s16 unk18C; /* 0x18E */ s16 unk18E; /* 0x190 */ u16 unk190; /* 0x192 */ u8 unk192; /* 0x193 */ u8 unk193; - /* 0x194 */ u8 pad194[0xC]; + /* 0x194 */ s16 unk194; + /* 0x196 */ s16 unk196; + /* 0x198 */ s32 unk198; + /* 0x19C */ s32 unk19C; /* 0x1A0 */ s16 unk1A0; /* 0x1A2 */ s16 unk1A2; /* 0x1A4 */ s16 unk1A4; - /* 0x1A6 */ u8 pad1A6[0x14]; + /* 0x1A6 */ s16 unk1A6; + /* 0x1A8 */ s16 unk1A8; + /* 0x1AA */ u8 unk1AA; + /* 0x1AB */ u8 unk1AB; + /* 0x1AC */ u8 unk1AC; + /* 0x1AD */ u8 unk1AD; + /* 0x1AE */ u8 unk1AE; + /* 0x1AF */ u8 unk1AF; + /* 0x1B0 */ s32 unk1B0; + /* 0x1B4 */ s32 unk1B4; + /* 0x1B8 */ s16 unk1B8; /* 0x1BA */ u16 unk1BA; - /* 0x1BC */ u8 pad1BC[0xD]; + /* 0x1BC */ s32 unk1BC; + /* 0x1C0 */ s32 unk1C0; + /* 0x1C4 */ s16 unk1C4; + /* 0x1C6 */ s16 unk1C6; + /* 0x1C8 */ u8 unk1C8; /* 0x1C9 */ u8 unk1C9; /* 0x1CA */ s8 unk1CA; - /* 0x1CB */ u8 pad1CB[0x3]; + /* 0x1CB */ u8 unk1CB; + /* 0x1CC */ u8 unk1CC; + /* 0x1CD */ u8 unk1CD; /* 0x1CE */ u8 unk1CE; - /* 0x1CF */ u8 pad1CF[0x4]; + /* 0x1CF */ u8 unk1CF; + /* 0x1D0 */ u8 unk1D0; + /* 0x1D1 */ u8 unk1D1; + /* 0x1D2 */ u8 unk1D2; /* 0x1D3 */ s8 unk1D3; - /* 0x1D4 */ u8 pad1D4[0x2]; + /* 0x1D4 */ u8 unk1D4; + /* 0x1D5 */ u8 unk1D5; /* 0x1D6 */ s8 unk1D6; /* 0x1D7 */ s8 unk1D7; /* 0x1D8 */ s8 unk1D8; - /* 0x1D9 */ u8 pad1D9[0x2]; + /* 0x1D9 */ u8 unk1D9; + /* 0x1DA */ u8 unk1DA; /* 0x1DB */ s8 spinout_timer; /* 0x1DC */ u8 wheel_surfaces[4]; - /* 0x1E0 */ u8 pad1E0[0x1]; + /* 0x1E0 */ u8 unk1E0; /* 0x1E1 */ s8 unk1E1; /* 0x1E2 */ s8 unk1E2; - /* 0x1E3 */ u8 pad1E3[0x3]; + /* 0x1E3 */ s8 unk1E3; + /* 0x1E4 */ s8 unk1E4; + /* 0x1E5 */ s8 unk1E5; /* 0x1E6 */ s8 drift_direction; /* 0x1E7 */ s8 unk1E7; - /* 0x1E8 */ u8 pad1E8[0x5]; + /* 0x1E8 */ s8 unk1E8; + /* 0x1E9 */ s8 unk1E9; + /* 0x1EA */ s8 unk1EA; + /* 0x1EB */ s8 unk1EB; + /* 0x1EC */ s8 unk1EC; /* 0x1ED */ s8 squish_timer; - /* 0x1EE */ u8 pad1EE[0x1]; + /* 0x1EE */ s8 unk1EE; /* 0x1EF */ u8 boost_sound; - /* 0x1F0 */ u8 pad1F0[0x1]; + /* 0x1F0 */ u8 unk1F0; /* 0x1F1 */ u8 unk1F1; /* 0x1F2 */ u8 unk1F2; /* 0x1F3 */ u8 unk1F3; - /* 0x1F4 */ u8 pad1F4[0x1]; + /* 0x1F4 */ u8 unk1F4; /* 0x1F5 */ u8 unk1F5; - /* 0x1F6 */ u8 pad1F6[0x1]; + /* 0x1F6 */ u8 unk1F6; /* 0x1F7 */ u8 transparency; /* 0x290 */ u8 indicator_type; /* 0x291 */ s8 indicator_timer; - /* 0x1FA */ u8 pad1FA[0x6]; + /* 0x1FA */ s8 unk1FA; + /* 0x1FB */ s8 unk1FB; + /* 0x1FC */ s8 unk1FC; + /* 0x1FD */ s8 unk1FD; + /* 0x1FE */ s8 unk1FE; + /* 0x1FF */ s8 unk1FF; /* 0x200 */ s8 unk200; - /* 0x201 */ u8 pad201[0x2]; + /* 0x201 */ s8 unk201; + /* 0x202 */ s8 unk202; /* 0x203 */ s8 unk203; /* 0x204 */ s16 unk204; - /* 0x206 */ u8 pad206[0x6]; + /* 0x206 */ s16 unk206; + /* 0x208 */ s16 unk208; + /* 0x20A */ s16 unk20A; /* 0x20C */ u8 unk20C; - /* 0x20D */ u8 pad20D[0x1]; + /* 0x20D */ u8 unk20D; /* 0x20E */ s16 unk20E; /* 0x210 */ s8 unk210; - /* 0x211 */ u8 pad211[0x2]; + /* 0x211 */ u8 unk211; + /* 0x212 */ u8 unk212; /* 0x213 */ s8 unk213; /* 0x214 */ s8 unk214; /* 0x215 */ s8 unk215; - /* 0x216 */ u8 pad216[0x6]; + /* 0x216 */ u8 unk216; + /* 0x217 */ u8 unk217; + /* 0x218 */ u8 unk218; + /* 0x219 */ u8 unk219; + /* 0x21A */ u8 unk21A; + /* 0x21B */ u8 unk21B; /* 0x21C */ u8 unk21C; + /* 0x21D */ u8 unk21D; + /* 0x21E */ u8 unk21E; + /* 0x21F */ u8 unk21F; + /* 0x220 */ s32 unk220; } Object_Racer; typedef struct Object_Bonus {