mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Merge pull request #84 from Faschz/unknown_043920
Decompile func_80052988
This commit is contained in:
@@ -1,136 +0,0 @@
|
||||
glabel func_80052988
|
||||
/* 053588 80052988 8FAE0014 */ lw $t6, 0x14($sp)
|
||||
/* 05358C 8005298C 8FAF001C */ lw $t7, 0x1c($sp)
|
||||
/* 053590 80052990 3C198012 */ lui $t9, %hi(D_8011D55C) # $t9, 0x8012
|
||||
/* 053594 80052994 01CF0019 */ multu $t6, $t7
|
||||
/* 053598 80052998 8F39D55C */ lw $t9, %lo(D_8011D55C)($t9)
|
||||
/* 05359C 8005299C 2401FFFF */ li $at, -1
|
||||
/* 0535A0 800529A0 0000C012 */ mflo $t8
|
||||
/* 0535A4 800529A4 AFB80014 */ sw $t8, 0x14($sp)
|
||||
/* 0535A8 800529A8 17210006 */ bne $t9, $at, .L800529C4
|
||||
/* 0535AC 800529AC 28C10003 */ slti $at, $a2, 3
|
||||
/* 0535B0 800529B0 14200004 */ bnez $at, .L800529C4
|
||||
/* 0535B4 800529B4 00000000 */ nop
|
||||
/* 0535B8 800529B8 A080003B */ sb $zero, 0x3b($a0)
|
||||
/* 0535BC 800529BC 03E00008 */ jr $ra
|
||||
/* 0535C0 800529C0 A0A001F2 */ sb $zero, 0x1f2($a1)
|
||||
|
||||
.L800529C4:
|
||||
/* 0535C4 800529C4 8082003B */ lb $v0, 0x3b($a0)
|
||||
/* 0535C8 800529C8 00000000 */ nop
|
||||
/* 0535CC 800529CC 14400029 */ bnez $v0, .L80052A74
|
||||
/* 0535D0 800529D0 00000000 */ nop
|
||||
/* 0535D4 800529D4 8FA20018 */ lw $v0, 0x18($sp)
|
||||
/* 0535D8 800529D8 00000000 */ nop
|
||||
/* 0535DC 800529DC 30480001 */ andi $t0, $v0, 1
|
||||
/* 0535E0 800529E0 1100001D */ beqz $t0, .L80052A58
|
||||
/* 0535E4 800529E4 00000000 */ nop
|
||||
/* 0535E8 800529E8 84820018 */ lh $v0, 0x18($a0)
|
||||
/* 0535EC 800529EC 8FAD001C */ lw $t5, 0x1c($sp)
|
||||
/* 0535F0 800529F0 28410029 */ slti $at, $v0, 0x29
|
||||
/* 0535F4 800529F4 1420000E */ bnez $at, .L80052A30
|
||||
/* 0535F8 800529F8 000D7080 */ sll $t6, $t5, 2
|
||||
/* 0535FC 800529FC 8FA9001C */ lw $t1, 0x1c($sp)
|
||||
/* 053600 80052A00 00000000 */ nop
|
||||
/* 053604 80052A04 00095080 */ sll $t2, $t1, 2
|
||||
/* 053608 80052A08 004A5823 */ subu $t3, $v0, $t2
|
||||
/* 05360C 80052A0C A48B0018 */ sh $t3, 0x18($a0)
|
||||
/* 053610 80052A10 848C0018 */ lh $t4, 0x18($a0)
|
||||
/* 053614 80052A14 00000000 */ nop
|
||||
/* 053618 80052A18 29810029 */ slti $at, $t4, 0x29
|
||||
/* 05361C 80052A1C 1020004F */ beqz $at, .L80052B5C
|
||||
/* 053620 80052A20 00000000 */ nop
|
||||
/* 053624 80052A24 A086003B */ sb $a2, 0x3b($a0)
|
||||
/* 053628 80052A28 03E00008 */ jr $ra
|
||||
/* 05362C 80052A2C A4870018 */ sh $a3, 0x18($a0)
|
||||
|
||||
.L80052A30:
|
||||
/* 053630 80052A30 004E7821 */ addu $t7, $v0, $t6
|
||||
/* 053634 80052A34 A48F0018 */ sh $t7, 0x18($a0)
|
||||
/* 053638 80052A38 84980018 */ lh $t8, 0x18($a0)
|
||||
/* 05363C 80052A3C 00000000 */ nop
|
||||
/* 053640 80052A40 2B010028 */ slti $at, $t8, 0x28
|
||||
/* 053644 80052A44 14200045 */ bnez $at, .L80052B5C
|
||||
/* 053648 80052A48 00000000 */ nop
|
||||
/* 05364C 80052A4C A086003B */ sb $a2, 0x3b($a0)
|
||||
/* 053650 80052A50 03E00008 */ jr $ra
|
||||
/* 053654 80052A54 A4870018 */ sh $a3, 0x18($a0)
|
||||
|
||||
.L80052A58:
|
||||
/* 053658 80052A58 A086003B */ sb $a2, 0x3b($a0)
|
||||
/* 05365C 80052A5C A4870018 */ sh $a3, 0x18($a0)
|
||||
/* 053660 80052A60 90B901F3 */ lbu $t9, 0x1f3($a1)
|
||||
/* 053664 80052A64 00000000 */ nop
|
||||
/* 053668 80052A68 3328FF7F */ andi $t0, $t9, 0xff7f
|
||||
/* 05366C 80052A6C 03E00008 */ jr $ra
|
||||
/* 053670 80052A70 A0A801F3 */ sb $t0, 0x1f3($a1)
|
||||
|
||||
.L80052A74:
|
||||
/* 053674 80052A74 14C20037 */ bne $a2, $v0, .L80052B54
|
||||
/* 053678 80052A78 00000000 */ nop
|
||||
/* 05367C 80052A7C 8FA20018 */ lw $v0, 0x18($sp)
|
||||
/* 053680 80052A80 8FB80014 */ lw $t8, 0x14($sp)
|
||||
/* 053684 80052A84 30490002 */ andi $t1, $v0, 2
|
||||
/* 053688 80052A88 11200024 */ beqz $t1, .L80052B1C
|
||||
/* 05368C 80052A8C 00000000 */ nop
|
||||
/* 053690 80052A90 90AA01F3 */ lbu $t2, 0x1f3($a1)
|
||||
/* 053694 80052A94 8FA80014 */ lw $t0, 0x14($sp)
|
||||
/* 053698 80052A98 314B0080 */ andi $t3, $t2, 0x80
|
||||
/* 05369C 80052A9C 1160000F */ beqz $t3, .L80052ADC
|
||||
/* 0536A0 80052AA0 00000000 */ nop
|
||||
/* 0536A4 80052AA4 848C0018 */ lh $t4, 0x18($a0)
|
||||
/* 0536A8 80052AA8 8FAD0014 */ lw $t5, 0x14($sp)
|
||||
/* 0536AC 80052AAC 24180028 */ li $t8, 40
|
||||
/* 0536B0 80052AB0 018D7023 */ subu $t6, $t4, $t5
|
||||
/* 0536B4 80052AB4 A48E0018 */ sh $t6, 0x18($a0)
|
||||
/* 0536B8 80052AB8 848F0018 */ lh $t7, 0x18($a0)
|
||||
/* 0536BC 80052ABC 00000000 */ nop
|
||||
/* 0536C0 80052AC0 1DE00026 */ bgtz $t7, .L80052B5C
|
||||
/* 0536C4 80052AC4 00000000 */ nop
|
||||
/* 0536C8 80052AC8 A080003B */ sb $zero, 0x3b($a0)
|
||||
/* 0536CC 80052ACC A0A001F2 */ sb $zero, 0x1f2($a1)
|
||||
/* 0536D0 80052AD0 A4980018 */ sh $t8, 0x18($a0)
|
||||
/* 0536D4 80052AD4 03E00008 */ jr $ra
|
||||
/* 0536D8 80052AD8 A0A001F3 */ sb $zero, 0x1f3($a1)
|
||||
|
||||
.L80052ADC:
|
||||
/* 0536DC 80052ADC 84990018 */ lh $t9, 0x18($a0)
|
||||
/* 0536E0 80052AE0 8FA30010 */ lw $v1, 0x10($sp)
|
||||
/* 0536E4 80052AE4 03284821 */ addu $t1, $t9, $t0
|
||||
/* 0536E8 80052AE8 A4890018 */ sh $t1, 0x18($a0)
|
||||
/* 0536EC 80052AEC 848A0018 */ lh $t2, 0x18($a0)
|
||||
/* 0536F0 80052AF0 304C0004 */ andi $t4, $v0, 4
|
||||
/* 0536F4 80052AF4 0143082A */ slt $at, $t2, $v1
|
||||
/* 0536F8 80052AF8 14200018 */ bnez $at, .L80052B5C
|
||||
/* 0536FC 80052AFC 246BFFFF */ addiu $t3, $v1, -1
|
||||
/* 053700 80052B00 15800016 */ bnez $t4, .L80052B5C
|
||||
/* 053704 80052B04 A48B0018 */ sh $t3, 0x18($a0)
|
||||
/* 053708 80052B08 90AD01F3 */ lbu $t5, 0x1f3($a1)
|
||||
/* 05370C 80052B0C 00000000 */ nop
|
||||
/* 053710 80052B10 35AE0080 */ ori $t6, $t5, 0x80
|
||||
/* 053714 80052B14 03E00008 */ jr $ra
|
||||
/* 053718 80052B18 A0AE01F3 */ sb $t6, 0x1f3($a1)
|
||||
|
||||
.L80052B1C:
|
||||
/* 05371C 80052B1C 848F0018 */ lh $t7, 0x18($a0)
|
||||
/* 053720 80052B20 8FA30010 */ lw $v1, 0x10($sp)
|
||||
/* 053724 80052B24 01F8C821 */ addu $t9, $t7, $t8
|
||||
/* 053728 80052B28 A4990018 */ sh $t9, 0x18($a0)
|
||||
/* 05372C 80052B2C 84880018 */ lh $t0, 0x18($a0)
|
||||
/* 053730 80052B30 24090028 */ li $t1, 40
|
||||
/* 053734 80052B34 0103082A */ slt $at, $t0, $v1
|
||||
/* 053738 80052B38 14200008 */ bnez $at, .L80052B5C
|
||||
/* 05373C 80052B3C 00000000 */ nop
|
||||
/* 053740 80052B40 A080003B */ sb $zero, 0x3b($a0)
|
||||
/* 053744 80052B44 A0A001F2 */ sb $zero, 0x1f2($a1)
|
||||
/* 053748 80052B48 A4890018 */ sh $t1, 0x18($a0)
|
||||
/* 05374C 80052B4C 03E00008 */ jr $ra
|
||||
/* 053750 80052B50 A0A001F3 */ sb $zero, 0x1f3($a1)
|
||||
|
||||
.L80052B54:
|
||||
/* 053754 80052B54 A4870018 */ sh $a3, 0x18($a0)
|
||||
/* 053758 80052B58 A086003B */ sb $a2, 0x3b($a0)
|
||||
.L80052B5C:
|
||||
/* 05375C 80052B5C 03E00008 */ jr $ra
|
||||
/* 053760 80052B60 00000000 */ nop
|
||||
|
||||
+50
-42
@@ -18,7 +18,7 @@ typedef struct MenuElement {
|
||||
/* 0x0E */ u8 filterBlue;
|
||||
/* 0x0F */ u8 filterAlpha; // 0 = no filter color, 0xFF = full color.
|
||||
/* 0x10 */ u8 opacity;
|
||||
/* 0x11 */ u8 textType;
|
||||
/* 0x11 */ u8 textType;
|
||||
/* 0x12 */ u8 textAlignFlags;
|
||||
/* 0x13 */ u8 unk13; // Source type? 0 = ascii text, 7 = texture?
|
||||
union {
|
||||
@@ -26,8 +26,8 @@ typedef struct MenuElement {
|
||||
/* 0x14 */ u32* texture; // Pointer to texture to be displayed on the screen.
|
||||
} source;
|
||||
/* 0x18 */ u16 backgroundRed;
|
||||
/* 0x1A */ u16 backgroundGreen;
|
||||
/* 0x1C */ u16 backgroundBlue;
|
||||
/* 0x1A */ u16 backgroundGreen;
|
||||
/* 0x1C */ u16 backgroundBlue;
|
||||
/* 0x1E */ u16 backgroundAlpha; // 0x0000 = No background, 0x00FF = full background color.
|
||||
} MenuElement;
|
||||
|
||||
@@ -113,26 +113,26 @@ typedef struct LevelHeader {
|
||||
/* 0x02 */ u8 unk2;
|
||||
/* 0x03 */ u8 unk3;
|
||||
/* 0x04 */ u8 unk4[4];
|
||||
|
||||
|
||||
/* 0x08 */ f32 course_height;
|
||||
|
||||
|
||||
/* 0x0C */ u8 padC[0x14];
|
||||
|
||||
|
||||
/* 0x20 */ s32 *unk20;
|
||||
|
||||
|
||||
/* 0x24 */ u8 pad24[0x10];
|
||||
|
||||
/* 0x34 */ s16 geometry;
|
||||
/* 0x36 */ s16 collectables; // Objects such as bananas, balloons, etc.
|
||||
/* 0x38 */ s16 skybox;
|
||||
|
||||
|
||||
// Fog related?
|
||||
/* 0x3A */ s16 unk3A;
|
||||
/* 0x3C */ s16 unk3C;
|
||||
/* 0x3E */ s16 fogR;
|
||||
/* 0x3E */ s16 fogR;
|
||||
/* 0x40 */ s16 fogG;
|
||||
/* 0x42 */ s16 fogB;
|
||||
|
||||
|
||||
/* 0x44 */ u8 unk44[0x5];
|
||||
|
||||
/* 0x49 */ s8 unk49;
|
||||
@@ -143,13 +143,13 @@ typedef struct LevelHeader {
|
||||
/* 0x4E */ u8 available_vehicles;
|
||||
|
||||
/* 0x4F */ u8 unk4F[3];
|
||||
|
||||
|
||||
/* 0x52 */ u8 music;
|
||||
/* 0x53 */ u8 unk53;
|
||||
/* 0x54 */ u16 instruments;
|
||||
|
||||
|
||||
/* 0x56 */ u8 pad56[0x1E];
|
||||
|
||||
|
||||
/* 0x74 */ s8 *unk74[7];
|
||||
|
||||
// Weather related?
|
||||
@@ -160,7 +160,7 @@ typedef struct LevelHeader {
|
||||
/* 0x96 */ s16 unk96;
|
||||
/* 0x98 */ s16 unk98;
|
||||
/* 0x9A */ s16 unk9A;
|
||||
|
||||
|
||||
/* 0x9C */ s8 unk9C;
|
||||
/* 0x9D */ u8 unk9D;
|
||||
/* 0x9E */ u8 unk9E;
|
||||
@@ -170,7 +170,7 @@ typedef struct LevelHeader {
|
||||
/* 0xA8 */ u16 unkA8;
|
||||
/* 0xAA */ u16 unkAA;
|
||||
/* 0xAC */ s8 *unkAC;
|
||||
|
||||
|
||||
/* 0xB0 */ u8 padB0[0x3];
|
||||
/* 0xB3 */ u8 unkB3;
|
||||
/* 0xB3 */ u8 unkB4;
|
||||
@@ -272,12 +272,17 @@ typedef struct Player_64 {
|
||||
f32 unk78;
|
||||
f32 unk7C;
|
||||
f32 unk80;
|
||||
u8 pad84[0x4C];
|
||||
u8 pad84[0x30];
|
||||
/* 0xB4 */ f32 throttle;
|
||||
/* 0xB8 */ f32 brake;
|
||||
u8 padBC[0x14];
|
||||
f32 unkD0;
|
||||
u8 padD0[0x24];
|
||||
u32 unkF8;
|
||||
u8 unkFC;
|
||||
u8 padFD[0x63];
|
||||
u8 padFD[0xB];
|
||||
s32 unk108;
|
||||
u8 pad10C[0x54];
|
||||
s16 unk160;
|
||||
s16 unk162;
|
||||
s16 unk164;
|
||||
@@ -290,12 +295,15 @@ typedef struct Player_64 {
|
||||
u16 unk1BA;
|
||||
u8 pad1BC[0x1B];
|
||||
s8 unk1D7;
|
||||
u8 pad1D8[0x1A];
|
||||
u8 unk1F2;
|
||||
u8 unk1F3;
|
||||
} Player_64;
|
||||
|
||||
|
||||
typedef struct Player_68{
|
||||
u8 pad00[0x20];
|
||||
s8 unk20;
|
||||
} Player_68;
|
||||
} Player_68;
|
||||
/* Size: 0x0630 bytes */
|
||||
typedef struct Player {
|
||||
/* 0x0000 */ s16 y_rotation;
|
||||
@@ -314,7 +322,7 @@ typedef struct Player {
|
||||
/* 0x0028 */ u32 unk28;
|
||||
|
||||
/* 0x002C */ s16 unk2C;
|
||||
|
||||
|
||||
/* 0x002E */ s16 unk2E;
|
||||
/* 0x0030 */ f32 unk30;
|
||||
/* 0x0034 */ f32 unk34;
|
||||
@@ -322,7 +330,7 @@ typedef struct Player {
|
||||
|
||||
/* 0x0039 */ u8 unk39;
|
||||
/* 0x003A */ s8 unk3A;
|
||||
/* 0x003B */ u8 unk3B;
|
||||
/* 0x003B */ s8 unk3B;
|
||||
/* 0x003C */ Player_3C* unk3C;
|
||||
|
||||
/* 0x0040 */ Player_40 *descriptor_ptr;
|
||||
@@ -343,7 +351,7 @@ typedef struct Player {
|
||||
|
||||
/* 0x0074 */ u32 unk74;
|
||||
/* 0x0078 */ s32 unk78;
|
||||
|
||||
|
||||
union {
|
||||
struct {
|
||||
s16 upper;
|
||||
@@ -355,7 +363,7 @@ typedef struct Player {
|
||||
/* 0x0080 */ void *unk80;
|
||||
/* 0x0084 */ u32 unk84;
|
||||
/* 0x0088 */ u32 unk88;
|
||||
|
||||
|
||||
/* 0x008C */ u32 unk8C;
|
||||
/* 0x0090 */ u32 unk90;
|
||||
/* 0x0094 */ u32 unk94;
|
||||
@@ -363,11 +371,11 @@ typedef struct Player {
|
||||
/* 0x0098 */ s16 playerIndex; // -1 = AI Controlled, 0 to 3 = Player controlled
|
||||
/* 0x009A */ u8 unk9A;
|
||||
/* 0x009B */ u8 characterId; // Affects minimap color, horn, voice, etc.
|
||||
|
||||
|
||||
/* 0x009C */ u32 unk9C;
|
||||
|
||||
/* 0x00A0 */ f32 unkA0;
|
||||
|
||||
|
||||
/* 0x00A4 */ u32 unkA4;
|
||||
/* 0x00A8 */ u32 unkA8;
|
||||
/* 0x00AC */ u32 unkAC;
|
||||
@@ -376,16 +384,16 @@ typedef struct Player {
|
||||
/* 0x00B8 */ u32 unkB8;
|
||||
/* 0x00BC */ u32 unkBC;
|
||||
/* 0x00C0 */ u32 unkc0;
|
||||
|
||||
|
||||
/* 0x00C4 */ f32 velocity;
|
||||
/* 0x00C8 */ f32 lateral_velocity;
|
||||
|
||||
|
||||
u32 unkCC[10]; // Not an array. Unknown values.
|
||||
|
||||
/* 0x00F4 */ f32 prev_x_position;
|
||||
/* 0x00F8 */ f32 prev_y_position;
|
||||
/* 0x00FC */ f32 prev_z_position;
|
||||
|
||||
|
||||
/* 0x0100 */ u32 unk100;
|
||||
/* 0x0104 */ u32 unk104;
|
||||
/* 0x0108 */ u32 unk108;
|
||||
@@ -427,25 +435,25 @@ typedef struct Player {
|
||||
/* 0x0194 */ f32 unk194;
|
||||
/* 0x0198 */ f32 unk198;
|
||||
/* 0x019C */ f32 unk19C;
|
||||
|
||||
|
||||
u32 unk1A0[8]; // Not an array. Unknown values.
|
||||
|
||||
|
||||
/* 0x01C0 */ u32 lap_times[3];
|
||||
|
||||
|
||||
/* 0x01CC */ u32 unk1CC;
|
||||
/* 0x01D0 */ u32 unk1D0;
|
||||
/* 0x01D4 */ u32 unk1D4;
|
||||
/* 0x01D8 */ u32 unk1D8;
|
||||
|
||||
/* 0x01DC */ void *held_obj_ptr;
|
||||
|
||||
|
||||
u32 unk1E0[10]; // Not an array. Unknown values.
|
||||
|
||||
/* 0x0208 */ u16 unk208;
|
||||
/* 0x020A */ u8 balloon_type;
|
||||
/* 0x020B */ u8 balloon_quantity;
|
||||
/* 0x020C */ u8 balloon_level;
|
||||
|
||||
|
||||
/* 0x020D */ u8 unk20D;
|
||||
/* 0x020E */ u8 unk20E;
|
||||
/* 0x020F */ u8 unk20F;
|
||||
@@ -464,13 +472,13 @@ typedef struct Player {
|
||||
|
||||
/* 0x0273 */ u8 spinout_timer;
|
||||
/* 0x0274 */ u8 wheel_surfaces[4];
|
||||
|
||||
|
||||
/* 0x0278 */ u32 unk278;
|
||||
/* 0x027C */ u16 unk27C;
|
||||
|
||||
/* 0x027E */ u8 drift_direction;
|
||||
/* 0x027F */ u8 unk27F;
|
||||
|
||||
|
||||
/* 0x0280 */ u32 unk280;
|
||||
/* 0x0284 */ u8 unk284;
|
||||
|
||||
@@ -478,7 +486,7 @@ typedef struct Player {
|
||||
/* 0x0286 */ u8 unk286;
|
||||
/* 0x0287 */ u8 boost_sound;
|
||||
/* 0x0288 */ u32 unk288;
|
||||
|
||||
|
||||
/* 0x028C */ u16 unk28C;
|
||||
/* 0x028E */ u8 unk28E;
|
||||
|
||||
@@ -486,16 +494,16 @@ typedef struct Player {
|
||||
/* 0x0290 */ u8 indicator_type;
|
||||
/* 0x0291 */ s8 indicator_timer;
|
||||
/* 0x0292 */ u16 unk292;
|
||||
|
||||
|
||||
u32 unk294[11]; // Not an array. Unknown values.
|
||||
|
||||
/* 0x02C0 */ f32 unk2C0;
|
||||
|
||||
|
||||
/* 0x02C4 */ u8 red;
|
||||
/* 0x02C5 */ u8 blue;
|
||||
/* 0x02C6 */ u8 green;
|
||||
/* 0x02C7 */ u8 alpha;
|
||||
|
||||
|
||||
/* 0x02C8 */ u32 unk2C8;
|
||||
/* 0x02CC */ u32 unk2CC;
|
||||
/* 0x02D0 */ u32 unk2D0;
|
||||
@@ -505,7 +513,7 @@ typedef struct Player {
|
||||
/* 0x02DC */ u16 unk2DC;
|
||||
/* 0x02DE */ u16 unk2DE;
|
||||
/* 0x02E0 */ u16 unk2E0;
|
||||
|
||||
|
||||
/* 0x02E2 */ u16 unk2E2;
|
||||
/* 0x02E4 */ u32 unk2E4;
|
||||
|
||||
@@ -530,7 +538,7 @@ typedef struct Player {
|
||||
/* 0x031C */ f32 unk31C;
|
||||
/* 0x0320 */ f32 unk320;
|
||||
/* 0x0324 */ f32 unk324;
|
||||
|
||||
|
||||
/* 0x0328 */ u32 unk328;
|
||||
/* 0x032C */ u32 unk32C;
|
||||
/* 0x0330 */ u32 unk330;
|
||||
@@ -543,7 +551,7 @@ typedef struct Player {
|
||||
/* 0x0348 */ void *unk348;
|
||||
/* 0x034C */ void *unk34C;
|
||||
/* 0x0350 */ void *unk350;
|
||||
|
||||
|
||||
/* 0x0354 */ u32 unk354;
|
||||
/* 0x0358 */ u32 unk358;
|
||||
/* 0x035C */ u32 unk35C;
|
||||
|
||||
+87
-42
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "types.h"
|
||||
#include "macros.h"
|
||||
#include "structs.h"
|
||||
|
||||
extern s32 D_800DCB50;
|
||||
extern s16 D_800DCB54;
|
||||
@@ -65,7 +66,7 @@ void func_8004F77C(unk8004F77C *arg0) {
|
||||
if ((D_8011D528 & 0x4000) != 0) {
|
||||
arg0->unk20A |= 0x80;
|
||||
}
|
||||
|
||||
|
||||
temp = arg0->unk20A & 0xF;
|
||||
if ((arg0->unk20A & 0xC0) != 0) {
|
||||
temp++;
|
||||
@@ -78,7 +79,7 @@ void func_8004F77C(unk8004F77C *arg0) {
|
||||
temp = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
arg0->unk20A = (arg0->unk20A & 0xFFF0) | temp;
|
||||
}
|
||||
|
||||
@@ -116,7 +117,67 @@ void func_8005234C(unk8005234C *arg0) {
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80052388.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8005250C.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80052988.s")
|
||||
|
||||
void func_80052988(Player* arg0, Player_64* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7) {
|
||||
arg5 *= arg7;
|
||||
|
||||
if ((D_8011D55C == -1) && (arg2 >= 3)) {
|
||||
arg0->unk3B = 0;
|
||||
arg1->unk1F2 = 0;
|
||||
} else if (arg0->unk3B == 0) {
|
||||
if (arg6 & 1) {
|
||||
if (arg0->unk18 >= 0x29) {
|
||||
arg0->unk18 -= arg7 * 4;
|
||||
if (arg0->unk18 < 0x29) {
|
||||
arg0->unk3B = arg2;
|
||||
arg0->unk18 = arg3;
|
||||
}
|
||||
} else {
|
||||
arg0->unk18 += arg7 * 4;
|
||||
if (arg0->unk18 >= 0x28) {
|
||||
arg0->unk3B = arg2;
|
||||
arg0->unk18 = arg3;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
arg0->unk3B = arg2;
|
||||
arg0->unk18 = arg3;
|
||||
arg1->unk1F3 &= ~0x80;
|
||||
}
|
||||
} else if (arg0->unk3B == arg2) {
|
||||
if (arg6 & 2) {
|
||||
if (arg1->unk1F3 & 0x80) {
|
||||
arg0->unk18 -= arg5;
|
||||
if (arg0->unk18 <= 0) {
|
||||
arg0->unk3B = 0;
|
||||
arg1->unk1F2 = 0;
|
||||
arg0->unk18 = 0x28;
|
||||
arg1->unk1F3 = 0;
|
||||
}
|
||||
} else {
|
||||
arg0->unk18 += arg5;
|
||||
if (arg0->unk18 >= arg4) {
|
||||
arg0->unk18 = arg4 - 1;
|
||||
if ((arg6 & 4) == 0) {
|
||||
arg1->unk1F3 |= 0x80;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
arg0->unk18 += arg5;
|
||||
if (arg0->unk18 >= arg4) {
|
||||
arg0->unk3B = 0;
|
||||
arg1->unk1F2 = 0;
|
||||
arg0->unk18 = 0x28;
|
||||
arg1->unk1F3 = 0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
arg0->unk18 = arg3;
|
||||
arg0->unk3B = arg2;
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80052B64.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80052D7C.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80053478.s")
|
||||
@@ -171,40 +232,27 @@ void func_800535C4(unk800535C4 *arg0, unk800535C4_2 *arg1) {
|
||||
D_8011D510.unk14 = 0;
|
||||
D_8011D510.unk8 = 1;
|
||||
func_8006FE74(&sp30, &D_8011D510);
|
||||
|
||||
|
||||
func_8006F64C(&sp30, 0, -1, 0, &arg1->unkA0, &arg1->unkA4, &arg1->unk9C);
|
||||
}
|
||||
|
||||
typedef struct unk80053664 {
|
||||
u8 unk0[0xB4];
|
||||
f32 unkB4;
|
||||
f32 unkB8;
|
||||
} unk80053664;
|
||||
|
||||
void func_80053664(unk80053664 *arg0) {
|
||||
f64 temp_f0;
|
||||
f64 temp_f0_2;
|
||||
f64 temp_f0_3;
|
||||
|
||||
temp_f0 = (f64) arg0->unkB4;
|
||||
|
||||
if (0.0 < temp_f0) {
|
||||
arg0->unkB4 = (f32) (temp_f0 - D_800E6768);
|
||||
void func_80053664(Player_64 *arg0) {
|
||||
if (arg0->throttle > 0.0) {
|
||||
arg0->throttle -= D_800E6768;
|
||||
}
|
||||
|
||||
if ((D_8011D528 & 0x8000) != 0) {
|
||||
arg0->unkB4 = 1.0f;
|
||||
|
||||
if (D_8011D528 & 0x8000) {
|
||||
arg0->throttle = 1.0f;
|
||||
}
|
||||
|
||||
if ((D_8011D528 & 0x4000) != 0) {
|
||||
temp_f0_2 = (f64) arg0->unkB8;
|
||||
if (temp_f0_2 < 1.0) {
|
||||
arg0->unkB8 = (f32) (temp_f0_2 + D_800E6770);
|
||||
|
||||
if (D_8011D528 & 0x4000) {
|
||||
if (arg0->brake < 1.0) {
|
||||
arg0->brake += D_800E6770;
|
||||
}
|
||||
} else {
|
||||
temp_f0_3 = (f64) arg0->unkB8;
|
||||
if (D_800E6778 < temp_f0_3) {
|
||||
arg0->unkB8 = (f32) (temp_f0_3 - D_800E6780);
|
||||
//! @bug Will cause a negative brake value resulting in higher velocity
|
||||
if (arg0->brake > D_800E6778) {
|
||||
arg0->brake -= D_800E6780;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -220,7 +268,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80055EC0.s")
|
||||
/* Unknown Size */
|
||||
typedef struct unk800570A4 {
|
||||
u8 unk0[0x108];
|
||||
s32 unk108;
|
||||
s32 unk108;
|
||||
u8 unk10C[0x102];
|
||||
s16 unk20E;
|
||||
s8 unk210;
|
||||
@@ -264,11 +312,10 @@ void func_80057048(unk800570A4_2 *arg0, s32 arg1) {
|
||||
}
|
||||
}
|
||||
|
||||
unk800570A4 *func_800570A4(unk800570A4_2 *arg0, s32 arg1, s32 arg2) {
|
||||
void func_800570A4(unk800570A4_2 *arg0, s32 arg1, s32 arg2) {
|
||||
unk800570A4 *temp = arg0->unk64;
|
||||
temp->unk20E = arg1;
|
||||
temp->unk210 = arg2;
|
||||
return temp;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800570B8.s")
|
||||
@@ -289,7 +336,7 @@ void func_800579B0(unk800579B0 *arg0, s32 arg1, f32 arg2) {
|
||||
|
||||
temp = D_8011D534 - arg0->unk1E1;
|
||||
temp2 = (s32)((f64)((f32)temp * arg2) * 0.125);
|
||||
|
||||
|
||||
if (temp != 0 && temp2 == 0) {
|
||||
if (temp > 0) {
|
||||
temp2 = 1;
|
||||
@@ -298,7 +345,7 @@ void func_800579B0(unk800579B0 *arg0, s32 arg1, f32 arg2) {
|
||||
temp2 = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
arg0->unk1E1 = arg0->unk1E1 + temp2;
|
||||
}
|
||||
|
||||
@@ -356,7 +403,7 @@ s32 func_800599B8(s32 arg0, s32 arg1, s16 arg2, s32 arg3, s32 arg4) {
|
||||
D_8011D5AC = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return temp_v0;
|
||||
}
|
||||
|
||||
@@ -395,11 +442,11 @@ void func_8005A3D0(void) {
|
||||
s32 i;
|
||||
s32 count = 0;
|
||||
u8* temp = (u8*)&func_8003B4BC;
|
||||
|
||||
|
||||
for(i = 0; i < D_800DCB50; i++) {
|
||||
count += temp[i];
|
||||
}
|
||||
|
||||
|
||||
if (count != D_800DCDD0) {
|
||||
D_800DCB54 = 0x800;
|
||||
}
|
||||
@@ -423,7 +470,7 @@ typedef struct unk8005C270 {
|
||||
|
||||
void func_8005C270(unk8005C270 *arg0) {
|
||||
s32 temp = func_8001BA64();
|
||||
|
||||
|
||||
arg0->unk192--;
|
||||
if (arg0->unk192 < 0) {
|
||||
arg0->unk192 += temp;
|
||||
@@ -431,10 +478,8 @@ void func_8005C270(unk8005C270 *arg0) {
|
||||
arg0->unk193--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (arg0->unk190 >= -31999) {
|
||||
arg0->unk190--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user