diff --git a/asm/bss_8001C4D0.s b/asm/bss_8001C4D0.s index 639d414b9..a8279e459 100644 --- a/asm/bss_8001C4D0.s +++ b/asm/bss_8001C4D0.s @@ -76,22 +76,22 @@ glabel D_80164B08 glabel D_80164B0C .skip 4 -glabel D_80164B10 +glabel gPlayerRedEffect .skip 16 -glabel D_80164B20 +glabel gPlayerGreenEffect .skip 16 -glabel D_80164B30 +glabel gPlayerBlueEffect .skip 16 -glabel D_80164B40 +glabel gPlayerCyanEffect .skip 16 -glabel D_80164B50 +glabel gPlayerMagentaEffect .skip 16 -glabel D_80164B60 +glabel gPlayerYellowEffect .skip 32 glabel D_80164B80 @@ -175,7 +175,7 @@ glabel D_80165420 glabel D_80165440 .skip 32 -glabel D_80165460 +glabel gIsPlayerTripleAButtonCombo .skip 32 glabel D_80165480 @@ -590,9 +590,9 @@ glabel D_80165A90 .skip 392 # object list begin -# D_80165C18 should be of size 123,200 (0xE0 * 0x226) +# gObjectList should be of size 123,200 (0xE0 * 0x226) # D_80165CBC, D_80165CBE, and D_80165CED are all fake variables -glabel D_80165C18 +glabel gObjectList .skip 164 glabel D_80165CBC @@ -1711,7 +1711,7 @@ glabel gNumD_8018E768Entries glabel D_8018E768 .skip 64 -glabel D_8018E7A8 +glabel gCycleFlashMenu .skip 4 glabel D_8018E7AC diff --git a/asm/non_matchings/code_80005FD0/func_80007D04.s b/asm/non_matchings/code_80005FD0/func_80007D04.s index 5011e6f28..005324184 100644 --- a/asm/non_matchings/code_80005FD0/func_80007D04.s +++ b/asm/non_matchings/code_80005FD0/func_80007D04.s @@ -34,7 +34,7 @@ glabel func_80007D04 /* 008984 80007D84 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 008988 80007D88 03216024 */ and $t4, $t9, $at /* 00898C 80007D8C ACAC00BC */ sw $t4, 0xbc($a1) -/* 008990 80007D90 0C00C3F2 */ jal func_80030FC8 +/* 008990 80007D90 0C00C3F2 */ jal player_speed /* 008994 80007D94 AFA70030 */ sw $a3, 0x30($sp) /* 008998 80007D98 8FA70030 */ lw $a3, 0x30($sp) /* 00899C 80007D9C 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016 @@ -49,7 +49,7 @@ glabel func_80007D04 /* 0089BC 80007DBC 00C02025 */ move $a0, $a2 /* 0089C0 80007DC0 01E1C025 */ or $t8, $t7, $at /* 0089C4 80007DC4 ACD800BC */ sw $t8, 0xbc($a2) -/* 0089C8 80007DC8 0C00C3F2 */ jal func_80030FC8 +/* 0089C8 80007DC8 0C00C3F2 */ jal player_speed /* 0089CC 80007DCC AFA70030 */ sw $a3, 0x30($sp) /* 0089D0 80007DD0 8FA70030 */ lw $a3, 0x30($sp) /* 0089D4 80007DD4 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016 @@ -111,7 +111,7 @@ glabel func_80007D04 /* 008A98 80007E98 00C02025 */ move $a0, $a2 /* 008A9C 80007E9C 0301C825 */ or $t9, $t8, $at /* 008AA0 80007EA0 ACD900BC */ sw $t9, 0xbc($a2) -/* 008AA4 80007EA4 0C00C3F2 */ jal func_80030FC8 +/* 008AA4 80007EA4 0C00C3F2 */ jal player_speed /* 008AA8 80007EA8 AFA70030 */ sw $a3, 0x30($sp) /* 008AAC 80007EAC 8FA70030 */ lw $a3, 0x30($sp) /* 008AB0 80007EB0 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016 @@ -131,7 +131,7 @@ glabel func_80007D04 /* 008AE4 80007EE4 0301C824 */ and $t9, $t8, $at /* 008AE8 80007EE8 ACD900BC */ sw $t9, 0xbc($a2) /* 008AEC 80007EEC AFA70030 */ sw $a3, 0x30($sp) -/* 008AF0 80007EF0 0C00C3F2 */ jal func_80030FC8 +/* 008AF0 80007EF0 0C00C3F2 */ jal player_speed /* 008AF4 80007EF4 00C02025 */ move $a0, $a2 /* 008AF8 80007EF8 8FA70030 */ lw $a3, 0x30($sp) /* 008AFC 80007EFC 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016 @@ -153,7 +153,7 @@ glabel func_80007D04 /* 008B38 80007F38 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 008B3C 80007F3C 01C17824 */ and $t7, $t6, $at /* 008B40 80007F40 ACCF00BC */ sw $t7, 0xbc($a2) -/* 008B44 80007F44 0C00C3F2 */ jal func_80030FC8 +/* 008B44 80007F44 0C00C3F2 */ jal player_speed /* 008B48 80007F48 AFA2001C */ sw $v0, 0x1c($sp) /* 008B4C 80007F4C 8FA2001C */ lw $v0, 0x1c($sp) /* 008B50 80007F50 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016 diff --git a/asm/non_matchings/code_80005FD0/func_80008424.s b/asm/non_matchings/code_80005FD0/func_80008424.s index c3f2c3fab..50324b240 100644 --- a/asm/non_matchings/code_80005FD0/func_80008424.s +++ b/asm/non_matchings/code_80005FD0/func_80008424.s @@ -105,7 +105,7 @@ glabel func_80008424 /* 009180 80008580 0061C024 */ and $t8, $v1, $at /* 009184 80008584 45000005 */ bc1f .L8000859C /* 009188 80008588 00E02025 */ move $a0, $a3 -/* 00918C 8000858C 0C00C3F2 */ jal func_80030FC8 +/* 00918C 8000858C 0C00C3F2 */ jal player_speed /* 009190 80008590 ACF800BC */ sw $t8, 0xbc($a3) /* 009194 80008594 100000CD */ b .L800088CC /* 009198 80008598 8FBF0014 */ lw $ra, 0x14($sp) @@ -126,7 +126,7 @@ glabel func_80008424 /* 0091D0 800085D0 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff /* 0091D4 800085D4 00615024 */ and $t2, $v1, $at /* 0091D8 800085D8 ACEA00BC */ sw $t2, 0xbc($a3) -/* 0091DC 800085DC 0C00C3F2 */ jal func_80030FC8 +/* 0091DC 800085DC 0C00C3F2 */ jal player_speed /* 0091E0 800085E0 00E02025 */ move $a0, $a3 /* 0091E4 800085E4 100000B9 */ b .L800088CC /* 0091E8 800085E8 8FBF0014 */ lw $ra, 0x14($sp) @@ -162,7 +162,7 @@ glabel func_80008424 /* 009258 80008658 3C010020 */ lui $at, 0x20 /* 00925C 8000865C 00E02025 */ move $a0, $a3 /* 009260 80008660 01E1C025 */ or $t8, $t7, $at -/* 009264 80008664 0C00C3F2 */ jal func_80030FC8 +/* 009264 80008664 0C00C3F2 */ jal player_speed /* 009268 80008668 ACF800BC */ sw $t8, 0xbc($a3) /* 00926C 8000866C 10000097 */ b .L800088CC /* 009270 80008670 8FBF0014 */ lw $ra, 0x14($sp) @@ -202,7 +202,7 @@ glabel func_80008424 /* 0092E8 800086E8 AFA70040 */ sw $a3, 0x40($sp) /* 0092EC 800086EC AFA6001C */ sw $a2, 0x1c($sp) /* 0092F0 800086F0 AFA50028 */ sw $a1, 0x28($sp) -/* 0092F4 800086F4 0C00C3F2 */ jal func_80030FC8 +/* 0092F4 800086F4 0C00C3F2 */ jal player_speed /* 0092F8 800086F8 00E02025 */ move $a0, $a3 /* 0092FC 800086FC 8FA50028 */ lw $a1, 0x28($sp) /* 009300 80008700 8FA6001C */ lw $a2, 0x1c($sp) @@ -219,7 +219,7 @@ glabel func_80008424 /* 009328 80008728 E7A20034 */ swc1 $f2, 0x34($sp) /* 00932C 8000872C AFA70040 */ sw $a3, 0x40($sp) /* 009330 80008730 AFA6001C */ sw $a2, 0x1c($sp) -/* 009334 80008734 0C00C3F2 */ jal func_80030FC8 +/* 009334 80008734 0C00C3F2 */ jal player_speed /* 009338 80008738 AFA50028 */ sw $a1, 0x28($sp) /* 00933C 8000873C 8FA50028 */ lw $a1, 0x28($sp) /* 009340 80008740 8FA6001C */ lw $a2, 0x1c($sp) @@ -263,7 +263,7 @@ glabel func_80008424 /* 0093CC 800087CC 24010014 */ li $at, 20 /* 0093D0 800087D0 11A10005 */ beq $t5, $at, .L800087E8 /* 0093D4 800087D4 00000000 */ nop -/* 0093D8 800087D8 0C00C3F2 */ jal func_80030FC8 +/* 0093D8 800087D8 0C00C3F2 */ jal player_speed /* 0093DC 800087DC 00E02025 */ move $a0, $a3 /* 0093E0 800087E0 1000003A */ b .L800088CC /* 0093E4 800087E4 8FBF0014 */ lw $ra, 0x14($sp) @@ -293,7 +293,7 @@ glabel func_80008424 /* 00943C 8000883C 3C010020 */ lui $at, 0x20 /* 009440 80008840 00E02025 */ move $a0, $a3 /* 009444 80008844 0301C825 */ or $t9, $t8, $at -/* 009448 80008848 0C00C3F2 */ jal func_80030FC8 +/* 009448 80008848 0C00C3F2 */ jal player_speed /* 00944C 8000884C ACF900BC */ sw $t9, 0xbc($a3) /* 009450 80008850 1000001E */ b .L800088CC /* 009454 80008854 8FBF0014 */ lw $ra, 0x14($sp) diff --git a/asm/non_matchings/code_80005FD0/func_800088D8.s b/asm/non_matchings/code_80005FD0/func_800088D8.s index 3ad143212..8f5d21764 100644 --- a/asm/non_matchings/code_80005FD0/func_800088D8.s +++ b/asm/non_matchings/code_80005FD0/func_800088D8.s @@ -255,8 +255,8 @@ glabel func_800088D8 .L80008C88: /* 009888 80008C88 5420FFF3 */ bnel $at, $zero, .L80008C58 /* 00988C 80008C8C 948F0000 */ lhu $t7, ($a0) -/* 009890 80008C90 3C098019 */ lui $t1, %hi(D_8018EDF3) # $t1, 0x8019 -/* 009894 80008C94 8129EDF3 */ lb $t1, %lo(D_8018EDF3)($t1) +/* 009890 80008C90 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019 +/* 009894 80008C94 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1) /* 009898 80008C98 3C188016 */ lui $t8, %hi(gGPCurrentRaceRankByPlayerId) /* 00989C 80008C9C 00002025 */ move $a0, $zero /* 0098A0 80008CA0 19200010 */ blez $t1, .L80008CE4 diff --git a/asm/non_matchings/code_80005FD0/func_8000929C.s b/asm/non_matchings/code_80005FD0/func_8000929C.s index 9c9e50c80..153c87260 100644 --- a/asm/non_matchings/code_80005FD0/func_8000929C.s +++ b/asm/non_matchings/code_80005FD0/func_8000929C.s @@ -336,8 +336,8 @@ glabel func_8000929C /* 00A360 80009760 3C068016 */ lui $a2, %hi(D_80163448) # $a2, 0x8016 /* 00A364 80009764 15A00013 */ bnez $t5, .L800097B4 /* 00A368 80009768 3C038016 */ lui $v1, %hi(D_80162FCE) # $v1, 0x8016 -/* 00A36C 8000976C 3C0E8019 */ lui $t6, %hi(D_8018EDF3) # $t6, 0x8019 -/* 00A370 80009770 81CEEDF3 */ lb $t6, %lo(D_8018EDF3)($t6) +/* 00A36C 8000976C 3C0E8019 */ lui $t6, %hi(gPlayerCount) # $t6, 0x8019 +/* 00A370 80009770 81CEEDF3 */ lb $t6, %lo(gPlayerCount)($t6) /* 00A374 80009774 24010002 */ li $at, 2 /* 00A378 80009778 15C1000E */ bne $t6, $at, .L800097B4 /* 00A37C 8000977C 00000000 */ nop diff --git a/asm/non_matchings/code_80005FD0/func_800099EC.s b/asm/non_matchings/code_80005FD0/func_800099EC.s index 29a8ac3b2..c56385b21 100644 --- a/asm/non_matchings/code_80005FD0/func_800099EC.s +++ b/asm/non_matchings/code_80005FD0/func_800099EC.s @@ -20,8 +20,8 @@ glabel func_800099EC /* 00A634 80009A34 AFA5004C */ sw $a1, 0x4c($sp) /* 00A638 80009A38 14200027 */ bnez $at, .L80009AD8 /* 00A63C 80009A3C AFAE0040 */ sw $t6, 0x40($sp) -/* 00A640 80009A40 3C048019 */ lui $a0, %hi(D_8018EDF3) # $a0, 0x8019 -/* 00A644 80009A44 8084EDF3 */ lb $a0, %lo(D_8018EDF3)($a0) +/* 00A640 80009A40 3C048019 */ lui $a0, %hi(gPlayerCount) # $a0, 0x8019 +/* 00A644 80009A44 8084EDF3 */ lb $a0, %lo(gPlayerCount)($a0) /* 00A648 80009A48 00008025 */ move $s0, $zero /* 00A64C 80009A4C 0014A880 */ sll $s5, $s4, 2 /* 00A650 80009A50 18800021 */ blez $a0, .L80009AD8 @@ -51,8 +51,8 @@ glabel func_800099EC /* 00A6AC 80009AAC 0C0324B3 */ jal func_800C92CC /* 00A6B0 80009AB0 328400FF */ andi $a0, $s4, 0xff /* 00A6B4 80009AB4 A6E00000 */ sh $zero, ($s7) -/* 00A6B8 80009AB8 3C048019 */ lui $a0, %hi(D_8018EDF3) # $a0, 0x8019 -/* 00A6BC 80009ABC 8084EDF3 */ lb $a0, %lo(D_8018EDF3)($a0) +/* 00A6B8 80009AB8 3C048019 */ lui $a0, %hi(gPlayerCount) # $a0, 0x8019 +/* 00A6BC 80009ABC 8084EDF3 */ lb $a0, %lo(gPlayerCount)($a0) /* 00A6C0 80009AC0 26100001 */ addiu $s0, $s0, 1 .L80009AC4: /* 00A6C4 80009AC4 0204082A */ slt $at, $s0, $a0 diff --git a/asm/non_matchings/code_80005FD0/func_80009B60.s b/asm/non_matchings/code_80005FD0/func_80009B60.s index 94ee8a5e8..7e6f3a4c7 100644 --- a/asm/non_matchings/code_80005FD0/func_80009B60.s +++ b/asm/non_matchings/code_80005FD0/func_80009B60.s @@ -441,7 +441,7 @@ glabel func_80009B60 /* 00AD5C 8000A15C AD4E00BC */ sw $t6, 0xbc($t2) /* 00AD60 8000A160 8DEF3378 */ lw $t7, %lo(D_80163378)($t7) /* 00AD64 8000A164 8FB80030 */ lw $t8, 0x30($sp) -/* 00AD68 8000A168 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 +/* 00AD68 8000A168 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 00AD6C 8000A16C 31EC0001 */ andi $t4, $t7, 1 /* 00AD70 8000A170 1198000C */ beq $t4, $t8, .L8000A1A4 /* 00AD74 8000A174 01402025 */ move $a0, $t2 @@ -457,7 +457,7 @@ glabel func_80009B60 /* 00AD9C 8000A19C 100003E5 */ b .L8000B134 /* 00ADA0 8000A1A0 8FBF0014 */ lw $ra, 0x14($sp) .L8000A1A4: -/* 00ADA4 8000A1A4 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 00ADA4 8000A1A4 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 00ADA8 8000A1A8 18400016 */ blez $v0, .L8000A204 /* 00ADAC 8000A1AC 28410003 */ slti $at, $v0, 3 /* 00ADB0 8000A1B0 10200014 */ beqz $at, .L8000A204 diff --git a/asm/non_matchings/code_80005FD0/func_8000DF8C.s b/asm/non_matchings/code_80005FD0/func_8000DF8C.s index db27bd2ac..f5c60c007 100644 --- a/asm/non_matchings/code_80005FD0/func_8000DF8C.s +++ b/asm/non_matchings/code_80005FD0/func_8000DF8C.s @@ -123,8 +123,8 @@ glabel func_8000DF8C /* 00ECEC 8000E0EC 10000037 */ b .L8000E1CC /* 00ECF0 8000E0F0 AFAF004C */ sw $t7, 0x4c($sp) .L8000E0F4: -/* 00ECF4 8000E0F4 3C038019 */ lui $v1, %hi(D_8018EDF3) # $v1, 0x8019 -/* 00ECF8 8000E0F8 8063EDF3 */ lb $v1, %lo(D_8018EDF3)($v1) +/* 00ECF4 8000E0F4 3C038019 */ lui $v1, %hi(gPlayerCount) # $v1, 0x8019 +/* 00ECF8 8000E0F8 8063EDF3 */ lb $v1, %lo(gPlayerCount)($v1) /* 00ECFC 8000E0FC 00002025 */ move $a0, $zero /* 00ED00 8000E100 3C0141C8 */ li $at, 0x41C80000 # 25.000000 /* 00ED04 8000E104 58600032 */ blezl $v1, .L8000E1D0 @@ -163,17 +163,17 @@ glabel func_8000DF8C /* 00ED84 8000E184 14EB0007 */ bne $a3, $t3, .L8000E1A4 /* 00ED88 8000E188 00008825 */ move $s1, $zero /* 00ED8C 8000E18C 8C4C000C */ lw $t4, 0xc($v0) -/* 00ED90 8000E190 3C038019 */ lui $v1, %hi(D_8018EDF3) # $v1, 0x8019 +/* 00ED90 8000E190 3C038019 */ lui $v1, %hi(gPlayerCount) # $v1, 0x8019 /* 00ED94 8000E194 01886825 */ or $t5, $t4, $t0 /* 00ED98 8000E198 AC4D000C */ sw $t5, 0xc($v0) /* 00ED9C 8000E19C 10000006 */ b .L8000E1B8 -/* 00EDA0 8000E1A0 8063EDF3 */ lb $v1, %lo(D_8018EDF3)($v1) +/* 00EDA0 8000E1A0 8063EDF3 */ lb $v1, %lo(gPlayerCount)($v1) .L8000E1A4: /* 00EDA4 8000E1A4 8C4E000C */ lw $t6, 0xc($v0) -/* 00EDA8 8000E1A8 3C038019 */ lui $v1, %hi(D_8018EDF3) # $v1, 0x8019 +/* 00EDA8 8000E1A8 3C038019 */ lui $v1, %hi(gPlayerCount) # $v1, 0x8019 /* 00EDAC 8000E1AC 01C57825 */ or $t7, $t6, $a1 /* 00EDB0 8000E1B0 AC4F000C */ sw $t7, 0xc($v0) -/* 00EDB4 8000E1B4 8063EDF3 */ lb $v1, %lo(D_8018EDF3)($v1) +/* 00EDB4 8000E1B4 8063EDF3 */ lb $v1, %lo(gPlayerCount)($v1) .L8000E1B8: /* 00EDB8 8000E1B8 0083082A */ slt $at, $a0, $v1 .L8000E1BC: diff --git a/asm/non_matchings/code_80005FD0/func_8000F124.s b/asm/non_matchings/code_80005FD0/func_8000F124.s index 888adf814..f09f2ff4d 100644 --- a/asm/non_matchings/code_80005FD0/func_8000F124.s +++ b/asm/non_matchings/code_80005FD0/func_8000F124.s @@ -23,8 +23,8 @@ glabel func_8000F124 /* 00FD74 8000F174 26313348 */ addiu $s1, %lo(D_80163348) # addiu $s1, $s1, 0x3348 /* 00FD78 8000F178 15E0004A */ bnez $t7, .L8000F2A4 /* 00FD7C 8000F17C 00008025 */ move $s0, $zero -/* 00FD80 8000F180 3C128019 */ lui $s2, %hi(D_8018EDF3) # $s2, 0x8019 -/* 00FD84 8000F184 2652EDF3 */ addiu $s2, %lo(D_8018EDF3) # addiu $s2, $s2, -0x120d +/* 00FD80 8000F180 3C128019 */ lui $s2, %hi(gPlayerCount) # $s2, 0x8019 +/* 00FD84 8000F184 2652EDF3 */ addiu $s2, %lo(gPlayerCount) # addiu $s2, $s2, -0x120d .L8000F188: /* 00FD88 8000F188 0C0ADF8D */ jal random_int /* 00FD8C 8000F18C 24040008 */ li $a0, 8 diff --git a/asm/non_matchings/code_80005FD0/func_8001A588.s b/asm/non_matchings/code_80005FD0/func_8001A588.s index 7a82fea75..7b558f223 100644 --- a/asm/non_matchings/code_80005FD0/func_8001A588.s +++ b/asm/non_matchings/code_80005FD0/func_8001A588.s @@ -188,13 +188,13 @@ glabel func_8001A588 /* 01B414 8001A814 00000000 */ nop /* 01B418 8001A818 8D020000 */ lw $v0, ($t0) /* 01B41C 8001A81C 24010104 */ li $at, 260 -/* 01B420 8001A820 3C0D8019 */ lui $t5, %hi(D_8018EDF3) # $t5, 0x8019 +/* 01B420 8001A820 3C0D8019 */ lui $t5, %hi(gPlayerCount) # $t5, 0x8019 /* 01B424 8001A824 10410003 */ beq $v0, $at, .L8001A834 /* 01B428 8001A828 24010105 */ li $at, 261 /* 01B42C 8001A82C 1441004D */ bne $v0, $at, .L8001A964 /* 01B430 8001A830 00000000 */ nop .L8001A834: -/* 01B434 8001A834 81ADEDF3 */ lb $t5, %lo(D_8018EDF3)($t5) +/* 01B434 8001A834 81ADEDF3 */ lb $t5, %lo(gPlayerCount)($t5) /* 01B438 8001A838 24010002 */ li $at, 2 /* 01B43C 8001A83C 00001825 */ move $v1, $zero /* 01B440 8001A840 15A1000A */ bne $t5, $at, .L8001A86C diff --git a/asm/non_matchings/code_80005FD0/func_8001AC10.s b/asm/non_matchings/code_80005FD0/func_8001AC10.s index 12a360415..8061bd692 100644 --- a/asm/non_matchings/code_80005FD0/func_8001AC10.s +++ b/asm/non_matchings/code_80005FD0/func_8001AC10.s @@ -96,7 +96,7 @@ glabel L8001ACAC /* 01B928 8001AD28 00032400 */ sll $a0, $v1, 0x10 /* 01B92C 8001AD2C 00046403 */ sra $t4, $a0, 0x10 /* 01B930 8001AD30 01802025 */ move $a0, $t4 -/* 01B934 8001AD34 0C01EBDE */ jal func_8007AF78 +/* 01B934 8001AD34 0C01EBDE */ jal gen_random_item_cpu /* 01B938 8001AD38 85A50002 */ lh $a1, 2($t5) /* 01B93C 8001AD3C 8FA40030 */ lw $a0, 0x30($sp) /* 01B940 8001AD40 02002825 */ move $a1, $s0 @@ -201,7 +201,7 @@ glabel L8001AD64 .L8001AEB4: /* 01BAB4 8001AEB4 1505001D */ bne $t0, $a1, .L8001AF2C /* 01BAB8 8001AEB8 00000000 */ nop -/* 01BABC 8001AEBC 0C0ACB5C */ jal func_802B2D70 +/* 01BABC 8001AEBC 0C0ACB5C */ jal use_banana_item /* 01BAC0 8001AEC0 8FA4002C */ lw $a0, 0x2c($sp) /* 01BAC4 8001AEC4 A6020002 */ sh $v0, 2($s0) /* 01BAC8 8001AEC8 86030002 */ lh $v1, 2($s0) @@ -351,7 +351,7 @@ glabel L8001AFD8 /* 01BCE4 8001B0E4 10000353 */ b .L8001BE34 /* 01BCE8 8001B0E8 86020004 */ lh $v0, 4($s0) glabel L8001B0EC -/* 01BCEC 8001B0EC 0C0ACB5C */ jal func_802B2D70 +/* 01BCEC 8001B0EC 0C0ACB5C */ jal use_banana_item /* 01BCF0 8001B0F0 8FA4002C */ lw $a0, 0x2c($sp) /* 01BCF4 8001B0F4 8FAA0030 */ lw $t2, 0x30($sp) /* 01BCF8 8001B0F8 A6020002 */ sh $v0, 2($s0) @@ -608,7 +608,7 @@ glabel L8001B4AC /* 01C0B4 8001B4B4 29C10050 */ slti $at, $t6, 0x50 /* 01C0B8 8001B4B8 50200019 */ beql $at, $zero, .L8001B520 /* 01C0BC 8001B4BC A6000000 */ sh $zero, ($s0) -/* 01C0C0 8001B4C0 0C0AC727 */ jal func_802B1C9C +/* 01C0C0 8001B4C0 0C0AC727 */ jal use_green_shell_item /* 01C0C4 8001B4C4 8FA4002C */ lw $a0, 0x2c($sp) /* 01C0C8 8001B4C8 A6020002 */ sh $v0, 2($s0) /* 01C0CC 8001B4CC 86030002 */ lh $v1, 2($s0) @@ -715,7 +715,7 @@ glabel L8001B630 /* 01C238 8001B638 29610050 */ slti $at, $t3, 0x50 /* 01C23C 8001B63C 50200019 */ beql $at, $zero, .L8001B6A4 /* 01C240 8001B640 A6000000 */ sh $zero, ($s0) -/* 01C244 8001B644 0C0AC792 */ jal func_802B1E48 +/* 01C244 8001B644 0C0AC792 */ jal use_red_shell_item /* 01C248 8001B648 8FA4002C */ lw $a0, 0x2c($sp) /* 01C24C 8001B64C A6020002 */ sh $v0, 2($s0) /* 01C250 8001B650 86030002 */ lh $v1, 2($s0) @@ -824,7 +824,7 @@ glabel L8001B7BC /* 01C3C4 8001B7C4 29A10050 */ slti $at, $t5, 0x50 /* 01C3C8 8001B7C8 50200019 */ beql $at, $zero, .L8001B830 /* 01C3CC 8001B7CC A6000000 */ sh $zero, ($s0) -/* 01C3D0 8001B7D0 0C0AC5FD */ jal func_802B17F4 +/* 01C3D0 8001B7D0 0C0AC5FD */ jal use_banana_bunch_item /* 01C3D4 8001B7D4 8FA4002C */ lw $a0, 0x2c($sp) /* 01C3D8 8001B7D8 A6020002 */ sh $v0, 2($s0) /* 01C3DC 8001B7DC 86030002 */ lh $v1, 2($s0) @@ -1000,7 +1000,7 @@ glabel L8001B9D0 /* 01C630 8001BA30 10000100 */ b .L8001BE34 /* 01C634 8001BA34 86020004 */ lh $v0, 4($s0) glabel L8001BA38 -/* 01C638 8001BA38 0C0ACB10 */ jal func_802B2C40 +/* 01C638 8001BA38 0C0ACB10 */ jal use_fake_itembox_item /* 01C63C 8001BA3C 8FA4002C */ lw $a0, 0x2c($sp) /* 01C640 8001BA40 A6020002 */ sh $v0, 2($s0) /* 01C644 8001BA44 86030002 */ lh $v1, 2($s0) @@ -1134,7 +1134,7 @@ glabel L8001BB30 /* 01C820 8001BC20 10000084 */ b .L8001BE34 /* 01C824 8001BC24 86020004 */ lh $v0, 4($s0) glabel L8001BC28 -/* 01C828 8001BC28 0C0ACBAF */ jal func_802B2EBC +/* 01C828 8001BC28 0C0ACBAF */ jal use_thunder_item /* 01C82C 8001BC2C 8FA4002C */ lw $a0, 0x2c($sp) /* 01C830 8001BC30 8FAA0030 */ lw $t2, 0x30($sp) /* 01C834 8001BC34 0C032B18 */ jal func_800CAC60 diff --git a/asm/non_matchings/code_80057C60/func_8005CB60.s b/asm/non_matchings/code_80057C60/func_8005CB60.s index 329115187..1815eaf16 100644 --- a/asm/non_matchings/code_80057C60/func_8005CB60.s +++ b/asm/non_matchings/code_80057C60/func_8005CB60.s @@ -245,8 +245,8 @@ glabel func_8005CB60 /* 05DAF0 8005CEF0 8602003C */ lh $v0, 0x3c($s0) /* 05DAF4 8005CEF4 0C01E415 */ jal func_80079054 /* 05DAF8 8005CEF8 00E02025 */ move $a0, $a3 -/* 05DAFC 8005CEFC 3C0A8019 */ lui $t2, %hi(D_8018EDF3) # $t2, 0x8019 -/* 05DB00 8005CF00 814AEDF3 */ lb $t2, %lo(D_8018EDF3)($t2) +/* 05DAFC 8005CEFC 3C0A8019 */ lui $t2, %hi(gPlayerCount) # $t2, 0x8019 +/* 05DB00 8005CF00 814AEDF3 */ lb $t2, %lo(gPlayerCount)($t2) /* 05DB04 8005CF04 24060001 */ li $a2, 1 /* 05DB08 8005CF08 3C018019 */ lui $at, %hi(D_8018D20C) # $at, 0x8019 /* 05DB0C 8005CF0C 14CA005D */ bne $a2, $t2, .L8005D084 diff --git a/asm/non_matchings/code_80057C60/func_8006AFD0.s b/asm/non_matchings/code_80057C60/func_8006AFD0.s index 3f16b5de9..972b4e7c1 100644 --- a/asm/non_matchings/code_80057C60/func_8006AFD0.s +++ b/asm/non_matchings/code_80057C60/func_8006AFD0.s @@ -280,11 +280,11 @@ glabel func_8006AFD0 /* 06BF90 8006B390 46044181 */ sub.s $f6, $f8, $f4 /* 06BF94 8006B394 4600348D */ trunc.w.s $f18, $f6 /* 06BF98 8006B398 440E9000 */ mfc1 $t6, $f18 -/* 06BF9C 8006B39C 0C008784 */ jal func_80021E10 +/* 06BF9C 8006B39C 0C008784 */ jal mtxf_translate_rotate /* 06BFA0 8006B3A0 A7AE0130 */ sh $t6, 0x130($sp) /* 06BFA4 8006B3A4 27B00140 */ addiu $s0, $sp, 0x140 /* 06BFA8 8006B3A8 4405A000 */ mfc1 $a1, $f20 -/* 06BFAC 8006B3AC 0C0087E1 */ jal func_80021F84 +/* 06BFAC 8006B3AC 0C0087E1 */ jal mtxf_scale2 /* 06BFB0 8006B3B0 02002025 */ move $a0, $s0 /* 06BFB4 8006B3B4 3C198016 */ lui $t9, %hi(gMatrixEffectCount) # $t9, 0x8016 /* 06BFB8 8006B3B8 87394AF0 */ lh $t9, %lo(gMatrixEffectCount)($t9) @@ -294,7 +294,7 @@ glabel func_8006AFD0 /* 06BFC8 8006B3C8 3401FAC0 */ li $at, 64192 /* 06BFCC 8006B3CC 01F82021 */ addu $a0, $t7, $t8 /* 06BFD0 8006B3D0 00812021 */ addu $a0, $a0, $at -/* 06BFD4 8006B3D4 0C008860 */ jal func_80022180 +/* 06BFD4 8006B3D4 0C008860 */ jal convert_to_fixed_point_matrix /* 06BFD8 8006B3D8 02002825 */ move $a1, $s0 /* 06BFDC 8006B3DC 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015 /* 06BFE0 8006B3E0 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298 @@ -411,7 +411,7 @@ glabel func_8006AFD0 /* 06C19C 8006B59C AC4F0004 */ sw $t7, 4($v0) /* 06C1A0 8006B5A0 8C620000 */ lw $v0, ($v1) /* 06C1A4 8006B5A4 3C19F550 */ lui $t9, 0xf550 -/* 06C1A8 8006B5A8 3C1F0D01 */ lui $ra, %hi(D_0D008C78) # $ra, 0xd01 +/* 06C1A8 8006B5A8 3C1F0D01 */ lui $ra, %hi(common_square_plain_render) # $ra, 0xd01 /* 06C1AC 8006B5AC 244E0008 */ addiu $t6, $v0, 8 /* 06C1B0 8006B5B0 AC6E0000 */ sw $t6, ($v1) /* 06C1B4 8006B5B4 AC580004 */ sw $t8, 4($v0) @@ -454,16 +454,16 @@ glabel func_8006AFD0 /* 06C248 8006B648 AC580000 */ sw $t8, ($v0) /* 06C24C 8006B64C AC4F0004 */ sw $t7, 4($v0) /* 06C250 8006B650 8C620000 */ lw $v0, ($v1) -/* 06C254 8006B654 3C18800E */ lui $t8, %hi(D_800E5250) # $t8, 0x800e +/* 06C254 8006B654 3C18800E */ lui $t8, %hi(gBalloonVertexPlane1) # $t8, 0x800e /* 06C258 8006B658 3C190400 */ lui $t9, (0x0400103F >> 16) # lui $t9, 0x400 /* 06C25C 8006B65C 244E0008 */ addiu $t6, $v0, 8 /* 06C260 8006B660 AC6E0000 */ sw $t6, ($v1) /* 06C264 8006B664 3739103F */ ori $t9, (0x0400103F & 0xFFFF) # ori $t9, $t9, 0x103f -/* 06C268 8006B668 27185250 */ addiu $t8, %lo(D_800E5250) # addiu $t8, $t8, 0x5250 +/* 06C268 8006B668 27185250 */ addiu $t8, %lo(gBalloonVertexPlane1) # addiu $t8, $t8, 0x5250 /* 06C26C 8006B66C AC580004 */ sw $t8, 4($v0) /* 06C270 8006B670 AC590000 */ sw $t9, ($v0) /* 06C274 8006B674 8C620000 */ lw $v0, ($v1) -/* 06C278 8006B678 27FF8C78 */ addiu $ra, %lo(D_0D008C78) # addiu $ra, $ra, -0x7388 +/* 06C278 8006B678 27FF8C78 */ addiu $ra, %lo(common_square_plain_render) # addiu $ra, $ra, -0x7388 /* 06C27C 8006B67C 3C19FD50 */ lui $t9, 0xfd50 /* 06C280 8006B680 244F0008 */ addiu $t7, $v0, 8 /* 06C284 8006B684 AC6F0000 */ sw $t7, ($v1) @@ -523,12 +523,12 @@ glabel func_8006AFD0 /* 06C35C 8006B75C AC580000 */ sw $t8, ($v0) /* 06C360 8006B760 AC4F0004 */ sw $t7, 4($v0) /* 06C364 8006B764 8C620000 */ lw $v0, ($v1) -/* 06C368 8006B768 3C18800E */ lui $t8, %hi(D_800E5290) # $t8, 0x800e +/* 06C368 8006B768 3C18800E */ lui $t8, %hi(gBalloonVertexPlane2) # $t8, 0x800e /* 06C36C 8006B76C 3C190400 */ lui $t9, (0x0400103F >> 16) # lui $t9, 0x400 /* 06C370 8006B770 244E0008 */ addiu $t6, $v0, 8 /* 06C374 8006B774 AC6E0000 */ sw $t6, ($v1) /* 06C378 8006B778 3739103F */ ori $t9, (0x0400103F & 0xFFFF) # ori $t9, $t9, 0x103f -/* 06C37C 8006B77C 27185290 */ addiu $t8, %lo(D_800E5290) # addiu $t8, $t8, 0x5290 +/* 06C37C 8006B77C 27185290 */ addiu $t8, %lo(gBalloonVertexPlane2) # addiu $t8, $t8, 0x5290 /* 06C380 8006B780 AC580004 */ sw $t8, 4($v0) /* 06C384 8006B784 AC590000 */ sw $t9, ($v0) /* 06C388 8006B788 8C620000 */ lw $v0, ($v1) diff --git a/asm/non_matchings/code_8006E9C0/func_8006F008.s b/asm/non_matchings/code_8006E9C0/func_8006F008.s index 35e666cb2..83ba89547 100644 --- a/asm/non_matchings/code_8006E9C0/func_8006F008.s +++ b/asm/non_matchings/code_8006E9C0/func_8006F008.s @@ -568,14 +568,14 @@ glabel L8006F734 /* 070368 8006F768 3C048019 */ lui $a0, %hi(D_8018D2E0) # $a0, 0x8019 /* 07036C 8006F76C 2484D2E0 */ addiu $a0, %lo(D_8018D2E0) # addiu $a0, $a0, -0x2d20 /* 070370 8006F770 11200006 */ beqz $t1, .L8006F78C -/* 070374 8006F774 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 +/* 070374 8006F774 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 070378 8006F778 3C0A8019 */ lui $t2, %hi(D_8018D2B0) # $t2, 0x8019 /* 07037C 8006F77C 854AD2B0 */ lh $t2, %lo(D_8018D2B0)($t2) /* 070380 8006F780 848B0000 */ lh $t3, ($a0) /* 070384 8006F784 014B6023 */ subu $t4, $t2, $t3 /* 070388 8006F788 A48C0000 */ sh $t4, ($a0) .L8006F78C: -/* 07038C 8006F78C 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 07038C 8006F78C 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 070390 8006F790 24010004 */ li $at, 4 /* 070394 8006F794 14410005 */ bne $v0, $at, .L8006F7AC /* 070398 8006F798 240D00A0 */ li $t5, 160 diff --git a/asm/non_matchings/code_8006E9C0/func_8006F8CC.s b/asm/non_matchings/code_8006E9C0/func_8006F8CC.s index 201da90dd..bd60eafa8 100644 --- a/asm/non_matchings/code_8006E9C0/func_8006F8CC.s +++ b/asm/non_matchings/code_8006E9C0/func_8006F8CC.s @@ -23,9 +23,9 @@ glabel func_8006F8CC /* 070520 8006F920 24C657F0 */ addiu $a2, %lo(D_801657F0) # addiu $a2, $a2, 0x57f0 /* 070524 8006F924 A0C00000 */ sb $zero, ($a2) /* 070528 8006F928 A1030000 */ sb $v1, ($t0) -/* 07052C 8006F92C 3C048019 */ lui $a0, %hi(D_8018EDF3) # $a0, 0x8019 +/* 07052C 8006F92C 3C048019 */ lui $a0, %hi(gPlayerCount) # $a0, 0x8019 /* 070530 8006F930 A04F0000 */ sb $t7, ($v0) -/* 070534 8006F934 8084EDF3 */ lb $a0, %lo(D_8018EDF3)($a0) +/* 070534 8006F934 8084EDF3 */ lb $a0, %lo(gPlayerCount)($a0) /* 070538 8006F938 24010004 */ li $at, 4 /* 07053C 8006F93C 3C18800E */ lui $t8, %hi(gModeSelection) # $t8, 0x800e /* 070540 8006F940 14810012 */ bne $a0, $at, .L8006F98C diff --git a/asm/non_matchings/code_8006E9C0/func_8006FA94.s b/asm/non_matchings/code_8006E9C0/func_8006FA94.s index 0b4da05d0..f43144c9f 100644 --- a/asm/non_matchings/code_8006E9C0/func_8006FA94.s +++ b/asm/non_matchings/code_8006E9C0/func_8006FA94.s @@ -68,8 +68,8 @@ glabel func_8006FA94 /* 07079C 8006FB9C AC600008 */ sw $zero, 8($v1) /* 0707A0 8006FBA0 AC600004 */ sw $zero, 4($v1) /* 0707A4 8006FBA4 AC600000 */ sw $zero, ($v1) -/* 0707A8 8006FBA8 3C1F8019 */ lui $ra, %hi(D_8018EDF3) # $ra, 0x8019 -/* 0707AC 8006FBAC 83FFEDF3 */ lb $ra, %lo(D_8018EDF3)($ra) +/* 0707A8 8006FBA8 3C1F8019 */ lui $ra, %hi(gPlayerCount) # $ra, 0x8019 +/* 0707AC 8006FBAC 83FFEDF3 */ lb $ra, %lo(gPlayerCount)($ra) /* 0707B0 8006FBB0 3C018016 */ lui $at, %hi(D_801658BC) # $at, 0x8016 /* 0707B4 8006FBB4 A02E58BC */ sb $t6, %lo(D_801658BC)($at) /* 0707B8 8006FBB8 24010001 */ li $at, 1 diff --git a/asm/non_matchings/code_8006E9C0/func_80070780.s b/asm/non_matchings/code_8006E9C0/func_80070780.s index ac30c9c56..ce98a686b 100644 --- a/asm/non_matchings/code_8006E9C0/func_80070780.s +++ b/asm/non_matchings/code_8006E9C0/func_80070780.s @@ -109,10 +109,10 @@ glabel L80070848 /* 0714D0 800708D0 26313EA0 */ addiu $s1, %lo(D_80183EA0) # addiu $s1, $s1, 0x3ea0 /* 0714D4 800708D4 19C0002A */ blez $t6, .L80070980 /* 0714D8 800708D8 00009825 */ move $s3, $zero -/* 0714DC 800708DC 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 +/* 0714DC 800708DC 3C158016 */ lui $s5, %hi(gObjectList) # $s5, 0x8016 /* 0714E0 800708E0 3C148019 */ lui $s4, %hi(D_8018D01C) # $s4, 0x8019 /* 0714E4 800708E4 2694D01C */ addiu $s4, %lo(D_8018D01C) # addiu $s4, $s4, -0x2fe4 -/* 0714E8 800708E8 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 +/* 0714E8 800708E8 26B55C18 */ addiu $s5, %lo(gObjectList) # addiu $s5, $s5, 0x5c18 /* 0714EC 800708EC 00009025 */ move $s2, $zero /* 0714F0 800708F0 241600E0 */ li $s6, 224 .L800708F4: @@ -155,8 +155,8 @@ glabel L80070848 /* 071580 80070980 3C108018 */ lui $s0, %hi(D_80183F28) # $s0, 0x8018 /* 071584 80070984 8E103F28 */ lw $s0, %lo(D_80183F28)($s0) /* 071588 80070988 3C148019 */ lui $s4, %hi(D_8018D01C) # $s4, 0x8019 -/* 07158C 8007098C 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 -/* 071590 80070990 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 +/* 07158C 8007098C 3C158016 */ lui $s5, %hi(gObjectList) # $s5, 0x8016 +/* 071590 80070990 26B55C18 */ addiu $s5, %lo(gObjectList) # addiu $s5, $s5, 0x5c18 /* 071594 80070994 2694D01C */ addiu $s4, %lo(D_8018D01C) # addiu $s4, $s4, -0x2fe4 /* 071598 80070998 241600E0 */ li $s6, 224 /* 07159C 8007099C 00002825 */ move $a1, $zero @@ -222,7 +222,7 @@ glabel L80070848 /* 071684 80070A84 2631C0B0 */ addiu $s1, %lo(D_8018C0B0) # addiu $s1, $s1, -0x3f50 /* 071688 80070A88 2610C030 */ addiu $s0, %lo(D_8018C030) # addiu $s0, $s0, -0x3fd0 .L80070A8C: -/* 07168C 80070A8C 0C01C7DB */ jal func_80071F6C +/* 07168C 80070A8C 0C01C7DB */ jal delete_object /* 071690 80070A90 02002025 */ move $a0, $s0 /* 071694 80070A94 26100004 */ addiu $s0, $s0, 4 /* 071698 80070A98 1611FFFC */ bne $s0, $s1, .L80070A8C @@ -244,12 +244,12 @@ glabel L80070AA8 /* 0716D4 80070AD4 24C67DB8 */ addiu $a2, %lo(d_course_banshee_boardwalk_bat) # addiu $a2, $a2, 0x7db8 /* 0716D8 80070AD8 24A57BB8 */ addiu $a1, %lo(d_course_banshee_boardwalk_bat_tlut) # addiu $a1, $a1, 0x7bb8 /* 0716DC 80070ADC 24070020 */ li $a3, 32 -/* 0716E0 80070AE0 0C01CD11 */ jal func_80073444 +/* 0716E0 80070AE0 0C01CD11 */ jal init_texture_object /* 0716E4 80070AE4 02002025 */ move $a0, $s0 /* 0716E8 80070AE8 241600E0 */ li $s6, 224 /* 0716EC 80070AEC 02160019 */ multu $s0, $s6 -/* 0716F0 80070AF0 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 -/* 0716F4 80070AF4 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 +/* 0716F0 80070AF0 3C158016 */ lui $s5, %hi(gObjectList) # $s5, 0x8016 +/* 0716F4 80070AF4 26B55C18 */ addiu $s5, %lo(gObjectList) # addiu $s5, $s5, 0x5c18 /* 0716F8 80070AF8 340D8000 */ li $t5, 32768 /* 0716FC 80070AFC 8E240004 */ lw $a0, 4($s1) /* 071700 80070B00 00002825 */ move $a1, $zero @@ -285,12 +285,12 @@ glabel L80070B30 /* 071770 80070B70 26523F28 */ addiu $s2, %lo(D_80183F28) # addiu $s2, $s2, 0x3f28 /* 071774 80070B74 3C11800E */ lui $s1, %hi(D_800E5E14) # $s1, 0x800e /* 071778 80070B78 3C03800E */ lui $v1, %hi(D_800E5E8C) # $v1, 0x800e -/* 07177C 80070B7C 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 +/* 07177C 80070B7C 3C158016 */ lui $s5, %hi(gObjectList) # $s5, 0x8016 /* 071780 80070B80 3C148019 */ lui $s4, %hi(D_8018D01C) # $s4, 0x8019 /* 071784 80070B84 3C13800E */ lui $s3, %hi(D_800E5EE6) # $s3, 0x800e /* 071788 80070B88 26735EE6 */ addiu $s3, %lo(D_800E5EE6) # addiu $s3, $s3, 0x5ee6 /* 07178C 80070B8C 2694D01C */ addiu $s4, %lo(D_8018D01C) # addiu $s4, $s4, -0x2fe4 -/* 071790 80070B90 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 +/* 071790 80070B90 26B55C18 */ addiu $s5, %lo(gObjectList) # addiu $s5, $s5, 0x5c18 /* 071794 80070B94 24635E8C */ addiu $v1, %lo(D_800E5E8C) # addiu $v1, $v1, 0x5e8c /* 071798 80070B98 26315E14 */ addiu $s1, %lo(D_800E5E14) # addiu $s1, $s1, 0x5e14 /* 07179C 80070B9C 241600E0 */ li $s6, 224 @@ -363,12 +363,12 @@ glabel L80070C60 /* 07189C 80070C9C 26313EA0 */ addiu $s1, %lo(D_80183EA0) # addiu $s1, $s1, 0x3ea0 /* 0718A0 80070CA0 3C128018 */ lui $s2, %hi(D_80183F28) # $s2, 0x8018 /* 0718A4 80070CA4 3C03800E */ lui $v1, %hi(D_800E5EE8) # $v1, 0x800e -/* 0718A8 80070CA8 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 +/* 0718A8 80070CA8 3C158016 */ lui $s5, %hi(gObjectList) # $s5, 0x8016 /* 0718AC 80070CAC 3C148019 */ lui $s4, %hi(D_8018D01C) # $s4, 0x8019 /* 0718B0 80070CB0 3C13800E */ lui $s3, %hi(D_800E5F80) # $s3, 0x800e /* 0718B4 80070CB4 26735F80 */ addiu $s3, %lo(D_800E5F80) # addiu $s3, $s3, 0x5f80 /* 0718B8 80070CB8 2694D01C */ addiu $s4, %lo(D_8018D01C) # addiu $s4, $s4, -0x2fe4 -/* 0718BC 80070CBC 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 +/* 0718BC 80070CBC 26B55C18 */ addiu $s5, %lo(gObjectList) # addiu $s5, $s5, 0x5c18 /* 0718C0 80070CC0 24635EE8 */ addiu $v1, %lo(D_800E5EE8) # addiu $v1, $v1, 0x5ee8 /* 0718C4 80070CC4 26523F28 */ addiu $s2, %lo(D_80183F28) # addiu $s2, $s2, 0x3f28 /* 0718C8 80070CC8 241600E0 */ li $s6, 224 @@ -448,12 +448,12 @@ glabel L80070DD8 /* 0719E8 80070DE8 11C1002B */ beq $t6, $at, .L80070E98 /* 0719EC 80070DEC 26313EA0 */ addiu $s1, %lo(D_80183EA0) # addiu $s1, $s1, 0x3ea0 /* 0719F0 80070DF0 3C03800E */ lui $v1, %hi(D_800E5F80) # $v1, 0x800e -/* 0719F4 80070DF4 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 +/* 0719F4 80070DF4 3C158016 */ lui $s5, %hi(gObjectList) # $s5, 0x8016 /* 0719F8 80070DF8 3C148019 */ lui $s4, %hi(D_8018D01C) # $s4, 0x8019 /* 0719FC 80070DFC 3C12800E */ lui $s2, %hi(D_800E5FD0) # $s2, 0x800e /* 071A00 80070E00 26525FD0 */ addiu $s2, %lo(D_800E5FD0) # addiu $s2, $s2, 0x5fd0 /* 071A04 80070E04 2694D01C */ addiu $s4, %lo(D_8018D01C) # addiu $s4, $s4, -0x2fe4 -/* 071A08 80070E08 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 +/* 071A08 80070E08 26B55C18 */ addiu $s5, %lo(gObjectList) # addiu $s5, $s5, 0x5c18 /* 071A0C 80070E0C 24635F80 */ addiu $v1, %lo(D_800E5F80) # addiu $v1, $v1, 0x5f80 /* 071A10 80070E10 241600E0 */ li $s6, 224 .L80070E14: @@ -491,11 +491,11 @@ glabel L80070DD8 /* 071A90 80070E90 1472FFE0 */ bne $v1, $s2, .L80070E14 /* 071A94 80070E94 E44A0024 */ swc1 $f10, 0x24($v0) .L80070E98: -/* 071A98 80070E98 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 +/* 071A98 80070E98 3C158016 */ lui $s5, %hi(gObjectList) # $s5, 0x8016 /* 071A9C 80070E9C 3C128018 */ lui $s2, %hi(D_80183F28) # $s2, 0x8018 /* 071AA0 80070EA0 3C138018 */ lui $s3, %hi(D_80183F50) # $s3, 0x8018 /* 071AA4 80070EA4 3C118018 */ lui $s1, %hi(D_80183F3C) # $s1, 0x8018 -/* 071AA8 80070EA8 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 +/* 071AA8 80070EA8 26B55C18 */ addiu $s5, %lo(gObjectList) # addiu $s5, $s5, 0x5c18 /* 071AAC 80070EAC 241600E0 */ li $s6, 224 /* 071AB0 80070EB0 26313F3C */ addiu $s1, %lo(D_80183F3C) # addiu $s1, $s1, 0x3f3c /* 071AB4 80070EB4 26733F50 */ addiu $s3, %lo(D_80183F50) # addiu $s3, $s3, 0x3f50 @@ -603,10 +603,10 @@ glabel L80071024 /* 071C24 80071024 3C0C800E */ lui $t4, %hi(gGamestate) # $t4, 0x800e /* 071C28 80071028 8D8CC50C */ lw $t4, %lo(gGamestate)($t4) /* 071C2C 8007102C 24010009 */ li $at, 9 -/* 071C30 80071030 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 +/* 071C30 80071030 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 071C34 80071034 118100F2 */ beq $t4, $at, .L80071400 /* 071C38 80071038 3C118018 */ lui $s1, %hi(D_80183EA0) # $s1, 0x8018 -/* 071C3C 8007103C 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 071C3C 8007103C 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 071C40 80071040 24030001 */ li $v1, 1 /* 071C44 80071044 26313EA0 */ addiu $s1, %lo(D_80183EA0) # addiu $s1, $s1, 0x3ea0 /* 071C48 80071048 10620006 */ beq $v1, $v0, .L80071064 @@ -719,12 +719,12 @@ glabel L80071024 /* 071DCC 800711CC 26310004 */ addiu $s1, $s1, 4 /* 071DD0 800711D0 3C118019 */ lui $s1, %hi(D_8018C1B0) # $s1, 0x8019 /* 071DD4 800711D4 3C12800E */ lui $s2, %hi(D_800E6360) # $s2, 0x800e -/* 071DD8 800711D8 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 +/* 071DD8 800711D8 3C158016 */ lui $s5, %hi(gObjectList) # $s5, 0x8016 /* 071DDC 800711DC 3C148019 */ lui $s4, %hi(D_8018D01C) # $s4, 0x8019 /* 071DE0 800711E0 3C13800E */ lui $s3, %hi(D_800E641A) # $s3, 0x800e /* 071DE4 800711E4 2673641A */ addiu $s3, %lo(D_800E641A) # addiu $s3, $s3, 0x641a /* 071DE8 800711E8 2694D01C */ addiu $s4, %lo(D_8018D01C) # addiu $s4, $s4, -0x2fe4 -/* 071DEC 800711EC 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 +/* 071DEC 800711EC 26B55C18 */ addiu $s5, %lo(gObjectList) # addiu $s5, $s5, 0x5c18 /* 071DF0 800711F0 26526360 */ addiu $s2, %lo(D_800E6360) # addiu $s2, $s2, 0x6360 /* 071DF4 800711F4 2631C1B0 */ addiu $s1, %lo(D_8018C1B0) # addiu $s1, $s1, -0x3e50 /* 071DF8 800711F8 241600E0 */ li $s6, 224 diff --git a/asm/non_matchings/code_8006E9C0/func_80071428.s b/asm/non_matchings/code_8006E9C0/init_hud_one_player.s similarity index 99% rename from asm/non_matchings/code_8006E9C0/func_80071428.s rename to asm/non_matchings/code_8006E9C0/init_hud_one_player.s index 93845fc04..121e08942 100644 --- a/asm/non_matchings/code_8006E9C0/func_80071428.s +++ b/asm/non_matchings/code_8006E9C0/init_hud_one_player.s @@ -1,4 +1,4 @@ -glabel func_80071428 +glabel init_hud_one_player /* 072028 80071428 3C018019 */ lui $at, %hi(D_8018D140) # $at, 0x8019 /* 07202C 8007142C AC20D140 */ sw $zero, %lo(D_8018D140)($at) /* 072030 80071430 3C018019 */ lui $at, %hi(D_8018D150) # $at, 0x8019 @@ -81,7 +81,7 @@ glabel func_80071428 /* 072164 80071564 A5000046 */ sh $zero, 0x46($t0) /* 072168 80071568 A5000048 */ sh $zero, 0x48($t0) /* 07216C 8007156C A518006A */ sh $t8, 0x6a($t0) -/* 072170 80071570 0C01BB9F */ jal func_8006EE7C +/* 072170 80071570 0C01BB9F */ jal init_item_window /* 072174 80071574 8C843E88 */ lw $a0, %lo(gItemWindowObjectByPlayerId)($a0) /* 072178 80071578 3C01420C */ li $at, 0x420C0000 # 35.000000 /* 07217C 8007157C 44810000 */ mtc1 $at, $f0 diff --git a/asm/non_matchings/code_8006E9C0/func_80071C28.s b/asm/non_matchings/code_8006E9C0/init_hud_three_four_player.s similarity index 96% rename from asm/non_matchings/code_8006E9C0/func_80071C28.s rename to asm/non_matchings/code_8006E9C0/init_hud_three_four_player.s index a0218f82d..d6313a3d7 100644 --- a/asm/non_matchings/code_8006E9C0/func_80071C28.s +++ b/asm/non_matchings/code_8006E9C0/init_hud_three_four_player.s @@ -1,4 +1,4 @@ -glabel func_80071C28 +glabel init_hud_three_four_player /* 072828 80071C28 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 07282C 80071C2C AFBF001C */ sw $ra, 0x1c($sp) /* 072830 80071C30 3C048018 */ lui $a0, %hi(D_80183DA0) # $a0, 0x8018 @@ -141,20 +141,20 @@ glabel func_80071C28 /* 072A50 80071E50 A60E00EE */ sh $t6, 0xee($s0) /* 072A54 80071E54 A60F0172 */ sh $t7, 0x172($s0) /* 072A58 80071E58 A61801F6 */ sh $t8, 0x1f6($s0) -/* 072A5C 80071E5C 0C01BB9F */ jal func_8006EE7C +/* 072A5C 80071E5C 0C01BB9F */ jal init_item_window /* 072A60 80071E60 8C843E88 */ lw $a0, %lo(gItemWindowObjectByPlayerId)($a0) /* 072A64 80071E64 3C048018 */ lui $a0, %hi(gItemWindowObjectByPlayerId + 4) # $a0, 0x8018 -/* 072A68 80071E68 0C01BB9F */ jal func_8006EE7C +/* 072A68 80071E68 0C01BB9F */ jal init_item_window /* 072A6C 80071E6C 8C843E8C */ lw $a0, %lo(gItemWindowObjectByPlayerId + 4)($a0) /* 072A70 80071E70 3C048018 */ lui $a0, %hi(gItemWindowObjectByPlayerId + 8) # $a0, 0x8018 -/* 072A74 80071E74 0C01BB9F */ jal func_8006EE7C +/* 072A74 80071E74 0C01BB9F */ jal init_item_window /* 072A78 80071E78 8C843E90 */ lw $a0, %lo(gItemWindowObjectByPlayerId + 8)($a0) /* 072A7C 80071E7C 3C048018 */ lui $a0, %hi(gItemWindowObjectByPlayerId + 12) # $a0, 0x8018 -/* 072A80 80071E80 0C01BB9F */ jal func_8006EE7C +/* 072A80 80071E80 0C01BB9F */ jal init_item_window /* 072A84 80071E84 8C843E94 */ lw $a0, %lo(gItemWindowObjectByPlayerId + 12)($a0) /* 072A88 80071E88 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 /* 072A8C 80071E8C 44813000 */ mtc1 $at, $f6 -/* 072A90 80071E90 3C198019 */ lui $t9, %hi(D_8018EDF3) # $t9, 0x8019 +/* 072A90 80071E90 3C198019 */ lui $t9, %hi(gPlayerCount) # $t9, 0x8019 /* 072A94 80071E94 3C018019 */ lui $at, %hi(D_8018D158) # $at, 0x8019 /* 072A98 80071E98 E606018C */ swc1 $f6, 0x18c($s0) /* 072A9C 80071E9C C600018C */ lwc1 $f0, 0x18c($s0) @@ -163,7 +163,7 @@ glabel func_80071C28 /* 072AA8 80071EA8 E6000108 */ swc1 $f0, 0x108($s0) /* 072AAC 80071EAC E6000084 */ swc1 $f0, 0x84($s0) /* 072AB0 80071EB0 E6000000 */ swc1 $f0, ($s0) -/* 072AB4 80071EB4 8339EDF3 */ lb $t9, %lo(D_8018EDF3)($t9) +/* 072AB4 80071EB4 8339EDF3 */ lb $t9, %lo(gPlayerCount)($t9) /* 072AB8 80071EB8 8FBF001C */ lw $ra, 0x1c($sp) /* 072ABC 80071EBC 2418001E */ li $t8, 30 /* 072AC0 80071EC0 AC39D158 */ sw $t9, %lo(D_8018D158)($at) diff --git a/asm/non_matchings/code_80071F00/func_80073570.s b/asm/non_matchings/code_80071F00/func_80073570.s index 2fdc5edad..7d726063e 100644 --- a/asm/non_matchings/code_80071F00/func_80073570.s +++ b/asm/non_matchings/code_80071F00/func_80073570.s @@ -11,8 +11,8 @@ glabel func_80073570 .L80073594: /* 074194 80073594 0324C823 */ subu $t9, $t9, $a0 /* 074198 80073598 0019C940 */ sll $t9, $t9, 5 -/* 07419C 8007359C 3C098016 */ lui $t1, %hi(D_80165C18) # $t1, 0x8016 -/* 0741A0 800735A0 25295C18 */ addiu $t1, %lo(D_80165C18) # addiu $t1, $t1, 0x5c18 +/* 07419C 8007359C 3C098016 */ lui $t1, %hi(gObjectList) # $t1, 0x8016 +/* 0741A0 800735A0 25295C18 */ addiu $t1, %lo(gObjectList) # addiu $t1, $t1, 0x5c18 /* 0741A4 800735A4 272800A6 */ addiu $t0, $t9, 0xa6 /* 0741A8 800735A8 01091021 */ addu $v0, $t0, $t1 /* 0741AC 800735AC 844A0000 */ lh $t2, ($v0) diff --git a/asm/non_matchings/code_80071F00/func_8007634C.s b/asm/non_matchings/code_80071F00/func_8007634C.s index 4365b4894..6699bdff6 100644 --- a/asm/non_matchings/code_80071F00/func_8007634C.s +++ b/asm/non_matchings/code_80071F00/func_8007634C.s @@ -1,8 +1,8 @@ glabel func_8007634C /* 076F4C 8007634C 000470C0 */ sll $t6, $a0, 3 /* 076F50 80076350 01C47023 */ subu $t6, $t6, $a0 -/* 076F54 80076354 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 076F58 80076358 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 076F54 80076354 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 +/* 076F58 80076358 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 076F5C 8007635C 000E7140 */ sll $t6, $t6, 5 /* 076F60 80076360 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 076F64 80076364 3C030D03 */ lui $v1, %hi(D_0D02BC58) # $v1, 0xd03 diff --git a/asm/non_matchings/code_80071F00/func_80077BCC.s b/asm/non_matchings/code_80071F00/func_80077BCC.s index 513fd027b..48e8fe9f0 100644 --- a/asm/non_matchings/code_80071F00/func_80077BCC.s +++ b/asm/non_matchings/code_80071F00/func_80077BCC.s @@ -2,9 +2,9 @@ glabel func_80077BCC /* 0787CC 80077BCC 000470C0 */ sll $t6, $a0, 3 /* 0787D0 80077BD0 27BDFFD8 */ addiu $sp, $sp, -0x28 /* 0787D4 80077BD4 01C47023 */ subu $t6, $t6, $a0 -/* 0787D8 80077BD8 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 +/* 0787D8 80077BD8 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 /* 0787DC 80077BDC AFB0001C */ sw $s0, 0x1c($sp) -/* 0787E0 80077BE0 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 0787E0 80077BE0 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 0787E4 80077BE4 000E7140 */ sll $t6, $t6, 5 /* 0787E8 80077BE8 01CF8021 */ addu $s0, $t6, $t7 /* 0787EC 80077BEC 860200AE */ lh $v0, 0xae($s0) diff --git a/asm/non_matchings/code_80071F00/func_80077D5C.s b/asm/non_matchings/code_80071F00/func_80077D5C.s index 740fcee95..809483249 100644 --- a/asm/non_matchings/code_80071F00/func_80077D5C.s +++ b/asm/non_matchings/code_80071F00/func_80077D5C.s @@ -12,10 +12,10 @@ glabel func_80077D5C /* 078984 80077D84 00047880 */ sll $t7, $a0, 2 /* 078988 80077D88 3C188019 */ lui $t8, %hi(D_8018CC80) # $t8, 0x8019 /* 07898C 80077D8C 2718CC80 */ addiu $t8, %lo(D_8018CC80) # addiu $t8, $t8, -0x3380 -/* 078990 80077D90 3C088016 */ lui $t0, %hi(D_80165C18) # $t0, 0x8016 +/* 078990 80077D90 3C088016 */ lui $t0, %hi(gObjectList) # $t0, 0x8016 /* 078994 80077D94 3C038019 */ lui $v1, %hi(D_8018D17C) # $v1, 0x8019 /* 078998 80077D98 2463D17C */ addiu $v1, %lo(D_8018D17C) # addiu $v1, $v1, -0x2e84 -/* 07899C 80077D9C 25085C18 */ addiu $t0, %lo(D_80165C18) # addiu $t0, $t0, 0x5c18 +/* 07899C 80077D9C 25085C18 */ addiu $t0, %lo(gObjectList) # addiu $t0, $t0, 0x5c18 /* 0789A0 80077DA0 01F83821 */ addu $a3, $t7, $t8 /* 0789A4 80077DA4 8442D17C */ lh $v0, %lo(D_8018D17C)($v0) /* 0789A8 80077DA8 240900E0 */ li $t1, 224 diff --git a/asm/non_matchings/code_80071F00/func_8007B040.s b/asm/non_matchings/code_80071F00/func_8007B040.s index 3632900b8..a5ed0b390 100644 --- a/asm/non_matchings/code_80071F00/func_8007B040.s +++ b/asm/non_matchings/code_80071F00/func_8007B040.s @@ -20,7 +20,7 @@ glabel func_8007B040 /* 07BC88 8007B088 00A22821 */ addu $a1, $a1, $v0 /* 07BC8C 8007B08C 00822021 */ addu $a0, $a0, $v0 /* 07BC90 8007B090 84844392 */ lh $a0, %lo(D_80164392)($a0) # 0x4392($a0) -/* 07BC94 8007B094 0C01EBD0 */ jal func_8007AF40 +/* 07BC94 8007B094 0C01EBD0 */ jal gen_random_item_human /* 07BC98 8007B098 84A543BA */ lh $a1, %lo(D_801643BA)($a1) # 0x43ba($a1) /* 07BC9C 8007B09C 10000006 */ b .L8007B0B8 /* 07BCA0 8007B0A0 00401825 */ move $v1, $v0 @@ -33,9 +33,9 @@ glabel func_8007B040 .L8007B0B8: /* 07BCB8 8007B0B8 8FAF0078 */ lw $t7, 0x78($sp) /* 07BCBC 8007B0BC 240D00E0 */ li $t5, 224 -/* 07BCC0 8007B0C0 3C0C8016 */ lui $t4, %hi(D_80165C18) # $t4, 0x8016 +/* 07BCC0 8007B0C0 3C0C8016 */ lui $t4, %hi(gObjectList) # $t4, 0x8016 /* 07BCC4 8007B0C4 01ED0019 */ multu $t7, $t5 -/* 07BCC8 8007B0C8 258C5C18 */ addiu $t4, %lo(D_80165C18) # addiu $t4, $t4, 0x5c18 +/* 07BCC8 8007B0C8 258C5C18 */ addiu $t4, %lo(gObjectList) # addiu $t4, $t4, 0x5c18 /* 07BCCC 8007B0CC 240B0001 */ li $t3, 1 /* 07BCD0 8007B0D0 0000C012 */ mflo $t8 /* 07BCD4 8007B0D4 01983821 */ addu $a3, $t4, $t8 @@ -48,8 +48,8 @@ glabel func_8007B040 /* 07BCEC 8007B0EC 00001825 */ move $v1, $zero /* 07BCF0 8007B0F0 19000019 */ blez $t0, .L8007B158 /* 07BCF4 8007B0F4 3C048018 */ lui $a0, %hi(gItemWindowObjectByPlayerId) # $a0, 0x8018 -/* 07BCF8 8007B0F8 3C0C8016 */ lui $t4, %hi(D_80165C18) # $t4, 0x8016 -/* 07BCFC 8007B0FC 258C5C18 */ addiu $t4, %lo(D_80165C18) # addiu $t4, $t4, 0x5c18 +/* 07BCF8 8007B0F8 3C0C8016 */ lui $t4, %hi(gObjectList) # $t4, 0x8016 +/* 07BCFC 8007B0FC 258C5C18 */ addiu $t4, %lo(gObjectList) # addiu $t4, $t4, 0x5c18 /* 07BD00 8007B100 24843E88 */ addiu $a0, %lo(gItemWindowObjectByPlayerId) # addiu $a0, $a0, 0x3e88 /* 07BD04 8007B104 240D00E0 */ li $t5, 224 /* 07BD08 8007B108 27AA0040 */ addiu $t2, $sp, 0x40 @@ -88,8 +88,8 @@ glabel func_8007B040 /* 07BD7C 8007B17C 012B7021 */ addu $t6, $t1, $t3 /* 07BD80 8007B180 8DC30000 */ lw $v1, ($t6) /* 07BD84 8007B184 27AA0040 */ addiu $t2, $sp, 0x40 -/* 07BD88 8007B188 3C0C8016 */ lui $t4, %hi(D_80165C18) # $t4, 0x8016 -/* 07BD8C 8007B18C 258C5C18 */ addiu $t4, %lo(D_80165C18) # addiu $t4, $t4, 0x5c18 +/* 07BD88 8007B188 3C0C8016 */ lui $t4, %hi(gObjectList) # $t4, 0x8016 +/* 07BD8C 8007B18C 258C5C18 */ addiu $t4, %lo(gObjectList) # addiu $t4, $t4, 0x5c18 /* 07BD90 8007B190 014B7821 */ addu $t7, $t2, $t3 /* 07BD94 8007B194 85E80002 */ lh $t0, 2($t7) /* 07BD98 8007B198 0003C0C0 */ sll $t8, $v1, 3 @@ -117,9 +117,9 @@ glabel func_8007B040 /* 07BDF0 8007B1F0 AFA40064 */ sw $a0, 0x64($sp) /* 07BDF4 8007B1F4 8FA40064 */ lw $a0, 0x64($sp) /* 07BDF8 8007B1F8 240D00E0 */ li $t5, 224 -/* 07BDFC 8007B1FC 3C0C8016 */ lui $t4, %hi(D_80165C18) # $t4, 0x8016 +/* 07BDFC 8007B1FC 3C0C8016 */ lui $t4, %hi(gObjectList) # $t4, 0x8016 /* 07BE00 8007B200 008D0019 */ multu $a0, $t5 -/* 07BE04 8007B204 258C5C18 */ addiu $t4, %lo(D_80165C18) # addiu $t4, $t4, 0x5c18 +/* 07BE04 8007B204 258C5C18 */ addiu $t4, %lo(gObjectList) # addiu $t4, $t4, 0x5c18 /* 07BE08 8007B208 8FB80038 */ lw $t8, 0x38($sp) /* 07BE0C 8007B20C 24050002 */ li $a1, 2 /* 07BE10 8007B210 00007812 */ mflo $t7 diff --git a/asm/non_matchings/code_80071F00/func_8007B254.s b/asm/non_matchings/code_80071F00/func_8007B254.s index ef31a964a..8108bdddd 100644 --- a/asm/non_matchings/code_80071F00/func_8007B254.s +++ b/asm/non_matchings/code_80071F00/func_8007B254.s @@ -5,8 +5,8 @@ glabel func_8007B254 /* 07BE60 8007B260 0C01C90A */ jal func_80072428 /* 07BE64 8007B264 AFA50024 */ sw $a1, 0x24($sp) /* 07BE68 8007B268 8FA40020 */ lw $a0, 0x20($sp) -/* 07BE6C 8007B26C 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 07BE70 8007B270 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 07BE6C 8007B26C 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 +/* 07BE70 8007B270 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 07BE74 8007B274 000470C0 */ sll $t6, $a0, 3 /* 07BE78 8007B278 01C47023 */ subu $t6, $t6, $a0 /* 07BE7C 8007B27C 000E7140 */ sll $t6, $t6, 5 diff --git a/asm/non_matchings/code_80071F00/func_8007B34C.s b/asm/non_matchings/code_80071F00/func_8007B34C.s index e527a6a3e..945617b8a 100644 --- a/asm/non_matchings/code_80071F00/func_8007B34C.s +++ b/asm/non_matchings/code_80071F00/func_8007B34C.s @@ -58,8 +58,8 @@ glabel func_8007B34C /* 07BFDC 8007B3DC 0010C0C0 */ sll $t8, $s0, 3 .L8007B3E0: /* 07BFE0 8007B3E0 0310C023 */ subu $t8, $t8, $s0 -/* 07BFE4 8007B3E4 3C198016 */ lui $t9, %hi(D_80165C18) # $t9, 0x8016 -/* 07BFE8 8007B3E8 27395C18 */ addiu $t9, %lo(D_80165C18) # addiu $t9, $t9, 0x5c18 +/* 07BFE4 8007B3E4 3C198016 */ lui $t9, %hi(gObjectList) # $t9, 0x8016 +/* 07BFE8 8007B3E8 27395C18 */ addiu $t9, %lo(gObjectList) # addiu $t9, $t9, 0x5c18 /* 07BFEC 8007B3EC 0018C140 */ sll $t8, $t8, 5 /* 07BFF0 8007B3F0 03194021 */ addu $t0, $t8, $t9 /* 07BFF4 8007B3F4 AFA8002C */ sw $t0, 0x2c($sp) @@ -464,7 +464,7 @@ glabel L8007B998 /* 07C5B0 8007B9B0 8FAA002C */ lw $t2, 0x2c($sp) /* 07C5B4 8007B9B4 54400006 */ bnel $v0, $zero, .L8007B9D0 /* 07C5B8 8007B9B8 2449FFFF */ addiu $t1, $v0, -1 -/* 07C5BC 8007B9BC 0C01EB27 */ jal func_8007AC9C +/* 07C5BC 8007B9BC 0C01EB27 */ jal consume_item /* 07C5C0 8007B9C0 8FA40048 */ lw $a0, 0x48($sp) /* 07C5C4 8007B9C4 10000004 */ b .L8007B9D8 /* 07C5C8 8007B9C8 8FAB002C */ lw $t3, 0x2c($sp) @@ -507,7 +507,7 @@ glabel L8007B998 /* 07C648 8007BA48 8FA8002C */ lw $t0, 0x2c($sp) .L8007BA4C: /* 07C64C 8007BA4C 02002025 */ move $a0, $s0 -/* 07C650 8007BA50 0C01CA74 */ jal func_800729D0 +/* 07C650 8007BA50 0C01CA74 */ jal set_type_object /* 07C654 8007BA54 870500A2 */ lh $a1, 0xa2($t8) /* 07C658 8007BA58 8FA8002C */ lw $t0, 0x2c($sp) /* 07C65C 8007BA5C 24190003 */ li $t9, 3 @@ -554,7 +554,7 @@ glabel L8007B998 /* 07C6F0 8007BAF0 244BFFFF */ addiu $t3, $v0, -1 /* 07C6F4 8007BAF4 A5EB00A2 */ sh $t3, 0xa2($t7) /* 07C6F8 8007BAF8 85E500A2 */ lh $a1, 0xa2($t7) -/* 07C6FC 8007BAFC 0C01CA74 */ jal func_800729D0 +/* 07C6FC 8007BAFC 0C01CA74 */ jal set_type_object /* 07C700 8007BB00 02002025 */ move $a0, $s0 /* 07C704 8007BB04 8FB8002C */ lw $t8, 0x2c($sp) /* 07C708 8007BB08 240C0003 */ li $t4, 3 diff --git a/asm/non_matchings/code_80071F00/func_8007C360.s b/asm/non_matchings/code_80071F00/func_8007C360.s index eb720807e..b792c6fa0 100644 --- a/asm/non_matchings/code_80071F00/func_8007C360.s +++ b/asm/non_matchings/code_80071F00/func_8007C360.s @@ -1,9 +1,9 @@ glabel func_8007C360 /* 07CF60 8007C360 000470C0 */ sll $t6, $a0, 3 /* 07CF64 8007C364 01C47023 */ subu $t6, $t6, $a0 -/* 07CF68 8007C368 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 +/* 07CF68 8007C368 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 /* 07CF6C 8007C36C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 07CF70 8007C370 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 07CF70 8007C370 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 07CF74 8007C374 000E7140 */ sll $t6, $t6, 5 /* 07CF78 8007C378 AFBF0014 */ sw $ra, 0x14($sp) /* 07CF7C 8007C37C 01CF3021 */ addu $a2, $t6, $t7 @@ -30,7 +30,7 @@ glabel func_8007C360 /* 07CFCC 8007C3CC 01403825 */ move $a3, $t2 /* 07CFD0 8007C3D0 24050080 */ li $a1, 128 /* 07CFD4 8007C3D4 AFA60020 */ sw $a2, 0x20($sp) -/* 07CFD8 8007C3D8 0C01C87A */ jal func_800721E8 +/* 07CFD8 8007C3D8 0C01C87A */ jal set_object_flag_unk_054_false /* 07CFDC 8007C3DC AFAA001C */ sw $t2, 0x1c($sp) /* 07CFE0 8007C3E0 8FA60020 */ lw $a2, 0x20($sp) /* 07CFE4 8007C3E4 8FA7001C */ lw $a3, 0x1c($sp) @@ -38,7 +38,7 @@ glabel func_8007C360 /* 07CFEC 8007C3EC A0C700D2 */ sb $a3, 0xd2($a2) .L8007C3F0: /* 07CFF0 8007C3F0 AFA60020 */ sw $a2, 0x20($sp) -/* 07CFF4 8007C3F4 0C01C870 */ jal func_800721C0 +/* 07CFF4 8007C3F4 0C01C870 */ jal set_object_flag_unk_054_true /* 07CFF8 8007C3F8 AFA7001C */ sw $a3, 0x1c($sp) /* 07CFFC 8007C3FC 8FA7001C */ lw $a3, 0x1c($sp) /* 07D000 8007C400 8FA60020 */ lw $a2, 0x20($sp) diff --git a/asm/non_matchings/code_80071F00/func_8007C4A4.s b/asm/non_matchings/code_80071F00/func_8007C4A4.s index 913ccb3ee..a305f3d8e 100644 --- a/asm/non_matchings/code_80071F00/func_8007C4A4.s +++ b/asm/non_matchings/code_80071F00/func_8007C4A4.s @@ -1,8 +1,8 @@ glabel func_8007C4A4 /* 07D0A4 8007C4A4 000470C0 */ sll $t6, $a0, 3 /* 07D0A8 8007C4A8 01C47023 */ subu $t6, $t6, $a0 -/* 07D0AC 8007C4AC 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 07D0B0 8007C4B0 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 07D0AC 8007C4AC 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 +/* 07D0B0 8007C4B0 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 07D0B4 8007C4B4 000E7140 */ sll $t6, $t6, 5 /* 07D0B8 8007C4B8 01CF1821 */ addu $v1, $t6, $t7 /* 07D0BC 8007C4BC 946200C0 */ lhu $v0, 0xc0($v1) @@ -24,7 +24,7 @@ glabel func_8007C4A4 /* 07D0F8 8007C4F8 01003025 */ move $a2, $t0 /* 07D0FC 8007C4FC 24050080 */ li $a1, 128 /* 07D100 8007C500 AFA30020 */ sw $v1, 0x20($sp) -/* 07D104 8007C504 0C01C87A */ jal func_800721E8 +/* 07D104 8007C504 0C01C87A */ jal set_object_flag_unk_054_false /* 07D108 8007C508 AFA8001C */ sw $t0, 0x1c($sp) /* 07D10C 8007C50C 8FA30020 */ lw $v1, 0x20($sp) /* 07D110 8007C510 8FA6001C */ lw $a2, 0x1c($sp) @@ -33,7 +33,7 @@ glabel func_8007C4A4 .L8007C51C: /* 07D11C 8007C51C 24050080 */ li $a1, 128 /* 07D120 8007C520 AFA30020 */ sw $v1, 0x20($sp) -/* 07D124 8007C524 0C01C870 */ jal func_800721C0 +/* 07D124 8007C524 0C01C870 */ jal set_object_flag_unk_054_true /* 07D128 8007C528 AFA6001C */ sw $a2, 0x1c($sp) /* 07D12C 8007C52C 8FA6001C */ lw $a2, 0x1c($sp) /* 07D130 8007C530 8FA30020 */ lw $v1, 0x20($sp) diff --git a/asm/non_matchings/code_80071F00/func_8007C7B4.s b/asm/non_matchings/code_80071F00/func_8007C7B4.s index ac2e97791..7b39fce8b 100644 --- a/asm/non_matchings/code_80071F00/func_8007C7B4.s +++ b/asm/non_matchings/code_80071F00/func_8007C7B4.s @@ -10,14 +10,14 @@ glabel func_8007C7B4 /* 07D3D4 8007C7D4 AFB60030 */ sw $s6, 0x30($sp) /* 07D3D8 8007C7D8 01CF9821 */ addu $s3, $t6, $t7 /* 07D3DC 8007C7DC 3C12800E */ lui $s2, %hi(D_800E5D9C) # $s2, 0x800e -/* 07D3E0 8007C7E0 3C178016 */ lui $s7, %hi(D_80165C18) # $s7, 0x8016 +/* 07D3E0 8007C7E0 3C178016 */ lui $s7, %hi(gObjectList) # $s7, 0x8016 /* 07D3E4 8007C7E4 00A0B025 */ move $s6, $a1 /* 07D3E8 8007C7E8 AFBF003C */ sw $ra, 0x3c($sp) /* 07D3EC 8007C7EC AFB5002C */ sw $s5, 0x2c($sp) /* 07D3F0 8007C7F0 AFB40028 */ sw $s4, 0x28($sp) /* 07D3F4 8007C7F4 AFB1001C */ sw $s1, 0x1c($sp) /* 07D3F8 8007C7F8 AFB00018 */ sw $s0, 0x18($sp) -/* 07D3FC 8007C7FC 26F75C18 */ addiu $s7, %lo(D_80165C18) # addiu $s7, $s7, 0x5c18 +/* 07D3FC 8007C7FC 26F75C18 */ addiu $s7, %lo(gObjectList) # addiu $s7, $s7, 0x5c18 /* 07D400 8007C800 26525D9C */ addiu $s2, %lo(D_800E5D9C) # addiu $s2, $s2, 0x5d9c /* 07D404 8007C804 AFB30040 */ sw $s3, 0x40($sp) /* 07D408 8007C808 241E00E0 */ li $fp, 224 diff --git a/asm/non_matchings/code_80071F00/func_8007C91C.s b/asm/non_matchings/code_80071F00/func_8007C91C.s index c00e03bcf..b494adfdd 100644 --- a/asm/non_matchings/code_80071F00/func_8007C91C.s +++ b/asm/non_matchings/code_80071F00/func_8007C91C.s @@ -10,8 +10,8 @@ glabel func_8007C91C /* 07D53C 8007C93C 00025880 */ sll $t3, $v0, 2 /* 07D540 8007C940 00AB2021 */ addu $a0, $a1, $t3 /* 07D544 8007C944 8C830000 */ lw $v1, ($a0) -/* 07D548 8007C948 3C088016 */ lui $t0, %hi(D_80165C18) # $t0, 0x8016 -/* 07D54C 8007C94C 25085C18 */ addiu $t0, %lo(D_80165C18) # addiu $t0, $t0, 0x5c18 +/* 07D548 8007C948 3C088016 */ lui $t0, %hi(gObjectList) # $t0, 0x8016 +/* 07D54C 8007C94C 25085C18 */ addiu $t0, %lo(gObjectList) # addiu $t0, $t0, 0x5c18 /* 07D550 8007C950 3C018019 */ lui $at, %hi(D_8018CFF0) # 0x8019 /* 07D554 8007C954 0000C012 */ mflo $t8 /* 07D558 8007C958 01183021 */ addu $a2, $t0, $t8 diff --git a/asm/non_matchings/code_80071F00/func_8007D070.s b/asm/non_matchings/code_80071F00/func_8007D070.s index 1e4eef233..6f5422895 100644 --- a/asm/non_matchings/code_80071F00/func_8007D070.s +++ b/asm/non_matchings/code_80071F00/func_8007D070.s @@ -31,9 +31,9 @@ glabel func_8007D070 /* 07DCE4 8007D0E4 00000000 */ nop /* 07DCE8 8007D0E8 8F39C1D8 */ lw $t9, %lo(D_8018C1D8)($t9) /* 07DCEC 8007D0EC 241700E0 */ li $s7, 224 -/* 07DCF0 8007D0F0 3C168016 */ lui $s6, %hi(D_80165C18) # $s6, 0x8016 +/* 07DCF0 8007D0F0 3C168016 */ lui $s6, %hi(gObjectList) # $s6, 0x8016 /* 07DCF4 8007D0F4 03370019 */ multu $t9, $s7 -/* 07DCF8 8007D0F8 26D65C18 */ addiu $s6, %lo(D_80165C18) # addiu $s6, $s6, 0x5c18 +/* 07DCF8 8007D0F8 26D65C18 */ addiu $s6, %lo(gObjectList) # addiu $s6, $s6, 0x5c18 /* 07DCFC 8007D0FC 3C048019 */ lui $a0, %hi(D_8018C1B0) # $a0, 0x8019 /* 07DD00 8007D100 2484C1B0 */ addiu $a0, %lo(D_8018C1B0) # addiu $a0, $a0, -0x3e50 /* 07DD04 8007D104 2403001E */ li $v1, 30 @@ -124,14 +124,14 @@ glabel func_8007D070 /* 07DE50 8007D250 46062200 */ add.s $f8, $f4, $f6 /* 07DE54 8007D254 E6080018 */ swc1 $f8, 0x18($s0) .L8007D258: -/* 07DE58 8007D258 3C168016 */ lui $s6, %hi(D_80165C18) # $s6, 0x8016 +/* 07DE58 8007D258 3C168016 */ lui $s6, %hi(gObjectList) # $s6, 0x8016 /* 07DE5C 8007D25C 3C1E8019 */ lui $fp, %hi(D_8018CF1C) # $fp, 0x8019 /* 07DE60 8007D260 3C128019 */ lui $s2, %hi(D_8018C1B0) # $s2, 0x8019 /* 07DE64 8007D264 3C15800E */ lui $s5, %hi(D_800E4470) # $s5, 0x800e /* 07DE68 8007D268 3C148019 */ lui $s4, %hi(D_8018C228) # $s4, 0x8019 /* 07DE6C 8007D26C 3C13800E */ lui $s3, %hi(D_800E44B0) # $s3, 0x800e /* 07DE70 8007D270 27DECF1C */ addiu $fp, %lo(D_8018CF1C) # addiu $fp, $fp, -0x30e4 -/* 07DE74 8007D274 26D65C18 */ addiu $s6, %lo(D_80165C18) # addiu $s6, $s6, 0x5c18 +/* 07DE74 8007D274 26D65C18 */ addiu $s6, %lo(gObjectList) # addiu $s6, $s6, 0x5c18 /* 07DE78 8007D278 241700E0 */ li $s7, 224 /* 07DE7C 8007D27C 267344B0 */ addiu $s3, %lo(D_800E44B0) # addiu $s3, $s3, 0x44b0 /* 07DE80 8007D280 2694C228 */ addiu $s4, %lo(D_8018C228) # addiu $s4, $s4, -0x3dd8 @@ -169,7 +169,7 @@ glabel func_8007D070 /* 07DEFC 8007D2FC 0C01F108 */ jal func_8007C420 /* 07DF00 8007D300 8CC6CF14 */ lw $a2, %lo(D_8018CF14)($a2) /* 07DF04 8007D304 02202025 */ move $a0, $s1 -/* 07DF08 8007D308 0C01C88F */ jal func_8007223C +/* 07DF08 8007D308 0C01C88F */ jal is_obj_index_flag_unk_054_active /* 07DF0C 8007D30C 24050080 */ li $a1, 128 /* 07DF10 8007D310 50400004 */ beql $v0, $zero, .L8007D324 /* 07DF14 8007D314 AE150074 */ sw $s5, 0x74($s0) diff --git a/asm/non_matchings/code_80071F00/func_8007DB44.s b/asm/non_matchings/code_80071F00/func_8007DB44.s index 6e4fa4b9c..c9b8c1883 100644 --- a/asm/non_matchings/code_80071F00/func_8007DB44.s +++ b/asm/non_matchings/code_80071F00/func_8007DB44.s @@ -36,8 +36,8 @@ glabel func_8007DB44 /* 07E7C4 8007DBC4 02002025 */ move $a0, $s0 /* 07E7C8 8007DBC8 241600E0 */ li $s6, 224 /* 07E7CC 8007DBCC 02160019 */ multu $s0, $s6 -/* 07E7D0 8007DBD0 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 -/* 07E7D4 8007DBD4 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 +/* 07E7D0 8007DBD0 3C158016 */ lui $s5, %hi(gObjectList) # $s5, 0x8016 +/* 07E7D4 8007DBD4 26B55C18 */ addiu $s5, %lo(gObjectList) # addiu $s5, $s5, 0x5c18 /* 07E7D8 8007DBD8 24090400 */ li $t1, 1024 /* 07E7DC 8007DBDC 240AFFFF */ li $t2, -1 /* 07E7E0 8007DBE0 AFAA0018 */ sw $t2, 0x18($sp) @@ -88,7 +88,7 @@ glabel func_8007DB44 /* 07E88C 8007DC8C 863900A6 */ lh $t9, 0xa6($s1) /* 07E890 8007DC90 57200004 */ bnel $t9, $zero, .L8007DCA4 /* 07E894 8007DC94 86690000 */ lh $t1, ($s3) -/* 07E898 8007DC98 0C01C840 */ jal func_80072100 +/* 07E898 8007DC98 0C01C840 */ jal delete_object_wrapper /* 07E89C 8007DC9C 02402025 */ move $a0, $s2 /* 07E8A0 8007DCA0 86690000 */ lh $t1, ($s3) .L8007DCA4: @@ -141,7 +141,7 @@ glabel func_8007DB44 /* 07E94C 8007DD4C 862900A6 */ lh $t1, 0xa6($s1) /* 07E950 8007DD50 55200004 */ bnel $t1, $zero, .L8007DD64 /* 07E954 8007DD54 866A0000 */ lh $t2, ($s3) -/* 07E958 8007DD58 0C01C840 */ jal func_80072100 +/* 07E958 8007DD58 0C01C840 */ jal delete_object_wrapper /* 07E95C 8007DD5C 02402025 */ move $a0, $s2 /* 07E960 8007DD60 866A0000 */ lh $t2, ($s3) .L8007DD64: diff --git a/asm/non_matchings/code_80071F00/func_8007E00C.s b/asm/non_matchings/code_80071F00/func_8007E00C.s index 9a1749254..fbd2b9c5d 100644 --- a/asm/non_matchings/code_80071F00/func_8007E00C.s +++ b/asm/non_matchings/code_80071F00/func_8007E00C.s @@ -10,9 +10,9 @@ glabel func_8007E00C /* 07EC0C 8007E00C 000470C0 */ sll $t6, $a0, 3 /* 07EC10 8007E010 27BDFFD0 */ addiu $sp, $sp, -0x30 /* 07EC14 8007E014 01C47023 */ subu $t6, $t6, $a0 -/* 07EC18 8007E018 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 +/* 07EC18 8007E018 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 /* 07EC1C 8007E01C AFB00028 */ sw $s0, 0x28($sp) -/* 07EC20 8007E020 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 07EC20 8007E020 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 07EC24 8007E024 000E7140 */ sll $t6, $t6, 5 /* 07EC28 8007E028 01CF8021 */ addu $s0, $t6, $t7 /* 07EC2C 8007E02C 961800A6 */ lhu $t8, 0xa6($s0) diff --git a/asm/non_matchings/code_80071F00/func_8007FB48.s b/asm/non_matchings/code_80071F00/func_8007FB48.s index bee3312c2..625f02125 100644 --- a/asm/non_matchings/code_80071F00/func_8007FB48.s +++ b/asm/non_matchings/code_80071F00/func_8007FB48.s @@ -15,8 +15,8 @@ glabel D_800EF080 glabel func_8007FB48 /* 080748 8007FB48 000478C0 */ sll $t7, $a0, 3 /* 08074C 8007FB4C 01E47823 */ subu $t7, $t7, $a0 -/* 080750 8007FB50 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 080754 8007FB54 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 +/* 080750 8007FB50 3C188016 */ lui $t8, %hi(gObjectList) # $t8, 0x8016 +/* 080754 8007FB54 27185C18 */ addiu $t8, %lo(gObjectList) # addiu $t8, $t8, 0x5c18 /* 080758 8007FB58 000F7940 */ sll $t7, $t7, 5 /* 08075C 8007FB5C 01F81821 */ addu $v1, $t7, $t8 /* 080760 8007FB60 807900D1 */ lb $t9, 0xd1($v1) diff --git a/asm/non_matchings/code_80071F00/func_80080078.s b/asm/non_matchings/code_80071F00/func_80080078.s index 433d4379e..5e6032946 100644 --- a/asm/non_matchings/code_80071F00/func_80080078.s +++ b/asm/non_matchings/code_80071F00/func_80080078.s @@ -10,12 +10,12 @@ glabel func_80080078 /* 080C98 80080098 AFAE0010 */ sw $t6, 0x10($sp) /* 080C9C 8008009C 24C67138 */ addiu $a2, %lo(d_course_bowsers_castle_thwomp_faces) # addiu $a2, $a2, 0x7138 /* 080CA0 800800A0 24A56F38 */ addiu $a1, %lo(d_course_bowsers_castle_thwomp_tlut) # addiu $a1, $a1, 0x6f38 -/* 080CA4 800800A4 0C01CD11 */ jal func_80073444 +/* 080CA4 800800A4 0C01CD11 */ jal init_texture_object /* 080CA8 800800A8 24070010 */ li $a3, 16 /* 080CAC 800800AC 001178C0 */ sll $t7, $s1, 3 /* 080CB0 800800B0 01F17823 */ subu $t7, $t7, $s1 -/* 080CB4 800800B4 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 080CB8 800800B8 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 +/* 080CB4 800800B4 3C188016 */ lui $t8, %hi(gObjectList) # $t8, 0x8016 +/* 080CB8 800800B8 27185C18 */ addiu $t8, %lo(gObjectList) # addiu $t8, $t8, 0x5c18 /* 080CBC 800800BC 000F7940 */ sll $t7, $t7, 5 /* 080CC0 800800C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 080CC4 800800C4 44812000 */ mtc1 $at, $f4 @@ -28,7 +28,7 @@ glabel func_80080078 /* 080CE0 800800E0 A60800C8 */ sh $t0, 0xc8($s0) /* 080CE4 800800E4 34A50220 */ ori $a1, (0x04000220 & 0xFFFF) # ori $a1, $a1, 0x220 /* 080CE8 800800E8 02202025 */ move $a0, $s1 -/* 080CEC 800800EC 0C01C870 */ jal func_800721C0 +/* 080CEC 800800EC 0C01C870 */ jal set_object_flag_unk_054_true /* 080CF0 800800F0 E6040000 */ swc1 $f4, ($s0) /* 080CF4 800800F4 24090002 */ li $t1, 2 /* 080CF8 800800F8 240A0008 */ li $t2, 8 diff --git a/asm/non_matchings/code_80071F00/func_800808CC.s b/asm/non_matchings/code_80071F00/func_800808CC.s index a2a12b2b9..443f17c7e 100644 --- a/asm/non_matchings/code_80071F00/func_800808CC.s +++ b/asm/non_matchings/code_80071F00/func_800808CC.s @@ -1,8 +1,8 @@ glabel func_800808CC /* 0814CC 800808CC 000478C0 */ sll $t7, $a0, 3 /* 0814D0 800808D0 01E47823 */ subu $t7, $t7, $a0 -/* 0814D4 800808D4 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 -/* 0814D8 800808D8 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 +/* 0814D4 800808D4 3C188016 */ lui $t8, %hi(gObjectList) # $t8, 0x8016 +/* 0814D8 800808D8 27185C18 */ addiu $t8, %lo(gObjectList) # addiu $t8, $t8, 0x5c18 /* 0814DC 800808DC 000F7940 */ sll $t7, $t7, 5 /* 0814E0 800808E0 01F84021 */ addu $t0, $t7, $t8 /* 0814E4 800808E4 850300A6 */ lh $v1, 0xa6($t0) diff --git a/asm/non_matchings/code_80071F00/func_80080E8C.s b/asm/non_matchings/code_80071F00/func_80080E8C.s index d3fedb0a5..bd6634326 100644 --- a/asm/non_matchings/code_80071F00/func_80080E8C.s +++ b/asm/non_matchings/code_80071F00/func_80080E8C.s @@ -23,8 +23,8 @@ glabel func_80080E8C /* 081AB8 80080EB8 8FB90044 */ lw $t9, 0x44($sp) /* 081ABC 80080EBC 01C70019 */ multu $t6, $a3 /* 081AC0 80080EC0 8FA40048 */ lw $a0, 0x48($sp) -/* 081AC4 80080EC4 3C058016 */ lui $a1, %hi(D_80165C18) # $a1, 0x8016 -/* 081AC8 80080EC8 24A55C18 */ addiu $a1, %lo(D_80165C18) # addiu $a1, $a1, 0x5c18 +/* 081AC4 80080EC4 3C058016 */ lui $a1, %hi(gObjectList) # $a1, 0x8016 +/* 081AC8 80080EC8 24A55C18 */ addiu $a1, %lo(gObjectList) # addiu $a1, $a1, 0x5c18 /* 081ACC 80080ECC 24180002 */ li $t8, 2 /* 081AD0 80080ED0 3C0B800E */ lui $t3, %hi(D_800E594C) # $t3, 0x800e /* 081AD4 80080ED4 00044840 */ sll $t1, $a0, 1 diff --git a/asm/non_matchings/code_80071F00/func_80081790.s b/asm/non_matchings/code_80071F00/func_80081790.s index e080ddebf..75a3e74bf 100644 --- a/asm/non_matchings/code_80071F00/func_80081790.s +++ b/asm/non_matchings/code_80071F00/func_80081790.s @@ -1,8 +1,8 @@ glabel func_80081790 /* 082390 80081790 000470C0 */ sll $t6, $a0, 3 /* 082394 80081794 01C47023 */ subu $t6, $t6, $a0 -/* 082398 80081798 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 08239C 8008179C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 082398 80081798 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 +/* 08239C 8008179C 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 0823A0 800817A0 000E7140 */ sll $t6, $t6, 5 /* 0823A4 800817A4 01CF1021 */ addu $v0, $t6, $t7 /* 0823A8 800817A8 844300A6 */ lh $v1, 0xa6($v0) diff --git a/asm/non_matchings/code_80071F00/func_80081AFC.s b/asm/non_matchings/code_80071F00/func_80081AFC.s index d8cc0e5ef..072020357 100644 --- a/asm/non_matchings/code_80071F00/func_80081AFC.s +++ b/asm/non_matchings/code_80071F00/func_80081AFC.s @@ -11,9 +11,9 @@ glabel func_80081AFC /* 0826FC 80081AFC 000470C0 */ sll $t6, $a0, 3 /* 082700 80081B00 27BDFFD0 */ addiu $sp, $sp, -0x30 /* 082704 80081B04 01C47023 */ subu $t6, $t6, $a0 -/* 082708 80081B08 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 +/* 082708 80081B08 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 /* 08270C 80081B0C AFB0001C */ sw $s0, 0x1c($sp) -/* 082710 80081B10 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 082710 80081B10 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 082714 80081B14 000E7140 */ sll $t6, $t6, 5 /* 082718 80081B18 01CF8021 */ addu $s0, $t6, $t7 /* 08271C 80081B1C 860300A6 */ lh $v1, 0xa6($s0) @@ -54,7 +54,7 @@ glabel L80081B80 /* 08279C 80081B9C 0C01C922 */ jal func_80072488 /* 0827A0 80081BA0 02202025 */ move $a0, $s1 /* 0827A4 80081BA4 02202025 */ move $a0, $s1 -/* 0827A8 80081BA8 0C01C870 */ jal func_800721C0 +/* 0827A8 80081BA8 0C01C870 */ jal set_object_flag_unk_054_true /* 0827AC 80081BAC 24050200 */ li $a1, 512 /* 0827B0 80081BB0 10000002 */ b .L80081BBC /* 0827B4 80081BB4 00000000 */ nop @@ -122,7 +122,7 @@ glabel L80081C44 /* 08288C 80081C8C 24050200 */ li $a1, 512 /* 082890 80081C90 5580001F */ bnel $t4, $zero, .L80081D10 /* 082894 80081C94 28610002 */ slti $at, $v1, 2 -/* 082898 80081C98 0C01C87A */ jal func_800721E8 +/* 082898 80081C98 0C01C87A */ jal set_object_flag_unk_054_false /* 08289C 80081C9C AFA60034 */ sw $a2, 0x34($sp) /* 0828A0 80081CA0 0C01C90A */ jal func_80072428 /* 0828A4 80081CA4 02202025 */ move $a0, $s1 diff --git a/asm/non_matchings/code_80071F00/func_80081FF4.s b/asm/non_matchings/code_80071F00/func_80081FF4.s index 0b57fb0a8..ab4778cdb 100644 --- a/asm/non_matchings/code_80071F00/func_80081FF4.s +++ b/asm/non_matchings/code_80071F00/func_80081FF4.s @@ -9,11 +9,11 @@ glabel func_80081FF4 /* 082C10 80082010 2404001E */ li $a0, 30 /* 082C14 80082014 8FAE0038 */ lw $t6, 0x38($sp) /* 082C18 80082018 8FA3003C */ lw $v1, 0x3c($sp) -/* 082C1C 8008201C 3C188016 */ lui $t8, %hi(D_80165C18) # $t8, 0x8016 +/* 082C1C 8008201C 3C188016 */ lui $t8, %hi(gObjectList) # $t8, 0x8016 /* 082C20 80082020 000E78C0 */ sll $t7, $t6, 3 /* 082C24 80082024 01EE7823 */ subu $t7, $t7, $t6 /* 082C28 80082028 000F7940 */ sll $t7, $t7, 5 -/* 082C2C 8008202C 27185C18 */ addiu $t8, %lo(D_80165C18) # addiu $t8, $t8, 0x5c18 +/* 082C2C 8008202C 27185C18 */ addiu $t8, %lo(gObjectList) # addiu $t8, $t8, 0x5c18 /* 082C30 80082030 01F83821 */ addu $a3, $t7, $t8 /* 082C34 80082034 24590005 */ addiu $t9, $v0, 5 /* 082C38 80082038 24010001 */ li $at, 1 diff --git a/asm/non_matchings/code_80071F00/func_8008241C.s b/asm/non_matchings/code_80071F00/func_8008241C.s index 7b9ae5e5e..233405d54 100644 --- a/asm/non_matchings/code_80071F00/func_8008241C.s +++ b/asm/non_matchings/code_80071F00/func_8008241C.s @@ -27,9 +27,9 @@ glabel func_8008241C /* 08301C 8008241C 000470C0 */ sll $t6, $a0, 3 /* 083020 80082420 27BDFFD8 */ addiu $sp, $sp, -0x28 /* 083024 80082424 01C47023 */ subu $t6, $t6, $a0 -/* 083028 80082428 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 +/* 083028 80082428 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 /* 08302C 8008242C AFB00014 */ sw $s0, 0x14($sp) -/* 083030 80082430 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 083030 80082430 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 083034 80082434 000E7140 */ sll $t6, $t6, 5 /* 083038 80082438 01CF8021 */ addu $s0, $t6, $t7 /* 08303C 8008243C 3C180601 */ lui $t8, %hi(d_course_koopa_troopa_beach_unk4) # $t8, 0x601 @@ -211,7 +211,7 @@ glabel func_8008241C /* 0832E4 800826E4 01CD7021 */ addu $t6, $t6, $t5 /* 0832E8 800826E8 8DCE633C */ lw $t6, %lo(D_800E633C)($t6) /* 0832EC 800826EC 24050800 */ li $a1, 2048 -/* 0832F0 800826F0 0C01C870 */ jal func_800721C0 +/* 0832F0 800826F0 0C01C870 */ jal set_object_flag_unk_054_true /* 0832F4 800826F4 AE0E0080 */ sw $t6, 0x80($s0) /* 0832F8 800826F8 0C01C922 */ jal func_80072488 /* 0832FC 800826FC 02202025 */ move $a0, $s1 diff --git a/asm/non_matchings/code_80071F00/func_80082870.s b/asm/non_matchings/code_80071F00/func_80082870.s index 1aac30ccf..40c73022a 100644 --- a/asm/non_matchings/code_80071F00/func_80082870.s +++ b/asm/non_matchings/code_80071F00/func_80082870.s @@ -10,7 +10,7 @@ glabel func_80082870 /* 083490 80082890 AFB3002C */ sw $s3, 0x2c($sp) /* 083494 80082894 3C128018 */ lui $s2, %hi(D_80183E40) # $s2, 0x8018 /* 083498 80082898 3C148018 */ lui $s4, %hi(D_80183F28) # $s4, 0x8018 -/* 08349C 8008289C 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 +/* 08349C 8008289C 3C158016 */ lui $s5, %hi(gObjectList) # $s5, 0x8016 /* 0834A0 800828A0 3C171901 */ lui $s7, (0x19017043 >> 16) # lui $s7, 0x1901 /* 0834A4 800828A4 3C1E8016 */ lui $fp, %hi(D_80165A90) # $fp, 0x8016 /* 0834A8 800828A8 4480A000 */ mtc1 $zero, $f20 @@ -19,7 +19,7 @@ glabel func_80082870 /* 0834B4 800828B4 AFB00020 */ sw $s0, 0x20($sp) /* 0834B8 800828B8 27DE5A90 */ addiu $fp, %lo(D_80165A90) # addiu $fp, $fp, 0x5a90 /* 0834BC 800828BC 36F77043 */ ori $s7, (0x19017043 & 0xFFFF) # ori $s7, $s7, 0x7043 -/* 0834C0 800828C0 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 +/* 0834C0 800828C0 26B55C18 */ addiu $s5, %lo(gObjectList) # addiu $s5, $s5, 0x5c18 /* 0834C4 800828C4 26943F28 */ addiu $s4, %lo(D_80183F28) # addiu $s4, $s4, 0x3f28 /* 0834C8 800828C8 26523E40 */ addiu $s2, %lo(D_80183E40) # addiu $s2, $s2, 0x3e40 /* 0834CC 800828CC 00009825 */ move $s3, $zero diff --git a/asm/non_matchings/code_80071F00/func_80082B34.s b/asm/non_matchings/code_80071F00/func_80082B34.s index 47016f173..6096c92b2 100644 --- a/asm/non_matchings/code_80071F00/func_80082B34.s +++ b/asm/non_matchings/code_80071F00/func_80082B34.s @@ -1,8 +1,8 @@ glabel func_80082B34 /* 083734 80082B34 000470C0 */ sll $t6, $a0, 3 /* 083738 80082B38 01C47023 */ subu $t6, $t6, $a0 -/* 08373C 80082B3C 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 083740 80082B40 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 08373C 80082B3C 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 +/* 083740 80082B40 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 083744 80082B44 000E7140 */ sll $t6, $t6, 5 /* 083748 80082B48 01CF4021 */ addu $t0, $t6, $t7 /* 08374C 80082B4C 850300A6 */ lh $v1, 0xa6($t0) diff --git a/asm/non_matchings/code_80071F00/func_80082F1C.s b/asm/non_matchings/code_80071F00/func_80082F1C.s index fd1f7ffea..e73614b02 100644 --- a/asm/non_matchings/code_80071F00/func_80082F1C.s +++ b/asm/non_matchings/code_80071F00/func_80082F1C.s @@ -8,8 +8,8 @@ glabel D_800EF1BC glabel func_80082F1C /* 083B1C 80082F1C 000470C0 */ sll $t6, $a0, 3 /* 083B20 80082F20 01C47023 */ subu $t6, $t6, $a0 -/* 083B24 80082F24 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 083B28 80082F28 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 083B24 80082F24 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 +/* 083B28 80082F28 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 083B2C 80082F2C 000E7140 */ sll $t6, $t6, 5 /* 083B30 80082F30 01CF1021 */ addu $v0, $t6, $t7 /* 083B34 80082F34 3C180601 */ lui $t8, %hi(d_course_yoshi_valley_unk5) # $t8, 0x601 diff --git a/asm/non_matchings/code_80071F00/func_80084430.s b/asm/non_matchings/code_80071F00/func_80084430.s index 789ab6df8..f98ae1156 100644 --- a/asm/non_matchings/code_80071F00/func_80084430.s +++ b/asm/non_matchings/code_80071F00/func_80084430.s @@ -13,9 +13,9 @@ glabel func_80084430 /* 085030 80084430 000470C0 */ sll $t6, $a0, 3 /* 085034 80084434 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 085038 80084438 01C47023 */ subu $t6, $t6, $a0 -/* 08503C 8008443C 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 +/* 08503C 8008443C 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 /* 085040 80084440 AFB00014 */ sw $s0, 0x14($sp) -/* 085044 80084444 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 085044 80084444 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 085048 80084448 000E7140 */ sll $t6, $t6, 5 /* 08504C 8008444C 01CF8021 */ addu $s0, $t6, $t7 /* 085050 80084450 3C180601 */ lui $t8, %hi(d_course_sherbet_land_unk_data1) # $t8, 0x601 @@ -63,7 +63,7 @@ glabel func_80084430 /* 0850F8 800844F8 3C050400 */ lui $a1, (0x04000800 >> 16) # lui $a1, 0x400 /* 0850FC 800844FC 34A50800 */ ori $a1, (0x04000800 & 0xFFFF) # ori $a1, $a1, 0x800 /* 085100 80084500 02202025 */ move $a0, $s1 -/* 085104 80084504 0C01C870 */ jal func_800721C0 +/* 085104 80084504 0C01C870 */ jal set_object_flag_unk_054_true /* 085108 80084508 AE0B0080 */ sw $t3, 0x80($s0) /* 08510C 8008450C 3C040601 */ lui $a0, %hi(d_course_sherbet_land_unk_data11) # $a0, 0x601 /* 085110 80084510 24849AC8 */ addiu $a0, %lo(d_course_sherbet_land_unk_data11) # addiu $a0, $a0, -0x6538 diff --git a/asm/non_matchings/code_80071F00/func_8008502C.s b/asm/non_matchings/code_80071F00/func_8008502C.s index 93047fd08..6eabb220c 100644 --- a/asm/non_matchings/code_80071F00/func_8008502C.s +++ b/asm/non_matchings/code_80071F00/func_8008502C.s @@ -2,8 +2,8 @@ glabel func_8008502C /* 085C2C 8008502C 000470C0 */ sll $t6, $a0, 3 /* 085C30 80085030 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 085C34 80085034 01C47023 */ subu $t6, $t6, $a0 -/* 085C38 80085038 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 085C3C 8008503C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 085C38 80085038 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 +/* 085C3C 8008503C 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 085C40 80085040 000E7140 */ sll $t6, $t6, 5 /* 085C44 80085044 AFBF0014 */ sw $ra, 0x14($sp) /* 085C48 80085048 AFA5001C */ sw $a1, 0x1c($sp) diff --git a/asm/non_matchings/code_80071F00/func_80086074.s b/asm/non_matchings/code_80071F00/func_80086074.s index c12373ba1..902dc96a7 100644 --- a/asm/non_matchings/code_80071F00/func_80086074.s +++ b/asm/non_matchings/code_80071F00/func_80086074.s @@ -30,7 +30,7 @@ glabel func_80086074 /* 086CE4 800860E4 012A2821 */ addu $a1, $t1, $t2 /* 086CE8 800860E8 AFAD0010 */ sw $t5, 0x10($sp) /* 086CEC 800860EC 8FA40020 */ lw $a0, 0x20($sp) -/* 086CF0 800860F0 0C01CD11 */ jal func_80073444 +/* 086CF0 800860F0 0C01CD11 */ jal init_texture_object /* 086CF4 800860F4 24070040 */ li $a3, 64 /* 086CF8 800860F8 0C0216ED */ jal func_80085BB4 /* 086CFC 800860FC 8FA40020 */ lw $a0, 0x20($sp) diff --git a/asm/non_matchings/code_80071F00/func_8008629C.s b/asm/non_matchings/code_80071F00/func_8008629C.s index c85b9dd22..97c3fbab4 100644 --- a/asm/non_matchings/code_80071F00/func_8008629C.s +++ b/asm/non_matchings/code_80071F00/func_8008629C.s @@ -12,16 +12,16 @@ glabel func_8008629C /* 086EC4 800862C4 001070C0 */ sll $t6, $s0, 3 /* 086EC8 800862C8 000470C0 */ sll $t6, $a0, 3 /* 086ECC 800862CC 01C47023 */ subu $t6, $t6, $a0 -/* 086ED0 800862D0 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 086ED4 800862D4 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 086ED0 800862D0 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 +/* 086ED4 800862D4 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 086ED8 800862D8 000E7140 */ sll $t6, $t6, 5 /* 086EDC 800862DC 10000022 */ b .L80086368 /* 086EE0 800862E0 01CF1021 */ addu $v0, $t6, $t7 .L800862E4: /* 086EE4 800862E4 0010C0C0 */ sll $t8, $s0, 3 /* 086EE8 800862E8 0310C023 */ subu $t8, $t8, $s0 -/* 086EEC 800862EC 3C198016 */ lui $t9, %hi(D_80165C18) # $t9, 0x8016 -/* 086EF0 800862F0 27395C18 */ addiu $t9, %lo(D_80165C18) # addiu $t9, $t9, 0x5c18 +/* 086EEC 800862EC 3C198016 */ lui $t9, %hi(gObjectList) # $t9, 0x8016 +/* 086EF0 800862F0 27395C18 */ addiu $t9, %lo(gObjectList) # addiu $t9, $t9, 0x5c18 /* 086EF4 800862F4 0018C140 */ sll $t8, $t8, 5 /* 086EF8 800862F8 3C080B00 */ lui $t0, %hi(D_0B0075F0) # $t0, 0xb00 /* 086EFC 800862FC 250875F0 */ addiu $t0, %lo(D_0B0075F0) # addiu $t0, $t0, 0x75f0 @@ -32,8 +32,8 @@ glabel func_8008629C /* 086F10 80086310 AC49004C */ sw $t1, 0x4c($v0) .L80086314: /* 086F14 80086314 01505023 */ subu $t2, $t2, $s0 -/* 086F18 80086318 3C0B8016 */ lui $t3, %hi(D_80165C18) # $t3, 0x8016 -/* 086F1C 8008631C 256B5C18 */ addiu $t3, %lo(D_80165C18) # addiu $t3, $t3, 0x5c18 +/* 086F18 80086318 3C0B8016 */ lui $t3, %hi(gObjectList) # $t3, 0x8016 +/* 086F1C 8008631C 256B5C18 */ addiu $t3, %lo(gObjectList) # addiu $t3, $t3, 0x5c18 /* 086F20 80086320 000A5140 */ sll $t2, $t2, 5 /* 086F24 80086324 3C0C0B01 */ lui $t4, %hi(D_0B008040) # $t4, 0xb01 /* 086F28 80086328 258C8040 */ addiu $t4, %lo(D_0B008040) # addiu $t4, $t4, -0x7fc0 @@ -44,8 +44,8 @@ glabel func_8008629C /* 086F3C 8008633C AC4D004C */ sw $t5, 0x4c($v0) .L80086340: /* 086F40 80086340 01D07023 */ subu $t6, $t6, $s0 -/* 086F44 80086344 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 086F48 80086348 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 086F44 80086344 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 +/* 086F48 80086348 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 086F4C 8008634C 000E7140 */ sll $t6, $t6, 5 /* 086F50 80086350 01CF1021 */ addu $v0, $t6, $t7 /* 086F54 80086354 3C180B01 */ lui $t8, %hi(D_0B008A90) # $t8, 0xb01 diff --git a/asm/non_matchings/code_80071F00/func_80086604.s b/asm/non_matchings/code_80071F00/func_80086604.s index f31c6faf1..f0454ed1a 100644 --- a/asm/non_matchings/code_80071F00/func_80086604.s +++ b/asm/non_matchings/code_80071F00/func_80086604.s @@ -34,8 +34,8 @@ glabel func_80086604 /* 087280 80086680 A2790000 */ sb $t9, ($s3) .L80086684: /* 087284 80086684 3C118018 */ lui $s1, %hi(D_80183EA0) # $s1, 0x8018 -/* 087288 80086688 3C138016 */ lui $s3, %hi(D_80165C18) # $s3, 0x8016 -/* 08728C 8008668C 26735C18 */ addiu $s3, %lo(D_80165C18) # addiu $s3, $s3, 0x5c18 +/* 087288 80086688 3C138016 */ lui $s3, %hi(gObjectList) # $s3, 0x8016 +/* 08728C 8008668C 26735C18 */ addiu $s3, %lo(gObjectList) # addiu $s3, $s3, 0x5c18 /* 087290 80086690 26313EA0 */ addiu $s1, %lo(D_80183EA0) # addiu $s1, $s1, 0x3ea0 /* 087294 80086694 00009025 */ move $s2, $zero /* 087298 80086698 24150003 */ li $s5, 3 diff --git a/asm/non_matchings/code_80071F00/func_80086940.s b/asm/non_matchings/code_80071F00/func_80086940.s index 88c5403a5..34fcd571a 100644 --- a/asm/non_matchings/code_80071F00/func_80086940.s +++ b/asm/non_matchings/code_80071F00/func_80086940.s @@ -13,9 +13,9 @@ glabel func_80086940 /* 087540 80086940 000470C0 */ sll $t6, $a0, 3 /* 087544 80086944 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 087548 80086948 01C47023 */ subu $t6, $t6, $a0 -/* 08754C 8008694C 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 +/* 08754C 8008694C 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 /* 087550 80086950 AFB00014 */ sw $s0, 0x14($sp) -/* 087554 80086954 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 087554 80086954 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 087558 80086958 000E7140 */ sll $t6, $t6, 5 /* 08755C 8008695C 01CF8021 */ addu $s0, $t6, $t7 /* 087560 80086960 961800AE */ lhu $t8, 0xae($s0) diff --git a/asm/non_matchings/code_80091750/func_8009CE64.s b/asm/non_matchings/code_80091750/func_8009CE64.s index 6d701af31..7ee34116a 100644 --- a/asm/non_matchings/code_80091750/func_8009CE64.s +++ b/asm/non_matchings/code_80091750/func_8009CE64.s @@ -326,12 +326,12 @@ glabel L8009D280 /* 09DE84 8009D284 A420C5A0 */ sh $zero, %lo(gCurrentCourseId)($at) /* 09DE88 8009D288 3C02800F */ lui $v0, %hi(gCharacterSelections) # $v0, 0x800f /* 09DE8C 8009D28C 3C0A800E */ lui $t2, %hi(gPlayerCountSelection1) # $t2, 0x800e -/* 09DE90 8009D290 3C0B8019 */ lui $t3, %hi(D_8018EDF3) # $t3, 0x8019 +/* 09DE90 8009D290 3C0B8019 */ lui $t3, %hi(gPlayerCount) # $t3, 0x8019 /* 09DE94 8009D294 3C0C800E */ lui $t4, %hi(gModeSelection) # $t4, 0x800e /* 09DE98 8009D298 3C0D800E */ lui $t5, %hi(gScreenModeSelection) # $t5, 0x800e /* 09DE9C 8009D29C 25ADC530 */ addiu $t5, %lo(gScreenModeSelection) # addiu $t5, $t5, -0x3ad0 /* 09DEA0 8009D2A0 258CC53C */ addiu $t4, %lo(gModeSelection) # addiu $t4, $t4, -0x3ac4 -/* 09DEA4 8009D2A4 256BEDF3 */ addiu $t3, %lo(D_8018EDF3) # addiu $t3, $t3, -0x120d +/* 09DEA4 8009D2A4 256BEDF3 */ addiu $t3, %lo(gPlayerCount) # addiu $t3, $t3, -0x120d /* 09DEA8 8009D2A8 254AC538 */ addiu $t2, %lo(gPlayerCountSelection1) # addiu $t2, $t2, -0x3ac8 /* 09DEAC 8009D2AC 244286A8 */ addiu $v0, %lo(gCharacterSelections) # addiu $v0, $v0, -0x7958 /* 09DEB0 8009D2B0 ADA00000 */ sw $zero, ($t5) @@ -346,12 +346,12 @@ glabel L8009D2C8 /* 09DED0 8009D2D0 24060002 */ li $a2, 2 /* 09DED4 8009D2D4 3C02800F */ lui $v0, %hi(gCharacterSelections) # $v0, 0x800f /* 09DED8 8009D2D8 3C0A800E */ lui $t2, %hi(gPlayerCountSelection1) # $t2, 0x800e -/* 09DEDC 8009D2DC 3C0B8019 */ lui $t3, %hi(D_8018EDF3) # $t3, 0x8019 +/* 09DEDC 8009D2DC 3C0B8019 */ lui $t3, %hi(gPlayerCount) # $t3, 0x8019 /* 09DEE0 8009D2E0 3C0C800E */ lui $t4, %hi(gModeSelection) # $t4, 0x800e /* 09DEE4 8009D2E4 3C0D800E */ lui $t5, %hi(gScreenModeSelection) # $t5, 0x800e /* 09DEE8 8009D2E8 25ADC530 */ addiu $t5, %lo(gScreenModeSelection) # addiu $t5, $t5, -0x3ad0 /* 09DEEC 8009D2EC 258CC53C */ addiu $t4, %lo(gModeSelection) # addiu $t4, $t4, -0x3ac4 -/* 09DEF0 8009D2F0 256BEDF3 */ addiu $t3, %lo(D_8018EDF3) # addiu $t3, $t3, -0x120d +/* 09DEF0 8009D2F0 256BEDF3 */ addiu $t3, %lo(gPlayerCount) # addiu $t3, $t3, -0x120d /* 09DEF4 8009D2F4 254AC538 */ addiu $t2, %lo(gPlayerCountSelection1) # addiu $t2, $t2, -0x3ac8 /* 09DEF8 8009D2F8 244286A8 */ addiu $v0, %lo(gCharacterSelections) # addiu $v0, $v0, -0x7958 /* 09DEFC 8009D2FC ADA50000 */ sw $a1, ($t5) @@ -367,12 +367,12 @@ glabel L8009D318 /* 09DF20 8009D320 A438C5A0 */ sh $t8, %lo(gCurrentCourseId)($at) /* 09DF24 8009D324 3C02800F */ lui $v0, %hi(gCharacterSelections) # $v0, 0x800f /* 09DF28 8009D328 3C0A800E */ lui $t2, %hi(gPlayerCountSelection1) # $t2, 0x800e -/* 09DF2C 8009D32C 3C0B8019 */ lui $t3, %hi(D_8018EDF3) # $t3, 0x8019 +/* 09DF2C 8009D32C 3C0B8019 */ lui $t3, %hi(gPlayerCount) # $t3, 0x8019 /* 09DF30 8009D330 3C0C800E */ lui $t4, %hi(gModeSelection) # $t4, 0x800e /* 09DF34 8009D334 3C0D800E */ lui $t5, %hi(gScreenModeSelection) # $t5, 0x800e /* 09DF38 8009D338 25ADC530 */ addiu $t5, %lo(gScreenModeSelection) # addiu $t5, $t5, -0x3ad0 /* 09DF3C 8009D33C 258CC53C */ addiu $t4, %lo(gModeSelection) # addiu $t4, $t4, -0x3ac4 -/* 09DF40 8009D340 256BEDF3 */ addiu $t3, %lo(D_8018EDF3) # addiu $t3, $t3, -0x120d +/* 09DF40 8009D340 256BEDF3 */ addiu $t3, %lo(gPlayerCount) # addiu $t3, $t3, -0x120d /* 09DF44 8009D344 254AC538 */ addiu $t2, %lo(gPlayerCountSelection1) # addiu $t2, $t2, -0x3ac8 /* 09DF48 8009D348 244286A8 */ addiu $v0, %lo(gCharacterSelections) # addiu $v0, $v0, -0x7958 /* 09DF4C 8009D34C ADA00000 */ sw $zero, ($t5) @@ -389,12 +389,12 @@ glabel L8009D364 /* 09DF74 8009D374 244286A8 */ addiu $v0, %lo(gCharacterSelections) # addiu $v0, $v0, -0x7958 /* 09DF78 8009D378 24070003 */ li $a3, 3 /* 09DF7C 8009D37C 3C0A800E */ lui $t2, %hi(gPlayerCountSelection1) # $t2, 0x800e -/* 09DF80 8009D380 3C0B8019 */ lui $t3, %hi(D_8018EDF3) # $t3, 0x8019 +/* 09DF80 8009D380 3C0B8019 */ lui $t3, %hi(gPlayerCount) # $t3, 0x8019 /* 09DF84 8009D384 3C0C800E */ lui $t4, %hi(gModeSelection) # $t4, 0x800e /* 09DF88 8009D388 3C0D800E */ lui $t5, %hi(gScreenModeSelection) # $t5, 0x800e /* 09DF8C 8009D38C 25ADC530 */ addiu $t5, %lo(gScreenModeSelection) # addiu $t5, $t5, -0x3ad0 /* 09DF90 8009D390 258CC53C */ addiu $t4, %lo(gModeSelection) # addiu $t4, $t4, -0x3ac4 -/* 09DF94 8009D394 256BEDF3 */ addiu $t3, %lo(D_8018EDF3) # addiu $t3, $t3, -0x120d +/* 09DF94 8009D394 256BEDF3 */ addiu $t3, %lo(gPlayerCount) # addiu $t3, $t3, -0x120d /* 09DF98 8009D398 254AC538 */ addiu $t2, %lo(gPlayerCountSelection1) # addiu $t2, $t2, -0x3ac8 /* 09DF9C 8009D39C 24060002 */ li $a2, 2 /* 09DFA0 8009D3A0 240E0007 */ li $t6, 7 @@ -412,12 +412,12 @@ glabel L8009D3C4 /* 09DFCC 8009D3CC A426C5A0 */ sh $a2, %lo(gCurrentCourseId)($at) /* 09DFD0 8009D3D0 3C02800F */ lui $v0, %hi(gCharacterSelections) # $v0, 0x800f /* 09DFD4 8009D3D4 3C0A800E */ lui $t2, %hi(gPlayerCountSelection1) # $t2, 0x800e -/* 09DFD8 8009D3D8 3C0B8019 */ lui $t3, %hi(D_8018EDF3) # $t3, 0x8019 +/* 09DFD8 8009D3D8 3C0B8019 */ lui $t3, %hi(gPlayerCount) # $t3, 0x8019 /* 09DFDC 8009D3DC 3C0C800E */ lui $t4, %hi(gModeSelection) # $t4, 0x800e /* 09DFE0 8009D3E0 3C0D800E */ lui $t5, %hi(gScreenModeSelection) # $t5, 0x800e /* 09DFE4 8009D3E4 25ADC530 */ addiu $t5, %lo(gScreenModeSelection) # addiu $t5, $t5, -0x3ad0 /* 09DFE8 8009D3E8 258CC53C */ addiu $t4, %lo(gModeSelection) # addiu $t4, $t4, -0x3ac4 -/* 09DFEC 8009D3EC 256BEDF3 */ addiu $t3, %lo(D_8018EDF3) # addiu $t3, $t3, -0x120d +/* 09DFEC 8009D3EC 256BEDF3 */ addiu $t3, %lo(gPlayerCount) # addiu $t3, $t3, -0x120d /* 09DFF0 8009D3F0 254AC538 */ addiu $t2, %lo(gPlayerCountSelection1) # addiu $t2, $t2, -0x3ac8 /* 09DFF4 8009D3F4 244286A8 */ addiu $v0, %lo(gCharacterSelections) # addiu $v0, $v0, -0x7958 /* 09DFF8 8009D3F8 240F0007 */ li $t7, 7 @@ -434,12 +434,12 @@ glabel L8009D414 /* 09E020 8009D420 3C02800F */ lui $v0, %hi(gCharacterSelections) # $v0, 0x800f /* 09E024 8009D424 244286A8 */ addiu $v0, %lo(gCharacterSelections) # addiu $v0, $v0, -0x7958 /* 09E028 8009D428 3C0A800E */ lui $t2, %hi(gPlayerCountSelection1) # $t2, 0x800e -/* 09E02C 8009D42C 3C0B8019 */ lui $t3, %hi(D_8018EDF3) # $t3, 0x8019 +/* 09E02C 8009D42C 3C0B8019 */ lui $t3, %hi(gPlayerCount) # $t3, 0x8019 /* 09E030 8009D430 3C0C800E */ lui $t4, %hi(gModeSelection) # $t4, 0x800e /* 09E034 8009D434 3C0D800E */ lui $t5, %hi(gScreenModeSelection) # $t5, 0x800e /* 09E038 8009D438 25ADC530 */ addiu $t5, %lo(gScreenModeSelection) # addiu $t5, $t5, -0x3ad0 /* 09E03C 8009D43C 258CC53C */ addiu $t4, %lo(gModeSelection) # addiu $t4, $t4, -0x3ac4 -/* 09E040 8009D440 256BEDF3 */ addiu $t3, %lo(D_8018EDF3) # addiu $t3, $t3, -0x120d +/* 09E040 8009D440 256BEDF3 */ addiu $t3, %lo(gPlayerCount) # addiu $t3, $t3, -0x120d /* 09E044 8009D444 254AC538 */ addiu $t2, %lo(gPlayerCountSelection1) # addiu $t2, $t2, -0x3ac8 /* 09E048 8009D448 24060002 */ li $a2, 2 /* 09E04C 8009D44C 24070003 */ li $a3, 3 @@ -605,10 +605,10 @@ glabel L8009D50C /* 09E28C 8009D68C 3C0A800E */ lui $t2, %hi(gPlayerCountSelection1) # $t2, 0x800e /* 09E290 8009D690 254AC538 */ addiu $t2, %lo(gPlayerCountSelection1) # addiu $t2, $t2, -0x3ac8 /* 09E294 8009D694 8D4E0000 */ lw $t6, ($t2) -/* 09E298 8009D698 3C0B8019 */ lui $t3, %hi(D_8018EDF3) # $t3, 0x8019 +/* 09E298 8009D698 3C0B8019 */ lui $t3, %hi(gPlayerCount) # $t3, 0x8019 /* 09E29C 8009D69C AD870000 */ sw $a3, ($t4) /* 09E2A0 8009D6A0 14AE0010 */ bne $a1, $t6, .L8009D6E4 -/* 09E2A4 8009D6A4 256BEDF3 */ addiu $t3, %lo(D_8018EDF3) # addiu $t3, $t3, -0x120d +/* 09E2A4 8009D6A4 256BEDF3 */ addiu $t3, %lo(gPlayerCount) # addiu $t3, $t3, -0x120d /* 09E2A8 8009D6A8 A1660000 */ sb $a2, ($t3) /* 09E2AC 8009D6AC 816F0000 */ lb $t7, ($t3) /* 09E2B0 8009D6B0 ADA50000 */ sw $a1, ($t5) diff --git a/asm/non_matchings/code_80091750/func_8009F5E0.s b/asm/non_matchings/code_80091750/func_8009F5E0.s index df1cd5932..dd6835d13 100644 --- a/asm/non_matchings/code_80091750/func_8009F5E0.s +++ b/asm/non_matchings/code_80091750/func_8009F5E0.s @@ -673,7 +673,7 @@ glabel L8009FD90 /* 0A09EC 8009FDEC AFAA0010 */ sw $t2, 0x10($sp) /* 0A09F0 8009FDF0 24E70039 */ addiu $a3, $a3, 0x39 /* 0A09F4 8009FDF4 00592821 */ addu $a1, $v0, $t9 -/* 0A09F8 8009FDF8 0C025673 */ jal func_800959CC +/* 0A09F8 8009FDF8 0C025673 */ jal draw_flash_select_case_fast /* 0A09FC 8009FDFC 00603025 */ move $a2, $v1 /* 0A0A00 8009FE00 AE020000 */ sw $v0, ($s0) /* 0A0A04 8009FE04 8E23001C */ lw $v1, 0x1c($s1) @@ -695,7 +695,7 @@ glabel L8009FD90 /* 0A0A40 8009FE40 AFAD0018 */ sw $t5, 0x18($sp) /* 0A0A44 8009FE44 AFAC0014 */ sw $t4, 0x14($sp) /* 0A0A48 8009FE48 8E040000 */ lw $a0, ($s0) -/* 0A0A4C 8009FE4C 0C026306 */ jal func_80098C18 +/* 0A0A4C 8009FE4C 0C026306 */ jal draw_box_fill /* 0A0A50 8009FE50 00482821 */ addu $a1, $v0, $t0 /* 0A0A54 8009FE54 AE020000 */ sw $v0, ($s0) /* 0A0A58 8009FE58 8E23001C */ lw $v1, 0x1c($s1) @@ -718,8 +718,8 @@ glabel L8009FD90 /* 0A0A94 8009FE94 1000028B */ b .L800A08C4 /* 0A0A98 8009FE98 AE020000 */ sw $v0, ($s0) glabel L8009FE9C -/* 0A0A9C 8009FE9C 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 -/* 0A0AA0 8009FEA0 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0A0A9C 8009FE9C 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 +/* 0A0AA0 8009FEA0 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0A0AA4 8009FEA4 3C03800F */ lui $v1, %hi((D_800E86AC - 1)) # 0x800f /* 0A0AA8 8009FEA8 3C06800F */ lui $a2, %hi((D_800E86B0 - 3)) # 0x800f /* 0A0AAC 8009FEAC 00621821 */ addu $v1, $v1, $v0 @@ -830,7 +830,7 @@ glabel L8009FF90 /* 0A0C30 800A0030 AFB80018 */ sw $t8, 0x18($sp) /* 0A0C34 800A0034 AFAF0014 */ sw $t7, 0x14($sp) /* 0A0C38 800A0038 8E040000 */ lw $a0, ($s0) -/* 0A0C3C 800A003C 0C026306 */ jal func_80098C18 +/* 0A0C3C 800A003C 0C026306 */ jal draw_box_fill /* 0A0C40 800A0040 24A7003F */ addiu $a3, $a1, 0x3f /* 0A0C44 800A0044 1000001A */ b .L800A00B0 /* 0A0C48 800A0048 AE020000 */ sw $v0, ($s0) @@ -842,7 +842,7 @@ glabel L8009FF90 /* 0A0C5C 800A005C AFAA0010 */ sw $t2, 0x10($sp) /* 0A0C60 800A0060 00603025 */ move $a2, $v1 /* 0A0C64 800A0064 00402825 */ move $a1, $v0 -/* 0A0C68 800A0068 0C025668 */ jal func_800959A0 +/* 0A0C68 800A0068 0C025668 */ jal draw_flash_select_case_slow /* 0A0C6C 800A006C 2447003F */ addiu $a3, $v0, 0x3f /* 0A0C70 800A0070 1000000F */ b .L800A00B0 /* 0A0C74 800A0074 AE020000 */ sw $v0, ($s0) @@ -858,7 +858,7 @@ glabel L8009FF90 /* 0A0C98 800A0098 AFAF0020 */ sw $t7, 0x20($sp) /* 0A0C9C 800A009C AFAE001C */ sw $t6, 0x1c($sp) /* 0A0CA0 800A00A0 8E040000 */ lw $a0, ($s0) -/* 0A0CA4 800A00A4 0C026306 */ jal func_80098C18 +/* 0A0CA4 800A00A4 0C026306 */ jal draw_box_fill /* 0A0CA8 800A00A8 24A7003F */ addiu $a3, $a1, 0x3f /* 0A0CAC 800A00AC AE020000 */ sw $v0, ($s0) .L800A00B0: @@ -1076,7 +1076,7 @@ glabel L800A037C /* 0A0FA4 800A03A4 AFAF0018 */ sw $t7, 0x18($sp) /* 0A0FA8 800A03A8 AFAE0014 */ sw $t6, 0x14($sp) /* 0A0FAC 800A03AC 8E040000 */ lw $a0, ($s0) -/* 0A0FB0 800A03B0 0C026306 */ jal func_80098C18 +/* 0A0FB0 800A03B0 0C026306 */ jal draw_box_fill /* 0A0FB4 800A03B4 24A7003F */ addiu $a3, $a1, 0x3f /* 0A0FB8 800A03B8 AE020000 */ sw $v0, ($s0) /* 0A0FBC 800A03BC 3C09800E */ lui $t1, %hi(gCCSelection) # $t1, 0x800e @@ -1135,7 +1135,7 @@ glabel L800A0428 /* 0A1084 800A0484 AFAF0018 */ sw $t7, 0x18($sp) /* 0A1088 800A0488 AFAE0014 */ sw $t6, 0x14($sp) /* 0A108C 800A048C 8E040000 */ lw $a0, ($s0) -/* 0A1090 800A0490 0C026306 */ jal func_80098C18 +/* 0A1090 800A0490 0C026306 */ jal draw_box_fill /* 0A1094 800A0494 24A7003F */ addiu $a3, $a1, 0x3f /* 0A1098 800A0498 1000001A */ b .L800A0504 /* 0A109C 800A049C AE020000 */ sw $v0, ($s0) @@ -1147,7 +1147,7 @@ glabel L800A0428 /* 0A10B0 800A04B0 AFA90010 */ sw $t1, 0x10($sp) /* 0A10B4 800A04B4 00603025 */ move $a2, $v1 /* 0A10B8 800A04B8 00402825 */ move $a1, $v0 -/* 0A10BC 800A04BC 0C025668 */ jal func_800959A0 +/* 0A10BC 800A04BC 0C025668 */ jal draw_flash_select_case_slow /* 0A10C0 800A04C0 2447003F */ addiu $a3, $v0, 0x3f /* 0A10C4 800A04C4 1000000F */ b .L800A0504 /* 0A10C8 800A04C8 AE020000 */ sw $v0, ($s0) @@ -1164,7 +1164,7 @@ glabel L800A0428 /* 0A10EC 800A04EC AFAE0020 */ sw $t6, 0x20($sp) /* 0A10F0 800A04F0 AFAD001C */ sw $t5, 0x1c($sp) /* 0A10F4 800A04F4 8E040000 */ lw $a0, ($s0) -/* 0A10F8 800A04F8 0C026306 */ jal func_80098C18 +/* 0A10F8 800A04F8 0C026306 */ jal draw_box_fill /* 0A10FC 800A04FC 24A7003F */ addiu $a3, $a1, 0x3f /* 0A1100 800A0500 AE020000 */ sw $v0, ($s0) .L800A0504: diff --git a/asm/non_matchings/code_80091750/func_800A10CC.s b/asm/non_matchings/code_80091750/func_800A10CC.s index 265ad303e..d145c02e6 100644 --- a/asm/non_matchings/code_80091750/func_800A10CC.s +++ b/asm/non_matchings/code_80091750/func_800A10CC.s @@ -36,7 +36,7 @@ glabel func_800A10CC /* 0A1D34 800A1134 24070122 */ li $a3, 290 /* 0A1D38 800A1138 AFA00014 */ sw $zero, 0x14($sp) /* 0A1D3C 800A113C AFA00018 */ sw $zero, 0x18($sp) -/* 0A1D40 800A1140 0C026306 */ jal func_80098C18 +/* 0A1D40 800A1140 0C026306 */ jal draw_box_fill /* 0A1D44 800A1144 AFA0001C */ sw $zero, 0x1c($sp) /* 0A1D48 800A1148 AE220000 */ sw $v0, ($s1) /* 0A1D4C 800A114C 8E130004 */ lw $s3, 4($s0) diff --git a/asm/non_matchings/code_80091750/func_800A3A10.s b/asm/non_matchings/code_80091750/func_800A3A10.s index 586a32152..0ea4e852d 100644 --- a/asm/non_matchings/code_80091750/func_800A3A10.s +++ b/asm/non_matchings/code_80091750/func_800A3A10.s @@ -1,12 +1,12 @@ glabel func_800A3A10 /* 0A4610 800A3A10 27BDFFF8 */ addiu $sp, $sp, -8 /* 0A4614 800A3A14 AFB00004 */ sw $s0, 4($sp) -/* 0A4618 800A3A18 3C108019 */ lui $s0, %hi(D_8018EDF3) # $s0, 0x8019 +/* 0A4618 800A3A18 3C108019 */ lui $s0, %hi(gPlayerCount) # $s0, 0x8019 /* 0A461C 800A3A1C 3C0D8016 */ lui $t5, %hi(D_80164478) # $t5, 0x8016 /* 0A4620 800A3A20 3C0B8019 */ lui $t3, %hi(gGPPointsByCharacterId) # $t3, 0x8019 /* 0A4624 800A3A24 256BD9C8 */ addiu $t3, %lo(gGPPointsByCharacterId) # addiu $t3, $t3, -0x2638 /* 0A4628 800A3A28 25AD4478 */ addiu $t5, %lo(D_80164478) # addiu $t5, $t5, 0x4478 -/* 0A462C 800A3A2C 2610EDF3 */ addiu $s0, %lo(D_8018EDF3) # addiu $s0, $s0, -0x120d +/* 0A462C 800A3A2C 2610EDF3 */ addiu $s0, %lo(gPlayerCount) # addiu $s0, $s0, -0x120d /* 0A4630 800A3A30 00001025 */ move $v0, $zero /* 0A4634 800A3A34 00801825 */ move $v1, $a0 /* 0A4638 800A3A38 240C0008 */ li $t4, 8 diff --git a/asm/non_matchings/code_80091750/func_800A8564.s b/asm/non_matchings/code_80091750/func_800A8564.s index 5884ef52f..4970d4099 100644 --- a/asm/non_matchings/code_80091750/func_800A8564.s +++ b/asm/non_matchings/code_80091750/func_800A8564.s @@ -77,7 +77,7 @@ glabel func_800A8564 /* 0A9270 800A8670 AFAB0010 */ sw $t3, 0x10($sp) /* 0A9274 800A8674 24E7001E */ addiu $a3, $a3, 0x1e /* 0A9278 800A8678 8C840298 */ lw $a0, %lo(gDisplayListHead)($a0) -/* 0A927C 800A867C 0C025668 */ jal func_800959A0 +/* 0A927C 800A867C 0C025668 */ jal draw_flash_select_case_slow /* 0A9280 800A8680 01032821 */ addu $a1, $t0, $v1 /* 0A9284 800A8684 3C018015 */ lui $at, %hi(gDisplayListHead) # $at, 0x8015 /* 0A9288 800A8688 10000013 */ b .L800A86D8 @@ -97,7 +97,7 @@ glabel func_800A8564 /* 0A92BC 800A86BC AFAC0010 */ sw $t4, 0x10($sp) /* 0A92C0 800A86C0 24E7001E */ addiu $a3, $a3, 0x1e /* 0A92C4 800A86C4 8C840298 */ lw $a0, %lo(gDisplayListHead)($a0) -/* 0A92C8 800A86C8 0C026306 */ jal func_80098C18 +/* 0A92C8 800A86C8 0C026306 */ jal draw_box_fill /* 0A92CC 800A86CC 01032821 */ addu $a1, $t0, $v1 /* 0A92D0 800A86D0 3C018015 */ lui $at, %hi(gDisplayListHead) # $at, 0x8015 /* 0A92D4 800A86D4 AC220298 */ sw $v0, %lo(gDisplayListHead)($at) diff --git a/asm/non_matchings/code_80091750/func_800AC458.s b/asm/non_matchings/code_80091750/func_800AC458.s index 8ed6637a0..c32a088ba 100644 --- a/asm/non_matchings/code_80091750/func_800AC458.s +++ b/asm/non_matchings/code_80091750/func_800AC458.s @@ -270,10 +270,10 @@ glabel L800AC7CC /* 0AD414 800AC814 00002825 */ move $a1, $zero /* 0AD418 800AC818 15A10053 */ bne $t5, $at, .L800AC968 /* 0AD41C 800AC81C 3C028019 */ lui $v0, %hi(gCharacterIdByGPOverallRank) # $v0, 0x8019 -/* 0AD420 800AC820 3C038019 */ lui $v1, %hi(D_8018EDF3) # $v1, 0x8019 +/* 0AD420 800AC820 3C038019 */ lui $v1, %hi(gPlayerCount) # $v1, 0x8019 /* 0AD424 800AC824 3C048016 */ lui $a0, %hi(D_80164478) # $a0, 0x8016 /* 0AD428 800AC828 24844478 */ addiu $a0, %lo(D_80164478) # addiu $a0, $a0, 0x4478 -/* 0AD42C 800AC82C 8063EDF3 */ lb $v1, %lo(D_8018EDF3)($v1) +/* 0AD42C 800AC82C 8063EDF3 */ lb $v1, %lo(gPlayerCount)($v1) /* 0AD430 800AC830 2442D9D0 */ addiu $v0, %lo(gCharacterIdByGPOverallRank) # addiu $v0, $v0, -0x2630 /* 0AD434 800AC834 24060008 */ li $a2, 8 .L800AC838: diff --git a/asm/non_matchings/code_80091750/func_800ACF40.s b/asm/non_matchings/code_80091750/func_800ACF40.s index 3c4059e9e..694c1bcc0 100644 --- a/asm/non_matchings/code_80091750/func_800ACF40.s +++ b/asm/non_matchings/code_80091750/func_800ACF40.s @@ -39,8 +39,8 @@ glabel L800ACF94 /* 0ADBB0 800ACFB0 10000077 */ b .L800AD190 /* 0ADBB4 800ACFB4 AE190010 */ sw $t9, 0x10($s0) glabel L800ACFB8 -/* 0ADBB8 800ACFB8 3C098019 */ lui $t1, %hi(D_8018EDF3) # $t1, 0x8019 -/* 0ADBBC 800ACFBC 812AEDF3 */ lb $t2, %lo(D_8018EDF3)($t1) +/* 0ADBB8 800ACFB8 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019 +/* 0ADBBC 800ACFBC 812AEDF3 */ lb $t2, %lo(gPlayerCount)($t1) /* 0ADBC0 800ACFC0 000660C0 */ sll $t4, $a2, 3 /* 0ADBC4 800ACFC4 3C0F800E */ lui $t7, %hi(D_800E7300) # $t7, 0x800e /* 0ADBC8 800ACFC8 000A5940 */ sll $t3, $t2, 5 diff --git a/asm/non_matchings/code_800B45E0/func_800B559C.s b/asm/non_matchings/code_800B45E0/func_800B559C.s index 5ee54672f..2587c0cfe 100644 --- a/asm/non_matchings/code_800B45E0/func_800B559C.s +++ b/asm/non_matchings/code_800B45E0/func_800B559C.s @@ -32,7 +32,7 @@ glabel func_800B559C /* 0B6210 800B5610 24140018 */ li $s4, 24 /* 0B6214 800B5614 24100003 */ li $s0, 3 .L800B5618: -/* 0B6218 800B5618 0C02D21D */ jal func_800B4874 +/* 0B6218 800B5618 0C02D21D */ jal checksum_time_trial_records /* 0B621C 800B561C 02202025 */ move $a0, $s1 /* 0B6220 800B5620 06210003 */ bgez $s1, .L800B5630 /* 0B6224 800B5624 00114083 */ sra $t0, $s1, 2 diff --git a/asm/non_matchings/hud_renderer/func_8004E6C4.s b/asm/non_matchings/hud_renderer/func_8004E6C4.s index 9a28d41a4..565c2e7c0 100644 --- a/asm/non_matchings/hud_renderer/func_8004E6C4.s +++ b/asm/non_matchings/hud_renderer/func_8004E6C4.s @@ -3,8 +3,8 @@ glabel func_8004E6C4 /* 04F2C8 8004E6C8 3C028018 */ lui $v0, %hi(gItemWindowObjectByPlayerId) # 0x8018 /* 04F2CC 8004E6CC 004F1021 */ addu $v0, $v0, $t7 /* 04F2D0 8004E6D0 8C423E88 */ lw $v0, %lo(gItemWindowObjectByPlayerId)($v0) # 0x3e88($v0) -/* 04F2D4 8004E6D4 3C198016 */ lui $t9, %hi(D_80165C18) # $t9, 0x8016 -/* 04F2D8 8004E6D8 27395C18 */ addiu $t9, %lo(D_80165C18) # addiu $t9, $t9, 0x5c18 +/* 04F2D4 8004E6D4 3C198016 */ lui $t9, %hi(gObjectList) # $t9, 0x8016 +/* 04F2D8 8004E6D8 27395C18 */ addiu $t9, %lo(gObjectList) # addiu $t9, $t9, 0x5c18 /* 04F2DC 8004E6DC 0002C0C0 */ sll $t8, $v0, 3 /* 04F2E0 8004E6E0 0302C023 */ subu $t8, $t8, $v0 /* 04F2E4 8004E6E4 0018C140 */ sll $t8, $t8, 5 diff --git a/asm/non_matchings/hud_renderer/func_80050E34.s b/asm/non_matchings/hud_renderer/func_80050E34.s index 646b93861..9e0100f11 100644 --- a/asm/non_matchings/hud_renderer/func_80050E34.s +++ b/asm/non_matchings/hud_renderer/func_80050E34.s @@ -117,11 +117,11 @@ glabel func_80050E34 /* 051BEC 80050FEC AFAD00D4 */ sw $t5, 0xd4($sp) /* 051BF0 80050FF0 2484DAD8 */ addiu $a0, %lo(gTexturePortraitQuestionMark) # addiu $a0, $a0, -0x2528 /* 051BF4 80050FF4 24050020 */ li $a1, 32 -/* 051BF8 80050FF8 0C0114A9 */ jal func_800452A4 +/* 051BF8 80050FF8 0C0114A9 */ jal rsp_load_texture /* 051BFC 80050FFC 24060020 */ li $a2, 32 /* 051C00 80051000 8FAD00D4 */ lw $t5, 0xd4($sp) -/* 051C04 80051004 3C0E8016 */ lui $t6, %hi(D_80165C18) # $t6, 0x8016 -/* 051C08 80051008 25CE5C18 */ addiu $t6, %lo(D_80165C18) # addiu $t6, $t6, 0x5c18 +/* 051C04 80051004 3C0E8016 */ lui $t6, %hi(gObjectList) # $t6, 0x8016 +/* 051C08 80051008 25CE5C18 */ addiu $t6, %lo(gObjectList) # addiu $t6, $t6, 0x5c18 /* 051C0C 8005100C 000DC8C0 */ sll $t9, $t5, 3 /* 051C10 80051010 032DC823 */ subu $t9, $t9, $t5 /* 051C14 80051014 0019C940 */ sll $t9, $t9, 5 @@ -145,7 +145,7 @@ glabel func_80050E34 /* 051C5C 8005105C 46123100 */ add.s $f4, $f6, $f18 /* 051C60 80051060 E62A0004 */ swc1 $f10, 4($s1) /* 051C64 80051064 E628000C */ swc1 $f8, 0xc($s1) -/* 051C68 80051068 0C010B80 */ jal func_80042E00 +/* 051C68 80051068 0C010B80 */ jal rsp_set_matrix_transformation /* 051C6C 8005106C E6240008 */ swc1 $f4, 8($s1) /* 051C70 80051070 8E020000 */ lw $v0, ($s0) /* 051C74 80051074 3C0E0D00 */ lui $t6, %hi(D_0D0069E0) # $t6, 0xd00 @@ -222,8 +222,8 @@ glabel func_80050E34 /* 051D8C 8005118C 0019C940 */ sll $t9, $t9, 5 /* 051D90 80051190 000D70C0 */ sll $t6, $t5, 3 /* 051D94 80051194 01CD7023 */ subu $t6, $t6, $t5 -/* 051D98 80051198 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 051D9C 8005119C 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 051D98 80051198 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 +/* 051D9C 8005119C 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 051DA0 800511A0 000E7140 */ sll $t6, $t6, 5 /* 051DA4 800511A4 24180080 */ li $t8, 128 /* 051DA8 800511A8 AFB80010 */ sw $t8, 0x10($sp) @@ -240,11 +240,11 @@ glabel func_80050E34 /* 051DD4 800511D4 10000008 */ b .L800511F8 /* 051DD8 800511D8 8FAA003C */ lw $t2, 0x3c($sp) .L800511DC: -/* 051DDC 800511DC 3C0E8016 */ lui $t6, %hi(D_80165C18) # $t6, 0x8016 -/* 051DE0 800511E0 25CE5C18 */ addiu $t6, %lo(D_80165C18) # addiu $t6, $t6, 0x5c18 +/* 051DDC 800511DC 3C0E8016 */ lui $t6, %hi(gObjectList) # $t6, 0x8016 +/* 051DE0 800511E0 25CE5C18 */ addiu $t6, %lo(gObjectList) # addiu $t6, $t6, 0x5c18 /* 051DE4 800511E4 032E8821 */ addu $s1, $t9, $t6 /* 051DE8 800511E8 862400A0 */ lh $a0, 0xa0($s1) -/* 051DEC 800511EC 0C012CAF */ jal func_8004B2BC +/* 051DEC 800511EC 0C012CAF */ jal set_transparency /* 051DF0 800511F0 AFAA003C */ sw $t2, 0x3c($sp) /* 051DF4 800511F4 8FAA003C */ lw $t2, 0x3c($sp) .L800511F8: @@ -252,7 +252,7 @@ glabel func_80050E34 /* 051DFC 800511FC 008A2021 */ addu $a0, $a0, $t2 /* 051E00 80051200 8C84459C */ lw $a0, %lo(gPortraitTextures)($a0) /* 051E04 80051204 24050020 */ li $a1, 32 -/* 051E08 80051208 0C0114A9 */ jal func_800452A4 +/* 051E08 80051208 0C0114A9 */ jal rsp_load_texture /* 051E0C 8005120C 24060020 */ li $a2, 32 /* 051E10 80051210 8FAF00D0 */ lw $t7, 0xd0($sp) /* 051E14 80051214 8FB900C4 */ lw $t9, 0xc4($sp) @@ -275,7 +275,7 @@ glabel func_80050E34 /* 051E58 80051258 46088280 */ add.s $f10, $f16, $f8 /* 051E5C 8005125C E6320004 */ swc1 $f18, 4($s1) /* 051E60 80051260 E626000C */ swc1 $f6, 0xc($s1) -/* 051E64 80051264 0C010B80 */ jal func_80042E00 +/* 051E64 80051264 0C010B80 */ jal rsp_set_matrix_transformation /* 051E68 80051268 E62A0008 */ swc1 $f10, 8($s1) /* 051E6C 8005126C 8FB800B8 */ lw $t8, 0xb8($sp) /* 051E70 80051270 3C0E0600 */ lui $t6, 0x600 @@ -347,7 +347,7 @@ glabel func_80050E34 /* 051F70 80051370 2739A058 */ addiu $t9, %lo(gTextureHudTypeCRankTinyFont) # addiu $t9, $t9, -0x5fa8 /* 051F74 80051374 000E7980 */ sll $t7, $t6, 6 /* 051F78 80051378 25F80040 */ addiu $t8, $t7, 0x40 -/* 051F7C 8005137C 0C0114A9 */ jal func_800452A4 +/* 051F7C 8005137C 0C0114A9 */ jal rsp_load_texture /* 051F80 80051380 03192021 */ addu $a0, $t8, $t9 /* 051F84 80051384 8FAE00B8 */ lw $t6, 0xb8($sp) /* 051F88 80051388 8FA400D0 */ lw $a0, 0xd0($sp) @@ -415,7 +415,7 @@ glabel func_80050E34 /* 052078 80051478 24060020 */ li $a2, 32 /* 05207C 8005147C 8FA4003C */ lw $a0, 0x3c($sp) /* 052080 80051480 8FA50038 */ lw $a1, 0x38($sp) -/* 052084 80051484 0C010B80 */ jal func_80042E00 +/* 052084 80051484 0C010B80 */ jal rsp_set_matrix_transformation /* 052088 80051488 8E260000 */ lw $a2, ($s1) /* 05208C 8005148C 8E020000 */ lw $v0, ($s0) /* 052090 80051490 3C0E0600 */ lui $t6, 0x600 diff --git a/asm/non_matchings/hud_renderer/func_800519D4.s b/asm/non_matchings/hud_renderer/func_800519D4.s index ed4fd95c7..a7557d32a 100644 --- a/asm/non_matchings/hud_renderer/func_800519D4.s +++ b/asm/non_matchings/hud_renderer/func_800519D4.s @@ -2,9 +2,9 @@ glabel func_800519D4 /* 0525D4 800519D4 000470C0 */ sll $t6, $a0, 3 /* 0525D8 800519D8 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 0525DC 800519DC 01C47023 */ subu $t6, $t6, $a0 -/* 0525E0 800519E0 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 +/* 0525E0 800519E0 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 /* 0525E4 800519E4 AFB00018 */ sw $s0, 0x18($sp) -/* 0525E8 800519E8 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 0525E8 800519E8 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 0525EC 800519EC 000E7140 */ sll $t6, $t6, 5 /* 0525F0 800519F0 01CF8021 */ addu $s0, $t6, $t7 /* 0525F4 800519F4 8E180054 */ lw $t8, 0x54($s0) @@ -44,8 +44,8 @@ glabel func_800519D4 /* 052678 80051A78 ACA90000 */ sw $t1, ($a1) /* 05267C 80051A7C AC4A0000 */ sw $t2, ($v0) /* 052680 80051A80 8E0B0074 */ lw $t3, 0x74($s0) -/* 052684 80051A84 3C0E0D00 */ lui $t6, %hi(D_0D006940) # $t6, 0xd00 -/* 052688 80051A88 25CE6940 */ addiu $t6, %lo(D_0D006940) # addiu $t6, $t6, 0x6940 +/* 052684 80051A84 3C0E0D00 */ lui $t6, %hi(common_rectangle_display) # $t6, 0xd00 +/* 052688 80051A88 25CE6940 */ addiu $t6, %lo(common_rectangle_display) # addiu $t6, $t6, 0x6940 /* 05268C 80051A8C AC4B0004 */ sw $t3, 4($v0) /* 052690 80051A90 8CA20000 */ lw $v0, ($a1) /* 052694 80051A94 3C0D0600 */ lui $t5, 0x600 diff --git a/asm/non_matchings/hud_renderer/func_80051ABC.s b/asm/non_matchings/hud_renderer/func_80051ABC.s index 9b16485bf..ef0bba0d8 100644 --- a/asm/non_matchings/hud_renderer/func_80051ABC.s +++ b/asm/non_matchings/hud_renderer/func_80051ABC.s @@ -41,8 +41,8 @@ glabel func_80051ABC /* 052758 80051B58 19400038 */ blez $t2, .L80051C3C /* 05275C 80051B5C 3C0C8019 */ lui $t4, %hi(D_8018CC80) # $t4, 0x8019 /* 052760 80051B60 258CCC80 */ addiu $t4, %lo(D_8018CC80) # addiu $t4, $t4, -0x3380 -/* 052764 80051B64 3C128016 */ lui $s2, %hi(D_80165C18) # $s2, 0x8016 -/* 052768 80051B68 26525C18 */ addiu $s2, %lo(D_80165C18) # addiu $s2, $s2, 0x5c18 +/* 052764 80051B64 3C128016 */ lui $s2, %hi(gObjectList) # $s2, 0x8016 +/* 052768 80051B68 26525C18 */ addiu $s2, %lo(gObjectList) # addiu $s2, $s2, 0x5c18 /* 05276C 80051B6C 016C8821 */ addu $s1, $t3, $t4 /* 052770 80051B70 241300E0 */ li $s3, 224 /* 052774 80051B74 8E240000 */ lw $a0, ($s1) @@ -77,8 +77,8 @@ glabel func_80051ABC /* 0527E0 80051BE0 19000016 */ blez $t0, .L80051C3C /* 0527E4 80051BE4 3C0A8019 */ lui $t2, %hi(D_8018CC80) # $t2, 0x8019 /* 0527E8 80051BE8 254ACC80 */ addiu $t2, %lo(D_8018CC80) # addiu $t2, $t2, -0x3380 -/* 0527EC 80051BEC 3C128016 */ lui $s2, %hi(D_80165C18) # $s2, 0x8016 -/* 0527F0 80051BF0 26525C18 */ addiu $s2, %lo(D_80165C18) # addiu $s2, $s2, 0x5c18 +/* 0527EC 80051BEC 3C128016 */ lui $s2, %hi(gObjectList) # $s2, 0x8016 +/* 0527F0 80051BF0 26525C18 */ addiu $s2, %lo(gObjectList) # addiu $s2, $s2, 0x5c18 /* 0527F4 80051BF4 012A8821 */ addu $s1, $t1, $t2 /* 0527F8 80051BF8 241300E0 */ li $s3, 224 /* 0527FC 80051BFC 8E240000 */ lw $a0, ($s1) diff --git a/asm/non_matchings/hud_renderer/func_80051C60.s b/asm/non_matchings/hud_renderer/func_80051C60.s index 6f5cbdfd4..6356ab1de 100644 --- a/asm/non_matchings/hud_renderer/func_80051C60.s +++ b/asm/non_matchings/hud_renderer/func_80051C60.s @@ -87,8 +87,8 @@ glabel func_80051C60 /* 05299C 80051D9C 19C0003E */ blez $t6, .L80051E98 /* 0529A0 80051DA0 3C188019 */ lui $t8, %hi(D_8018CC80) # $t8, 0x8019 /* 0529A4 80051DA4 2718CC80 */ addiu $t8, %lo(D_8018CC80) # addiu $t8, $t8, -0x3380 -/* 0529A8 80051DA8 3C128016 */ lui $s2, %hi(D_80165C18) # $s2, 0x8016 -/* 0529AC 80051DAC 26525C18 */ addiu $s2, %lo(D_80165C18) # addiu $s2, $s2, 0x5c18 +/* 0529A8 80051DA8 3C128016 */ lui $s2, %hi(gObjectList) # $s2, 0x8016 +/* 0529AC 80051DAC 26525C18 */ addiu $s2, %lo(gObjectList) # addiu $s2, $s2, 0x5c18 /* 0529B0 80051DB0 01F88821 */ addu $s1, $t7, $t8 /* 0529B4 80051DB4 241300E0 */ li $s3, 224 /* 0529B8 80051DB8 8E240000 */ lw $a0, ($s1) @@ -126,8 +126,8 @@ glabel func_80051C60 /* 052A2C 80051E2C 19A0001A */ blez $t5, .L80051E98 /* 052A30 80051E30 3C0F8019 */ lui $t7, %hi(D_8018CC80) # $t7, 0x8019 /* 052A34 80051E34 25EFCC80 */ addiu $t7, %lo(D_8018CC80) # addiu $t7, $t7, -0x3380 -/* 052A38 80051E38 3C128016 */ lui $s2, %hi(D_80165C18) # $s2, 0x8016 -/* 052A3C 80051E3C 26525C18 */ addiu $s2, %lo(D_80165C18) # addiu $s2, $s2, 0x5c18 +/* 052A38 80051E38 3C128016 */ lui $s2, %hi(gObjectList) # $s2, 0x8016 +/* 052A3C 80051E3C 26525C18 */ addiu $s2, %lo(gObjectList) # addiu $s2, $s2, 0x5c18 /* 052A40 80051E40 01CF8821 */ addu $s1, $t6, $t7 /* 052A44 80051E44 241300E0 */ li $s3, 224 /* 052A48 80051E48 8E240000 */ lw $a0, ($s1) diff --git a/asm/non_matchings/hud_renderer/func_8005217C.s b/asm/non_matchings/hud_renderer/func_8005217C.s index e7d017f0e..ab76311b9 100644 --- a/asm/non_matchings/hud_renderer/func_8005217C.s +++ b/asm/non_matchings/hud_renderer/func_8005217C.s @@ -1,8 +1,8 @@ glabel func_8005217C /* 052D7C 8005217C 3C078018 */ lui $a3, %hi(D_80183F28) # $a3, 0x8018 /* 052D80 80052180 8CE73F28 */ lw $a3, %lo(D_80183F28)($a3) -/* 052D84 80052184 3C0F8016 */ lui $t7, %hi(D_80165C18) # $t7, 0x8016 -/* 052D88 80052188 25EF5C18 */ addiu $t7, %lo(D_80165C18) # addiu $t7, $t7, 0x5c18 +/* 052D84 80052184 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016 +/* 052D88 80052188 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18 /* 052D8C 8005218C 000770C0 */ sll $t6, $a3, 3 /* 052D90 80052190 01C77023 */ subu $t6, $t6, $a3 /* 052D94 80052194 000E7140 */ sll $t6, $t6, 5 @@ -16,7 +16,7 @@ glabel func_8005217C /* 052DB4 800521B4 00E02025 */ move $a0, $a3 /* 052DB8 800521B8 24050010 */ li $a1, 16 /* 052DBC 800521BC AFA30018 */ sw $v1, 0x18($sp) -/* 052DC0 800521C0 0C01C88F */ jal func_8007223C +/* 052DC0 800521C0 0C01C88F */ jal is_obj_index_flag_unk_054_active /* 052DC4 800521C4 AFA70050 */ sw $a3, 0x50($sp) /* 052DC8 800521C8 8FA30018 */ lw $v1, 0x18($sp) /* 052DCC 800521CC 10400076 */ beqz $v0, .L800523A8 @@ -24,7 +24,7 @@ glabel func_8005217C /* 052DD4 800521D4 24640004 */ addiu $a0, $v1, 4 /* 052DD8 800521D8 246500BE */ addiu $a1, $v1, 0xbe /* 052DDC 800521DC 8C660000 */ lw $a2, ($v1) -/* 052DE0 800521E0 0C010B80 */ jal func_80042E00 +/* 052DE0 800521E0 0C010B80 */ jal rsp_set_matrix_transformation /* 052DE4 800521E4 AFA70050 */ sw $a3, 0x50($sp) /* 052DE8 800521E8 0C014830 */ jal func_800520C0 /* 052DEC 800521EC 8FA40050 */ lw $a0, 0x50($sp) diff --git a/asm/non_matchings/hud_renderer/func_80052590.s b/asm/non_matchings/hud_renderer/func_80052590.s index f05b3a1ef..dc0da097e 100644 --- a/asm/non_matchings/hud_renderer/func_80052590.s +++ b/asm/non_matchings/hud_renderer/func_80052590.s @@ -6,12 +6,12 @@ glabel func_80052590 /* 0531A0 800525A0 AFBE0040 */ sw $fp, 0x40($sp) /* 0531A4 800525A4 01C47023 */ subu $t6, $t6, $a0 /* 0531A8 800525A8 0002C0C0 */ sll $t8, $v0, 3 -/* 0531AC 800525AC 3C1E8016 */ lui $fp, %hi(D_80165C18) # $fp, 0x8016 +/* 0531AC 800525AC 3C1E8016 */ lui $fp, %hi(gObjectList) # $fp, 0x8016 /* 0531B0 800525B0 000E70C0 */ sll $t6, $t6, 3 /* 0531B4 800525B4 3C0F800E */ lui $t7, %hi(camera1) # $t7, 0x800e /* 0531B8 800525B8 0302C023 */ subu $t8, $t8, $v0 /* 0531BC 800525BC 8DEFDB40 */ lw $t7, %lo(camera1)($t7) -/* 0531C0 800525C0 27DE5C18 */ addiu $fp, %lo(D_80165C18) # addiu $fp, $fp, 0x5c18 +/* 0531C0 800525C0 27DE5C18 */ addiu $fp, %lo(gObjectList) # addiu $fp, $fp, 0x5c18 /* 0531C4 800525C4 AFB00020 */ sw $s0, 0x20($sp) /* 0531C8 800525C8 01C47023 */ subu $t6, $t6, $a0 /* 0531CC 800525CC 0018C140 */ sll $t8, $t8, 5 diff --git a/asm/non_matchings/hud_renderer/func_800528EC.s b/asm/non_matchings/hud_renderer/func_800528EC.s index f1dc7f627..cfcd88c6f 100644 --- a/asm/non_matchings/hud_renderer/func_800528EC.s +++ b/asm/non_matchings/hud_renderer/func_800528EC.s @@ -97,8 +97,8 @@ glabel func_800528EC /* 053668 80052A68 3C138019 */ lui $s3, %hi(D_8018C3F0) # $s3, 0x8019 /* 05366C 80052A6C 3C1E8019 */ lui $fp, %hi(D_8018C5F0) # $fp, 0x8019 /* 053670 80052A70 3C170400 */ lui $s7, (0x04000C2F >> 16) # lui $s7, 0x400 -/* 053674 80052A74 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 -/* 053678 80052A78 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 +/* 053674 80052A74 3C158016 */ lui $s5, %hi(gObjectList) # $s5, 0x8016 +/* 053678 80052A78 26B55C18 */ addiu $s5, %lo(gObjectList) # addiu $s5, $s5, 0x5c18 /* 05367C 80052A7C 36F70C2F */ ori $s7, (0x04000C2F & 0xFFFF) # ori $s7, $s7, 0xc2f /* 053680 80052A80 27DEC5F0 */ addiu $fp, %lo(D_8018C5F0) # addiu $fp, $fp, -0x3a10 /* 053684 80052A84 2673C3F0 */ addiu $s3, %lo(D_8018C3F0) # addiu $s3, $s3, -0x3c10 @@ -121,7 +121,7 @@ glabel func_800528EC /* 0536C4 80052AC4 24640004 */ addiu $a0, $v1, 4 /* 0536C8 80052AC8 5B00000F */ blezl $t8, .L80052B08 /* 0536CC 80052ACC 26730004 */ addiu $s3, $s3, 4 -/* 0536D0 80052AD0 0C010B80 */ jal func_80042E00 +/* 0536D0 80052AD0 0C010B80 */ jal rsp_set_matrix_transformation /* 0536D4 80052AD4 8C660000 */ lw $a2, ($v1) /* 0536D8 80052AD8 8E420000 */ lw $v0, ($s2) /* 0536DC 80052ADC 3C0F0600 */ lui $t7, 0x600 @@ -142,8 +142,8 @@ glabel func_800528EC /* 053714 80052B14 8E420000 */ lw $v0, ($s2) .L80052B18: /* 053718 80052B18 3C170400 */ lui $s7, (0x04000C2F >> 16) # lui $s7, 0x400 -/* 05371C 80052B1C 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016 -/* 053720 80052B20 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18 +/* 05371C 80052B1C 3C158016 */ lui $s5, %hi(gObjectList) # $s5, 0x8016 +/* 053720 80052B20 26B55C18 */ addiu $s5, %lo(gObjectList) # addiu $s5, $s5, 0x5c18 /* 053724 80052B24 36F70C2F */ ori $s7, (0x04000C2F & 0xFFFF) # ori $s7, $s7, 0xc2f /* 053728 80052B28 27DED120 */ addiu $fp, $fp, %lo(gMatrixHudCount) # -0x2ee0 /* 05372C 80052B2C 241600E0 */ li $s6, 224 @@ -172,7 +172,7 @@ glabel func_800528EC /* 053784 80052B84 3C110D00 */ lui $s1, %hi(D_0D006930) # $s1, 0xd00 /* 053788 80052B88 26316930 */ addiu $s1, %lo(D_0D006930) # addiu $s1, $s1, 0x6930 /* 05378C 80052B8C 26105BD0 */ addiu $s0, %lo(D_0D005BD0) # addiu $s0, $s0, 0x5bd0 -/* 053790 80052B90 0C010B80 */ jal func_80042E00 +/* 053790 80052B90 0C010B80 */ jal rsp_set_matrix_transformation /* 053794 80052B94 8C660000 */ lw $a2, ($v1) /* 053798 80052B98 8E420000 */ lw $v0, ($s2) /* 05379C 80052B9C 3C0F0600 */ lui $t7, 0x600 diff --git a/asm/non_matchings/hud_renderer/func_80052E30.s b/asm/non_matchings/hud_renderer/func_80052E30.s index f78d24e7c..eea4ccedc 100644 --- a/asm/non_matchings/hud_renderer/func_80052E30.s +++ b/asm/non_matchings/hud_renderer/func_80052E30.s @@ -37,8 +37,8 @@ glabel func_80052E30 /* 053ABC 80052EBC A5000000 */ sh $zero, ($t0) /* 053AC0 80052EC0 A5000002 */ sh $zero, 2($t0) /* 053AC4 80052EC4 A5000004 */ sh $zero, 4($t0) -/* 053AC8 80052EC8 3C0D8019 */ lui $t5, %hi(D_8018EDF3) # $t5, 0x8019 -/* 053ACC 80052ECC 81ADEDF3 */ lb $t5, %lo(D_8018EDF3)($t5) +/* 053AC8 80052EC8 3C0D8019 */ lui $t5, %hi(gPlayerCount) # $t5, 0x8019 +/* 053ACC 80052ECC 81ADEDF3 */ lb $t5, %lo(gPlayerCount)($t5) /* 053AD0 80052ED0 3C11800E */ lui $s1, %hi(gPlayerCountSelection1) # $s1, 0x800e /* 053AD4 80052ED4 24010001 */ li $at, 1 /* 053AD8 80052ED8 15A1000C */ bne $t5, $at, .L80052F0C diff --git a/asm/non_matchings/hud_renderer/func_80053870.s b/asm/non_matchings/hud_renderer/func_80053870.s index 165fda983..965c56a61 100644 --- a/asm/non_matchings/hud_renderer/func_80053870.s +++ b/asm/non_matchings/hud_renderer/func_80053870.s @@ -32,7 +32,7 @@ glabel func_80053870 /* 0544E8 800538E8 8E110000 */ lw $s1, ($s0) .L800538EC: /* 0544EC 800538EC 02602825 */ move $a1, $s3 -/* 0544F0 800538F0 0C01C87A */ jal func_800721E8 +/* 0544F0 800538F0 0C01C87A */ jal set_object_flag_unk_054_false /* 0544F4 800538F4 02202025 */ move $a0, $s1 /* 0544F8 800538F8 02202025 */ move $a0, $s1 /* 0544FC 800538FC 0C01C8B3 */ jal func_800722CC @@ -55,12 +55,12 @@ glabel func_80053870 /* 05453C 8005393C 26103EA0 */ addiu $s0, %lo(D_80183EA0) # addiu $s0, $s0, 0x3ea0 /* 054540 80053940 19C00037 */ blez $t6, .L80053A20 /* 054544 80053944 241E00E0 */ li $fp, 224 -/* 054548 80053948 3C178016 */ lui $s7, %hi(D_80165C18) # $s7, 0x8016 +/* 054548 80053948 3C178016 */ lui $s7, %hi(gObjectList) # $s7, 0x8016 /* 05454C 8005394C 3C148019 */ lui $s4, %hi(D_8018CF68) # $s4, 0x8019 /* 054550 80053950 3C13800E */ lui $s3, %hi(gGamestate) # $s3, 0x800e /* 054554 80053954 2673C50C */ addiu $s3, %lo(gGamestate) # addiu $s3, $s3, -0x3af4 /* 054558 80053958 2694CF68 */ addiu $s4, %lo(D_8018CF68) # addiu $s4, $s4, -0x3098 -/* 05455C 8005395C 26F75C18 */ addiu $s7, %lo(D_80165C18) # addiu $s7, $s7, 0x5c18 +/* 05455C 8005395C 26F75C18 */ addiu $s7, %lo(gObjectList) # addiu $s7, $s7, 0x5c18 /* 054560 80053960 24120009 */ li $s2, 9 /* 054564 80053964 8E110000 */ lw $s1, ($s0) .L80053968: @@ -169,13 +169,13 @@ glabel func_80053870 /* 0546F0 80053AF0 AC4E0000 */ sw $t6, ($v0) /* 0546F4 80053AF4 8E420000 */ lw $v0, ($s2) /* 0546F8 80053AF8 3C0D0002 */ lui $t5, (0x00020204 >> 16) # lui $t5, 2 -/* 0546FC 80053AFC 3C178016 */ lui $s7, %hi(D_80165C18) # $s7, 0x8016 +/* 0546FC 80053AFC 3C178016 */ lui $s7, %hi(gObjectList) # $s7, 0x8016 /* 054700 80053B00 24580008 */ addiu $t8, $v0, 8 /* 054704 80053B04 AE580000 */ sw $t8, ($s2) /* 054708 80053B08 35AD0204 */ ori $t5, (0x00020204 & 0xFFFF) # ori $t5, $t5, 0x204 /* 05470C 80053B0C 3C19B700 */ lui $t9, 0xb700 /* 054710 80053B10 3C040600 */ lui $a0, %hi(d_course_bowsers_castle_thwomp_side) # $a0, 0x600 -/* 054714 80053B14 26F75C18 */ addiu $s7, %lo(D_80165C18) # addiu $s7, $s7, 0x5c18 +/* 054714 80053B14 26F75C18 */ addiu $s7, %lo(gObjectList) # addiu $s7, $s7, 0x5c18 /* 054718 80053B18 241E00E0 */ li $fp, 224 /* 05471C 80053B1C 24846738 */ addiu $a0, %lo(d_course_bowsers_castle_thwomp_side) # addiu $a0, $a0, 0x6738 /* 054720 80053B20 24050020 */ li $a1, 32 @@ -212,7 +212,7 @@ glabel func_80053870 /* 054798 80053B98 26736930 */ addiu $s3, %lo(D_0D006930) # addiu $s3, $s3, 0x6930 /* 05479C 80053B9C 8E060000 */ lw $a2, ($s0) /* 0547A0 80053BA0 26315C00 */ addiu $s1, %lo(D_0D005C00) # addiu $s1, $s1, 0x5c00 -/* 0547A4 80053BA4 0C010B80 */ jal func_80042E00 +/* 0547A4 80053BA4 0C010B80 */ jal rsp_set_matrix_transformation /* 0547A8 80053BA8 AFA70044 */ sw $a3, 0x44($sp) /* 0547AC 80053BAC 8E420000 */ lw $v0, ($s2) /* 0547B0 80053BB0 8FA70044 */ lw $a3, 0x44($sp) diff --git a/asm/non_matchings/hud_renderer/func_80054BE8.s b/asm/non_matchings/hud_renderer/func_80054BE8.s index a2e03d0f9..44b7e8a03 100644 --- a/asm/non_matchings/hud_renderer/func_80054BE8.s +++ b/asm/non_matchings/hud_renderer/func_80054BE8.s @@ -38,9 +38,9 @@ glabel func_80054BE8 /* 055878 80054C78 3C018018 */ lui $at, %hi(D_80183E80) # $at, 0x8018 /* 05587C 80054C7C 3C108019 */ lui $s0, %hi(D_8018C630) # $s0, 0x8019 /* 055880 80054C80 3C148019 */ lui $s4, %hi(D_8018C830) # $s4, 0x8019 -/* 055884 80054C84 3C128016 */ lui $s2, %hi(D_80165C18) # $s2, 0x8016 +/* 055884 80054C84 3C128016 */ lui $s2, %hi(gObjectList) # $s2, 0x8016 /* 055888 80054C88 A4203E80 */ sh $zero, %lo(D_80183E80)($at) -/* 05588C 80054C8C 26525C18 */ addiu $s2, %lo(D_80165C18) # addiu $s2, $s2, 0x5c18 +/* 05588C 80054C8C 26525C18 */ addiu $s2, %lo(gObjectList) # addiu $s2, $s2, 0x5c18 /* 055890 80054C90 2694C830 */ addiu $s4, %lo(D_8018C830) # addiu $s4, $s4, -0x37d0 /* 055894 80054C94 2610C630 */ addiu $s0, %lo(D_8018C630) # addiu $s0, $s0, -0x39d0 /* 055898 80054C98 241300E0 */ li $s3, 224 diff --git a/asm/non_matchings/hud_renderer/func_800562E4.s b/asm/non_matchings/hud_renderer/func_800562E4.s index b666ef6a5..cac41bc04 100644 --- a/asm/non_matchings/hud_renderer/func_800562E4.s +++ b/asm/non_matchings/hud_renderer/func_800562E4.s @@ -28,7 +28,7 @@ glabel func_800562E4 /* 056F4C 8005634C 3C063E4C */ lui $a2, (0x3E4CCCCD >> 16) # lui $a2, 0x3e4c /* 056F50 80056350 34C6CCCD */ ori $a2, (0x3E4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd /* 056F54 80056354 24A53E80 */ addiu $a1, %lo(D_80183E80) # addiu $a1, $a1, 0x3e80 -/* 056F58 80056358 0C010B80 */ jal func_80042E00 +/* 056F58 80056358 0C010B80 */ jal rsp_set_matrix_transformation /* 056F5C 8005635C 24843E40 */ addiu $a0, %lo(D_80183E40) # addiu $a0, $a0, 0x3e40 /* 056F60 80056360 8FAC001C */ lw $t4, 0x1c($sp) /* 056F64 80056364 3C0E0D03 */ lui $t6, %hi(D_0D02AC58) # $t6, 0xd03 @@ -50,8 +50,8 @@ glabel func_800562E4 /* 056FA4 800563A4 AC580000 */ sw $t8, ($v0) /* 056FA8 800563A8 AC590004 */ sw $t9, 4($v0) /* 056FAC 800563AC 8CA20000 */ lw $v0, ($a1) -/* 056FB0 800563B0 3C0C0D00 */ lui $t4, %hi(D_0D006940) # $t4, 0xd00 -/* 056FB4 800563B4 258C6940 */ addiu $t4, %lo(D_0D006940) # addiu $t4, $t4, 0x6940 +/* 056FB0 800563B0 3C0C0D00 */ lui $t4, %hi(common_rectangle_display) # $t4, 0xd00 +/* 056FB4 800563B4 258C6940 */ addiu $t4, %lo(common_rectangle_display) # addiu $t4, $t4, 0x6940 /* 056FB8 800563B8 244A0008 */ addiu $t2, $v0, 8 /* 056FBC 800563BC ACAA0000 */ sw $t2, ($a1) /* 056FC0 800563C0 3C0B0600 */ lui $t3, 0x600 diff --git a/asm/non_matchings/hud_renderer/func_800563DC.s b/asm/non_matchings/hud_renderer/func_800563DC.s index d425d06dd..4a9bad4c3 100644 --- a/asm/non_matchings/hud_renderer/func_800563DC.s +++ b/asm/non_matchings/hud_renderer/func_800563DC.s @@ -1,8 +1,8 @@ glabel func_800563DC /* 056FDC 800563DC 0004C8C0 */ sll $t9, $a0, 3 /* 056FE0 800563E0 0324C823 */ subu $t9, $t9, $a0 -/* 056FE4 800563E4 3C088016 */ lui $t0, %hi(D_80165C18) # $t0, 0x8016 -/* 056FE8 800563E8 25085C18 */ addiu $t0, %lo(D_80165C18) # addiu $t0, $t0, 0x5c18 +/* 056FE4 800563E4 3C088016 */ lui $t0, %hi(gObjectList) # $t0, 0x8016 +/* 056FE8 800563E8 25085C18 */ addiu $t0, %lo(gObjectList) # addiu $t0, $t0, 0x5c18 /* 056FEC 800563EC 0019C940 */ sll $t9, $t9, 5 /* 056FF0 800563F0 03281021 */ addu $v0, $t9, $t0 /* 056FF4 800563F4 C4440008 */ lwc1 $f4, 8($v0) @@ -49,7 +49,7 @@ glabel func_800563DC /* 057098 80056498 A6290004 */ sh $t1, 4($s1) /* 05709C 8005649C 34C6CCCD */ ori $a2, (0x3E4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd /* 0570A0 800564A0 02602025 */ move $a0, $s3 -/* 0570A4 800564A4 0C010B80 */ jal func_80042E00 +/* 0570A4 800564A4 0C010B80 */ jal rsp_set_matrix_transformation /* 0570A8 800564A8 02202825 */ move $a1, $s1 /* 0570AC 800564AC 3C148015 */ lui $s4, %hi(gDisplayListHead) # $s4, 0x8015 /* 0570B0 800564B0 26940298 */ addiu $s4, %lo(gDisplayListHead) # addiu $s4, $s4, 0x298 @@ -77,7 +77,7 @@ glabel func_800563DC /* 057108 80056508 24C65AE0 */ addiu $a2, %lo(D_0D005AE0) # addiu $a2, $a2, 0x5ae0 /* 05710C 8005650C 01AE2821 */ addu $a1, $t5, $t6 /* 057110 80056510 2484A858 */ addiu $a0, %lo(D_0D02A858) # addiu $a0, $a0, -0x57a8 -/* 057114 80056514 0C011C9C */ jal func_80047270 +/* 057114 80056514 0C011C9C */ jal draw_rectangle_texture_overlap /* 057118 80056518 24070020 */ li $a3, 32 /* 05711C 8005651C 8E820000 */ lw $v0, ($s4) /* 057120 80056520 3C108019 */ lui $s0, %hi(D_8018D400) # $s0, 0x8019 diff --git a/asm/non_matchings/menus/main_menu_act.s b/asm/non_matchings/menus/main_menu_act.s index 7746f6b0d..100318639 100644 --- a/asm/non_matchings/menus/main_menu_act.s +++ b/asm/non_matchings/menus/main_menu_act.s @@ -37,7 +37,7 @@ glabel main_menu_act /* 0B363C 800B2A3C 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019 /* 0B3640 800B2A40 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213 /* 0B3644 800B2A44 910C0000 */ lbu $t4, ($t0) -/* 0B3648 800B2A48 3C188019 */ lui $t8, %hi(D_8018EDF3) # 0x8019 +/* 0B3648 800B2A48 3C188019 */ lui $t8, %hi(gPlayerCount) # 0x8019 /* 0B364C 800B2A4C 2D810009 */ sltiu $at, $t4, 9 /* 0B3650 800B2A50 10200293 */ beqz $at, .L800B34A0 /* 0B3654 800B2A54 000C6080 */ sll $t4, $t4, 2 @@ -47,8 +47,8 @@ glabel main_menu_act /* 0B3664 800B2A64 01800008 */ jr $t4 /* 0B3668 800B2A68 00000000 */ nop glabel L800B2A6C # case 0 -/* 0B366C 800B2A6C 3C0D8019 */ lui $t5, %hi(D_8018EDF3) # $t5, 0x8019 -/* 0B3670 800B2A70 81ADEDF3 */ lb $t5, %lo(D_8018EDF3)($t5) +/* 0B366C 800B2A6C 3C0D8019 */ lui $t5, %hi(gPlayerCount) # $t5, 0x8019 +/* 0B3670 800B2A70 81ADEDF3 */ lb $t5, %lo(gPlayerCount)($t5) /* 0B3674 800B2A74 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f /* 0B3678 800B2A78 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B367C 800B2A7C 01ED7821 */ addu $t7, $t7, $t5 @@ -65,13 +65,13 @@ glabel L800B2AA4 # case 3 /* 0B36A4 800B2AA4 30690100 */ andi $t1, $v1, 0x100 /* 0B36A8 800B2AA8 11200010 */ beqz $t1, .L800B2AEC /* 0B36AC 800B2AAC 00603025 */ move $a2, $v1 -/* 0B36B0 800B2AB0 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 -/* 0B36B4 800B2AB4 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0B36B0 800B2AB0 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 +/* 0B36B4 800B2AB4 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B36B8 800B2AB8 28410004 */ slti $at, $v0, 4 /* 0B36BC 800B2ABC 1020000B */ beqz $at, .L800B2AEC /* 0B36C0 800B2AC0 244A0001 */ addiu $t2, $v0, 1 -/* 0B36C4 800B2AC4 3C018019 */ lui $at, %hi(D_8018EDF3) # $at, 0x8019 -/* 0B36C8 800B2AC8 A02AEDF3 */ sb $t2, %lo(D_8018EDF3)($at) +/* 0B36C4 800B2AC4 3C018019 */ lui $at, %hi(gPlayerCount) # $at, 0x8019 +/* 0B36C8 800B2AC8 A02AEDF3 */ sb $t2, %lo(gPlayerCount)($at) /* 0B36CC 800B2ACC 0C02D12B */ jal func_800B44AC /* 0B36D0 800B2AD0 AFA3001C */ sw $v1, 0x1c($sp) /* 0B36D4 800B2AD4 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 @@ -81,24 +81,24 @@ glabel L800B2AA4 # case 3 /* 0B36E4 800B2AE4 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213 /* 0B36E8 800B2AE8 8FA6001C */ lw $a2, 0x1c($sp) .L800B2AEC: -/* 0B36EC 800B2AEC 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 +/* 0B36EC 800B2AEC 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0B36F0 800B2AF0 30CB0200 */ andi $t3, $a2, 0x200 /* 0B36F4 800B2AF4 11600010 */ beqz $t3, .L800B2B38 -/* 0B36F8 800B2AF8 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0B36F8 800B2AF8 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B36FC 800B2AFC 28410002 */ slti $at, $v0, 2 /* 0B3700 800B2B00 1420000D */ bnez $at, .L800B2B38 /* 0B3704 800B2B04 244CFFFF */ addiu $t4, $v0, -1 -/* 0B3708 800B2B08 3C018019 */ lui $at, %hi(D_8018EDF3) # $at, 0x8019 -/* 0B370C 800B2B0C A02CEDF3 */ sb $t4, %lo(D_8018EDF3)($at) +/* 0B3708 800B2B08 3C018019 */ lui $at, %hi(gPlayerCount) # $at, 0x8019 +/* 0B370C 800B2B0C A02CEDF3 */ sb $t4, %lo(gPlayerCount)($at) /* 0B3710 800B2B10 0C02D12B */ jal func_800B44AC /* 0B3714 800B2B14 AFA6001C */ sw $a2, 0x1c($sp) /* 0B3718 800B2B18 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 /* 0B371C 800B2B1C 0C032384 */ jal play_sound2 /* 0B3720 800B2B20 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B3724 800B2B24 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 +/* 0B3724 800B2B24 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0B3728 800B2B28 3C088019 */ lui $t0, %hi(gMainMenuSelectionDepth) # $t0, 0x8019 /* 0B372C 800B2B2C 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213 -/* 0B3730 800B2B30 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0B3730 800B2B30 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B3734 800B2B34 8FA6001C */ lw $a2, 0x1c($sp) .L800B2B38: /* 0B3738 800B2B38 3C04800E */ lui $a0, %hi(gPlayerCountSelection1) # $a0, 0x800e @@ -142,8 +142,8 @@ glabel L800B2AA4 # case 3 /* 0B37BC 800B2BBC AC27EDE0 */ sw $a3, %lo(D_8018EDE0)($at) /* 0B37C0 800B2BC0 0C032384 */ jal play_sound2 /* 0B37C4 800B2BC4 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 -/* 0B37C8 800B2BC8 3C0F8019 */ lui $t7, %hi(D_8018EDF3) # $t7, 0x8019 -/* 0B37CC 800B2BCC 81EFEDF3 */ lb $t7, %lo(D_8018EDF3)($t7) +/* 0B37C8 800B2BC8 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019 +/* 0B37CC 800B2BCC 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7) /* 0B37D0 800B2BD0 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f /* 0B37D4 800B2BD4 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B37D8 800B2BD8 030FC021 */ addu $t8, $t8, $t7 @@ -165,8 +165,8 @@ glabel L800B2AA4 # case 3 /* 0B3814 800B2C14 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 /* 0B3818 800B2C18 0C032384 */ jal play_sound2 /* 0B381C 800B2C1C 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 -/* 0B3820 800B2C20 3C0C8019 */ lui $t4, %hi(D_8018EDF3) # $t4, 0x8019 -/* 0B3824 800B2C24 818CEDF3 */ lb $t4, %lo(D_8018EDF3)($t4) +/* 0B3820 800B2C20 3C0C8019 */ lui $t4, %hi(gPlayerCount) # $t4, 0x8019 +/* 0B3824 800B2C24 818CEDF3 */ lb $t4, %lo(gPlayerCount)($t4) /* 0B3828 800B2C28 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f /* 0B382C 800B2C2C 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3830 800B2C30 01EC7821 */ addu $t7, $t7, $t4 @@ -187,8 +187,8 @@ glabel L800B2AA4 # case 3 /* 0B3868 800B2C68 3C044900 */ lui $a0, (0x49009010 >> 16) # lui $a0, 0x4900 /* 0B386C 800B2C6C 0C032384 */ jal play_sound2 /* 0B3870 800B2C70 34849010 */ ori $a0, (0x49009010 & 0xFFFF) # ori $a0, $a0, 0x9010 -/* 0B3874 800B2C74 3C098019 */ lui $t1, %hi(D_8018EDF3) # $t1, 0x8019 -/* 0B3878 800B2C78 8129EDF3 */ lb $t1, %lo(D_8018EDF3)($t1) +/* 0B3874 800B2C74 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019 +/* 0B3878 800B2C78 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1) /* 0B387C 800B2C7C 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f /* 0B3880 800B2C80 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3884 800B2C84 01695821 */ addu $t3, $t3, $t1 @@ -210,8 +210,8 @@ glabel L800B2AA4 # case 3 /* 0B38C0 800B2CC0 3C044900 */ lui $a0, (0x49009011 >> 16) # lui $a0, 0x4900 /* 0B38C4 800B2CC4 0C032384 */ jal play_sound2 /* 0B38C8 800B2CC8 34849011 */ ori $a0, (0x49009011 & 0xFFFF) # ori $a0, $a0, 0x9011 -/* 0B38CC 800B2CCC 3C0E8019 */ lui $t6, %hi(D_8018EDF3) # $t6, 0x8019 -/* 0B38D0 800B2CD0 81CEEDF3 */ lb $t6, %lo(D_8018EDF3)($t6) +/* 0B38CC 800B2CCC 3C0E8019 */ lui $t6, %hi(gPlayerCount) # $t6, 0x8019 +/* 0B38D0 800B2CD0 81CEEDF3 */ lb $t6, %lo(gPlayerCount)($t6) /* 0B38D4 800B2CD4 3C09800F */ lui $t1, %hi((D_800E86AC - 1)) # 0x800f /* 0B38D8 800B2CD8 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B38DC 800B2CDC 012E4821 */ addu $t1, $t1, $t6 @@ -240,8 +240,8 @@ glabel L800B2D30 # case 4 /* 0B3930 800B2D30 306E0400 */ andi $t6, $v1, 0x400 /* 0B3934 800B2D34 11C00017 */ beqz $t6, .L800B2D94 /* 0B3938 800B2D38 00603025 */ move $a2, $v1 -/* 0B393C 800B2D3C 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 -/* 0B3940 800B2D40 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0B393C 800B2D3C 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 +/* 0B3940 800B2D40 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B3944 800B2D44 3C09800F */ lui $t1, %hi(D_800E86AC) # $t1, 0x800f /* 0B3948 800B2D48 252986AC */ addiu $t1, %lo(D_800E86AC) # addiu $t1, $t1, -0x7954 /* 0B394C 800B2D4C 3C19800F */ lui $t9, %hi((D_800F2B58 + 7)) # 0x800f @@ -266,8 +266,8 @@ glabel L800B2D30 # case 4 /* 0B3994 800B2D94 30CA0800 */ andi $t2, $a2, 0x800 .L800B2D98: /* 0B3998 800B2D98 11400011 */ beqz $t2, .L800B2DE0 -/* 0B399C 800B2D9C 3C0F8019 */ lui $t7, %hi(D_8018EDF3) # $t7, 0x8019 -/* 0B39A0 800B2DA0 81EFEDF3 */ lb $t7, %lo(D_8018EDF3)($t7) +/* 0B399C 800B2D9C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019 +/* 0B39A0 800B2DA0 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7) /* 0B39A4 800B2DA4 3C0C800F */ lui $t4, %hi(D_800E86AC) # $t4, 0x800f /* 0B39A8 800B2DA8 258C86AC */ addiu $t4, %lo(D_800E86AC) # addiu $t4, $t4, -0x7954 /* 0B39AC 800B2DAC 01EC1821 */ addu $v1, $t7, $t4 @@ -286,15 +286,15 @@ glabel L800B2D30 # case 4 .L800B2DE0: /* 0B39E0 800B2DE0 30D84000 */ andi $t8, $a2, 0x4000 /* 0B39E4 800B2DE4 13000015 */ beqz $t8, .L800B2E3C -/* 0B39E8 800B2DE8 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 +/* 0B39E8 800B2DE8 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0B39EC 800B2DEC 24040003 */ li $a0, 3 /* 0B39F0 800B2DF0 0C02D12B */ jal func_800B44AC /* 0B39F4 800B2DF4 A1040000 */ sb $a0, ($t0) /* 0B39F8 800B2DF8 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 /* 0B39FC 800B2DFC 0C032384 */ jal play_sound2 /* 0B3A00 800B2E00 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 -/* 0B3A04 800B2E04 3C0E8019 */ lui $t6, %hi(D_8018EDF3) # $t6, 0x8019 -/* 0B3A08 800B2E08 81CEEDF3 */ lb $t6, %lo(D_8018EDF3)($t6) +/* 0B3A04 800B2E04 3C0E8019 */ lui $t6, %hi(gPlayerCount) # $t6, 0x8019 +/* 0B3A08 800B2E08 81CEEDF3 */ lb $t6, %lo(gPlayerCount)($t6) /* 0B3A0C 800B2E0C 3C19800F */ lui $t9, %hi((D_800E86AC - 1)) # 0x800f /* 0B3A10 800B2E10 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3A14 800B2E14 032EC821 */ addu $t9, $t9, $t6 @@ -308,7 +308,7 @@ glabel L800B2D30 # case 4 /* 0B3A34 800B2E34 100001A6 */ b .L800B34D0 /* 0B3A38 800B2E38 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) .L800B2E3C: -/* 0B3A3C 800B2E3C 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0B3A3C 800B2E3C 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B3A40 800B2E40 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f /* 0B3A44 800B2E44 30CF8000 */ andi $t7, $a2, 0x8000 /* 0B3A48 800B2E48 00822021 */ addu $a0, $a0, $v0 @@ -365,8 +365,8 @@ glabel L800B2D30 # case 4 .L800B2F04: /* 0B3B04 800B2F04 0C02D12B */ jal func_800B44AC /* 0B3B08 800B2F08 00000000 */ nop -/* 0B3B0C 800B2F0C 3C0F8019 */ lui $t7, %hi(D_8018EDF3) # $t7, 0x8019 -/* 0B3B10 800B2F10 81EFEDF3 */ lb $t7, %lo(D_8018EDF3)($t7) +/* 0B3B0C 800B2F0C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019 +/* 0B3B10 800B2F10 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7) /* 0B3B14 800B2F14 3C0D800F */ lui $t5, %hi((D_800E86AC - 1)) # 0x800f /* 0B3B18 800B2F18 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3B1C 800B2F1C 01AF6821 */ addu $t5, $t5, $t7 @@ -397,7 +397,7 @@ glabel L800B2F70 # case 5, 8 /* 0B3B78 800B2F78 3C0A8019 */ lui $t2, %hi(gMenuTimingCounter) # $t2, 0x8019 /* 0B3B7C 800B2F7C 8D4AEE00 */ lw $t2, %lo(gMenuTimingCounter)($t2) /* 0B3B80 800B2F80 3C018019 */ lui $at, %hi(gMenuTimingCounter) # $at, 0x8019 -/* 0B3B84 800B2F84 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 +/* 0B3B84 800B2F84 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 /* 0B3B88 800B2F88 254F0001 */ addiu $t7, $t2, 1 /* 0B3B8C 800B2F8C AC2FEE00 */ sw $t7, %lo(gMenuTimingCounter)($at) /* 0B3B90 800B2F90 24010064 */ li $at, 100 @@ -408,7 +408,7 @@ glabel L800B2F70 # case 5, 8 /* 0B3BA4 800B2FA4 15A00016 */ bnez $t5, .L800B3000 /* 0B3BA8 800B2FA8 00000000 */ nop .L800B2FAC: -/* 0B3BAC 800B2FAC 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0B3BAC 800B2FAC 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B3BB0 800B2FB0 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f /* 0B3BB4 800B2FB4 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3BB8 800B2FB8 0302C021 */ addu $t8, $t8, $v0 @@ -431,8 +431,8 @@ glabel L800B2F70 # case 5, 8 /* 0B3BF8 800B2FF8 AFA6001C */ sw $a2, 0x1c($sp) /* 0B3BFC 800B2FFC 8FA6001C */ lw $a2, 0x1c($sp) .L800B3000: -/* 0B3C00 800B3000 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 -/* 0B3C04 800B3004 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0B3C00 800B3000 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 +/* 0B3C04 800B3004 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B3C08 800B3008 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f /* 0B3C0C 800B300C 3C0F800F */ lui $t7, %hi(D_800E86B0) # $t7, 0x800f /* 0B3C10 800B3010 01625821 */ addu $t3, $t3, $v0 @@ -469,8 +469,8 @@ glabel L800B2F70 # case 5, 8 /* 0B3C88 800B3088 8FA50028 */ lw $a1, 0x28($sp) /* 0B3C8C 800B308C 10400011 */ beqz $v0, .L800B30D4 /* 0B3C90 800B3090 8FA6001C */ lw $a2, 0x1c($sp) -/* 0B3C94 800B3094 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 -/* 0B3C98 800B3098 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0B3C94 800B3094 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 +/* 0B3C98 800B3098 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B3C9C 800B309C 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f /* 0B3CA0 800B30A0 3C09800F */ lui $t1, %hi((D_800F2B60 + 0xD)) # 0x800f /* 0B3CA4 800B30A4 00822021 */ addu $a0, $a0, $v0 @@ -486,8 +486,8 @@ glabel L800B2F70 # case 5, 8 /* 0B3CCC 800B30CC 10000010 */ b .L800B3110 /* 0B3CD0 800B30D0 24030001 */ li $v1, 1 .L800B30D4: -/* 0B3CD4 800B30D4 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 -/* 0B3CD8 800B30D8 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0B3CD4 800B30D4 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 +/* 0B3CD8 800B30D8 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B3CDC 800B30DC 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f /* 0B3CE0 800B30E0 3C0F800F */ lui $t7, %hi((D_800F2B60 + 1)) # 0x800f /* 0B3CE4 800B30E4 00822021 */ addu $a0, $a0, $v0 @@ -519,8 +519,8 @@ glabel L800B2F70 # case 5, 8 /* 0B3D48 800B3148 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 /* 0B3D4C 800B314C 8FA6001C */ lw $a2, 0x1c($sp) .L800B3150: -/* 0B3D50 800B3150 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 -/* 0B3D54 800B3154 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0B3D50 800B3150 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 +/* 0B3D54 800B3154 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B3D58 800B3158 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f /* 0B3D5C 800B315C 3C05800F */ lui $a1, %hi((D_800E86B0 - 3)) # 0x800f /* 0B3D60 800B3160 00822021 */ addu $a0, $a0, $v0 @@ -540,8 +540,8 @@ glabel L800B2F70 # case 5, 8 /* 0B3D98 800B3198 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 /* 0B3D9C 800B319C 0C032384 */ jal play_sound2 /* 0B3DA0 800B31A0 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 -/* 0B3DA4 800B31A4 3C0D8019 */ lui $t5, %hi(D_8018EDF3) # $t5, 0x8019 -/* 0B3DA8 800B31A8 81ADEDF3 */ lb $t5, %lo(D_8018EDF3)($t5) +/* 0B3DA4 800B31A4 3C0D8019 */ lui $t5, %hi(gPlayerCount) # $t5, 0x8019 +/* 0B3DA8 800B31A8 81ADEDF3 */ lb $t5, %lo(gPlayerCount)($t5) /* 0B3DAC 800B31AC 3C0C800F */ lui $t4, %hi((D_800E86AC - 1)) # 0x800f /* 0B3DB0 800B31B0 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3DB4 800B31B4 018D6021 */ addu $t4, $t4, $t5 @@ -560,8 +560,8 @@ glabel L800B2F70 # case 5, 8 /* 0B3DE4 800B31E4 0002C880 */ sll $t9, $v0, 2 /* 0B3DE8 800B31E8 0C02D12B */ jal func_800B44AC /* 0B3DEC 800B31EC AFA50028 */ sw $a1, 0x28($sp) -/* 0B3DF0 800B31F0 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 -/* 0B3DF4 800B31F4 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0B3DF0 800B31F0 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 +/* 0B3DF4 800B31F4 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B3DF8 800B31F8 24070001 */ li $a3, 1 /* 0B3DFC 800B31FC 8FA50028 */ lw $a1, 0x28($sp) /* 0B3E00 800B3200 14E2000E */ bne $a3, $v0, .L800B323C @@ -590,8 +590,8 @@ glabel L800B2F70 # case 5, 8 /* 0B3E54 800B3254 3C018019 */ lui $at, %hi(gMenuTimingCounter) # $at, 0x8019 /* 0B3E58 800B3258 AC20EE00 */ sw $zero, %lo(gMenuTimingCounter)($at) .L800B325C: -/* 0B3E5C 800B325C 3C0F8019 */ lui $t7, %hi(D_8018EDF3) # $t7, 0x8019 -/* 0B3E60 800B3260 81EFEDF3 */ lb $t7, %lo(D_8018EDF3)($t7) +/* 0B3E5C 800B325C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019 +/* 0B3E60 800B3260 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7) /* 0B3E64 800B3264 3C0C800F */ lui $t4, %hi((D_800E86AC - 1)) # 0x800f /* 0B3E68 800B3268 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3E6C 800B326C 018F6021 */ addu $t4, $t4, $t7 @@ -641,8 +641,8 @@ glabel L800B32B4 # case 6, 7 .L800B330C: /* 0B3F0C 800B330C 11A00032 */ beqz $t5, .L800B33D8 /* 0B3F10 800B3310 30D98000 */ andi $t9, $a2, 0x8000 -/* 0B3F14 800B3314 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 -/* 0B3F18 800B3318 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) +/* 0B3F14 800B3314 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019 +/* 0B3F18 800B3318 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0) /* 0B3F1C 800B331C 3C0E800F */ lui $t6, %hi((D_800E86AC - 1)) # 0x800f /* 0B3F20 800B3320 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3F24 800B3324 01C27021 */ addu $t6, $t6, $v0 @@ -677,8 +677,8 @@ glabel L800B32B4 # case 6, 7 /* 0B3F8C 800B338C 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 /* 0B3F90 800B3390 0C032384 */ jal play_sound2 /* 0B3F94 800B3394 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 -/* 0B3F98 800B3398 3C0F8019 */ lui $t7, %hi(D_8018EDF3) # $t7, 0x8019 -/* 0B3F9C 800B339C 81EFEDF3 */ lb $t7, %lo(D_8018EDF3)($t7) +/* 0B3F98 800B3398 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019 +/* 0B3F9C 800B339C 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7) /* 0B3FA0 800B33A0 3C0D800F */ lui $t5, %hi((D_800E86AC - 1)) # 0x800f /* 0B3FA4 800B33A4 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3FA8 800B33A8 01AF6821 */ addu $t5, $t5, $t7 @@ -695,7 +695,7 @@ glabel L800B32B4 # case 6, 7 /* 0B3FD4 800B33D4 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) .L800B33D8: /* 0B3FD8 800B33D8 13200016 */ beqz $t9, .L800B3434 -/* 0B3FDC 800B33DC 3C0C8019 */ lui $t4, %hi(D_8018EDF3) # $t4, 0x8019 +/* 0B3FDC 800B33DC 3C0C8019 */ lui $t4, %hi(gPlayerCount) # $t4, 0x8019 /* 0B3FE0 800B33E0 0C027870 */ jal func_8009E1C0 /* 0B3FE4 800B33E4 00000000 */ nop /* 0B3FE8 800B33E8 3C044900 */ lui $a0, (0x49008016 >> 16) # lui $a0, 0x4900 @@ -703,8 +703,8 @@ glabel L800B32B4 # case 6, 7 /* 0B3FF0 800B33F0 34848016 */ ori $a0, (0x49008016 & 0xFFFF) # ori $a0, $a0, 0x8016 /* 0B3FF4 800B33F4 0C02CA32 */ jal func_800B28C8 /* 0B3FF8 800B33F8 00000000 */ nop -/* 0B3FFC 800B33FC 3C098019 */ lui $t1, %hi(D_8018EDF3) # $t1, 0x8019 -/* 0B4000 800B3400 8129EDF3 */ lb $t1, %lo(D_8018EDF3)($t1) +/* 0B3FFC 800B33FC 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019 +/* 0B4000 800B3400 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1) /* 0B4004 800B3404 3C0A800F */ lui $t2, %hi((D_800E86AC - 1)) # 0x800f /* 0B4008 800B3408 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B400C 800B340C 01495021 */ addu $t2, $t2, $t1 @@ -718,7 +718,7 @@ glabel L800B32B4 # case 6, 7 /* 0B402C 800B342C 10000028 */ b .L800B34D0 /* 0B4030 800B3430 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) .L800B3434: -/* 0B4034 800B3434 818CEDF3 */ lb $t4, %lo(D_8018EDF3)($t4) +/* 0B4034 800B3434 818CEDF3 */ lb $t4, %lo(gPlayerCount)($t4) /* 0B4038 800B3438 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f /* 0B403C 800B343C 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B4040 800B3440 030CC021 */ addu $t8, $t8, $t4 @@ -732,8 +732,8 @@ glabel L800B32B4 # case 6, 7 /* 0B4060 800B3460 1000001B */ b .L800B34D0 /* 0B4064 800B3464 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) glabel L800B3468 # case 1, 2 -/* 0B4068 800B3468 3C0A8019 */ lui $t2, %hi(D_8018EDF3) # $t2, 0x8019 -/* 0B406C 800B346C 814AEDF3 */ lb $t2, %lo(D_8018EDF3)($t2) +/* 0B4068 800B3468 3C0A8019 */ lui $t2, %hi(gPlayerCount) # $t2, 0x8019 +/* 0B406C 800B346C 814AEDF3 */ lb $t2, %lo(gPlayerCount)($t2) /* 0B4070 800B3470 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f /* 0B4074 800B3474 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B4078 800B3478 01EA7821 */ addu $t7, $t7, $t2 @@ -747,7 +747,7 @@ glabel L800B3468 # case 1, 2 /* 0B4098 800B3498 1000000D */ b .L800B34D0 /* 0B409C 800B349C 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) .L800B34A0: # default -/* 0B40A0 800B34A0 8318EDF3 */ lb $t8, %lo(D_8018EDF3)($t8) # -0x120d($t8) +/* 0B40A0 800B34A0 8318EDF3 */ lb $t8, %lo(gPlayerCount)($t8) # -0x120d($t8) /* 0B40A4 800B34A4 3C19800F */ lui $t9, %hi((D_800E86AC - 1)) # 0x800f /* 0B40A8 800B34A8 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B40AC 800B34AC 0338C821 */ addu $t9, $t9, $t8 diff --git a/data/data_code_80071F00_2.s b/data/data_code_80071F00_2.s index 6ed000069..00a5ef2c7 100644 --- a/data/data_code_80071F00_2.s +++ b/data/data_code_80071F00_2.s @@ -159,13 +159,13 @@ vertex 9, 0, -9, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF vertex -9, 0, -9, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF vertex -9, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -glabel D_800E5250 # compiler gen +glabel gBalloonVertexPlane1 # compiler gen vertex 9, 18, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF vertex 9, 9, -6, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF vertex -9, 9, -6, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF vertex -9, 18, -6, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -glabel D_800E5290 # compiler gen +glabel gBalloonVertexPlane2 # compiler gen vertex 9, 9, -6, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF vertex 9, 0, -6, 4032, 1792, 0xFF, 0xFF, 0xFF, 0xFF vertex -9, 0, -6, 0, 1792, 0xFF, 0xFF, 0xFF, 0xFF diff --git a/include/PR/ultratypes.h b/include/PR/ultratypes.h index f4cf12249..7c347fe3b 100644 --- a/include/PR/ultratypes.h +++ b/include/PR/ultratypes.h @@ -17,6 +17,9 @@ typedef unsigned int u32; typedef signed long long int s64; typedef unsigned long long int u64; +typedef signed int bool; +typedef signed char bool8; + typedef volatile u8 vu8; typedef volatile u16 vu16; typedef volatile u32 vu32; diff --git a/include/common_structs.h b/include/common_structs.h index f0e4decef..69f43d713 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -245,14 +245,14 @@ struct UnkPlayerInner { }; typedef struct { - /* 0x0000 */ u16 unk_000; // playerType? + /* 0x0000 */ u16 type; // playerType? /* 0x0002 */ u16 unk_002; /* 0x0004 */ s16 currentRank; /* 0x0006 */ u16 unk_006; /* 0x0008 */ s16 lapCount; /* 0x000A */ char unk_00A[0x2]; /* 0x000C */ s32 statusEffects; // Bitflag. - /* 0x0010 */ s16 unk_010; + /* 0x0010 */ s16 currentItemCopy; // Has no effect on what item the players has, It is just a synced copy /* 0x0012 */ s16 unk_012; /* 0x0014 */ Vec3f pos; /* 0x0020 */ f32 rotX; @@ -260,7 +260,7 @@ typedef struct { /* 0x0028 */ f32 rotZ; /* 0x002C */ Vec3s unk_02C; /* 0x0032 */ char unk_032[0x2]; - /* 0x0034 */ Vec3f unk_034; + /* 0x0034 */ Vec3f velocity; /* 0x0040 */ s16 unk_040; /* 0x0042 */ s16 unk_042; /* 0x0044 */ s16 unk_044; @@ -283,7 +283,7 @@ typedef struct { /* 0x0090 */ f32 unk_090; /* 0x0094 */ f32 unk_094; /* 0x0098 */ f32 unk_098; - /* 0x009C */ f32 unk_09C; + /* 0x009C */ f32 currentSpeed; /* 0x00A0 */ f32 unk_0A0; /* 0x00A4 */ f32 unk_0A4; /* 0x00A8 */ s16 unk_0A8; @@ -295,10 +295,10 @@ typedef struct { /* 0x00B4 */ u16 unk_0B4; /* 0x00B6 */ u16 unk_0B6; /* 0x00B8 */ f32 unk_0B8; - /* 0x00BC */ u32 unk_0BC; + /* 0x00BC */ u32 effects; /* 0x00C0 */ s16 unk_0C0; /* 0x00C2 */ s16 unk_0C2; - /* 0x00C4 */ s16 unk_0C4; + /* 0x00C4 */ s16 slopeAccel; /* 0x00C6 */ s16 unk_0C6; /* 0x00C8 */ s16 unk_0C8; /* 0x00CA */ s16 unk_0CA; @@ -323,7 +323,7 @@ typedef struct { /* 0x010E */ char unk_10E[0x2]; /* 0x0110 */ Collision unk_110; /* 0x0150 */ Mat3 unk_150; - /* 0x0174 */ Mat3 unk_174; + /* 0x0174 */ Mat3 orientationMatrix; /* 0x0198 */ KartBoundingBoxCorner boundingBoxCorners[4]; /* 0x01F8 */ f32 unk_1F8; /* 0x01FC */ f32 unk_1FC; @@ -333,12 +333,12 @@ typedef struct { /* 0x0208 */ f32 unk_208; /* 0x020C */ f32 unk_20C; /* 0x0210 */ f32 unk_210; - /* 0x0214 */ f32 unk_214; + /* 0x0214 */ f32 topSpeed; /* 0x0218 */ f32 unk_218; /* 0x021C */ f32 unk_21C; /* 0x0220 */ s16 nearestWaypointId; // ?? /* 0x0222 */ s16 unk_222; - /* 0x0224 */ f32 unk_224; + /* 0x0224 */ f32 size; /* 0x0228 */ s16 unk_228; /* 0x022A */ s16 unk_22A; /* 0x022C */ f32 unk_22C; @@ -349,8 +349,8 @@ typedef struct { /* 0x023A */ s16 unk_23A; /* 0x023C */ f32 unk_23C; /* 0x0240 */ s32 unk_240; - /* 0x0244 */ u16 unk_244[4]; // [0] Active texture group - /* 0x024C */ u16 unk_24C[4]; + /* 0x0244 */ u16 animFrameSelector[4]; // [0] Active texture group + /* 0x024C */ u16 animGroupSelector[4]; /* 0x0254 */ u16 characterId; /* 0x0256 */ u16 unk_256; /* 0x0258 */ UnkPlayerStruct258 unk_258[40]; diff --git a/include/defines.h b/include/defines.h index 51de6f56e..d25917029 100644 --- a/include/defines.h +++ b/include/defines.h @@ -73,6 +73,7 @@ * Racing terms: * Staging means aligning a racecar to the starting line. * Start sequence means waiting for the light to turn green. + * Used in the Player struct's 'type' member: player->type */ #define PLAYER_INACTIVE 0 // 0x0000 @@ -302,4 +303,28 @@ */ #define MAX_TIME 0x927C0 +/** + * @brief effect of player's + * for statusEffect + */ +#define BOOST_EFFECT 0x200 // being boosted by trigger a mushroom or star +#define BOO_EFFECT 0x800 // being a boo +#define STAR_EFFECT 0x2000 // being a star +#define HOLD_BANANA_EFFECT 0x40000 // holding a banana +#define HIT_ROTATING_EFFECT 0x4000 // hitting a rotating object +#define HIT_BY_ITEM_EFFECT 0x1000000 // being hit by an item +#define REVERSE_EFFECT 0x400000 // being in the wrong direction +#define LIGHTNING_EFFECT 0x40000000 // being hit by lightning + + +/** + * @brief shell state + * + */ +#define SPAWN_FIRST_SHELL 0 +#define SPAWN_SECOND_SHELL 1 +#define SPAWN_THIRD_SHELL 2 + +#define GPACK_RGB888(r, g, b) (((r) << 16) | ((g) << 8) | (b)) + #endif // DEFINES_H diff --git a/include/kart_attributes.h b/include/kart_attributes.h index f32cd79b4..b89d01ce7 100644 --- a/include/kart_attributes.h +++ b/include/kart_attributes.h @@ -24,12 +24,12 @@ extern f32 D_800E2528[8]; extern f32 D_800E2548[8]; extern f32 *D_800E2568[5]; -extern f32 D_800E257C[8]; -extern f32 D_800E259C[8]; -extern f32 D_800E25BC[8]; -extern f32 D_800E25DC[8]; -extern f32 D_800E25FC[8]; -extern f32 *D_800E261C[5]; +extern f32 gTopSpeed50cc[8]; +extern f32 gTopSpeed100cc[8]; +extern f32 gTopSpeed150cc[8]; +extern f32 gTopSpeedExtra[8]; +extern f32 gTopSpeedBattle[8]; +extern f32 *gTopSpeedTable[5]; extern f32 gKartFrictionTable[8]; extern f32 gKartGravityTable[8]; @@ -119,7 +119,7 @@ extern f32 gKartHandlingTable[8]; extern f32 gKartTable800E3650[8]; extern f32 gKartTurnSpeedReductionTable0[8]; extern f32 gKartTurnSpeedReductionTable1[8]; -extern f32 gKartTable800E36B0[8]; +extern f32 gKartTripleABoost[8]; extern f32 gKartHopInitialVelocityTable[8]; extern f32 gKartHopJerkTable[8]; extern f32 D_800E3710[8]; diff --git a/include/objects.h b/include/objects.h index 1b5481ba0..145327d6b 100644 --- a/include/objects.h +++ b/include/objects.h @@ -32,19 +32,19 @@ typedef struct /* 0x68 */ u8 *tlutList; // I feel like this should actually be `u8 (*tlutList)[512]`, but that causes mismatches /* 0x6C */ u8 *textureList; /* 0x70 */ Gfx *unk_070; - /* 0x74 */ Vtx *unk_074; // For at least 1 object type this is meant to be a Vtx*. See func_800555BC + /* 0x74 */ Vtx *vertex; /* 0x78 */ s8 unk_078[0x04]; /* 0x7C */ Vec4s *unk_07C; /* 0x80 */ Vec4s *unk_080; // unk_080[][4]? /* 0x84 */ s16 unk_084[0xA]; - /* 0x98 */ u16 unk_098; + /* 0x98 */ u16 timer; /* 0x9A */ u16 unk_09A; /* 0x9C */ s16 unk_09C; /* 0x9E */ s16 unk_09E; /* 0xA0 */ s16 unk_0A0; /* 0xA2 */ s16 unk_0A2; - /* 0xA4 */ s16 unk_0A4; - /* 0xA6 */ s16 unk_0A6; // Usually a state tracker + /* 0xA4 */ s16 type; + /* 0xA6 */ s16 state; /* 0xA8 */ s16 unk_0A8; /* 0xAA */ s16 unk_0AA; /* 0xAC */ s16 unk_0AC; @@ -64,7 +64,7 @@ typedef struct /* 0xCF */ s8 unk_0CF; /* 0xD0 */ s8 unk_0D0; /* 0xD1 */ s8 unk_0D1; - /* 0xD2 */ s8 unk_0D2; + /* 0xD2 */ s8 itemDisplay; /* 0xD3 */ s8 unk_0D3; /* 0xD4 */ s8 unk_0D4; /* 0xD5 */ u8 unk_0D5; @@ -78,17 +78,93 @@ typedef struct /* 0xDD */ u8 unk_0DD; /* 0xDE */ s8 unk_0DE; /* 0xDF */ u8 unk_0DF; -} struct_80165C18_entry; // size = 0xE0 +} Objects; // size = 0xE0 // This is the object list -extern struct_80165C18_entry D_80165C18[]; +extern Objects gObjectList[]; -// This are other lists of indices in D_80165C18. +typedef struct +{ + /* 0x00 */ f32 sizeScaling; + /* 0x04 */ Vec3f pos; + /* 0x10 */ Vec3f unk_010; + /* 0x1C */ Vec3f unk_01C; + /* 0x28 */ Vec3f unk_028; + /* 0x34 */ f32 unk_034; + /* 0x38 */ Vec3f unk_038; + /* 0x44 */ f32 unk_044; + /* 0x48 */ s32 unk_048; + /* 0x4C */ s32 unk_04C; + /* 0x50 */ s32 unk_050; + /* 0x54 */ s32 unk_054; + /* 0x58 */ s32 unk_058; + /* 0x5C */ s32 unk_05C; + /* 0x60 */ u8 *activeTLUT; + /* 0x64 */ u8 *activeTexture; + /** + * "list" is something of a misnomer for the names here + * they can be pointers to just 1 tlut/texture, but it is common for one or the other + * to be a pointer to an array of tluts/textures. + **/ + /* 0x68 */ u8 *tlutList; // I feel like this should actually be `u8 (*tlutList)[512]`, but that causes mismatches + /* 0x6C */ u8 *textureList; + /* 0x70 */ Gfx *unk_070; + /* 0x74 */ Vtx *vertex; + /* 0x78 */ s8 unk_078[0x04]; + /* 0x7C */ Vec4s *unk_07C; + /* 0x80 */ Vec4s *unk_080; // unk_080[][4]? + /* 0x84 */ s16 unk_084[0xA]; + /* 0x98 */ u16 goldenMushroomTimer; + /* 0x9A */ u16 unk_09A; + /* 0x9C */ s16 unk_09C; + /* 0x9E */ s16 unk_09E; + /* 0xA0 */ s16 unk_0A0; + /* 0xA2 */ s16 unk_0A2; + /* 0xA4 */ s16 currentItem; + /* 0xA6 */ s16 itemDisplayState; // Usually a state tracker + /* 0xA8 */ s16 unk_0A8; + /* 0xAA */ s16 unk_0AA; + /* 0xAC */ s16 unk_0AC; + /* 0xAE */ s16 unk_0AE; + /* 0xB0 */ s16 unk_0B0; + /* 0xB2 */ Vec3su unk_0B2; // rotation, I think + /* 0xB8 */ Vec3su unk_0B8; + /* 0xBE */ Vec3su unk_0BE; + /* 0xC4 */ u16 unk_0C4; + /* 0xC6 */ u16 unk_0C6; + /* 0xC8 */ u16 unk_0C8; + /* 0xCA */ s8 unk_0CA; + /* 0xCB */ s8 unk_0CB; + /* 0xCC */ s8 unk_0CC; + /* 0xCD */ s8 unk_0CD; + /* 0xCE */ s8 unk_0CE; + /* 0xCF */ s8 unk_0CF; + /* 0xD0 */ s8 unk_0D0; + /* 0xD1 */ s8 unk_0D1; + /* 0xD2 */ s8 itemDisplay; + /* 0xD3 */ s8 unk_0D3; + /* 0xD4 */ s8 unk_0D4; + /* 0xD5 */ u8 unk_0D5; + /* 0xD6 */ u8 unk_0D6; + /* 0xD7 */ u8 unk_0D7; + /* 0xD8 */ u8 unk_0D8; + /* 0xD9 */ u8 textureWidth; + /* 0xDA */ u8 textureHeight; + /* 0xDB */ u8 unk_0DB; + /* 0xDC */ u8 unk_0DC; + /* 0xDD */ u8 unk_0DD; + /* 0xDE */ s8 unk_0DE; + /* 0xDF */ u8 unk_0DF; +} ItemWindowObjects; // size = 0xE0 + +// This are other lists of indices in gObjectList. /** * Lakitu? **/ extern s32 D_80183DB8[]; +#define DELETED_OBJECT_ID -1 + // Appears to be a list of object list indices for the Item Window part of the HUD extern s32 gItemWindowObjectByPlayerId[]; @@ -105,7 +181,7 @@ extern s32 D_8018D3C0; extern Collision D_8018C0B0[]; /** - * D_80183EA0, D_80183F28, D_8018BFA8, and D_8018C030 are all lists of indices in D_80165C18. + * D_80183EA0, D_80183F28, D_8018BFA8, and D_8018C030 are all lists of indices in gObjectList. * func_80070190 initializes them in such a way that the indicies in each list are not adjacent. * First D_80183EA0 gets an unused index, then D_80183F28, then D_8018BFA8, then D_8018C030, and then it loops. * diff --git a/include/save_data.h b/include/save_data.h index b5e0ebb9b..faa12376a 100644 --- a/include/save_data.h +++ b/include/save_data.h @@ -12,7 +12,8 @@ typedef struct { u8 records[6][3]; // It's unknown what these bytes are used for // Byte 1 might be an indicator that there is a ghost available for that course - u8 unknownBytes[6]; + u8 unknownBytes[5]; + u8 checksum; } CourseTimeTrialRecords; // size = 0x18 typedef struct { diff --git a/include/variables.h b/include/variables.h index 65889646a..47d7e7502 100644 --- a/include/variables.h +++ b/include/variables.h @@ -75,7 +75,7 @@ extern s16 D_80165300[]; extern s32 D_80165400[]; extern s32 D_80165420[]; extern s32 D_80165440[]; -extern s32 D_80165460[]; +extern bool gIsPlayerTripleAButtonCombo[]; extern s32 D_80165480[]; extern s32 D_801654A0[]; extern s32 D_801654C0[]; @@ -96,7 +96,7 @@ extern s16 D_8016557E; extern s16 D_80165580; extern s16 D_80165582; -extern s8 D_801657E8; +extern bool8 D_801657E8; extern s8 D_801658FE; diff --git a/src/audio/external.c b/src/audio/external.c index 685db3c9f..afe5c3d26 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -644,7 +644,7 @@ void func_800C2474(void) { temp_a2 = &gPlayers[var_v0]; temp_a2->boundingBoxCorners[2].surfaceType = 0; temp_a2->boundingBoxCorners[3].surfaceType = 0; - temp_a2->unk_0BC = 0; + temp_a2->effects = 0; temp_a2->unk_20C = 0.0f; temp_a2->unk_0C0 = 0; temp_a2->unk_098 = 0.0f; @@ -669,7 +669,7 @@ void func_800C2474(void) { D_800EA06C[var_v0_2].unk0C = 0; temp_t7 = &gPlayers[var_v0_2]; var_v0_2 = temp_t8; - temp_t7->unk_0BC = 0; + temp_t7->effects = 0; } while (temp_at != 0); var_v0_3 = 0; do { @@ -2702,7 +2702,7 @@ void func_800C6108(u8 playerId) { } else { D_800E9E54[playerId] = (f32) -temp_v1->unk_0C0; } - if ((temp_v1->unk_0BC & 0x10) == 0x10) { + if ((temp_v1->effects & 0x10) == 0x10) { D_800E9EB4[playerId] = D_800E9E64[playerId] + D_800E9DE4[playerId]; } else { D_800E9EB4[playerId] = D_800E9E64[playerId] + D_800E9DE4[playerId] - (D_800E9E54[playerId] / 12000.0f); @@ -2934,7 +2934,7 @@ void func_800C683C(u8 arg0) { void func_800C70A8(u8 playerId) { if (D_800EA0EC[playerId] == 0) { D_800E9E74[playerId] = 0; - if ((D_800E9E54[playerId] > 3500.0f) || ((gPlayers[playerId].unk_0BC & 0x10) == 0x10)) { + if ((D_800E9E54[playerId] > 3500.0f) || ((gPlayers[playerId].effects & 0x10) == 0x10)) { D_800E9E74[playerId] = 1; switch (gPlayers[playerId].boundingBoxCorners[2].surfaceType) { /* switch 1 */ case 2: /* switch 1 */ @@ -2966,7 +2966,7 @@ void func_800C70A8(u8 playerId) { break; } } - if ((gPlayers[playerId].unk_0BC & 0x10) == 0x10) { + if ((gPlayers[playerId].effects & 0x10) == 0x10) { D_800E9E74[playerId] = 2; switch (gPlayers[playerId].boundingBoxCorners[2].surfaceType) { /* switch 2 */ case 2: /* switch 2 */ @@ -3118,13 +3118,13 @@ void func_800C70A8(u8 playerId) { D_800E9E74[playerId] = 0x0000001B; break; } - if (((gPlayers[playerId].unk_094 < 0.5f) || ((gPlayers[playerId].unk_0BC & 8) == 8)) && (D_800E9E74[playerId] != 0x0000001C)) { + if (((gPlayers[playerId].unk_094 < 0.5f) || ((gPlayers[playerId].effects & 8) == 8)) && (D_800E9E74[playerId] != 0x0000001C)) { D_800E9E74[playerId] = 0; } - if ((((gPlayers[playerId].unk_0BC & 0x4000) == 0x4000) && ((gPlayers[playerId].unk_000 & 0x2000) != 0x2000)) || ((gPlayers[playerId].unk_0BC & 0x800) == 0x800) || ((gPlayers[playerId].unk_0BC & 0x80) == 0x80) || ((gPlayers[playerId].unk_0BC & 0x40) == 0x40) || ((gPlayers[playerId].unk_044 & 0x4000) == 0x4000)) { + if ((((gPlayers[playerId].effects & 0x4000) == 0x4000) && ((gPlayers[playerId].type & 0x2000) != 0x2000)) || ((gPlayers[playerId].effects & 0x800) == 0x800) || ((gPlayers[playerId].effects & 0x80) == 0x80) || ((gPlayers[playerId].effects & 0x40) == 0x40) || ((gPlayers[playerId].unk_044 & 0x4000) == 0x4000)) { D_800E9E74[playerId] = 0x00000012; } - if ((((gPlayers[playerId].unk_0BC & 0x20) == 0x20) && ((gPlayers[playerId].unk_000 & 0x2000) != 0x2000)) || ((gPlayers[playerId].unk_0BC & 0x800) == 0x800)) { + if ((((gPlayers[playerId].effects & 0x20) == 0x20) && ((gPlayers[playerId].type & 0x2000) != 0x2000)) || ((gPlayers[playerId].effects & 0x800) == 0x800)) { D_800E9E74[playerId] = 0x00000013; } if (gPlayers[playerId].unk_20C != 0.0f) { @@ -3498,16 +3498,16 @@ void func_800C847C(u8 playerId) { func_800C97C4(playerId); D_800E9F74[playerId] = 1; func_800C94A4(playerId); - if (( (gCurrentCourseId == 1) - || (gCurrentCourseId == 2) - || (gCurrentCourseId == 3) - || (gCurrentCourseId == 4) - || (gCurrentCourseId == 5) - || (gCurrentCourseId == 6) - || (gCurrentCourseId == 7) - || (gCurrentCourseId == 0x000C) - || (gCurrentCourseId == 0x0012) - || (gCurrentCourseId == 0x0013)) && (D_800EA0EC[playerId] == 0)) { + if (( (gCurrentCourseId == COURSE_CHOCO_MOUNTAIN) + || (gCurrentCourseId == COURSE_BOWSER_CASTLE) + || (gCurrentCourseId == COURSE_BANSHEE_BOARDWALK) + || (gCurrentCourseId == COURSE_YOSHI_VALLEY) + || (gCurrentCourseId == COURSE_FRAPPE_SNOWLAND) + || (gCurrentCourseId == COURSE_KOOPA_BEACH) + || (gCurrentCourseId == COURSE_ROYAL_RACEWAY) + || (gCurrentCourseId == COURSE_SHERBET_LAND) + || (gCurrentCourseId == COURSE_DK_JUNGLE) + || (gCurrentCourseId == COURSE_BIG_DONUT)) && (D_800EA0EC[playerId] == 0)) { play_sound((gPlayers[playerId].characterId * 0x10) + 0x29008005, D_800E9F7C[playerId].pos, playerId, D_800EA1D4, D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14); } } @@ -3517,7 +3517,7 @@ void func_800C847C(u8 playerId) { D_800E9F74[playerId] = 2; func_800C94A4(playerId); D_800E9F74[playerId] = 0; - if ((gCurrentCourseId == 6) && (D_800EA0EC[playerId] == 0)) { + if ((gCurrentCourseId == COURSE_KOOPA_BEACH) && (D_800EA0EC[playerId] == 0)) { play_sound((gPlayers[playerId].characterId * 0x10) + 0x29008008, D_800E9F7C[playerId].pos, playerId, D_800EA1D4, D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14); } } @@ -3525,13 +3525,13 @@ void func_800C847C(u8 playerId) { } void func_800C86D8(u8 playerId) { - if (((gPlayers[playerId].unk_0BC & 0x40000000) != 0x40000000) && (D_800E9F24[playerId] == 1)) { + if (((gPlayers[playerId].effects & 0x40000000) != 0x40000000) && (D_800E9F24[playerId] == 1)) { func_800C90F4(playerId, (gPlayers[playerId].characterId * 0x10) + 0x29008008); } } void func_800C8770(u8 playerId) { - if ((gPlayers[playerId].unk_0BC & 0x40000000) == 0x40000000) { + if ((gPlayers[playerId].effects & 0x40000000) == 0x40000000) { D_800E9F24[playerId] = 1; if (D_800E9F2C[playerId] < 0xFA) { D_800E9F2C[playerId]++; @@ -3565,14 +3565,14 @@ void func_800C8770(u8 playerId) { // Checks the same field for all players before doing something? void func_800C8920(void) { if (((u8) D_800EA168 != 0) - && ((gPlayers[0].unk_0BC & 0x40000000) != 0x40000000) - && ((gPlayers[1].unk_0BC & 0x40000000) != 0x40000000) - && ((gPlayers[2].unk_0BC & 0x40000000) != 0x40000000) - && ((gPlayers[3].unk_0BC & 0x40000000) != 0x40000000) - && ((gPlayers[4].unk_0BC & 0x40000000) != 0x40000000) - && ((gPlayers[5].unk_0BC & 0x40000000) != 0x40000000) - && ((gPlayers[6].unk_0BC & 0x40000000) != 0x40000000) - && ((gPlayers[7].unk_0BC & 0x40000000) != 0x40000000)) { + && ((gPlayers[0].effects & 0x40000000) != 0x40000000) + && ((gPlayers[1].effects & 0x40000000) != 0x40000000) + && ((gPlayers[2].effects & 0x40000000) != 0x40000000) + && ((gPlayers[3].effects & 0x40000000) != 0x40000000) + && ((gPlayers[4].effects & 0x40000000) != 0x40000000) + && ((gPlayers[5].effects & 0x40000000) != 0x40000000) + && ((gPlayers[6].effects & 0x40000000) != 0x40000000) + && ((gPlayers[7].effects & 0x40000000) != 0x40000000)) { func_800CAC08(); } } @@ -3601,7 +3601,7 @@ void func_800C89E4(void) { } void func_800C8AE4(void) { - if (gCurrentCourseId == 8) { + if (gCurrentCourseId == COURSE_LUIGI_RACEWAY) { if (D_800EA184 != 0) { if ((u8) D_800EA16C == 0) { // Has to be this way, can't be D_800EA184++ @@ -3679,11 +3679,11 @@ void func_800C8CCC() { void play_sound2(s32 soundBits) { - if ((soundBits == SOUND_ACTION_REV_ENGINE) && (gCurrentCourseId == 0x12)) { + if ((soundBits == SOUND_ACTION_REV_ENGINE) && (gCurrentCourseId == COURSE_DK_JUNGLE)) { soundBits = 0x49008027; } - if ((soundBits == SOUND_ACTION_REV_ENGINE_2) && (gCurrentCourseId == 0x12)) { + if ((soundBits == SOUND_ACTION_REV_ENGINE_2) && (gCurrentCourseId == COURSE_DK_JUNGLE)) { soundBits = 0x49008028; } play_sound(soundBits, D_800EA1C8, 4, D_800EA1D4, D_800EA1D4, &D_800EA1DC); @@ -3741,7 +3741,7 @@ void func_800C90F4(u8 playerId, u32 arg1) { if (((arg1 & ~0xF0) == 0x29008003) || ((arg1 & ~0xF0) == 0x29008004) || ((arg1 & ~0xF0) == 0x29008005)) { D_800EA180 = 1; } - if (((gPlayers[playerId].unk_0BC & 0x40000000) == 0x40000000) && ((s32) D_800E9F2C[playerId] >= 0x1F)) { + if (((gPlayers[playerId].effects & 0x40000000) == 0x40000000) && ((s32) D_800E9F2C[playerId] >= 0x1F)) { play_sound(arg1, D_800E9F7C[playerId].pos, playerId, &D_800EA150, D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14); } else { play_sound(arg1, D_800E9F7C[playerId].pos, playerId, D_800EA1D4, D_800EA1D4, (u8 *) &D_800E9F7C[playerId].unk_14); @@ -3765,10 +3765,10 @@ void func_800C92CC(u8 playerId, u32 soundBits) { if ((D_800EA108 == 0) && (D_800EA0F0 == 0) && ((s32) D_800EA1C0 < 2)) { for (var_s0 = 0; var_s0 < D_800EA1C0 + 1; var_s0++) { - temp_v0 = func_800C1C88(playerId, gPlayers[playerId].pos, gPlayers[playerId].unk_034, D_800EA1C8, (u8) var_s0, soundBits); + temp_v0 = func_800C1C88(playerId, gPlayers[playerId].pos, gPlayers[playerId].velocity, D_800EA1C8, (u8) var_s0, soundBits); if (temp_v0 != NULL) { temp_v0->unk34 = 170.0f; - if (((gPlayers[playerId].unk_0BC & 0x40000000) == 0x40000000) && ((s32) D_800E9F2C[playerId] >= 0x1F)) { + if (((gPlayers[playerId].effects & 0x40000000) == 0x40000000) && ((s32) D_800E9F2C[playerId] >= 0x1F)) { play_sound((gPlayers[playerId].characterId * 0x10) + soundBits, temp_v0->unk18, var_s0, &D_800EA150, D_800EA1D4, &D_800EA06C[playerId].unk0C); } else { play_sound((gPlayers[playerId].characterId * 0x10) + soundBits, temp_v0->unk18, var_s0, &temp_v0->unk2C, D_800EA1D4, &D_800EA06C[playerId].unk0C); @@ -3946,7 +3946,7 @@ void func_800C9A88(u8 playerId) { if (D_800EA1C0 < 2) { for (var_s0 = 0; var_s0 < D_800EA1C0 + 1; var_s0++) { soundBits = gPlayers[playerId].characterId + 0x31028000; - temp_v0_6 = func_800C1C88(playerId, gPlayers[playerId].pos, gPlayers[playerId].unk_034, &gPlayers[playerId].unk_098, var_s0, soundBits); + temp_v0_6 = func_800C1C88(playerId, gPlayers[playerId].pos, gPlayers[playerId].velocity, &gPlayers[playerId].unk_098, var_s0, soundBits); if (temp_v0_6 != NULL) { temp_v0_6->unk34 = 40.0f; play_sound(soundBits, temp_v0_6->unk18, var_s0, &temp_v0_6->unk2C, &D_800EA06C[playerId].unk00[2], &D_800EA06C[playerId].unk0C); diff --git a/src/camera.c b/src/camera.c index 5a3029d0f..551f5b2e7 100644 --- a/src/camera.c +++ b/src/camera.c @@ -226,7 +226,7 @@ void func_8001CA78(UNUSED Player *player, Camera *camera, Vec3f arg2, f32 *arg3, arg2[0] = camera->lookAt[0]; arg2[1] = camera->lookAt[1]; arg2[2] = camera->lookAt[2]; - func_802B6540(sp74, 0, 1, 0, -0x00008000); + calculate_orientation_matrix(sp74, 0, 1, 0, -0x00008000); mtxf_translate_vec3f_mat3(sp5C, sp74); if (gCurrentCourseId == COURSE_TOADS_TURNPIKE) { var_f14 = sp5C[0]; @@ -330,7 +330,7 @@ void func_8001CCEC(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a move_f32_towards(&D_80164AA0[index], 10, 0.02f); break; default: - if (gCurrentCourseId == 4) { + if (gCurrentCourseId == COURSE_YOSHI_VALLEY) { move_f32_towards(&D_80164A90[index], 50, 0.04f); move_f32_towards(&D_80164AA0[index], 35, 0.04f); } else { @@ -352,10 +352,10 @@ void func_8001CCEC(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a arg2[0] = camera->lookAt[0]; arg2[1] = camera->lookAt[1]; arg2[2] = camera->lookAt[2]; - if ((player->unk_0BC & 0x01000000) == 0x01000000) { + if ((player->effects & 0x01000000) == 0x01000000) { sp84[2] /= 3.0f; } - func_802B6540(sp9C, 0, 1, 0, arg7); + calculate_orientation_matrix(sp9C, 0, 1, 0, arg7); mtxf_translate_vec3f_mat3(sp84, sp9C); x = player->pos[0] + sp84[0]; @@ -365,7 +365,7 @@ void func_8001CCEC(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a arg2[0] += (x - camera->lookAt[0]) * D_80164A78[index]; arg2[2] += ((z - camera->lookAt[2]) * D_80164A78[index]); - if ((((player->unk_094 / 18) * 216) <= 5.0f) && ((player->unk_0BC & 2) == 2)) { + if ((((player->unk_094 / 18) * 216) <= 5.0f) && ((player->effects & 2) == 2)) { arg2[1] += ((y - camera->lookAt[1]) * 0.02); } else { arg2[1] += ((y - camera->lookAt[1]) * 0.5); @@ -373,7 +373,7 @@ void func_8001CCEC(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a mtxf_translate_vec3f_mat3(sp90, sp9C); x = player->pos[0] + sp90[0]; z = player->pos[2] + sp90[2]; - if ((player->unk_0BC & 0x01000000) != 0x01000000) { + if ((player->effects & 0x01000000) != 0x01000000) { var_f0 = player->pos[1] + sp90[1]; // permute y = var_f0; @@ -384,7 +384,7 @@ void func_8001CCEC(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a *arg3 = camera->pos[0] + ((x - camera->pos[0]) * D_80164A78[index]); *arg5 = camera->pos[2] + ((z - camera->pos[2]) * D_80164A78[index]); - if ((((player->unk_094 / 18) * 216) <= 5.0f) && ((player->unk_0BC & 2) == 2)) { + if ((((player->unk_094 / 18) * 216) <= 5.0f) && ((player->effects & 2) == 2)) { *arg4 = camera->pos[1] + (((y - camera->pos[1]) * 0.01)); } else { *arg4 = camera->pos[1] + (((y - camera->pos[1]) * 0.15)); @@ -423,7 +423,7 @@ void func_8001D53C(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a arg2[0] = camera->lookAt[0]; arg2[1] = camera->lookAt[1]; arg2[2] = camera->lookAt[2]; - func_802B6540(sp74, 0.0f, 1.0f, 0.0f, arg6); + calculate_orientation_matrix(sp74, 0.0f, 1.0f, 0.0f, arg6); mtxf_translate_vec3f_mat3(sp5C, sp74); stackPadding0 = player->pos[0] + sp5C[0]; stackPadding2 = player->pos[2] + sp5C[2]; @@ -466,7 +466,7 @@ void func_8001D794(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a arg2[1] = camera->lookAt[1]; arg2[2] = camera->lookAt[2]; - func_802B6540(sp6C, 0, 1, 0, arg6); + calculate_orientation_matrix(sp6C, 0, 1, 0, arg6); mtxf_translate_vec3f_mat3(sp54, sp6C); test1 = player->pos[0] + sp54[0]; @@ -569,10 +569,10 @@ void func_8001D944(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a arg2[0] = camera->lookAt[0]; arg2[1] = camera->lookAt[1]; arg2[2] = camera->lookAt[2]; - if ((player->unk_0BC & 0x01000000) == 0x01000000) { + if ((player->effects & 0x01000000) == 0x01000000) { sp84[2] /= 3.0f; } - func_802B6540(sp9C, 0, 1, 0, arg7); + calculate_orientation_matrix(sp9C, 0, 1, 0, arg7); mtxf_translate_vec3f_mat3(sp84, sp9C); x = player->pos[0] + sp84[0]; @@ -582,7 +582,7 @@ void func_8001D944(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a arg2[0] += (x - camera->lookAt[0]) * D_80164A78[index]; arg2[2] += ((z - camera->lookAt[2]) * D_80164A78[index]); - if ((((player->unk_094 / 18) * 216) <= 5.0f) && ((player->unk_0BC & 2) == 2)) { + if ((((player->unk_094 / 18) * 216) <= 5.0f) && ((player->effects & 2) == 2)) { arg2[1] += ((y - camera->lookAt[1]) * 0.02); } else { arg2[1] += ((y - camera->lookAt[1]) * 0.5); @@ -590,7 +590,7 @@ void func_8001D944(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a mtxf_translate_vec3f_mat3(sp90, sp9C); x = player->pos[0] + sp90[0]; z = player->pos[2] + sp90[2]; - if ((player->unk_0BC & 0x01000000) != 0x01000000) { + if ((player->effects & 0x01000000) != 0x01000000) { var_f0 = player->pos[1] + sp90[1]; // permute y = var_f0; @@ -601,7 +601,7 @@ void func_8001D944(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a *arg3 = camera->pos[0] + ((x - camera->pos[0]) * D_80164A78[index]); *arg5 = camera->pos[2] + ((z - camera->pos[2]) * D_80164A78[index]); - if ((((player->unk_094 / 18) * 216) <= 5.0f) && ((player->unk_0BC & 2) == 2)) { + if ((((player->unk_094 / 18) * 216) <= 5.0f) && ((player->effects & 2) == 2)) { *arg4 = camera->pos[1] + (((y - camera->pos[1]) * 0.01)); } else { *arg4 = camera->pos[1] + (((y - camera->pos[1]) * 0.15)); @@ -691,21 +691,21 @@ void func_8001E45C(Camera *camera, Player *player, s8 arg2) { UNUSED s16 pad6; s16 temp; - if ((player->unk_0BC & 0x10) == 0x10) { + if ((player->effects & 0x10) == 0x10) { var_a3 = 100; if (player->unk_078 == 0) { camera->unk_B0 = 0; } else { if (player->unk_078 < 0) { var_a3 = 0xA5 - (player->unk_078 / 2); - if ((player->unk_0BC & 0x20000000) == 0x20000000) { + if ((player->effects & 0x20000000) == 0x20000000) { move_s16_towards(&camera->unk_B0, -0x0B60, 0.1f); } else { move_s16_towards(&camera->unk_B0, -0x0888, 0.1f); } } else { var_a3 = (player->unk_078 / 2) + 0xA5; - if ((player->unk_0BC & 0x20000000) == 0x20000000) { + if ((player->effects & 0x20000000) == 0x20000000) { move_s16_towards(&camera->unk_B0, 0x0B60, 0.1f); } else { move_s16_towards(&camera->unk_B0, 0x0888, 0.1f); @@ -716,7 +716,7 @@ void func_8001E45C(Camera *camera, Player *player, s8 arg2) { move_s16_towards(&camera->unk_B0, 0, 0.05f); var_a3 = ((s16) camera->unk_2C / 182) - ((s16) player->unk_02C[1] / 182); if (player->unk_078 == 0) { - if ((player->unk_0BC & 0x20) == 0x20) { + if ((player->effects & 0x20) == 0x20) { var_a3 = 0x02D8; } else { var_a3 = 0x01F4; @@ -733,10 +733,10 @@ void func_8001E45C(Camera *camera, Player *player, s8 arg2) { var_a3 = (player->unk_078 / 2) + 0xA5; } } - if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40) || - ((player->unk_0BC & 0x4000) == 0x4000) || ((player->unk_0BC & 0x80000) == 0x80000) || - ((player->unk_0BC & 0x800000) == 0x800000) || (((player->unk_0BC & 0x20) == 0x20) && (player->unk_078 != 0)) || - (player->unk_110.unk3C[0] <= 0.0f) || (player->unk_110.unk3C[1] <= 0.0f) || ((player->unk_0BC & 0x20000) == 0x20000)) { + if (((player->effects & 0x80) == 0x80) || ((player->effects & 0x40) == 0x40) || + ((player->effects & 0x4000) == 0x4000) || ((player->effects & 0x80000) == 0x80000) || + ((player->effects & 0x800000) == 0x800000) || (((player->effects & 0x20) == 0x20) && (player->unk_078 != 0)) || + (player->unk_110.unk3C[0] <= 0.0f) || (player->unk_110.unk3C[1] <= 0.0f) || ((player->effects & 0x20000) == 0x20000)) { func_8001CCEC(player, camera, sp64, &sp84, &sp80, &sp7C, &sp58, (s32) camera->unk_2C, (s32) arg2); } else { func_800224F0(&camera->unk_2C, (s16) (player->unk_02C[1] + camera->unk_B0), var_a3); @@ -812,16 +812,14 @@ void func_8001EA0C(Camera *camera, Player *player, s8 arg2) { UNUSED s16 pad6; s16 temp; - //temp_v0 = player->unk_0BC; - if ((player->unk_0BC & 0x10) == 0x10) { - //temp_v1 = player->unk_078; + if ((player->effects & 0x10) == 0x10) { var_a3 = 100; if (player->unk_078 == 0) { camera->unk_B0 = 0; } else { if (player->unk_078 < 0) { var_a3 = 0xA5 - (player->unk_078 / 2); - if ((player->unk_0BC & 0x20000000) == 0x20000000) { + if ((player->effects & 0x20000000) == 0x20000000) { //sp4E = temp_a3; move_s16_towards(&camera->unk_B0, -0x0B60, 0.1f); } else { @@ -830,7 +828,7 @@ void func_8001EA0C(Camera *camera, Player *player, s8 arg2) { } } else { var_a3 = (player->unk_078 / 2) + 0xA5; - if ((player->unk_0BC & 0x20000000) == 0x20000000) { + if ((player->effects & 0x20000000) == 0x20000000) { //sp4E = temp_a3_2; move_s16_towards(&camera->unk_B0, 0x0B60, 0.1f); } else { @@ -845,7 +843,7 @@ void func_8001EA0C(Camera *camera, Player *player, s8 arg2) { //temp_v1_2 = player->unk_078; var_a3 = ((s16) camera->unk_2C / 182) - ((s16) player->unk_02C[1] / 182); if (player->unk_078 == 0) { - if ((player->unk_0BC & 0x20) == 0x20) { + if ((player->effects & 0x20) == 0x20) { var_a3 = 0x02D8; } else { var_a3 = 0x01F4; @@ -862,10 +860,10 @@ void func_8001EA0C(Camera *camera, Player *player, s8 arg2) { var_a3 = (player->unk_078 / 2) + 0xA5; } } - if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40) || - ((player->unk_0BC & 0x4000) == 0x4000) || ((player->unk_0BC & 0x80000) == 0x80000) || - ((player->unk_0BC & 0x800000) == 0x800000) || (((player->unk_0BC & 0x20) == 0x20) && (player->unk_078 != 0)) || - (player->unk_110.unk3C[0] <= 0.0f) || (player->unk_110.unk3C[1] <= 0.0f) || ((player->unk_0BC & 0x20000) == 0x20000)) { + if (((player->effects & 0x80) == 0x80) || ((player->effects & 0x40) == 0x40) || + ((player->effects & 0x4000) == 0x4000) || ((player->effects & 0x80000) == 0x80000) || + ((player->effects & 0x800000) == 0x800000) || (((player->effects & 0x20) == 0x20) && (player->unk_078 != 0)) || + (player->unk_110.unk3C[0] <= 0.0f) || (player->unk_110.unk3C[1] <= 0.0f) || ((player->effects & 0x20000) == 0x20000)) { func_8001D944(player, camera, sp64, &sp84, &sp80, &sp7C, &sp58, (s32) camera->unk_2C, (s32) arg2); } else { func_800224F0(&camera->unk_2C, (s16) (player->unk_02C[1] + camera->unk_B0), var_a3); @@ -910,7 +908,7 @@ void func_8001EE98(Player *player, Camera *camera, s8 index) { switch (gModeSelection) { case GRAND_PRIX: - if (((player->unk_000 & PLAYER_CINEMATIC_MODE) == PLAYER_CINEMATIC_MODE) || (gDemoMode == 1)) { D_80152300[cameraIndex] = 3; + if (((player->type & PLAYER_CINEMATIC_MODE) == PLAYER_CINEMATIC_MODE) || (gDemoMode == 1)) { D_80152300[cameraIndex] = 3; // --> --> Scroll right --> bit more --> ^ Required for matching } else if (gIsGamePaused == 1) { func_8001A0A4(&D_80152300[cameraIndex], camera, player, index, cameraIndex); @@ -939,7 +937,7 @@ void func_8001EE98(Player *player, Camera *camera, s8 index) { } break; case TIME_TRIALS: - if (((gPlayerOne->unk_000 & PLAYER_CINEMATIC_MODE) == PLAYER_CINEMATIC_MODE) || (gDemoMode == 1)) { + if (((gPlayerOne->type & PLAYER_CINEMATIC_MODE) == PLAYER_CINEMATIC_MODE) || (gDemoMode == 1)) { D_80152300[0] = 3; D_80152300[1] = 3; D_80152300[2] = 3; @@ -954,7 +952,7 @@ void func_8001EE98(Player *player, Camera *camera, s8 index) { } break; case VERSUS: - if (((player->unk_000 & PLAYER_CINEMATIC_MODE) == PLAYER_CINEMATIC_MODE) || (gDemoMode == 1) || (D_8015F894 == 2)) { + if (((player->type & PLAYER_CINEMATIC_MODE) == PLAYER_CINEMATIC_MODE) || (gDemoMode == 1) || (D_8015F894 == 2)) { D_80152300[cameraIndex] = 3; } else { if (gIsGamePaused == 1) { @@ -1017,16 +1015,16 @@ void func_8001F394(Player *player, f32 *arg1) { if (player->statusEffects & 0x40000) { D_80164A08[playerIndex] = 1; } - if ((player->unk_0BC & 0x2000) == 0x2000) { + if ((player->effects & 0x2000) == 0x2000) { D_80164A08[playerIndex] = 2; } - if ((player->unk_0BC & 0x100000) == 0x100000) { + if ((player->effects & 0x100000) == 0x100000) { D_80164A08[playerIndex] = 3; } if ((player->statusEffects & 0x100) == 0x100) { D_80164A08[playerIndex] = 4; } - if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40)) { + if (((player->effects & 0x80) == 0x80) || ((player->effects & 0x40) == 0x40)) { D_80164A08[playerIndex] = 5; } D_80164498[playerIndex] = 0.0f; @@ -1045,7 +1043,7 @@ void func_8001F394(Player *player, f32 *arg1) { } break; case 2: - if ((player->unk_0BC & 0x2000) == 0x2000) { + if ((player->effects & 0x2000) == 0x2000) { if (player->boostTimer != 0) { move_f32_towards(&D_80164498[playerIndex], 8.0f, 0.2f); } @@ -1059,7 +1057,7 @@ void func_8001F394(Player *player, f32 *arg1) { } break; case 3: - if (((player->unk_0BC & 0x100000) == 0x100000) && ((player->unk_0BC & 8) == 8)) { + if (((player->effects & 0x100000) == 0x100000) && ((player->effects & 8) == 8)) { move_f32_towards(&D_80164498[playerIndex], 20.0f, 0.1f); } else { if (D_80164498[playerIndex] > 1.0f) { @@ -1083,7 +1081,7 @@ void func_8001F394(Player *player, f32 *arg1) { } break; case 5: - if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40)) { + if (((player->effects & 0x80) == 0x80) || ((player->effects & 0x40) == 0x40)) { move_f32_towards(&D_80164498[playerIndex], 18.0f, 0.2f); } else { if (D_80164498[playerIndex] > 1.0f) { @@ -1128,10 +1126,10 @@ void func_8001F87C(s32 cameraId) { s32 id = cameraId; if(gPlayerOne){} - if (gActiveScreenMode == 0) { + if (gActiveScreenMode == SCREEN_MODE_1P) { if (gModeSelection == 0) { for (playerIndex = 0; playerIndex < 8; playerIndex++) { - if ((gPlayerOne[playerIndex].unk_000 & 0x200) || (gPlayerOne[playerIndex].unk_000 & 0x80)) break; + if ((gPlayerOne[playerIndex].type & 0x200) || (gPlayerOne[playerIndex].type & 0x80)) break; if (playerIndex == 7) { D_80164A2C += 1; } diff --git a/src/code_800029B0.c b/src/code_800029B0.c index a9179a604..36878fc7b 100644 --- a/src/code_800029B0.c +++ b/src/code_800029B0.c @@ -163,7 +163,7 @@ void setup_race(void) { struct Controller *controller; int i; - gPlayerCountSelection1 = D_8018EDF3; + gPlayerCountSelection1 = gPlayerCount; if (gGamestate != RACING) { gIsMirrorMode = 0; } @@ -189,7 +189,7 @@ void setup_race(void) { func_802969F8(); func_80005310(); func_8003D080(); - func_8006E9C0(); + init_object_list(); D_800DC510 = 0; gNumSpawnedShells = 0; D_800DC5B8 = 0; diff --git a/src/code_80004740.c b/src/code_80004740.c index a3fcaf384..5c57eea87 100644 --- a/src/code_80004740.c +++ b/src/code_80004740.c @@ -34,7 +34,7 @@ void func_80004740(Mtx *dest, Mat4 src) { #endif } -void func_800048D8(Mat4 dest, Vec3f b, Vec3s c) { +void mtxf_translate_rotate2(Mat4 dest, Vec3f b, Vec3s c) { register f32 sx = sins(c[0]); register f32 cx = coss(c[0]); @@ -93,7 +93,7 @@ void func_80004A1C(animation_type_1 *arg0, s16 *arg1, animation_type_3_triplet a sp8C[someIndex] = arg1[arg2[someIndex].some_offset + some_offset]; } - func_800048D8(sp4C, sp94, sp8C); + mtxf_translate_rotate2(sp4C, sp94, sp8C); func_80004740(&gGfxPool->mtxHud[gMatrixHudCount], sp4C); D_80162D7A += 1; gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL2(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); diff --git a/src/code_80004740.h b/src/code_80004740.h index 0d29dab39..31ec6707a 100644 --- a/src/code_80004740.h +++ b/src/code_80004740.h @@ -191,7 +191,7 @@ struct stru_80004EAC { /* Function Prototypes */ void func_80004740(Mtx *dest, Mat4 src); -void func_800048D8(Mat4 dest, Vec3f b, Vec3s c); +void mtxf_translate_rotate2(Mat4 dest, Vec3f b, Vec3s c); s16 func_80004EAC(void*, s16); void func_80004A1C(animation_type_1*, s16*, animation_type_3_triplet, s32); void func_80004C30(u32*, animation_type_2*, s16); diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index c37e2282f..1785958ec 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -447,7 +447,7 @@ s32 func_800061DC(Vec3f arg0, f32 arg1, s32 arg2) { var_v0 = 2; break; case SCREEN_MODE_3P_4P_SPLITSCREEN: - var_v0 = D_8018EDF3; + var_v0 = gPlayerCount; break; default: var_v0 = 1; @@ -456,8 +456,8 @@ s32 func_800061DC(Vec3f arg0, f32 arg1, s32 arg2) { var_v1 = arg2; if (!gDemoMode) { var_a0 = gPlayerOne; - for(var_a1 = 0; var_a1 < D_8018EDF3; var_a1++, var_a0++) { - if (((var_a0->unk_000 & 0x4000) != 0) && ((var_a0->unk_000 & 0x1000) == 0)) { + for(var_a1 = 0; var_a1 < gPlayerCount; var_a1++, var_a0++) { + if (((var_a0->type & 0x4000) != 0) && ((var_a0->type & 0x1000) == 0)) { temp_f12 = var_a0->pos[0]; temp_f14 = var_a0->pos[2]; if (((temp_f12 - arg1) < temp_f0) && (temp_f0 < (temp_f12 + arg1)) && ((temp_f14 - arg1) < temp_f2) && (temp_f2 < (temp_f14 + arg1))) { @@ -515,13 +515,13 @@ void func_800065D0(s32 arg0, Player *player) { *(&D_80163270 + temp_v0) = 1; temp_a3 = &gPlayers[arg0]; *temp_v1 = 5; - temp_a3->unk_0BC |= 0x400000; + temp_a3->effects |= 0x400000; } } else if ((var_t1 < 0x2D) || (var_t1 >= 0x13C)) { *(&D_80163270 + temp_v0) = 0; *(&D_80163258 + temp_v0) = 0; temp_a3_2 = &gPlayers[arg0]; - temp_a3_2->unk_0BC &= 0xFFBFFFFF; + temp_a3_2->effects &= 0xFFBFFFFF; } *temp_a2 = temp_a1; } @@ -536,7 +536,7 @@ void set_places(void) { s32 a_really_cool_variable_name; s32 stackPadding1; s32 var_t4; - s32 var_t3; + s32 playerId; s32 temp_a0; s32 var_t1_3; @@ -549,72 +549,72 @@ void set_places(void) { var_t4 = 8; break; case VERSUS: - var_t4 = D_8018EDF3; + var_t4 = gPlayerCount; break; } if (D_8016348C == 0) { - for (var_t3 = 0; var_t3 < var_t4; var_t3++) { - temp_a0 = gGPCurrentRacePlayerIdByRank[var_t3]; - sp80[var_t3] = temp_a0; - gCourseCompletionPercentByRank[var_t3] = gCourseCompletionPercentByPlayerId[temp_a0]; + for (playerId = 0; playerId < var_t4; playerId++) { + temp_a0 = gGPCurrentRacePlayerIdByRank[playerId]; + sp80[playerId] = temp_a0; + gCourseCompletionPercentByRank[playerId] = gCourseCompletionPercentByPlayerId[temp_a0]; } } else { - for (var_t3 = 0; var_t3 < var_t4; var_t3++) { - temp_a0 = gGPCurrentRacePlayerIdByRank[var_t3]; - sp80[var_t3] = temp_a0; - gCourseCompletionPercentByRank[var_t3] = -gTimePlayerLastTouchedFinishLine[temp_a0]; + for (playerId = 0; playerId < var_t4; playerId++) { + temp_a0 = gGPCurrentRacePlayerIdByRank[playerId]; + sp80[playerId] = temp_a0; + gCourseCompletionPercentByRank[playerId] = -gTimePlayerLastTouchedFinishLine[temp_a0]; } } - for (var_t3 = 0; var_t3 < var_t4 - 1; var_t3++) { - if ((gPlayers[gGPCurrentRacePlayerIdByRank[var_t3]].unk_000 & 0x800)) continue; + for (playerId = 0; playerId < var_t4 - 1; playerId++) { + if ((gPlayers[gGPCurrentRacePlayerIdByRank[playerId]].type & 0x800)) continue; - for (var_t1_3 = var_t3 + 1; var_t1_3 < var_t4; var_t1_3++) { - if (gCourseCompletionPercentByRank[var_t3] < gCourseCompletionPercentByRank[var_t1_3]) { - if (!(gPlayers[gGPCurrentRacePlayerIdByRank[var_t1_3]].unk_000 & 0x800)) { - temp_s2 = sp80[var_t3]; - sp80[var_t3] = sp80[var_t1_3]; + for (var_t1_3 = playerId + 1; var_t1_3 < var_t4; var_t1_3++) { + if (gCourseCompletionPercentByRank[playerId] < gCourseCompletionPercentByRank[var_t1_3]) { + if (!(gPlayers[gGPCurrentRacePlayerIdByRank[var_t1_3]].type & 0x800)) { + temp_s2 = sp80[playerId]; + sp80[playerId] = sp80[var_t1_3]; sp80[var_t1_3] = temp_s2; - temp_f0 = gCourseCompletionPercentByRank[var_t3]; - gCourseCompletionPercentByRank[var_t3] = gCourseCompletionPercentByRank[var_t1_3]; + temp_f0 = gCourseCompletionPercentByRank[playerId]; + gCourseCompletionPercentByRank[playerId] = gCourseCompletionPercentByRank[var_t1_3]; gCourseCompletionPercentByRank[var_t1_3] = temp_f0; } } } } - for (var_t3 = 0; var_t3 < 8; var_t3++) { - D_801643E0[var_t3] = gGPCurrentRaceRankByPlayerId[var_t3]; + for (playerId = 0; playerId < 8; playerId++) { + D_801643E0[playerId] = gGPCurrentRaceRankByPlayerId[playerId]; } - for (var_t3 = 0; var_t3 < var_t4; var_t3++) { - gGPCurrentRacePlayerIdByRank[var_t3] = sp80[var_t3]; - gGPCurrentRaceRankByPlayerId[sp80[var_t3]] = var_t3; + for (playerId = 0; playerId < var_t4; playerId++) { + gGPCurrentRacePlayerIdByRank[playerId] = sp80[playerId]; + gGPCurrentRaceRankByPlayerId[sp80[playerId]] = playerId; } - for (var_t3 = 0; var_t3 < var_t4; var_t3++) { - a_really_cool_variable_name = D_80164378[var_t3]; - sp80[var_t3] = a_really_cool_variable_name; - gCourseCompletionPercentByRank[var_t3] = gCourseCompletionPercentByPlayerId[a_really_cool_variable_name]; + for (playerId = 0; playerId < var_t4; playerId++) { + a_really_cool_variable_name = D_80164378[playerId]; + sp80[playerId] = a_really_cool_variable_name; + gCourseCompletionPercentByRank[playerId] = gCourseCompletionPercentByPlayerId[a_really_cool_variable_name]; } - for (var_t3 = 0; var_t3 < var_t4 - 1; var_t3++) { - for (var_t1_3 = var_t3 + 1; var_t1_3 < var_t4; var_t1_3++) { - if (gCourseCompletionPercentByRank[var_t3] < gCourseCompletionPercentByRank[var_t1_3]) { - temp_s2 = sp80[var_t3]; - sp80[var_t3] = sp80[var_t1_3]; + for (playerId = 0; playerId < var_t4 - 1; playerId++) { + for (var_t1_3 = playerId + 1; var_t1_3 < var_t4; var_t1_3++) { + if (gCourseCompletionPercentByRank[playerId] < gCourseCompletionPercentByRank[var_t1_3]) { + temp_s2 = sp80[playerId]; + sp80[playerId] = sp80[var_t1_3]; sp80[var_t1_3] = temp_s2; - temp_f0 = gCourseCompletionPercentByRank[var_t3]; - gCourseCompletionPercentByRank[var_t3] = gCourseCompletionPercentByRank[var_t1_3]; + temp_f0 = gCourseCompletionPercentByRank[playerId]; + gCourseCompletionPercentByRank[playerId] = gCourseCompletionPercentByRank[var_t1_3]; gCourseCompletionPercentByRank[var_t1_3] = temp_f0; } } } - for (var_t3 = 0; var_t3 < var_t4; var_t3++) { - D_80164408[sp80[var_t3]] = var_t3; - D_80164378[var_t3] = sp80[var_t3]; + for (playerId = 0; playerId < var_t4; playerId++) { + D_80164408[sp80[playerId]] = playerId; + D_80164378[playerId] = sp80[playerId]; } } @@ -637,7 +637,7 @@ void func_800070F4(void) { var_a2 = 8; break; case VERSUS: - var_a2 = D_8018EDF3; + var_a2 = gPlayerCount; break; } @@ -695,7 +695,7 @@ void func_800074D4(void) { var_v0 = 0; for (var_a3 = 0; var_a3 < this_loops_upper_bound_is_brough_to_you_by_the_number_eight; var_a3++) { var_a0_2 = &gPlayers[var_a3]; - if (var_a0_2->unk_000 & 0x800) { + if (var_a0_2->type & 0x800) { sp68[var_v0] = var_a3; gCourseCompletionPercentByRank[var_v0] = -gTimePlayerLastTouchedFinishLine[var_a3]; var_v0++; @@ -705,7 +705,7 @@ void func_800074D4(void) { temp_t1 = var_v0; for (var_a3 = 0; var_a3 < this_loops_upper_bound_is_brough_to_you_by_the_number_eight; var_a3++) { var_a0_2 = &gPlayers[var_a3]; - if (!(var_a0_2->unk_000 & 0x800)) { + if (!(var_a0_2->type & 0x800)) { sp68[var_v0] = var_a3; gCourseCompletionPercentByRank[var_v0] = gCourseCompletionPercentByPlayerId[var_a3]; var_v0++; @@ -790,8 +790,8 @@ void func_80007D04(s32 playerId, Player *player) { temp_t2 = D_80164450[playerId]; if (gGPCurrentRaceRankByPlayerId[playerId] < 2) { if (((s16) (temp_t2 - temp_t1) >= 0x191) && ((s16)gGPCurrentRaceRankByPlayerId[temp_v1] >= 6)) { - player->unk_0BC &= ~0x200000; - func_80030FC8(player); + player->effects &= ~0x200000; + player_speed(player); var_t5 = 4; var_at = &D_801634C0 + (playerId * 2); } else { @@ -825,22 +825,22 @@ void func_80007D04(s32 playerId, Player *player) { break; } if (temp_t2 < temp_t1) { - player->unk_0BC |= 0x200000; - func_80030FC8(player); + player->effects |= 0x200000; + player_speed(player); *(&D_801634C0 + (playerId * 2)) = 1; } else { temp_v0 = playerId * 2; if (temp_t2 < (temp_t1 + var_v0 + 0x32)) { - player->unk_0BC &= ~0x200000; - func_80030FC8(player); + player->effects &= ~0x200000; + player_speed(player); *(&D_801634C0 + (playerId * 2)) = 3; } else if (*(&D_801631E0 + temp_v0) == 0) { - player->unk_0BC &= ~0x200000; + player->effects &= ~0x200000; sp1C = temp_v0; - func_80030FC8(player); + player_speed(player); *(&D_801634C0 + temp_v0) = 2; } else { - player->unk_0BC &= ~0x200000; + player->effects &= ~0x200000; sp1C = temp_v0; func_80031F48(player, 1.0f); var_t5 = -1; @@ -850,8 +850,8 @@ void func_80007D04(s32 playerId, Player *player) { } *var_at = var_t5; } else { - player->unk_0BC |= 0x200000; - func_80030FC8(player); + player->effects |= 0x200000; + player_speed(player); *(&D_801634C0 + (playerId * 2)) = 3; } } @@ -992,7 +992,7 @@ void func_80008424(s32 arg0, f32 arg1, Player *player) { s32 var_a1; u16 temp_v0_4; - temp_v1 = player->unk_0BC; + temp_v1 = player->effects; var_f12 = arg1; temp_f2 = player->unk_094; if (!(temp_v1 & 0x80) && !(temp_v1 & 0x40) && ((temp_v1 << 0xE) >= 0) && (temp_v0 = player->statusEffects, ((temp_v0 << 9) >= 0)) && ((temp_v0 << 7) >= 0) && !(temp_v0 & 2) && !(temp_v0 & 4)) { @@ -1003,9 +1003,9 @@ void func_80008424(s32 arg0, f32 arg1, Player *player) { temp_t5 = arg0 * 2; if ((*(&D_801634D8 + temp_t5) == (s16) 1) && !(temp_v1 & 0x80000200)) { func_80031F48(player, 10.0f); - if ((f64) player->unk_09C == 0.0) { - player->unk_034[0] = 0.0f; - player->unk_034[2] = 0.0f; + if ((f64) player->currentSpeed == 0.0) { + player->velocity[0] = 0.0f; + player->velocity[2] = 0.0f; } } else { temp_v0_2 = gCCSelection; @@ -1022,48 +1022,48 @@ void func_80008424(s32 arg0, f32 arg1, Player *player) { break; } if (temp_f2 < var_f0) { - player->unk_0BC = temp_v1 & 0xFFDFFFFF; - func_80030FC8(player); + player->effects = temp_v1 & 0xFFDFFFFF; + player_speed(player); return; } - if (player->unk_000 & 0x800) { + if (player->type & PLAYER_CINEMATIC_MODE) { if (temp_f2 < var_f12) { - player->unk_0BC = temp_v1 & 0xFFDFFFFF; - func_80030FC8(player); + player->effects = temp_v1 & 0xFFDFFFFF; + player_speed(player); return; } - player->unk_0BC = temp_v1 & 0xFFDFFFFF; + player->effects = temp_v1 & 0xFFDFFFFF; func_80031F48(player, 1.0f); return; } if ((*(&D_801631E0 + temp_t5) == (u16) 1) && (*(&D_80163330 + temp_t5) != (u16) 1)) { temp_v0_3 = arg0 * 4; if (func_800088D8(var_f12, arg0, *(&D_80164392 + temp_v0_3), *(&D_8016440A + temp_v0_3), player) == 1) { - player->unk_0BC |= 0x200000; - func_80030FC8(player); + player->effects |= 0x200000; + player_speed(player); return; } - player->unk_0BC &= 0xFFDFFFFF; + player->effects &= 0xFFDFFFFF; func_80031F48(player, 1.0f); return; } temp_v0_4 = *(&D_80163350 + temp_t5); switch (temp_v0_4) { /* switch 1; irregular */ case 1: /* switch 1 */ - player->unk_0BC = temp_v1 & 0xFFDFFFFF; + player->effects = temp_v1 & 0xFFDFFFFF; sp34 = temp_f2; sp1C = temp_t5; sp28 = 1; - func_80030FC8(player); + player_speed(player); var_a1 = 1; var_f12 = arg1; break; case 3: /* switch 1 */ - player->unk_0BC = temp_v1 | 0x200000; + player->effects = temp_v1 | 0x200000; sp34 = temp_f2; sp1C = temp_t5; sp28 = 1; - func_80030FC8(player); + player_speed(player); var_a1 = 1; var_f12 = arg1; break; @@ -1080,7 +1080,7 @@ void func_80008424(s32 arg0, f32 arg1, Player *player) { if (var_a1 != 1) { if (temp_f2 < var_f12) { if ((gDemoMode) && (gCurrentCourseId != 0x0014)) { - func_80030FC8(player); + player_speed(player); return; } temp_v0_5 = arg0 * 4; @@ -1089,15 +1089,15 @@ void func_80008424(s32 arg0, f32 arg1, Player *player) { return; } if (func_800088D8(var_f12, arg0, *(&D_80164392 + temp_v0_5), *(&D_8016440A + temp_v0_5), player) == 1) { - player->unk_0BC |= 0x200000; - func_80030FC8(player); + player->effects |= 0x200000; + player_speed(player); return; } - player->unk_0BC &= 0xFFDFFFFF; + player->effects &= 0xFFDFFFFF; func_80031F48(player, 1.0f); return; } - player->unk_0BC &= 0xFFDFFFFF; + player->effects &= 0xFFDFFFFF; if (var_f12 > 1.0f) { func_80031F48(player, 2.0f); return; @@ -1123,7 +1123,7 @@ extern ? D_80164376; extern s16 D_80164386; extern ? D_801643BA; extern ? D_80164538; -extern s8 D_8018EDF3; +extern s8 gPlayerCount; static ? D_800DCAF4; /* unable to generate initializer */ static ? D_800DCB34; /* unable to generate initializer */ static ? *D_800DCBB4[0x15] = { @@ -1206,7 +1206,7 @@ s32 func_800088D8(s32 arg0, s16 arg1, s16 arg2) { return 1; } temp_t1 = &gPlayers[arg0]; - if ((temp_t1->unk_000 & 0x4000) != 0) { + if ((temp_t1->type & 0x4000) != 0) { return 1; } temp_t2 = var_a1 * 8; @@ -1268,7 +1268,7 @@ s32 func_800088D8(s32 arg0, s16 arg1, s16 arg2) { var_v0 += 1; } } while ((u32) var_a0_3 < (u32) &D_80163348); - temp_t1_2 = D_8018EDF3; + temp_t1_2 = gPlayerCount; var_a0_4 = 0; var_v1 = gGPCurrentRaceRankByPlayerId; if (temp_t1_2 > 0) { @@ -1441,7 +1441,7 @@ extern ? D_801642DE; extern ? D_801643B0; extern s32 D_80164408; extern s32 D_8016440C; -extern s8 D_8018EDF3; +extern s8 gPlayerCount; s16 gCurrentCourseId; /* unable to generate initializer */ void func_8000929C(s32 playerId, Player *player) { @@ -1503,7 +1503,7 @@ void func_8000929C(s32 playerId, Player *player) { var_t0 = 0; if (temp_v0 == 0x000B) { D_801634EC = 0; - if ((player->unk_0BC & 0x200) != 0) { + if ((player->effects & 0x200) != 0) { D_801634EC = 1; } if (gIsMirrorMode != 0) { @@ -1567,7 +1567,7 @@ block_25: func_80008F38(playerId); func_80011AE4(playerId); *(&D_801642DE + (playerId * 0x10)) = 0; - if ((D_8016348C == 0) && ((player->unk_000 & 0x800) == 0)) { + if ((D_8016348C == 0) && ((player->type & PLAYER_CINEMATIC_MODE) == 0)) { sp30 = var_a3; sp34 = var_t0; temp_f0_3 = func_80009258(playerId, sp38, sp44, (u16 *) var_a3); @@ -1588,13 +1588,13 @@ block_25: } } *(&D_80163450 + (playerId * 4)) = sp44; - if ((gCurrentCourseId == 4) && (D_801630E2 == 1) && ((func_80009000(playerId), temp_v0_4 = player->unk_000, ((temp_v0_4 & 0x4000) == 0)) || ((temp_v0_4 & 0x1000) != 0))) { + if ((gCurrentCourseId == 4) && (D_801630E2 == 1) && ((func_80009000(playerId), temp_v0_4 = player->type, ((temp_v0_4 & 0x4000) == 0)) || ((temp_v0_4 & 0x1000) != 0))) { func_800090F0(playerId, player); } - temp_v0_5 = player->unk_000; + temp_v0_5 = player->type; if (((temp_v0_5 & 0x4000) != 0) && ((temp_v0_5 & 0x1000) == 0)) { func_800065D0(playerId, player, &D_80163448); - if ((gModeSelection == GRAND_PRIX) && (D_8018EDF3 == 2) && (playerId == 0)) { + if ((gModeSelection == GRAND_PRIX) && (gPlayerCount == 2) && (playerId == 0)) { if (D_80164408 < D_8016440C) { D_80163478 = 0; } else { @@ -1613,7 +1613,7 @@ void func_800097E0(void) { func_8000EF20(); D_8016337C++; - if (gCurrentCourseId == 20) { + if (gCurrentCourseId == COURSE_AWARD_CEREMONY) { for (i = 0; i < 7; i++) { func_8000DF8C(i); } @@ -1661,14 +1661,14 @@ void func_800098FC(u8 arg0, Player *player) { temp_v1 = arg0 * 2; temp_a2 = temp_v1 + &D_80163398; - if ((*temp_a2 >= 0xB) && ((temp_v0 = player->unk_0BC, ((temp_v0 & 0x80) != 0)) || ((temp_v0 & 0x40) != 0) || (temp_v0 & 0x20000))) { + if ((*temp_a2 >= 0xB) && ((temp_v0 = player->effects, ((temp_v0 & 0x80) != 0)) || ((temp_v0 & 0x40) != 0) || (temp_v0 & 0x20000))) { sp1C = temp_v1; sp18 = temp_a2; func_800C92CC(arg0, 0x2900800A, temp_a2, player); *temp_a2 = 0; } temp_a2_2 = temp_v1 + &D_801633B0; - if ((*temp_a2_2 >= 0xB) && ((temp_v0_2 = player->statusEffects, ((temp_v0_2 << 9) < 0)) || ((temp_v0_2 << 7) < 0) || ((temp_v0_2 & 2) != 0) || ((temp_v0_2 & 4) != 0) || (player->unk_0BC & 0x04000000))) { + if ((*temp_a2_2 >= 0xB) && ((temp_v0_2 = player->statusEffects, ((temp_v0_2 << 9) < 0)) || ((temp_v0_2 << 7) < 0) || ((temp_v0_2 & 2) != 0) || ((temp_v0_2 & 4) != 0) || (player->effects & 0x04000000))) { sp18 = temp_a2_2; func_800C92CC(arg0, 0x2900800B, temp_a2_2, player); *temp_a2_2 = 0; @@ -1707,7 +1707,7 @@ void func_800099EC(s32 arg0, ? arg1) { temp_s7 = temp_t6 + &D_801633C8; sp40 = temp_t6; if (*temp_s7 >= 0x65) { - temp_a0 = D_8018EDF3; + temp_a0 = gPlayerCount; phi_s0 = 0; phi_a0 = temp_a0; if (temp_a0 > ZERO_PLAYERS_SELECTED) { @@ -1719,7 +1719,7 @@ void func_800099EC(s32 arg0, ? arg1) { if ((temp_v0 < temp_v1) && (temp_v0 == *(&D_801643E0 + phi_s1)) && (temp_v1 == *(&D_801643E0 + (arg0 * 4)))) { func_800C92CC(arg0 & 0xFF, 0x2900800D); *temp_s7 = 0; - phi_a0 = D_8018EDF3; + phi_a0 = gPlayerCount; } temp_s0 = phi_s0 + 1; phi_s2 += 4; @@ -1918,7 +1918,7 @@ void func_80009B60(s32 playerId) { } temp_v1 = &gPlayers[playerId]; temp_a2 = playerId * 2; - if (!(temp_v1->unk_000 & 0x8000)) { + if (!(temp_v1->type & 0x8000)) { D_80164450[playerId] = -0x00000014; gCourseCompletionPercentByPlayerId[playerId] = -1000.0f; gLapCompletionPercentByPlayerId[playerId] = -1000.0f; @@ -1964,15 +1964,15 @@ void func_80009B60(s32 playerId) { func_80014CC0(playerId, sp40); break; } - if (sp40->unk_000 & 0x800) { - sp40->unk_0BC &= 0xFFBFFFFF; + if (sp40->type & 0x800) { + sp40->effects &= 0xFFBFFFFF; sp40->unk_044 &= 0xFFFE; } func_8000929C(playerId, sp40); if ((gCurrentCourseId != 0x0014) && ((*(&D_80163240 + sp34) == 1) || (playerId == 0))) { set_places(); } - if (sp40->unk_000 & 0x1000) { + if (sp40->type & 0x1000) { if ((D_801630E2 == 1) && (gCurrentCourseId != 0x0014)) { func_80011E38(playerId); } @@ -1994,11 +1994,11 @@ void func_80009B60(s32 playerId) { } temp_a1 = sp34 + &D_801631E0; *temp_a1 = 0; - if ((sp40->unk_0BC & 0x1000) && (gCurrentCourseId != 0x0014)) { + if ((sp40->effects & 0x1000) && (gCurrentCourseId != 0x0014)) { *temp_a1 = 1; } temp_v0_6 = gCurrentCourseId; - if ((D_801646CC == 1) || (sp40->unk_000 & 0x800) || (temp_v0_6 == 0x0014)) { + if ((D_801646CC == 1) || (sp40->type & 0x800) || (temp_v0_6 == 0x0014)) { if (temp_v0_6 != 0x000A) { *(&D_801634FC + (playerId * 0x10)) = 0.0f; } @@ -2049,13 +2049,13 @@ block_63: } if (var_a0 == 1) { *(&D_801630E8 + sp34) = 0; - sp40->unk_0BC &= ~0x10; + sp40->effects &= ~0x10; if ((D_80163378 & 1) != sp30) { func_8003680C(sp40, 0); func_80008424(playerId, *(&D_80163210 + sp38), sp40); return; } - temp_v0_9 = D_8018EDF3; + temp_v0_9 = gPlayerCount; if ((temp_v0_9 > 0) && (temp_v0_9 < 3) && (*(&D_80163330 + sp34) == 1) && ((s32) *(&D_8016334C + sp34) < *(gGPCurrentRaceRankByPlayerId + sp38))) { var_t0 = sp38 + &D_80163210; *var_t0 = 0x41055555; @@ -2076,7 +2076,7 @@ block_63: func_800131DC(playerId); func_8000D3B8(playerId); func_8000D438(playerId, D_801630E0); - temp_v0_10 = sp40->unk_0BC; + temp_v0_10 = sp40->effects; temp_f0 = D_80162FA0.unk0 - sp40->pos[0]; var_t0_2 = var_t0; temp_f2 = D_80162FA0.unk8 - sp40->pos[2]; @@ -2105,7 +2105,7 @@ block_63: sp2C = temp_t8; var_v0 = *temp_t8; if ((var_v0 == (s16) 1U) || (var_v0 == -1)) { - sp40->unk_0BC |= 0x10; + sp40->effects |= 0x10; var_v0 = (s16) *sp2C; } if (var_v0 != 0) { @@ -2138,13 +2138,13 @@ block_63: case -1: /* switch 2 */ if (var_v1 >= 6) { *sp2C = 0; - sp40->unk_0BC &= ~0x10; + sp40->effects &= ~0x10; } break; case 1: /* switch 2 */ if (var_v1 < -5) { *sp2C = 0; - sp40->unk_0BC &= ~0x10; + sp40->effects &= ~0x10; } break; } @@ -2245,9 +2245,9 @@ block_63: } if ((*(&D_801632E8 + sp34) == 2) && ((temp_f0_4 = *temp_t0_2, (temp_f0_4 > 0.9f)) || (temp_f0_4 < -0.9f))) { *sp2C = 0; - sp40->unk_0BC &= ~0x10; + sp40->effects &= ~0x10; } - temp_v0_18 = sp40->unk_0BC; + temp_v0_18 = sp40->effects; if (temp_v0_18 & 2) { temp_v0_19 = (s16) *sp2C; var_a1_2 = -0x0035; @@ -2274,7 +2274,7 @@ block_63: sp20 = temp_t0_2; func_8003680C((bitwise Player *) 182.0f, (s16) sp40, (Player *) var_a1_2, var_a2, sp40); *var_v0_2 = var_a1_2; - if (((bitwise s32) *sp28 == 1) || (temp_v0_20 = (s16) *sp2C, (temp_v0_20 == 1)) || (temp_v0_20 == -1) || (sp40->unk_0BC & 0x1000000C)) { + if (((bitwise s32) *sp28 == 1) || (temp_v0_20 = (s16) *sp2C, (temp_v0_20 == 1)) || (temp_v0_20 == -1) || (sp40->effects & 0x1000000C)) { sp20 = temp_t0_2; var_v1_3 = sp38 + &D_80163028; *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + &D_0D009418); @@ -2297,7 +2297,7 @@ block_63: *var_v1_3 = 0x40555555; } D_8016320C = *var_v1_3; - sp40->unk_0BC &= 0xFFDFFFFF; + sp40->effects &= 0xFFDFFFFF; *(&D_80163210 + sp38) = D_8016320C; func_800131DC(playerId); func_80008424(playerId, D_8016320C, sp40); @@ -2374,7 +2374,7 @@ void func_8000B140(s32 playerId) { u16 temp_v0_2; temp_v1 = &gPlayers[playerId]; - temp_a1 = temp_v1->unk_0BC; + temp_a1 = temp_v1->effects; if (((temp_a1 & 0x10) == 0) && (temp_t5 = playerId * 2, temp_v0 = *(&D_801630E8 + temp_t5), sp5C = temp_t5, (temp_v0 != 1)) && (temp_v0 != -1) && (temp_t8 = &D_80163068[playerId], sp54 = temp_t8, sp58 = playerId * 4, temp_f0 = *temp_t8, !(temp_f0 < -1.0f)) && !(temp_f0 > 1.0f) && (temp_v0_2 = temp_v1->characterId, (temp_v0_2 != 5)) && (temp_v0_2 != 7) && (temp_v0_2 != 4) && ((temp_a1 & 0x200) == 0)) { var_t1 = (s16) gNearestWaypointByPlayerId[playerId]; var_a1 = &sp9C; @@ -2400,7 +2400,7 @@ void func_8000B140(s32 playerId) { loop_15: if (var_t0 != playerId) { temp_v0_4 = &gPlayers[var_t0]; - if ((temp_v0_4->unk_000 & 0x8000) != 0) { + if ((temp_v0_4->type & 0x8000) != 0) { temp_f2 = ((temp_v1->unk_094 / 18.0f) * 216.0f) - 5.0f; temp_v1_2 = (s16) gNearestWaypointByPlayerId[var_t0]; temp_f0_2 = (temp_v0_4->unk_094 / 18.0f) * 216.0f; @@ -2576,7 +2576,7 @@ void func_8000B95C(s32 playerId, u16 wayPointIndex, s32 pathIndex) { UNUSED Vec3f pad; D_80163068[playerId] = 0.0f; if ((s32) D_800DCA4C[gCurrentCourseId] >= 0) { - if ((gPlayers[playerId].unk_000 & 0x8000) != 0) { + if ((gPlayers[playerId].type & 0x8000) != 0) { D_80163068[playerId] = func_8000B874(gPlayers[playerId].pos[0], gPlayers[playerId].pos[2], wayPointIndex, pathIndex); } } @@ -2969,7 +2969,7 @@ s16 func_8000CD24(f32 posX, f32 posY, f32 posZ, s16 wayPointIndex, Player *playe struct TrackWayPoint *temp_v1_4; u16 temp_v0; - temp_v0 = player->unk_000; + temp_v0 = player->type; var_f24 = posZ; var_f20 = posX; var_f22 = posY; @@ -3650,20 +3650,20 @@ void func_8000DF8C(s32 arg0) { temp_f12 = var_f24 - gPlayerFour->pos[2]; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f12 * temp_f12)) < 25.0f) { sp7E = 4; - gPlayerFour->statusEffects |= 0x400000; - gPlayerFour->unk_000 &= ~0x2000; + gPlayerFour->statusEffects |= REVERSE_EFFECT; + gPlayerFour->type &= ~0x2000; var_s1 = 0; sp4C = 4; } } } else { - var_v1 = D_8018EDF3; + var_v1 = gPlayerCount; var_a0 = 0; if (var_v1 > 0) { var_v0 = gPlayers; do { var_a0 += 1; - if (!(var_v0->unk_0BC & 0x80000000)) { + if (!(var_v0->effects & 0x80000000)) { temp_f0_2 = var_f22 - var_v0->pos[0]; temp_f2_2 = var_f20 - var_v0->pos[1]; temp_f12_2 = var_f24 - var_v0->pos[2]; @@ -3671,11 +3671,11 @@ void func_8000DF8C(s32 arg0) { sp7E = 4; var_s1 = 0; if (gCurrentCourseId == 5) { - var_v0->statusEffects |= 0x01000000; + var_v0->statusEffects |= HIT_BY_ITEM_EFFECT; } else { - var_v0->statusEffects |= 0x400000; + var_v0->statusEffects |= REVERSE_EFFECT; } - var_v1 = D_8018EDF3; + var_v1 = gPlayerCount; } } var_v0 += 0xDD8; @@ -4044,7 +4044,7 @@ void func_8000F124(void) { if (gModeSelection == GRAND_PRIX) { do { loop_5: - temp_a2 = D_8018EDF3; + temp_a2 = gPlayerCount; *phi_s1 = random_int(8); phi_a1_2 = 0; phi_a1_5 = 0; @@ -5422,7 +5422,7 @@ void func_80011B14(s32 playerId, Player *player) { case 2: sp1C = temp_v1; func_8002AA50(player, temp_a2, temp_a3); - player->unk_0BC &= ~0x10; + player->effects &= ~0x10; *(&D_801630E8 + temp_v1) = 0; return; case 3: @@ -5450,7 +5450,7 @@ void func_80011B14(s32 playerId, Player *player) { *(&D_801633F8 + temp_v1) = 1; *(&D_801631E0 + temp_v1) = 0; temp_v0 = &gPlayers[playerId]; - temp_v0->unk_0BC &= ~0x1000; + temp_v0->effects &= ~0x1000; return; case 10: *(&D_801633F8 + temp_v1) = 0; @@ -5553,7 +5553,7 @@ void func_80011EC0(s32 arg0, Player *player, s32 arg2, s32 arg3) { if ((temp_f0 > -0.8) && (temp_f0 < 0.5)) { sp1C = temp_a2; func_8002AA50(player, temp_a2, arg2); - player->unk_0BC |= 0x10; + player->effects |= 0x10; *temp_a2 = 1; return; } @@ -5567,7 +5567,7 @@ void func_80011EC0(s32 arg0, Player *player, s32 arg2, s32 arg3) { if ((temp_f0_2 > -0.5) && (temp_f0_2 < 0.8)) { sp1C = temp_a2; func_8002AA50(player, temp_a2, arg2); - player->unk_0BC |= 0x10; + player->effects |= 0x10; *temp_a2 = -1; return; } @@ -5645,7 +5645,7 @@ void func_80012220(VehicleStuff *vehicle) { vehicle->velocity[2] = vehicle->position[2] - origZPos; } -void func_800122D8(void) { +void init_course_vehicles(void) { s16 trainCarYRot; UNUSED Vec3f pad; TrainCarStuff *tempLocomotive; @@ -5933,7 +5933,7 @@ void func_80012DC0(s32 playerId, Player *player) { s32 passengerCarIndex; if (D_801631E0[playerId] != 1) { - if (!(player->unk_0BC & 0x01000000)) { + if (!(player->effects & 0x01000000)) { playerPosX = player->pos[0]; playerPosZ = player->pos[2]; for (trainIndex = 0; trainIndex < NUM_TRAINS; trainIndex++) { @@ -5943,12 +5943,12 @@ void func_80012DC0(s32 playerId, Player *player) { if ((x_dist > -100.0) && (x_dist < 100.0)) { if ((z_dist > -100.0) && (z_dist < 100.0)) { if (func_80006018(trainCar->position[0], trainCar->position[2], trainCar->velocity[0], trainCar->velocity[2], 60.0f, 20.0f, playerPosX, playerPosZ) == 1) { - player->statusEffects |= 0x400000; + player->statusEffects |= REVERSE_EFFECT; } trainCar = &sTrains[trainIndex].tender; if (trainCar->isActive == 1) { if (func_80006018(trainCar->position[0], trainCar->position[2], trainCar->velocity[0], trainCar->velocity[2], 30.0f, 20.0f, playerPosX, playerPosZ) == 1) { - player->statusEffects |= 0x400000; + player->statusEffects |= REVERSE_EFFECT; } } } @@ -5962,7 +5962,7 @@ void func_80012DC0(s32 playerId, Player *player) { if ((x_dist > -100.0) && (x_dist < 100.0)) { if ((z_dist > -100.0) && (z_dist < 100.0)) { if (func_80006018(trainCar->position[0], trainCar->position[2], trainCar->velocity[0], trainCar->velocity[2], 30.0f, 20.0f, playerPosX, playerPosZ) == 1) { - player->statusEffects |= 0x400000; + player->statusEffects |= REVERSE_EFFECT; } } } @@ -6040,7 +6040,7 @@ void func_800131DC(s32 playerId) { } extern s16 D_801630FC; -extern s8 D_8018EDF3; +extern s8 gPlayerCount; void func_800132F4(void) { PaddleWheelBoatStuff *var_a1; s32 i; @@ -6059,7 +6059,7 @@ void func_800132F4(void) { var_a1->wayPointIndex = i * 0xB4; var_a1->actorIndex = -1; - if (D_8018EDF3 >= 3) { + if (gPlayerCount >= 3) { var_a1->isActive = 0; } else { var_a1->isActive = 1; @@ -6213,7 +6213,7 @@ void func_80013854(Player *player) { f32 playerZ; f32 playerY; - if (!((player->unk_0BC & 0x01000000)) && (!(player->unk_0BC & 0x02000000))) { + if (!((player->effects & 0x01000000)) && (!(player->effects & 0x02000000))) { playerX = player->pos[0]; playerY = player->pos[1]; playerZ = player->pos[2]; @@ -6423,7 +6423,7 @@ void func_80013F7C(s32 playerId, Player *player, VehicleStuff *vehicle, f32 arg3 temp_s7 = playerId * 2; var_s0 = vehicle; - if (((*(&D_801631E0 + temp_s7) != 1) || ((temp_v0 = player->unk_000, ((temp_v0 & 0x4000) != 0)) && !(temp_v0 & 0x1000))) && ((player->unk_0BC << 7) >= 0)) { + if (((*(&D_801631E0 + temp_s7) != 1) || ((temp_v0 = player->type, ((temp_v0 & 0x4000) != 0)) && !(temp_v0 & 0x1000))) && ((player->effects << 7) >= 0)) { spC4 = player->pos[0]; var_fp = 0; spC0 = player->pos[1]; @@ -6440,11 +6440,11 @@ void func_80013F7C(s32 playerId, Player *player, VehicleStuff *vehicle, f32 arg3 if ((temp_f0 > -20.0) && (temp_f0 < 20.0)) { temp_f0_2 = (f64) temp_f24; if ((temp_f0_2 > -100.0) && (temp_f0_2 < 100.0) && (func_80006018(temp_f12, temp_f14, var_s0->velocity[0], var_s0->velocity[2], arg3, arg4, spC4, spBC) == (s32) 1U)) { - player->statusEffects |= 0x400000; + player->statusEffects |= REVERSE_EFFECT; } } } - temp_v0_2 = player->unk_000; + temp_v0_2 = player->type; if ((temp_v0_2 & 0x4000) && !(temp_v0_2 & 0x1000)) { temp_s2 = 1 << playerId; if ((temp_f20 > -300.0) && (temp_f20 < 300.0) && (temp_f0_3 = (f64) temp_f22, (temp_f0_3 > -20.0)) && (temp_f0_3 < 20.0) && (temp_f0_4 = (f64) temp_f24, (temp_f0_4 > -300.0)) && (temp_f0_4 < 300.0)) { @@ -6999,7 +6999,7 @@ void func_80015390(Camera *camera, UNUSED Player *player, UNUSED s32 arg2) { } else { var_a2 = 0xA0 + (temp_s1->unk_078 / 16); } - if (!((temp_s1->unk_0BC & 0x80) || (temp_s1->unk_0BC & 0x40))) { + if (!((temp_s1->effects & 0x80) || (temp_s1->effects & 0x40))) { func_800224F0(&camera->unk_2C, temp_s1->unk_02C[1], var_a2); } func_8001D794(temp_s1, camera, sp64, &sp84, &sp80, &sp7C, camera->unk_2C); @@ -9089,7 +9089,7 @@ void func_8001A220(s32 arg0, s32 arg1) { } s32 func_8001A310(s32 arg0, s32 arg1) { - if ((gCurrentCourseId == 2) && (arg1 != 0) && (arg0 >= 0xE7) && (arg0 < 0x1C2)) { + if ((gCurrentCourseId == COURSE_BOWSER_CASTLE) && (arg1 != 0) && (arg0 >= 0xE7) && (arg0 < 0x1C2)) { arg1 = 0; } return arg1; @@ -9151,7 +9151,7 @@ void func_8001A450(s32 playerId, s32 arg1, s32 arg2) { s16 temp_v0; s16 temp_v1; - if (!(*(&gPlayers->unk_0BC + (playerId * 0xDD8)) & 0x1000000C) && ((temp_a2 = (arg1 * 2) + &D_80164680, temp_v1 = *temp_a2, sp18 = temp_a2, sp24 = (s32) temp_v1, temp_v0 = func_8001A310(gNearestWaypointByCameraId[arg1], (s32) (temp_v1 + 1) % 10, temp_a2, playerId), (temp_v0 != temp_v1)) || (arg2 != playerId))) { + if (!(*(&gPlayers->effects + (playerId * 0xDD8)) & 0x1000000C) && ((temp_a2 = (arg1 * 2) + &D_80164680, temp_v1 = *temp_a2, sp18 = temp_a2, sp24 = (s32) temp_v1, temp_v0 = func_8001A310(gNearestWaypointByCameraId[arg1], (s32) (temp_v1 + 1) % 10, temp_a2, playerId), (temp_v0 != temp_v1)) || (arg2 != playerId))) { *temp_a2 = temp_v0; func_80019890(arg2, arg1, temp_a2, playerId); } @@ -9277,7 +9277,7 @@ void func_8001A588(u16 *arg0, Camera *camera, Player *arg2, s8 arg3, s32 arg4) { } if ((gModeSelection != TIME_TRIALS) && (arg4 == 1) && ((temp_v0_5 = D_801646C8, (temp_v0_5 == 0x00000104)) || (temp_v0_5 == 0x00000105))) { var_v1 = 0; - if (D_8018EDF3 == 2) { + if (gPlayerCount == 2) { func_8001A518((s32) var_s0, gGPCurrentRaceRankByPlayerId[var_s0], 1, arg4); } else { sp44 = (s32) var_s0; @@ -9510,14 +9510,14 @@ void func_8001AC10(s32 playerId) { temp_t9 = &gPlayerOne[playerId]; sp2C = temp_t9; - if ((gModeSelection != (s32) 1) && (D_801646CC != (u16) 1) && !(temp_t9->unk_000 & 0x800)) { + if ((gModeSelection != (s32) 1) && (D_801646CC != (u16) 1) && !(temp_t9->type & 0x800)) { temp_s0 = (playerId * 0x10) + &D_801642D8; temp_a1 = temp_s0->unk0; switch (temp_a1) { /* switch 1 */ case 0: /* switch 1 */ temp_s0->ffff = -1; if ((((playerId * 0x14) + 0x64) < D_80164450[playerId]) && (temp_s0->timer >= 0x259) && (temp_s0->laps < 3) && (temp_v1 = gLapCountByPlayerId[playerId], ((temp_v1 < 3) != 0))) { - func_8001AB74(playerId, temp_s0, func_8007AF78((s32) (s16) temp_v1, gGPCurrentRaceRankByPlayerId[playerId].unk2)); + func_8001AB74(playerId, temp_s0, gen_random_item_cpu((s32) (s16) temp_v1, gGPCurrentRaceRankByPlayerId[playerId].unk2)); } else { func_8001ABE0(playerId, (s32) temp_s0); } @@ -9544,7 +9544,7 @@ void func_8001AC10(s32 playerId) { break; } } else if (temp_a1 == 1) { - temp_s0->ffff = func_802B2D70(sp2C); + temp_s0->ffff = use_banana_item(sp2C); temp_v1_3 = temp_s0->ffff; if ((temp_v1_3 >= 0) && (temp_v1_3 < 0x64)) { sp2C->statusEffects |= 0x40000; @@ -9589,7 +9589,7 @@ void func_8001AC10(s32 playerId) { temp_s0->unk0 = 0; break; case 34: /* switch 1 */ - temp_s0->ffff = func_802B2D70(sp2C); + temp_s0->ffff = use_banana_item(sp2C); temp_v1_4 = temp_s0->ffff; if ((temp_v1_4 >= 0) && (temp_v1_4 < 0x64)) { temp_a3_3 = &gActorList[temp_v1_4]; @@ -9605,7 +9605,7 @@ void func_8001AC10(s32 playerId) { temp_a3_3->velocity[2] = (f32) ((f64) ((f32) temp_v0_2->wayPointZ - sp2C->pos[2]) / 20.0); temp_a3_3->pos[1] = sp2C->pos[1]; func_800C92CC(playerId & 0xFF, 0x29008009, temp_a2 * 2, temp_a3_3); - func_800C98B8(sp2C->pos, sp2C->unk_034, 0x19018014U); + func_800C98B8(sp2C->pos, sp2C->velocity, 0x19018014U); } else { temp_s0->timer = 0; temp_s0->unk0 = 0; @@ -9647,7 +9647,7 @@ void func_8001AC10(s32 playerId) { break; case 4: /* switch 1 */ if ((s32) gNumActors < 0x50) { - temp_s0->ffff = func_802B1C9C(sp2C); + temp_s0->ffff = use_green_shell_item(sp2C); temp_v1_5 = temp_s0->ffff; if ((temp_v1_5 >= 0) && (temp_v1_5 < 0x64)) { temp_s0->unk0 = 5; @@ -9685,7 +9685,7 @@ block_71: break; case 7: /* switch 1 */ if ((s32) gNumActors < 0x50) { - temp_s0->ffff = func_802B1E48(sp2C); + temp_s0->ffff = use_red_shell_item(sp2C); temp_v1_6 = temp_s0->ffff; if ((temp_v1_6 >= 0) && (temp_v1_6 < 0x64)) { temp_s0->unk0 = 8; @@ -9723,7 +9723,7 @@ block_92: break; case 10: /* switch 1 */ if ((s32) gNumActors < 0x50) { - temp_s0->ffff = func_802B17F4(sp2C); + temp_s0->ffff = use_banana_bunch_item(sp2C); temp_v1_7 = temp_s0->ffff; if ((temp_v1_7 >= 0) && (temp_v1_7 < 0x64)) { temp_s0->unk0 = 0x000B; @@ -9814,7 +9814,7 @@ block_146: } break; case 13: /* switch 1 */ - temp_s0->ffff = func_802B2C40(sp2C); + temp_s0->ffff = use_fake_itembox_item(sp2C); temp_v1_9 = temp_s0->ffff; if ((temp_v1_9 >= 0) && (temp_v1_9 < 0x64)) { temp_s0->unk0 = 0x000E; @@ -9852,7 +9852,7 @@ block_146: temp_s0->unk0 = 0; break; case 22: /* switch 1 */ - func_802B2EBC(sp2C); + use_thunder_item(sp2C); func_800CAC60(playerId & 0xFF); func_8009E5BC(); temp_s0->timer = 0; @@ -9873,7 +9873,7 @@ block_146: temp_s0->laps += 1; break; case 26: /* switch 1 */ - if (!(sp2C->unk_0BC & 0x200)) { + if (!(sp2C->effects & 0x200)) { temp_s0->unk0 = 0; } temp_s0->timer = 0; @@ -9885,7 +9885,7 @@ block_146: temp_s0->laps += 1; break; case 28: /* switch 1 */ - if (!(sp2C->unk_0BC & 0x80000000)) { + if (!(sp2C->effects & 0x80000000)) { temp_s0->unk0 = 0; } temp_s0->timer = 0; @@ -9928,7 +9928,7 @@ block_146: if (temp_s0->timer < 0x2710) { temp_s0->timer += 1; } - if (sp2C->unk_0BC & 0x80002200) { + if (sp2C->effects & 0x80002200) { temp_s0->timer = 0; } } @@ -9947,7 +9947,7 @@ void func_8001BE78(void) { func_8000F628(); for (i = 0; i < 4; i++) { temp_s1 = &gPlayerOne[i]; - temp_s1->unk_000 &= 0xDFFF; + temp_s1->type &= 0xDFFF; gPathIndexByPlayerId[i] = i; D_801634F8[i].unkC = 0.0f; D_801634F8[i].unk4 = 0.0f; @@ -10052,7 +10052,7 @@ loop_8: if ((var_s1 != 3) || (D_8016347C != 0)) { temp_s0 = &gPlayerOne[var_s1]; func_80009B60(var_s1); - temp_v1 = temp_s0->unk_000; + temp_v1 = temp_s0->type; temp_v0 = var_s1 * 4; if ((temp_v1 & 0x2000) == 0) { temp_f0 = *(&D_80163418 + temp_v0) - temp_s0->pos[0]; @@ -10060,22 +10060,22 @@ loop_8: if ((f64) ((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) < 1.0) { if (var_s1 != 3) { if (D_8016347C == 0) { - temp_s0->unk_000 = temp_v1 | 0x2000; + temp_s0->type = temp_v1 | 0x2000; } else { - temp_s0->unk_000 = temp_v1 & 0xDFFF; + temp_s0->type = temp_v1 & 0xDFFF; } - if (((gPlayerOne->unk_000 & 0x2000) != 0) && ((gPlayerTwo->unk_000 & 0x2000) != 0) && ((gPlayerThree->unk_000 & 0x2000) != 0)) { + if (((gPlayerOne->type & 0x2000) != 0) && ((gPlayerTwo->type & 0x2000) != 0) && ((gPlayerThree->type & 0x2000) != 0)) { D_8016347C = 1; D_80163480 = 0; } } else if (D_8016347E == 0) { - if ((temp_s0->unk_0BC & 0x01000000) == 0) { - temp_s0->unk_000 = temp_v1 | 0x2000; + if ((temp_s0->effects & 0x01000000) == 0) { + temp_s0->type = temp_v1 | 0x2000; } D_8016347E = 1; D_80163484 = 0; - } else if ((temp_s0->unk_0BC & 0x01000000) == 0) { - temp_s0->unk_000 = temp_v1 | 0x2000; + } else if ((temp_s0->effects & 0x01000000) == 0) { + temp_s0->type = temp_v1 | 0x2000; } } } diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h index 0e4d844aa..91d8f4010 100644 --- a/src/code_80005FD0.h +++ b/src/code_80005FD0.h @@ -111,7 +111,7 @@ void func_80011AB8(s32); void func_80011AE4(s32); void func_80012220(VehicleStuff*); -void func_800122D8(void); +void init_course_vehicles(void); void func_80012A48(TrainCarStuff*, s16); void func_80012AC0(void); void func_80012DC0(s32, Player*); diff --git a/src/code_8001F980.c b/src/code_8001F980.c index 0019cc632..22b781731 100644 --- a/src/code_8001F980.c +++ b/src/code_8001F980.c @@ -57,15 +57,15 @@ void func_8001F9E4(Player *player, Camera *camera, s8 arg2) { player->unk_002 &= ~(2 << (arg2 * 4)); player->unk_002 &= ~(8 << (arg2 * 4)); - if (func_8001FB0C(player, camera, (f32) (D_80165578 + sp30), (f32) (D_8016557A + sp2C)) == 1) { + if (check_player_camera_collision(player, camera, (f32) (D_80165578 + sp30), (f32) (D_8016557A + sp2C)) == 1) { player->unk_002 |= 2 << (arg2 * 4); } - if (func_8001FB0C(player, camera, (f32) D_80165580, (f32) D_80165582) == 1) { + if (check_player_camera_collision(player, camera, (f32) D_80165580, (f32) D_80165582) == 1) { player->unk_002 |= 8 << (arg2 * 4); } } -u16 func_8001FB0C(Player *player, Camera *camera, f32 arg2, f32 arg3) { +u16 check_player_camera_collision(Player *player, Camera *camera, f32 arg2, f32 arg3) { UNUSED f32 pad[6]; f32 sp64; f32 sp60; @@ -139,7 +139,7 @@ u16 func_8001FD78(Player *player, f32 posX, UNUSED f32 arg2, f32 posZ) { return ret; } -void func_80020000(Player *player, Camera *camera, s8 arg2, s8 arg3) { +void func_80020000(Player *player, Camera *camera, s8 playerId, s8 arg3) { s32 pad[4]; s32 sp4C; s32 sp48; @@ -147,15 +147,15 @@ void func_80020000(Player *player, Camera *camera, s8 arg2, s8 arg3) { s32 temp_v0; s32 temp_v0_2; - if ((player->unk_000 & 0x8000) == 0x8000) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { func_8001F9E4(player, camera, arg3); temp_v0 = 2 << (arg3 << 2); if (temp_v0 == (player->unk_002 & temp_v0)) { - if (!(player->unk_000 & 0x2000)) { - func_8002934C(player, camera, arg3, arg2); + if (!(player->type & PLAYER_START_SEQUENCE)) { + func_8002934C(player, camera, arg3, playerId); } else { - func_8002934C(player, camera, arg3, arg2); - player->unk_0C4 = 0; + func_8002934C(player, camera, arg3, playerId); + player->slopeAccel = 0; player->unk_206 = 0; player->unk_050[arg3] = 0; } @@ -163,48 +163,48 @@ void func_80020000(Player *player, Camera *camera, s8 arg2, s8 arg3) { func_8001F980(&sp4C, &sp48); temp_v0_2 = 1 << (arg3 << 2); if ((temp_v0 == (player->unk_002 & temp_v0)) && (temp_v0_2 == (player->unk_002 & temp_v0_2))) { - if ((func_8001FB0C(player, camera, D_80165570 + sp4C, D_80165572 + sp48) == 1) & 0xFFFF) { - D_80164AB0[D_800DDB58] = (s16) arg2; + if ((check_player_camera_collision(player, camera, D_80165570 + sp4C, D_80165572 + sp48) == 1) & 0xFFFF) { + D_80164AB0[D_800DDB58] = (s16) playerId; D_80164AC0[D_800DDB58] = (s16) arg3; D_80164AD0[D_800DDB58] = player; D_800DDB58 += 1; - D_80165190[arg3][arg2] = 0; - D_801650D0[arg3][arg2] = player->unk_244[arg3]; - D_80165110[arg3][arg2] = player->unk_24C[arg3]; - D_80165150[arg3][arg2] = player->unk_0A8; - D_801651D0[arg3][arg2] += 1; - if (D_801651D0[arg3][arg2] == 2) { - D_801651D0[arg3][arg2] = 0; + D_80165190[arg3][playerId] = 0; + D_801650D0[arg3][playerId] = player->animFrameSelector[arg3]; + D_80165110[arg3][playerId] = player->animGroupSelector[arg3]; + D_80165150[arg3][playerId] = player->unk_0A8; + D_801651D0[arg3][playerId] += 1; + if (D_801651D0[arg3][playerId] == 2) { + D_801651D0[arg3][playerId] = 0; } } else { - if ((func_8001FB0C(player, camera, D_80165574 + sp4C, D_80165576) == 1) & 0xFFFF) { - if ((sRenderingFramebuffer == D_800DDB50[arg2]) || ((D_801650D0[arg3][arg2] - player->unk_244[arg3]) > 0x13) || ((D_801650D0[arg3][arg2] - player->unk_244[arg3]) < -0x13) || (D_80165190[arg3][arg2] == (s16) 1U)) { - D_80164AB0[D_800DDB58] = (s16) arg2; + if ((check_player_camera_collision(player, camera, D_80165574 + sp4C, D_80165576) == 1) & 0xFFFF) { + if ((sRenderingFramebuffer == D_800DDB50[playerId]) || ((D_801650D0[arg3][playerId] - player->animFrameSelector[arg3]) > 0x13) || ((D_801650D0[arg3][playerId] - player->animFrameSelector[arg3]) < -0x13) || (D_80165190[arg3][playerId] == (s16) 1U)) { + D_80164AB0[D_800DDB58] = (s16) playerId; D_80164AC0[D_800DDB58] = (s16) arg3; D_80164AD0[D_800DDB58] = player; D_800DDB58 += 1; - D_801650D0[arg3][arg2] = player->unk_244[arg3]; - D_80165110[arg3][arg2] = player->unk_24C[arg3]; - D_80165150[arg3][arg2] = player->unk_0A8; - D_80165190[arg3][arg2] = 0; - D_801651D0[arg3][arg2] += 1; - if (D_801651D0[arg3][arg2] == 2) { - D_801651D0[arg3][arg2] = 0; + D_801650D0[arg3][playerId] = player->animFrameSelector[arg3]; + D_80165110[arg3][playerId] = player->animGroupSelector[arg3]; + D_80165150[arg3][playerId] = player->unk_0A8; + D_80165190[arg3][playerId] = 0; + D_801651D0[arg3][playerId] += 1; + if (D_801651D0[arg3][playerId] == 2) { + D_801651D0[arg3][playerId] = 0; } } } else { - if (((D_801650D0[arg3][arg2] - player->unk_244[arg3]) > 0x13) || ((D_801650D0[arg3][arg2] - player->unk_244[arg3]) < -0x13) || (D_80165190[arg3][arg2] == (s16) 1U)) { - D_80164AB0[D_800DDB58] = (s16) arg2; + if (((D_801650D0[arg3][playerId] - player->animFrameSelector[arg3]) > 0x13) || ((D_801650D0[arg3][playerId] - player->animFrameSelector[arg3]) < -0x13) || (D_80165190[arg3][playerId] == (s16) 1U)) { + D_80164AB0[D_800DDB58] = (s16) playerId; D_80164AC0[D_800DDB58] = (s16) arg3; D_80164AD0[D_800DDB58] = player; D_800DDB58 += 1; - D_801650D0[arg3][arg2] = (s16) player->unk_244[arg3]; - D_80165110[arg3][arg2] = player->unk_24C[arg3]; - D_80165150[arg3][arg2] = player->unk_0A8; - D_80165190[arg3][arg2] = 0; - D_801651D0[arg3][arg2] += 1; - if (D_801651D0[arg3][arg2] == 2) { - D_801651D0[arg3][arg2] = 0; + D_801650D0[arg3][playerId] = (s16) player->animFrameSelector[arg3]; + D_80165110[arg3][playerId] = player->animGroupSelector[arg3]; + D_80165150[arg3][playerId] = player->unk_0A8; + D_80165190[arg3][playerId] = 0; + D_801651D0[arg3][playerId] += 1; + if (D_801651D0[arg3][playerId] == 2) { + D_801651D0[arg3][playerId] = 0; } } } @@ -307,8 +307,8 @@ void func_80020F1C(void) { void func_80021244(Player *player, s8 arg1, s8 arg2) { - if (((player->unk_000 & PLAYER_EXISTS) == PLAYER_EXISTS) - && ((player->unk_000 & 0x40) == 0)) { + if (((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) + && ((player->type & 0x40) == 0)) { if ((player->unk_002 & 2 << (arg2 * 4)) == 2 << (arg2 * 4)) { func_800267AC(player, arg1, arg2); } @@ -375,7 +375,7 @@ Vtx *D_800DDBB4[] = { D_800E4DC0, D_800E4EC0, D_800E4FD0, D_800E50D0 }; -f32 D_800DDBD4[] = { +f32 gCharacterSize[] = { 0.75f, 0.75f, 0.75f, 0.75f, 0.75f, 0.75f, 0.75f, 0.75f }; @@ -629,37 +629,31 @@ void func_80021DA8(void) { func_8006E940(gPlayerFour, 3, 3); } -void func_80021E10(Mat4 arg0, Vec3f arg1, Vec3s arg2) { +void mtxf_translate_rotate(Mat4 dest, Vec3f pos, Vec3s orientation) { UNUSED f32 pad[3]; - f32 sin1; - f32 cos1; - f32 sin2; - f32 cos2; - f32 sin3; - f32 cos3; + f32 sinX = sins(orientation[0]); + f32 cosX = coss(orientation[0]); + f32 sinY = sins(orientation[1]); + f32 cosY = coss(orientation[1]); + f32 sinZ = sins(orientation[2]); + f32 cosZ = coss(orientation[2]); - sin1 = sins(arg2[0]); - cos1 = coss(arg2[0]); - sin2 = sins(arg2[1]); - cos2 = coss(arg2[1]); - sin3 = sins(arg2[2]); - cos3 = coss(arg2[2]); - arg0[0][0] = (cos2 * cos3) + ((sin1 * sin2) * sin3); - arg0[1][0] = (-cos2 * sin3) + ((sin1 * sin2) * cos3); - arg0[2][0] = cos1 * sin2; - arg0[3][0] = arg1[0]; - arg0[0][1] = cos1 * sin3; - arg0[1][1] = cos1 * cos3; - arg0[2][1] = -sin1; - arg0[3][1] = arg1[1]; - arg0[0][2] = (-sin2 * cos3) + ((sin1 * cos2) * sin3); - arg0[1][2] = (sin2 * sin3) + ((sin1 * cos2) * cos3); - arg0[2][2] = cos1 * cos2; - arg0[3][2] = arg1[2]; - arg0[0][3] = 0.0f; - arg0[1][3] = 0.0f; - arg0[2][3] = 0.0f; - arg0[3][3] = 1.0f; + dest[0][0] = (cosY * cosZ) + ((sinX * sinY) * sinZ); + dest[1][0] = (-cosY * sinZ) + ((sinX * sinY) * cosZ); + dest[2][0] = cosX * sinY; + dest[3][0] = pos[0]; + dest[0][1] = cosX * sinZ; + dest[1][1] = cosX * cosZ; + dest[2][1] = -sinX; + dest[3][1] = pos[1]; + dest[0][2] = (-sinY * cosZ) + ((sinX * cosY) * sinZ); + dest[1][2] = (sinY * sinZ) + ((sinX * cosY) * cosZ); + dest[2][2] = cosX * cosY; + dest[3][2] = pos[2]; + dest[0][3] = 0.0f; + dest[1][3] = 0.0f; + dest[2][3] = 0.0f; + dest[3][3] = 1.0f; } UNUSED void func_80021F50(Mat4 arg0, Vec3f arg1) { @@ -668,16 +662,16 @@ UNUSED void func_80021F50(Mat4 arg0, Vec3f arg1) { arg0[3][2] += arg1[2]; } -void func_80021F84(Mat4 arg0, f32 arg1) { - arg0[0][0] *= arg1; - arg0[1][0] *= arg1; - arg0[2][0] *= arg1; - arg0[0][1] *= arg1; - arg0[1][1] *= arg1; - arg0[2][1] *= arg1; - arg0[0][2] *= arg1; - arg0[1][2] *= arg1; - arg0[2][2] *= arg1; +void mtxf_scale2(Mat4 arg0, f32 scale) { + arg0[0][0] *= scale; + arg0[1][0] *= scale; + arg0[2][0] *= scale; + arg0[0][1] *= scale; + arg0[1][1] *= scale; + arg0[2][1] *= scale; + arg0[0][2] *= scale; + arg0[1][2] *= scale; + arg0[2][2] *= scale; } UNUSED void func_80021FF8(Mtx *arg0, Mat4 arg1) { @@ -700,24 +694,24 @@ UNUSED void func_80021FF8(Mtx *arg0, Mat4 arg1) { arg0->m[3][3] = arg1[3][3] * someMultiplier; } -void func_80022180(Mtx *arg0, Mat4 arg1) { +void convert_to_fixed_point_matrix(Mtx *fixedPointMatrix, Mat4 arg1) { f32 someMultiplier = 65536.0f; - arg0->m[0][0] = ((s32) (arg1[0][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[0][1] * someMultiplier) >> 0x10) & 0xFFFF); - arg0->m[0][1] = ((s32) (arg1[0][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[0][3] * someMultiplier) >> 0x10) & 0xFFFF); - arg0->m[0][2] = ((s32) (arg1[1][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[1][1] * someMultiplier) >> 0x10) & 0xFFFF); - arg0->m[0][3] = ((s32) (arg1[1][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[1][3] * someMultiplier) >> 0x10) & 0xFFFF); - arg0->m[1][0] = ((s32) (arg1[2][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[2][1] * someMultiplier) >> 0x10) & 0xFFFF); - arg0->m[1][1] = ((s32) (arg1[2][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[2][3] * someMultiplier) >> 0x10) & 0xFFFF); - arg0->m[1][2] = ((s32) (arg1[3][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[3][1] * someMultiplier) >> 0x10) & 0xFFFF); - arg0->m[1][3] = ((s32) (arg1[3][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[3][3] * someMultiplier) >> 0x10) & 0xFFFF); - arg0->m[2][0] = ((s32) (arg1[0][0] * someMultiplier) << 0x10) | ((s32) (arg1[0][1] * someMultiplier) & 0xFFFF); - arg0->m[2][1] = ((s32) (arg1[0][2] * someMultiplier) << 0x10) | ((s32) (arg1[0][3] * someMultiplier) & 0xFFFF); - arg0->m[2][2] = ((s32) (arg1[1][0] * someMultiplier) << 0x10) | ((s32) (arg1[1][1] * someMultiplier) & 0xFFFF); - arg0->m[2][3] = ((s32) (arg1[1][2] * someMultiplier) << 0x10) | ((s32) (arg1[1][3] * someMultiplier) & 0xFFFF); - arg0->m[3][0] = ((s32) (arg1[2][0] * someMultiplier) << 0x10) | ((s32) (arg1[2][1] * someMultiplier) & 0xFFFF); - arg0->m[3][1] = ((s32) (arg1[2][2] * someMultiplier) << 0x10) | ((s32) (arg1[2][3] * someMultiplier) & 0xFFFF); - arg0->m[3][2] = ((s32) (arg1[3][0] * someMultiplier) << 0x10) | ((s32) (arg1[3][1] * someMultiplier) & 0xFFFF); - arg0->m[3][3] = ((s32) (arg1[3][2] * someMultiplier) << 0x10) | ((s32) (arg1[3][3] * someMultiplier) & 0xFFFF); + fixedPointMatrix->m[0][0] = ((s32) (arg1[0][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[0][1] * someMultiplier) >> 0x10) & 0xFFFF); + fixedPointMatrix->m[0][1] = ((s32) (arg1[0][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[0][3] * someMultiplier) >> 0x10) & 0xFFFF); + fixedPointMatrix->m[0][2] = ((s32) (arg1[1][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[1][1] * someMultiplier) >> 0x10) & 0xFFFF); + fixedPointMatrix->m[0][3] = ((s32) (arg1[1][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[1][3] * someMultiplier) >> 0x10) & 0xFFFF); + fixedPointMatrix->m[1][0] = ((s32) (arg1[2][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[2][1] * someMultiplier) >> 0x10) & 0xFFFF); + fixedPointMatrix->m[1][1] = ((s32) (arg1[2][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[2][3] * someMultiplier) >> 0x10) & 0xFFFF); + fixedPointMatrix->m[1][2] = ((s32) (arg1[3][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[3][1] * someMultiplier) >> 0x10) & 0xFFFF); + fixedPointMatrix->m[1][3] = ((s32) (arg1[3][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[3][3] * someMultiplier) >> 0x10) & 0xFFFF); + fixedPointMatrix->m[2][0] = ((s32) (arg1[0][0] * someMultiplier) << 0x10) | ((s32) (arg1[0][1] * someMultiplier) & 0xFFFF); + fixedPointMatrix->m[2][1] = ((s32) (arg1[0][2] * someMultiplier) << 0x10) | ((s32) (arg1[0][3] * someMultiplier) & 0xFFFF); + fixedPointMatrix->m[2][2] = ((s32) (arg1[1][0] * someMultiplier) << 0x10) | ((s32) (arg1[1][1] * someMultiplier) & 0xFFFF); + fixedPointMatrix->m[2][3] = ((s32) (arg1[1][2] * someMultiplier) << 0x10) | ((s32) (arg1[1][3] * someMultiplier) & 0xFFFF); + fixedPointMatrix->m[3][0] = ((s32) (arg1[2][0] * someMultiplier) << 0x10) | ((s32) (arg1[2][1] * someMultiplier) & 0xFFFF); + fixedPointMatrix->m[3][1] = ((s32) (arg1[2][2] * someMultiplier) << 0x10) | ((s32) (arg1[2][3] * someMultiplier) & 0xFFFF); + fixedPointMatrix->m[3][2] = ((s32) (arg1[3][0] * someMultiplier) << 0x10) | ((s32) (arg1[3][1] * someMultiplier) & 0xFFFF); + fixedPointMatrix->m[3][3] = ((s32) (arg1[3][2] * someMultiplier) << 0x10) | ((s32) (arg1[3][3] * someMultiplier) & 0xFFFF); } s32 func_800224F0(s16 *arg0, s16 arg1, s16 arg2) { @@ -810,10 +804,10 @@ void func_8002276C(void) { break; case TIME_TRIALS: /* switch 1 */ func_80022A98(gPlayerOne, 0); - if ((gPlayerTwo->unk_000 & 0x100) == 0x100) { + if ((gPlayerTwo->type & 0x100) == 0x100) { func_80022A98(gPlayerTwo, 1); } - if ((gPlayerThree->unk_000 & 0x100) == 0x100) { + if ((gPlayerThree->type & 0x100) == 0x100) { func_80022A98(gPlayerThree, 2); } break; @@ -867,14 +861,14 @@ void func_8002276C(void) { } void func_80022A98(Player* player, s8 arg1) { - if ((player->unk_000 & PLAYER_EXISTS) == PLAYER_EXISTS) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { func_80026A48(player, arg1); func_800235AC(player, arg1); - if (((player->unk_0BC & 0x04000000) == 0x04000000) || ((player->unk_0BC & 0x08000000) == 0x08000000)) { - if ((player->unk_0BC & 0x04000000) == 0x04000000) { + if (((player->effects & 0x04000000) == 0x04000000) || ((player->effects & 0x08000000) == 0x08000000)) { + if ((player->effects & 0x04000000) == 0x04000000) { func_80022B50(player, arg1); } - if ((player->unk_0BC & 0x08000000) == 0x08000000) { + if ((player->effects & 0x08000000) == 0x08000000) { func_80022BC4(player, arg1); } } else { @@ -913,7 +907,7 @@ void func_80022BC4(Player *player, UNUSED s8 arg1) { temp_f0 *= 0.8; temp_v0 = 0; if (temp_f0 <= 0.1) { - player->unk_0BC &= 0xF7FFFFFF; + player->effects &= 0xF7FFFFFF; temp_f0 = 0.0f; } } @@ -984,70 +978,70 @@ void func_80022E84(Player *player, s8 arg1, UNUSED s8 arg2, s8 arg3) { /** * Sets player shading/colour. */ -void func_80022F14(UNUSED Player *player, s8 arg1, s32 arg2, f32 arg3) { - D_80164B10[arg1] = (s16) ((f32)D_80164B10[arg1] - ((D_80164B10[arg1] - ((arg2 >> 16) & 0xFF)) * arg3)); +void change_player_color_effect_rgb(UNUSED Player *player, s8 arg1, s32 arg2, f32 arg3) { + gPlayerRedEffect[arg1] = (s16) ((f32)gPlayerRedEffect[arg1] - ((gPlayerRedEffect[arg1] - ((arg2 >> 16) & 0xFF)) * arg3)); - D_80164B20[arg1] = (s16) ((f32)D_80164B20[arg1] - ((D_80164B20[arg1] - ((arg2 >> 8) & 0xFF)) * arg3)); + gPlayerGreenEffect[arg1] = (s16) ((f32)gPlayerGreenEffect[arg1] - ((gPlayerGreenEffect[arg1] - ((arg2 >> 8) & 0xFF)) * arg3)); - D_80164B30[arg1] = (s16) ((f32)D_80164B30[arg1] - ((D_80164B30[arg1] - (arg2 & 0xFF)) * arg3)); + gPlayerBlueEffect[arg1] = (s16) ((f32)gPlayerBlueEffect[arg1] - ((gPlayerBlueEffect[arg1] - (arg2 & 0xFF)) * arg3)); } -void func_80023038(UNUSED Player *player, s8 arg1, s32 arg2, f32 arg3) { - move_u16_towards(&D_80164B40[arg1], (arg2 >> 16) & 0xFF, arg3); - move_u16_towards(&D_80164B50[arg1], (arg2 >> 8) & 0xFF, arg3); - move_u16_towards(&D_80164B60[arg1], arg2 & 0xFF, arg3); +void change_player_color_effect_cmy(UNUSED Player *player, s8 arg1, s32 arg2, f32 arg3) { + move_u16_towards(&gPlayerCyanEffect[arg1], (arg2 >> 16) & 0xFF, arg3); + move_u16_towards(&gPlayerMagentaEffect[arg1], (arg2 >> 8) & 0xFF, arg3); + move_u16_towards(&gPlayerYellowEffect[arg1], arg2 & 0xFF, arg3); } /** * Activates in the tunnel to shade the player a bit darker * Sort of an atmospheric effect. */ -s32 func_800230E4(Player *player, s8 arg1) { +bool is_player_under_light_luigi_raceway(Player *player, s8 arg1) { switch (gCurrentCourseId) { - case 8: + case COURSE_LUIGI_RACEWAY: if (((gNearestWaypointByPlayerId[arg1] >= 0x14F) && (gNearestWaypointByPlayerId[arg1] < 0x158)) || ((gNearestWaypointByPlayerId[arg1] >= 0x15E) && (gNearestWaypointByPlayerId[arg1] < 0x164)) || ((gNearestWaypointByPlayerId[arg1] >= 0x169) && (gNearestWaypointByPlayerId[arg1] < 0x170)) || ((gNearestWaypointByPlayerId[arg1] >= 0x174) && (gNearestWaypointByPlayerId[arg1] < 0x17A)) - || ((gNearestWaypointByPlayerId[arg1] >= 0x17E) && (gNearestWaypointByPlayerId[arg1] < 0x184))) { - func_80022F14(player, arg1, 0x1C0000, 0.3f); - func_80023038(player, arg1, 0xE0, 0.3f); + || ((gNearestWaypointByPlayerId[arg1] >= 0x17E) && (gNearestWaypointByPlayerId[arg1] < 0x184))) { // under a light in the tunnel + change_player_color_effect_rgb(player, arg1, GPACK_RGB888(0x1C, 0x00, 0x00), 0.3f); + change_player_color_effect_cmy(player, arg1, 0xE0, 0.3f); D_80164B80[arg1] = 0; - return 1; + return TRUE; } - return 0; + return FALSE; default: - return 0; + return FALSE; } } void func_800231D8(Player *player, s8 arg1) { switch(gCurrentCourseId) { - case 2: + case COURSE_BOWSER_CASTLE: if (((gNearestWaypointByPlayerId[arg1] >= 0x15) && (gNearestWaypointByPlayerId[arg1] < 0x2A)) || ((gNearestWaypointByPlayerId[arg1] >= 0x14D) && (gNearestWaypointByPlayerId[arg1] < 0x15C)) || ((gNearestWaypointByPlayerId[arg1] >= 0x1D1) && (gNearestWaypointByPlayerId[arg1] < 0x1E4)) - || (player->unk_110.unk3C[2] >= 500.0f)) { - func_80022F14(player, arg1, 0x340000, 0.3f); - func_80023038(player, arg1, 0x4040, 0.3f); + || (player->unk_110.unk3C[2] >= 500.0f)) { // over lava + change_player_color_effect_rgb(player, arg1, GPACK_RGB888(0x34, 0x00, 0x00), 0.3f); + change_player_color_effect_cmy(player, arg1, 0x004040, 0.3f); D_80164B80[arg1] = 0; } else if (((gNearestWaypointByPlayerId[arg1] >= 0xF1) && (gNearestWaypointByPlayerId[arg1] < 0xF5)) || ((gNearestWaypointByPlayerId[arg1] >= 0xFB) && (gNearestWaypointByPlayerId[arg1] < 0xFF)) || ((gNearestWaypointByPlayerId[arg1] >= 0x105) && (gNearestWaypointByPlayerId[arg1] < 0x109)) || ((gNearestWaypointByPlayerId[arg1] >= 0x10F) && (gNearestWaypointByPlayerId[arg1] < 0x113)) || ((gNearestWaypointByPlayerId[arg1] >= 0x145) && (gNearestWaypointByPlayerId[arg1] < 0x14A)) - || ((gNearestWaypointByPlayerId[arg1] >= 0x15E) && (gNearestWaypointByPlayerId[arg1] < 0x163))) { - func_80022F14(player, arg1, 0x1C0000, 0.3f); - func_80023038(player, arg1, 0xE0, 0.3f); + || ((gNearestWaypointByPlayerId[arg1] >= 0x15E) && (gNearestWaypointByPlayerId[arg1] < 0x163))) { // under a lamp + change_player_color_effect_rgb(player, arg1, 0x1C0000, 0.3f); + change_player_color_effect_cmy(player, arg1, 0xE0, 0.3f); D_80164B80[arg1] = 0; - } else { - func_80022F14(player, arg1, 0, 0.3f); - func_80023038(player, arg1, 0, 0.3f); + } else { // normal color + change_player_color_effect_rgb(player, arg1, 0, 0.3f); + change_player_color_effect_cmy(player, arg1, 0, 0.3f); D_80164B80[arg1] = 0; } break; - case 3: + case COURSE_BANSHEE_BOARDWALK: if (((gNearestWaypointByPlayerId[arg1] >= 0xD) && (gNearestWaypointByPlayerId[arg1] < 0x15)) || ((gNearestWaypointByPlayerId[arg1] >= 0x29) && (gNearestWaypointByPlayerId[arg1] < 0x39)) || ((gNearestWaypointByPlayerId[arg1] >= 0x46) && (gNearestWaypointByPlayerId[arg1] < 0x4E)) @@ -1065,19 +1059,19 @@ void func_800231D8(Player *player, s8 arg1) { || ((gNearestWaypointByPlayerId[arg1] >= 0x230) && (gNearestWaypointByPlayerId[arg1] < 0x23A)) || ((gNearestWaypointByPlayerId[arg1] >= 0x24C) && (gNearestWaypointByPlayerId[arg1] < 0x256)) || ((gNearestWaypointByPlayerId[arg1] >= 0x288) && (gNearestWaypointByPlayerId[arg1] < 0x269)) - || ((gNearestWaypointByPlayerId[arg1] >= 0x274) && (gNearestWaypointByPlayerId[arg1] < 0x27E))) { - func_80022F14(player, arg1, 0x1C0000, 0.3f); - func_80023038(player, arg1, 0xE0, 0.3f); + || ((gNearestWaypointByPlayerId[arg1] >= 0x274) && (gNearestWaypointByPlayerId[arg1] < 0x27E))) { // under a lamp + change_player_color_effect_rgb(player, arg1, 0x1C0000, 0.3f); + change_player_color_effect_cmy(player, arg1, 0x0000E0, 0.3f); D_80164B80[arg1] = 0; - } else { - func_80022F14(player, arg1, 0, 0.3f); - func_80023038(player, arg1, 0, 0.3f); + } else { // normal color + change_player_color_effect_rgb(player, arg1, 0, 0.3f); + change_player_color_effect_cmy(player, arg1, 0, 0.3f); D_80164B80[arg1] = 0; } break; - default: - func_80022F14(player, arg1, 0, 0.3f); - func_80023038(player, arg1, 0, 0.3f); + default: // normal color + change_player_color_effect_rgb(player, arg1, 0, 0.3f); + change_player_color_effect_cmy(player, arg1, 0, 0.3f); D_80164B80[arg1] = 0; break; } @@ -1086,54 +1080,54 @@ void func_800231D8(Player *player, s8 arg1) { void func_800235AC(Player *player, s8 arg1) { s32 temp; - if (((player->unk_000 & 0x100) == 0x100) && (player == gPlayerThree)) { - func_80022F14(player, arg1, 0x1C0000, 0.3f); - func_80023038(player, arg1, 0xE0, 0.3f); + if (((player->type & 0x100) == 0x100) && (player == gPlayerThree)) { + change_player_color_effect_rgb(player, arg1, 0x1C0000, 0.3f); + change_player_color_effect_cmy(player, arg1, 0xE0, 0.3f); D_80164B80[arg1] = 0; return; } if (((player->unk_0CA & 0x10) == 0x10) && ((player->unk_0CA & 4) == 4)) { - func_80022F14(player, arg1, 0x646464, 0.5f); - func_80023038(player, arg1, 0xFF0000, 0.1f); + change_player_color_effect_rgb(player, arg1, 0x646464, 0.5f); + change_player_color_effect_cmy(player, arg1, 0xFF0000, 0.1f); return; } if ((player->unk_0CA & 4) == 4) { - func_80022F14(player, arg1, 0, 1.0f); - func_80023038(player, arg1, 0, 1.0f); + change_player_color_effect_rgb(player, arg1, 0, 1.0f); + change_player_color_effect_cmy(player, arg1, 0, 1.0f); return; } if ((player->unk_0CA & 0x10) == 0x10) { - func_80022F14(player, arg1, 0x646464, 0.5f); - func_80023038(player, arg1, 0xFF0000, 0.1f); + change_player_color_effect_rgb(player, arg1, 0x646464, 0.5f); + change_player_color_effect_cmy(player, arg1, 0xFF0000, 0.1f); return; } if ((player->unk_0CA & 0x20) == 0x20) { - func_80022F14(player, arg1, 0, 0.1f); - func_80023038(player, arg1, 0, 0.1f); + change_player_color_effect_rgb(player, arg1, 0, 0.1f); + change_player_color_effect_cmy(player, arg1, 0, 0.1f); return; } - if (((player->unk_0BC & 0x40000000) == 0x40000000) && ((s32) player->unk_0B0 < 0x78)) { + if (((player->effects & LIGHTNING_EFFECT) == LIGHTNING_EFFECT) && ((s32) player->unk_0B0 < 0x78)) { D_80164B80[arg1] += 5; if (D_80164B80[arg1] >= 0x1E) { D_80164B80[arg1] = 0; } if ((D_80164B80[arg1] >= 0) && (D_80164B80[arg1] < 0xB)) { - func_80022F14(player, arg1, 0x808080, 0.8f); - func_80023038(player, arg1, 0, 0.8f); + change_player_color_effect_rgb(player, arg1, 0x808080, 0.8f); + change_player_color_effect_cmy(player, arg1, 0, 0.8f); } if ((D_80164B80[arg1] >= 0xB) && (D_80164B80[arg1] < 0x15)) { - func_80022F14(player, arg1, 0x70, 0.8f); - func_80023038(player, arg1, 0, 0.8f); + change_player_color_effect_rgb(player, arg1, 0x70, 0.8f); + change_player_color_effect_cmy(player, arg1, 0, 0.8f); } if ((D_80164B80[arg1] >= 0x15) && (D_80164B80[arg1] < 0x1F)) { - func_80022F14(player, arg1, 0x8F8F00, 0.8f); - func_80023038(player, arg1, 0, 0.8f); + change_player_color_effect_rgb(player, arg1, 0x8F8F00, 0.8f); + change_player_color_effect_cmy(player, arg1, 0, 0.8f); } return; } - if ((player->unk_0BC & 0x200) != 0) { + if ((player->effects & 0x200) != 0) { temp = (s32)gCourseTimer - D_8018D930[arg1]; if (temp <= 8) { @@ -1146,42 +1140,42 @@ void func_800235AC(Player *player, s8 arg1) { D_80164B80[arg1] = 0; } if ((D_80164B80[arg1] >= 0) && (D_80164B80[arg1] <= 10)) { - func_80022F14(player, arg1, 0x70, 0.8f); - func_80023038(player, arg1, 0, 0.8f); + change_player_color_effect_rgb(player, arg1, 0x70, 0.8f); + change_player_color_effect_cmy(player, arg1, 0, 0.8f); } if ((D_80164B80[arg1] >= 0xB) && (D_80164B80[arg1] <= 20)) { - func_80022F14(player, arg1, 0x707000, 0.8f); - func_80023038(player, arg1, 0, 0.8f); + change_player_color_effect_rgb(player, arg1, 0x707000, 0.8f); + change_player_color_effect_cmy(player, arg1, 0, 0.8f); } if ((D_80164B80[arg1] >= 0x15) && (D_80164B80[arg1] <= 30)) { - func_80022F14(player, arg1, 0x700000, 0.8f); - func_80023038(player, arg1, 0, 0.8f); + change_player_color_effect_rgb(player, arg1, 0x700000, 0.8f); + change_player_color_effect_cmy(player, arg1, 0, 0.8f); } if (D_80164B80[arg1] >= 0x1F) { - func_80022F14(player, arg1, 0x7000, 0.8f); - func_80023038(player, arg1, 0, 0.8f); + change_player_color_effect_rgb(player, arg1, 0x7000, 0.8f); + change_player_color_effect_cmy(player, arg1, 0, 0.8f); } return; } } - if (func_800230E4(player, arg1) != 1) { + if (is_player_under_light_luigi_raceway(player, arg1) != TRUE) { if (((player->boundingBoxCorners[3].unk_14 & 1) == 1) || ((player->boundingBoxCorners[3].unk_14 & 2) == 2) || ((player->boundingBoxCorners[0].unk_14 & 3) == 3)) { - func_80022F14(player, arg1, 0, 0.3f); - func_80023038(player, arg1, 0x6F6F6F, 0.3f); + change_player_color_effect_rgb(player, arg1, 0x000000, 0.3f); + change_player_color_effect_cmy(player, arg1, 0x6F6F6F, 0.3f); return; } func_800231D8(player, arg1); if ((player->unk_0CA & 0x1000) == 0x1000) { - func_80022F14(player, arg1, 0, 0.3f); - func_80023038(player, arg1, 0xF0F0F0, 0.3f); + change_player_color_effect_rgb(player, arg1, 0, 0.3f); + change_player_color_effect_cmy(player, arg1, 0xF0F0F0, 0.3f); } } } void func_80023BF0(Player *player, s8 arg1, s8 arg2, s8 arg3) { - if (((player->unk_0BC & 0x4000000) == 0x4000000) || ((player->unk_0BC & 0x8000000) == 0x8000000)) { + if (((player->effects & 0x4000000) == 0x4000000) || ((player->effects & 0x8000000) == 0x8000000)) { func_80022CA8(player, arg1, arg2, arg3); } else { func_80022E84(player, arg1, arg2, arg3); @@ -1210,15 +1204,15 @@ void func_80023C84(Player *player, s8 arg1, s8 arg2) { spB0 = -coss(temp_t9 << 7) * 2; spAC = -sins(temp_t9 << 7) * 2; - if (((player->unk_0BC & 0x01000000) == 0x01000000) - || ((player->unk_0BC & 0x400) == 0x400) - || ((player->unk_0BC & 0x80000) == 0x80000) - || ((player->unk_0BC & 0x800000) == 0x800000) - || ((player->unk_0BC & 0x400) == 0x400) + if (((player->effects & 0x01000000) == 0x01000000) + || ((player->effects & 0x400) == 0x400) + || ((player->effects & 0x80000) == 0x80000) + || ((player->effects & 0x800000) == 0x800000) + || ((player->effects & 0x400) == 0x400) || ((player->unk_0CA & 2) == 2) - || ((player->unk_0BC & 0x02000000) == 0x02000000) - || ((player->unk_0BC & 0x10000) == 0x10000) - || ((player->unk_0BC & 8) == 8)) { + || ((player->effects & 0x02000000) == 0x02000000) + || ((player->effects & 0x10000) == 0x10000) + || ((player->effects & 8) == 8)) { var_f2 = (f32) (1.0 - ((f64) player->unk_110.unk3C[2] * 0.02)); if (var_f2 < 0.0f) {var_f2 = 0.0f;} @@ -1230,20 +1224,20 @@ void func_80023C84(Player *player, s8 arg1, s8 arg2) { spCC[0] = player->pos[0] + ((spB0 * sins(spC0)) + (spAC * coss(spC0))); spCC[1] = player->unk_074 + 1.0f; spCC[2] = player->pos[2] + ((spB0 * coss(spC0)) - (spAC * sins(spC0))); - func_80042A20(sp118, spB4, spCC, (spC0 + player->unk_042), D_800DDBD4[player->characterId] * player->unk_224 + set_transform_matrix(sp118, spB4, spCC, (spC0 + player->unk_042), gCharacterSize[player->characterId] * player->size * var_f2); } else { - spC4[0] = player->unk_0C4; + spC4[0] = player->slopeAccel; spC4[1] = spC0; spC4[2] = player->unk_206 * 2; spCC[0] = player->pos[0] + ((spB0 * sins(spC0)) + (spAC * coss(spC0))); spCC[1] = player->unk_074 + 1.0f; spCC[2] = player->pos[2] + ((spB0 * coss(spC0)) - (spAC * sins(spC0))); - func_80021E10(sp118, spCC, spC4); - func_80021F84(sp118, D_800DDBD4[player->characterId] * player->unk_224); + mtxf_translate_rotate(sp118, spCC, spC4); + mtxf_scale2(sp118, gCharacterSize[player->characterId] * player->size); } - func_80022180(&gGfxPool->mtxShadow[arg1 + (arg2 * 8)], sp118); + convert_to_fixed_point_matrix(&gGfxPool->mtxShadow[arg1 + (arg2 * 8)], sp118); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxShadow[arg1 + (arg2 * 8)]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, D_0D008D58); @@ -1253,13 +1247,13 @@ void func_80023C84(Player *player, s8 arg1, s8 arg2) { func_8004B414(0, 0, 0, 0xFF); gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2); gSPVertex(gDisplayListHead++, &D_800E51D0[0], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, (D_8018D474 + SOME_TEXTURE_POINTER_MATH), G_IM_FMT_I, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); func_8004B414(0, 0, 0, 0xFF); gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2); - gSPVertex(gDisplayListHead++, &D_800E51D0[4], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPVertex(gDisplayListHead++, &D_800E5210[0], 4, 0); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); } @@ -1288,11 +1282,11 @@ void func_80024374(Player *player, s8 arg1, s8 arg2) { spCC[0] = player->pos[0] + ((spB0 * sins(spC0)) + (spAC * coss(spC0))); spCC[2] = player->pos[2] + ((spB0 * coss(spC0)) - (spAC * sins(spC0))); - spCC[1] = D_80165C18[D_80183EA0[arg1]].pos[1] + sp94[arg1]; + spCC[1] = gObjectList[D_80183EA0[arg1]].pos[1] + sp94[arg1]; - func_80021E10(sp118, spCC, spC4); - func_80021F84(sp118, D_800DDBD4[player->characterId] * player->unk_224); - func_80022180(&gGfxPool->mtxShadow[arg1 + (arg2 * 8)], sp118); + mtxf_translate_rotate(sp118, spCC, spC4); + mtxf_scale2(sp118, gCharacterSize[player->characterId] * player->size); + convert_to_fixed_point_matrix(&gGfxPool->mtxShadow[arg1 + (arg2 * 8)], sp118); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxShadow[arg1 + (arg2 * 8)]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, D_0D008D58); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); @@ -1301,17 +1295,17 @@ void func_80024374(Player *player, s8 arg1, s8 arg2) { func_8004B414(0, 0, 0, 0x000000D0); gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2); gSPVertex(gDisplayListHead++, &D_800E51D0[0], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, (D_8018D474 + SOME_TEXTURE_POINTER_MATH), G_IM_FMT_I, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); func_8004B414(0, 0, 0, 0x000000D0); gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2); gSPVertex(gDisplayListHead++, &D_800E5210[0], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); } -void func_800248D0(Player *player, s8 arg1, s8 arg2, s8 arg3) { +void player_render(Player *player, s8 arg1, s8 arg2, s8 arg3) { s32 pad; Mat4 sp1A4; s32 pad2[17]; @@ -1334,14 +1328,14 @@ void func_800248D0(Player *player, s8 arg1, s8 arg2, s8 arg3) { } else { thing = (u16)(player->unk_048[arg2] + player->unk_02C[1] + player->unk_0C0); temp_v1 = player->unk_0CC[arg2] * sins(thing); - if ((player->unk_0BC & 8) == 8) { + if ((player->effects & 8) == 8) { sp14C[0] = cameras[arg2].rot[0] - 0x4000; } else { sp14C[0] = -temp_v1 * 0.8; } sp14C[1] = player->unk_048[arg2]; sp14C[2] = player->unk_050[arg2]; - if (((s32)player->unk_0BC & 0x04000000) == 0x04000000) { + if (((s32)player->effects & 0x04000000) == 0x04000000) { func_80062B18(&sp148, &sp144, &sp140, 0.0f, 8.0f, 0.0f, -player->unk_048[arg2], player->unk_050[arg2]); sp154[1] = (player->pos[1] - player->boundingBoxSize) + player->unk_108; sp154[0] = player->pos[0] + sp148; @@ -1353,7 +1347,7 @@ void func_800248D0(Player *player, s8 arg1, s8 arg2, s8 arg3) { sp154[2] = player->pos[2] + sp140; } } - D_80164B04 = &D_802F1F80[D_801651D0[arg2][arg1]][arg2][arg1 << 7]; + D_80164B04 = &D_802F1F80[D_801651D0[arg2][arg1]][arg2][arg1 * 0x80]; if ((arg2 == 0) || (arg2 == 1)) { D_80164B08 = &D_802BFB80[D_801651D0[arg2][arg1]][arg2][arg1].pixel_index_array[0]; D_80164B0C = &D_802BFB80[D_801651D0[arg2][arg1]][arg2][arg1].pixel_index_array[0x7C0]; @@ -1361,52 +1355,52 @@ void func_800248D0(Player *player, s8 arg1, s8 arg2, s8 arg3) { D_80164B08 = &D_802BFB80[D_801651D0[arg2][arg1]][arg2 - 1][arg1 - 4].pixel_index_array[0]; D_80164B0C = &D_802BFB80[D_801651D0[arg2][arg1]][arg2 - 1][arg1 - 4].pixel_index_array[0x7C0]; } - func_80021E10(sp1A4, sp154, sp14C); - func_80021F84(sp1A4, D_800DDBD4[player->characterId] * player->unk_224); - func_80022180(&gGfxPool->mtxKart[arg1 + (arg2 * 8)], sp1A4); - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + mtxf_translate_rotate(sp1A4, sp154, sp14C); + mtxf_scale2(sp1A4, gCharacterSize[player->characterId] * player->size); + convert_to_fixed_point_matrix(&gGfxPool->mtxKart[arg1 + (arg2 * 8)], sp1A4); + if ((player->effects & 0x80000000) == 0x80000000) { if (arg2 == arg1) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[arg1 + (arg2 * 8)]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(gDisplayListHead++, D_0D008CD8); + gSPDisplayList(gDisplayListHead++, common_setting_render_character); gDPLoadTLUT_pal256(gDisplayListHead++, D_80164B04); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); - func_8004B614(D_80164B10[arg1], D_80164B20[arg1], D_80164B30[arg1], D_80164B40[arg1], D_80164B50[arg1], D_80164B60[arg1], (s32) player->unk_0C6); + func_8004B614(gPlayerRedEffect[arg1], gPlayerGreenEffect[arg1], gPlayerBlueEffect[arg1], gPlayerCyanEffect[arg1], gPlayerMagentaEffect[arg1], gPlayerYellowEffect[arg1], (s32) player->unk_0C6); gDPSetRenderMode(gDisplayListHead++, AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); } else { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[arg1 + (arg2 * 8)]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(gDisplayListHead++, D_0D008CD8); + gSPDisplayList(gDisplayListHead++, common_setting_render_character); gDPLoadTLUT_pal256(gDisplayListHead++, D_80164B04); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); - func_8004B614(D_80164B10[arg1], D_80164B20[arg1], D_80164B30[arg1], D_80164B40[arg1], D_80164B50[arg1], D_80164B60[arg1], D_8018D970[arg1]); + func_8004B614(gPlayerRedEffect[arg1], gPlayerGreenEffect[arg1], gPlayerBlueEffect[arg1], gPlayerCyanEffect[arg1], gPlayerMagentaEffect[arg1], gPlayerYellowEffect[arg1], D_8018D970[arg1]); gDPSetRenderMode(gDisplayListHead++, AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); } } else if (((player->unk_0CA & 4) == 4) || (player->statusEffects & 0x08000000) || (player->statusEffects & 0x04000000)) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[arg1 + (arg2 * 8)]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(gDisplayListHead++, D_0D008CD8); + gSPDisplayList(gDisplayListHead++, common_setting_render_character); gDPLoadTLUT_pal256(gDisplayListHead++, D_80164B04); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); - func_8004B614(D_80164B10[arg1], D_80164B20[arg1], D_80164B30[arg1], D_80164B40[arg1], D_80164B50[arg1], D_80164B60[arg1], (s32) player->unk_0C6); + func_8004B614(gPlayerRedEffect[arg1], gPlayerGreenEffect[arg1], gPlayerBlueEffect[arg1], gPlayerCyanEffect[arg1], gPlayerMagentaEffect[arg1], gPlayerYellowEffect[arg1], (s32) player->unk_0C6); gDPSetAlphaCompare(gDisplayListHead++, G_AC_DITHER); gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_XLU_SURF, G_RM_ZB_XLU_SURF2); } else { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[arg1 + (arg2 * 8)]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(gDisplayListHead++, D_0D008CD8); + gSPDisplayList(gDisplayListHead++, common_setting_render_character); gDPLoadTLUT_pal256(gDisplayListHead++, D_80164B04); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); - func_8004B614(D_80164B10[arg1], D_80164B20[arg1], D_80164B30[arg1], D_80164B40[arg1], D_80164B50[arg1], D_80164B60[arg1], (s32) player->unk_0C6); + func_8004B614(gPlayerRedEffect[arg1], gPlayerGreenEffect[arg1], gPlayerBlueEffect[arg1], gPlayerCyanEffect[arg1], gPlayerMagentaEffect[arg1], gPlayerYellowEffect[arg1], (s32) player->unk_0C6); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2); } gDPLoadTextureBlock(gDisplayListHead++, D_80164B08, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, &D_800DDBB4[arg1][arg3], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, D_80164B0C, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, &D_800DDBB4[arg1][arg3 + 4], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE); } -void func_800256F4(Player *player, s8 arg1, s8 arg2, s8 arg3) { +void ghost_render(Player *player, s8 arg1, s8 arg2, s8 arg3) { s32 pad; Mat4 sp12C; s32 pad2[17]; @@ -1433,7 +1427,7 @@ void func_800256F4(Player *player, s8 arg1, s8 arg2, s8 arg3) { spDC[1] = (player->pos[1] - player->boundingBoxSize) + (spCC - 2.0); spDC[0] = player->pos[0] + spD0; spDC[2] = player->pos[2] + spC8; - D_80164B04 = &D_802F1F80[D_801651D0[arg2][arg1]][arg2][arg1 << 7]; + D_80164B04 = &D_802F1F80[D_801651D0[arg2][arg1]][arg2][arg1 * 0x80]; if ((arg2 == 0) || (arg2 == 1)) { D_80164B08 = &D_802BFB80[D_801651D0[arg2][arg1]][arg2][arg1].pixel_index_array[0]; D_80164B0C = &D_802BFB80[D_801651D0[arg2][arg1]][arg2][arg1].pixel_index_array[0x7C0]; @@ -1441,21 +1435,21 @@ void func_800256F4(Player *player, s8 arg1, s8 arg2, s8 arg3) { D_80164B08 = &D_802BFB80[D_801651D0[arg2][arg1]][arg2 - 1][arg1 - 4].pixel_index_array[0]; D_80164B0C = &D_802BFB80[D_801651D0[arg2][arg1]][arg2 - 1][arg1 - 4].pixel_index_array[0x7C0]; } - func_80021E10(sp12C, spDC, spD4); - func_80021F84(sp12C, D_800DDBD4[player->characterId] * player->unk_224); - func_80022180(&gGfxPool->mtxKart[arg1 + (arg2 * 8)], sp12C); + mtxf_translate_rotate(sp12C, spDC, spD4); + mtxf_scale2(sp12C, gCharacterSize[player->characterId] * player->size); + convert_to_fixed_point_matrix(&gGfxPool->mtxKart[arg1 + (arg2 * 8)], sp12C); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxKart[arg1 + (arg2 * 8)]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(gDisplayListHead++, D_0D008CD8); + gSPDisplayList(gDisplayListHead++, common_setting_render_character); gDPLoadTLUT_pal256(gDisplayListHead++, D_80164B04); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); - func_8004B614(D_80164B10[arg1], D_80164B20[arg1], D_80164B30[arg1], D_80164B40[arg1], D_80164B50[arg1], D_80164B60[arg1], spC2); + func_8004B614(gPlayerRedEffect[arg1], gPlayerGreenEffect[arg1], gPlayerBlueEffect[arg1], gPlayerCyanEffect[arg1], gPlayerMagentaEffect[arg1], gPlayerYellowEffect[arg1], spC2); gDPSetRenderMode(gDisplayListHead++, AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); gDPLoadTextureBlock(gDisplayListHead++, D_80164B08, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, &D_800DDBB4[arg1][arg3], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, D_80164B0C, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, &D_800DDBB4[arg1][arg3 + 4], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE); } @@ -1471,54 +1465,54 @@ void func_80025DE8(Player *player, s8 arg1, s8 arg2, s8 arg3) { sp94[0] = -0x00B6; sp94[1] = player->unk_048[arg2]; sp94[2] = player->unk_050[arg2]; - func_80021E10(spA8, sp9C, sp94); - func_80021F84(spA8, D_800DDBD4[player->characterId] * player->unk_224); - func_80022180(&gGfxPool->mtxEffect[gMatrixEffectCount], spA8); + mtxf_translate_rotate(spA8, sp9C, sp94); + mtxf_scale2(spA8, gCharacterSize[player->characterId] * player->size); + convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], spA8); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, D_0D008D10); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); - func_8004B614((s32) D_80164B10[arg1], (s32) D_80164B20[arg1], (s32) D_80164B30[arg1], (s32) D_80164B40[arg1], (s32) D_80164B50[arg1], (s32) D_80164B60[arg1], 0x00000040); + func_8004B614((s32) gPlayerRedEffect[arg1], (s32) gPlayerGreenEffect[arg1], (s32) gPlayerBlueEffect[arg1], (s32) gPlayerCyanEffect[arg1], (s32) gPlayerMagentaEffect[arg1], (s32) gPlayerYellowEffect[arg1], 0x00000040); gDPSetRenderMode(gDisplayListHead++, AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); gDPLoadTextureBlock(gDisplayListHead++, D_80164B08, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, &D_800DDBB4[arg1][arg3], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, D_80164B0C, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, &D_800DDBB4[arg1][arg3 + 4], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); gMatrixEffectCount += 1; } -void func_800262E0(Player *player, s8 arg1, s8 arg2, s8 arg3) { +void player_ice_reflection_render(Player *player, s8 arg1, s8 arg2, s8 arg3) { Mat4 spA8; Vec3f sp9C; Vec3s sp94; sp94[0] = 0; sp94[1] = player->unk_048[arg2]; - sp94[2] = player->unk_050[arg2] + 0x8000; + sp94[2] = player->unk_050[arg2] + 0x8000; // invert Y sp9C[0] = player->pos[0]; - sp9C[1] = player->unk_074 + (4.0f * player->unk_224); + sp9C[1] = player->unk_074 + (4.0f * player->size); sp9C[2] = player->pos[2]; if (!(player->unk_002 & (4 << (arg2 * 4)))) { arg3 = 8; } else { arg3 = 0; } - func_80021E10(spA8, sp9C, sp94); - func_80021F84(spA8, D_800DDBD4[player->characterId] * player->unk_224); - func_80022180(&gGfxPool->mtxEffect[gMatrixEffectCount], spA8); + mtxf_translate_rotate(spA8, sp9C, sp94); + mtxf_scale2(spA8, gCharacterSize[player->characterId] * player->size); + convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], spA8); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(gDisplayListHead++, D_0D008CD8); + gSPDisplayList(gDisplayListHead++, common_setting_render_character); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); - func_8004B614((s32) D_80164B10[arg1], (s32) D_80164B20[arg1], (s32) D_80164B30[arg1], (s32) D_80164B40[arg1], (s32) D_80164B50[arg1], (s32) D_80164B60[arg1], (s16) player->unk_0C6 / 2); + func_8004B614((s32) gPlayerRedEffect[arg1], (s32) gPlayerGreenEffect[arg1], (s32) gPlayerBlueEffect[arg1], (s32) gPlayerCyanEffect[arg1], (s32) gPlayerMagentaEffect[arg1], (s32) gPlayerYellowEffect[arg1], (s16) player->unk_0C6 / 2); gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_XLU_SURF, G_RM_ZB_XLU_SURF2); gDPLoadTextureBlock(gDisplayListHead++, D_80164B08, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, &D_800DDBB4[arg1][arg3], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, D_80164B0C, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, &D_800DDBB4[arg1][arg3 + 4], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); gMatrixEffectCount += 1; } @@ -1538,7 +1532,7 @@ void func_800267AC(Player *player, s8 arg1, s8 arg2) { func_80023BF0(player, arg1, arg2, var_v1); temp_t1 = 8 << (arg2 * 4); if ((temp_t1 == (player->unk_002 & temp_t1)) && (player->unk_110.unk3C[2] <= 50.0f) && (player->unk_0F8 != 9)) { - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + if ((player->effects & 0x80000000) == 0x80000000) { if (arg1 == arg2) { func_80023C84(player, arg1, arg2); } @@ -1546,14 +1540,14 @@ void func_800267AC(Player *player, s8 arg1, s8 arg2) { func_80023C84(player, arg1, arg2); } } - if ((player->unk_000 & 0x100) != 0x100) { - func_800248D0(player, arg1, arg2, var_v1); + if ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB) { + player_render(player, arg1, arg2, var_v1); } else { - func_800256F4(player, arg1, arg2, var_v1); + ghost_render(player, arg1, arg2, var_v1); } osRecvMesg(&gDmaMesgQueue, &sp34, OS_MESG_BLOCK); if ((temp_t1 == (player->unk_002 & temp_t1)) && (player->unk_0F8 == 9) && ((player->unk_0CA & 1) != 1) && (player->unk_110.unk3C[2] <= 30.0f)) { - func_800262E0(player, arg1, arg2, var_v1); + player_ice_reflection_render(player, arg1, arg2, var_v1); } if (player->boostPower >= 2.0f) { func_80025DE8(player, arg1, arg2, var_v1); @@ -1563,7 +1557,7 @@ void func_800267AC(Player *player, s8 arg1, s8 arg2) { void func_80026A48(Player *player, s8 arg1) { f32 temp_f0; - if (((player->unk_0BC & 0x4000) == 0x4000) && ((player->unk_000 & 0x2000) == 0)) { + if (((player->effects & 0x4000) == 0x4000) && ((player->type & PLAYER_START_SEQUENCE) == 0)) { player->unk_240 += D_800DDE74[8]; if (player->unk_240 >= 0x400) { player->unk_240 = 0; @@ -1599,12 +1593,12 @@ void func_80026B4C(Player *player, s8 arg1, s8 arg2, s8 arg3) { s32 temp_v0; s32 temp_v1; - temp_v1 = player->unk_0BC; + temp_v1 = player->effects; temp_v0 = arg1 * 2; temp_t0 = *(D_801650D0 + ((arg2 * 0x10) + temp_v0)); temp_t1 = *(D_80165110 + ((arg2 * 0x10) + temp_v0)); temp_t2 = player->unk242; - if (((temp_v1 & 0x4000) == 0x4000) && !(player->unk_000 & 0x2000)) { + if (((temp_v1 & 0x4000) == 0x4000) && !(player->type & PLAYER_STAGING)) { if (((temp_v1 & 0x80) != 0x80) && ((temp_v1 & 0x40) != 0x40) && ((temp_v1 & 0x20000) != 0x20000) && ((temp_v1 & 0x80000) != 0x80000) && ((temp_v1 & 0x800000) != 0x800000) && !(player->unk_044 & 0x800)) { if (temp_t0 < 0x15) { func_80027C74(player, (s32) D_800DDE34[player->characterId][temp_t1][temp_t0][temp_t2 >> 8], (arg3 << 0xE) + (arg2 << 0xC) + (arg1 << 9) + 0x180 + D_802F1F80, 0x0080U); diff --git a/src/code_8001F980.h b/src/code_8001F980.h index e75b072da..bb4008403 100644 --- a/src/code_8001F980.h +++ b/src/code_8001F980.h @@ -11,7 +11,7 @@ void func_8001F980(s32*, s32*); void func_8001F9E4(Player*, Camera*, s8); -u16 func_8001FB0C(Player*, Camera*, f32, f32); +u16 check_player_camera_collision(Player*, Camera*, f32, f32); u16 func_8001FD78(Player*, f32, f32, f32); void func_80020000(Player*, Camera*, s8, s8); void func_80020524(void); @@ -27,11 +27,11 @@ void func_80021B0C(void); void func_80021C78(void); void func_80021D40(void); void func_80021DA8(void); -void func_80021E10(Mat4, Vec3f, Vec3s); +void mtxf_translate_rotate(Mat4, Vec3f, Vec3s); void func_80021F50(Mat4, Vec3f); -void func_80021F84(Mat4, f32); +void mtxf_scale2(Mat4, f32); void func_80021FF8(Mtx*, Mat4); -void func_80022180(Mtx*, Mat4); +void convert_to_fixed_point_matrix(Mtx*, Mat4); s32 func_800224F0(s16*, s16, s16); void move_s32_towards(s32*, s32, f32); void move_f32_towards(f32*, f32, f32); @@ -46,18 +46,18 @@ void func_80022CA8(Player*, s8, s8, s8); void func_80022D60(Player*, s8, s8, s8); void func_80022DB4(Player*, s8); void func_80022E84(Player*, s8, s8, s8); -void func_80022F14(Player*, s8, s32, f32); -void func_80023038(Player*, s8, s32, f32); -s32 func_800230E4(Player*, s8); +void change_player_color_effect_rgb(Player*, s8, s32, f32); +void change_player_color_effect_cmy(Player*, s8, s32, f32); +s32 is_player_under_light_luigi_raceway(Player*, s8); void func_800231D8(Player*, s8); void func_800235AC(Player*, s8); void func_80023BF0(Player*, s8, s8, s8); void func_80023C84(Player*, s8, s8); void func_80024374(Player*, s8, s8); -void func_800248D0(Player*, s8, s8, s8); -void func_800256F4(Player*, s8, s8, s8); +void player_render(Player*, s8, s8, s8); +void ghost_render(Player*, s8, s8, s8); void func_80025DE8(Player*, s8, s8, s8); -void func_800262E0(Player*, s8, s8, s8); +void player_ice_reflection_render(Player*, s8, s8, s8); void func_800267AC(Player*, s8, s8); void func_80026A48(Player*, s8); void func_80026B4C(Player*, s8, s8, s8); @@ -77,24 +77,24 @@ extern s16 D_80164AB0[]; extern s16 D_80164ABE[]; extern s16 D_80164AC0[]; extern Player *D_80164AD0[]; -extern u16 D_80164B10[]; -extern u16 D_80164B20[]; -extern u16 D_80164B30[]; -extern u16 D_80164B40[]; -extern u16 D_80164B50[]; -extern u16 D_80164B60[]; +extern u16 gPlayerRedEffect[]; +extern u16 gPlayerGreenEffect[]; +extern u16 gPlayerBlueEffect[]; +extern u16 gPlayerCyanEffect[]; +extern u16 gPlayerMagentaEffect[]; +extern u16 gPlayerYellowEffect[]; extern s32 D_80164B80[]; extern u8 *D_8018D474; extern s32 D_8018D930[]; -extern Gfx D_0D008C78[]; +extern Gfx common_square_plain_render[]; extern Gfx D_0D008D58[]; extern s32 D_800DDB58; extern void *D_800DDB5C[]; extern Vtx *D_800DDBB4[]; -extern f32 D_800DDBD4[]; +extern f32 gCharacterSize[]; extern s32 D_800DDE74[]; extern Vtx D_800E51D0[]; extern Vtx D_800E5210[]; diff --git a/src/code_8003DC40.c b/src/code_8003DC40.c index 5514ba1cf..a14b8fb7f 100644 --- a/src/code_8003DC40.c +++ b/src/code_8003DC40.c @@ -18,20 +18,20 @@ UNUSED void func_8003DC50(Player *player, Vec3f arg1) { if (player->unk_230 <= player->unk_23C) { if (player->unk_110.unk48[1] >= 0.1736) { arg1[0] = (player->unk_206 / 182) * 0x78; - arg1[2] = -(player->unk_0C4 / 182) * 0x78; + arg1[2] = -(player->slopeAccel / 182) * 0x78; } else { arg1[0] = thing1; arg1[2] = thing2; } } else if (player->unk_110.unk48[1] >= 0.1736) { arg1[0] = (player->unk_206 / 182) * 0x78; - arg1[2] = -(player->unk_0C4 / 182) * 0x78; + arg1[2] = -(player->slopeAccel / 182) * 0x78; } else { arg1[0] = thing1; arg1[2] = thing2; } arg1[1] = 0.0f; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } UNUSED void func_8003DE4C(Player *player, Vec3f arg1) { @@ -42,20 +42,20 @@ UNUSED void func_8003DE4C(Player *player, Vec3f arg1) { if (player->unk_230 <= player->unk_23C) { if (player->unk_110.unk54[1] >= 0.1736) { arg1[0] = (player->unk_206 / 182) * 0x78; - arg1[2] = -(player->unk_0C4 / 182) * 0x78; + arg1[2] = -(player->slopeAccel / 182) * 0x78; } else { arg1[0] = thing1; arg1[2] = thing2; } } else if (player->unk_110.unk54[1] >= 0.1736) { arg1[0] = (player->unk_206 / 182) * 0x78; - arg1[2] = -(player->unk_0C4 / 182) * 0x78; + arg1[2] = -(player->slopeAccel / 182) * 0x78; } else { arg1[0] = thing1; arg1[2] = thing2; } arg1[1] = 0.0f; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } // Stick to ground? void func_8003E048(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { @@ -65,23 +65,23 @@ void func_8003E048(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4 func_8002A5F4(arg1, *arg4, arg2, 1, 2); if (player->unk_110.unk60[1] <= 0.8829f) { arg3[0] = ((player->unk_206 / 182) * 0xB4); - arg3[2] = (-(player->unk_0C4 / 182) * 0xB4); + arg3[2] = (-(player->slopeAccel / 182) * 0xB4); func_80031F48(player, 4.0f); player->unk_DAC = 0.5f; - if ((player->unk_0BC & 0x2000) != 0) { + if ((player->effects & 0x2000) != 0) { func_8008D554(player); - player->unk_09C /= 2; + player->currentSpeed /= 2; player->unk_08C /= 2; } - } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->unk_0BC & 0x10000) == 0x10000)) { + } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) { arg3[0] = ((player->unk_206 / 182) * 0x32); - arg3[2] = (-(player->unk_0C4 / 182) * 0x3C); + arg3[2] = (-(player->slopeAccel / 182) * 0x3C); } else { arg3[0] = 0.0f; - arg3[2] = (-(player->unk_0C4 / 182) * 0x32); + arg3[2] = (-(player->slopeAccel / 182) * 0x32); } arg3[1] = 0.0f; - mtxf_translate_vec3f_mat3(arg3, player->unk_174); + mtxf_translate_vec3f_mat3(arg3, player->orientationMatrix); } void func_8003E37C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { @@ -91,25 +91,25 @@ void func_8003E37C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4 func_8002A5F4(arg1, *arg4, arg2, 0.5f, 2); if ((player->unk_110.unk60[1] <= 0.7318f) || (player->unk_0F8 == 0x000C)) { arg3[0] = ((player->unk_206 / 182) * 0xB4); - arg3[2] = (-(player->unk_0C4 / 182) * 0xB4); + arg3[2] = (-(player->slopeAccel / 182) * 0xB4); if (((player->unk_094 / 18.0f) * 216.0f) >= 8.0f) { func_80031F48(player, 5.0f); } player->unk_DAC = 0.5f; - if ((player->unk_0BC & 0x2000) != 0) { + if ((player->effects & 0x2000) != 0) { func_8008D554(player); - player->unk_09C /= 2; + player->currentSpeed /= 2; player->unk_08C /= 2; } - } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->unk_0BC & 0x10000) == 0x10000)) { + } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) { arg3[0] = ((player->unk_206 / 182) * 0x32); - arg3[2] = (-(player->unk_0C4 / 182) * 0x32); + arg3[2] = (-(player->slopeAccel / 182) * 0x32); } else { arg3[0] = 0.0f; - arg3[2] = (-(player->unk_0C4 / 182) * 0x32); + arg3[2] = (-(player->slopeAccel / 182) * 0x32); } arg3[1] = 0.0f; - mtxf_translate_vec3f_mat3(arg3, player->unk_174); + mtxf_translate_vec3f_mat3(arg3, player->orientationMatrix); } void func_8003E6EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { @@ -119,18 +119,18 @@ void func_8003E6EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4 func_8002A5F4(arg1, *arg4, arg2, 0.5f, 2); if (player->unk_110.unk60[1] <= 0.8829f) { arg3[0] = ((player->unk_206 / 182) * 0xB4); - arg3[2] = (-(player->unk_0C4 / 182) * 0xB4); + arg3[2] = (-(player->slopeAccel / 182) * 0xB4); func_80031F48(player, 4.0f); func_8003DC40(player); - } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->unk_0BC & 0x10000) == 0x10000)) { + } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) { arg3[0] = ((player->unk_206 / 182) * 0x32); - arg3[2] = (-(player->unk_0C4 / 182) * 0x3C); + arg3[2] = (-(player->slopeAccel / 182) * 0x3C); } else { arg3[0] = 0.0f; - arg3[2] = (-(player->unk_0C4 / 182) * 0x32); + arg3[2] = (-(player->slopeAccel / 182) * 0x32); } arg3[1] = 0.0f; - mtxf_translate_vec3f_mat3(arg3, player->unk_174); + mtxf_translate_vec3f_mat3(arg3, player->orientationMatrix); } void func_8003E9EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { @@ -140,28 +140,28 @@ void func_8003E9EC(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4 func_8002A5F4(arg1, *arg4, arg2, 1.2f, 2); if (player->unk_110.unk60[1] <= 0.8357f) { arg3[0] = ((player->unk_206 / 182) * 0x78); - arg3[2] = (-(player->unk_0C4 / 182) * 0xB4); + arg3[2] = (-(player->slopeAccel / 182) * 0xB4); func_80031F48(player, 4.0f); func_8003DC40(player); } else { - if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->unk_0BC & 0x10000) == 0x10000)) { + if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) { if ((player->boundingBoxCorners[2].surfaceType == 1) || (player->boundingBoxCorners[3].surfaceType == 1) || (player->boundingBoxCorners[1].surfaceType == 1) || (player->boundingBoxCorners[0].surfaceType == 1)) { arg3[0] = ((player->unk_206 / 182) * 5); } else { arg3[0] = ((player->unk_206 / 182) * 0x28); } - arg3[2] = (-(player->unk_0C4 / 182) * 0x28); + arg3[2] = (-(player->slopeAccel / 182) * 0x28); } else { arg3[0] = 0.0f; - arg3[2] = (-(player->unk_0C4 / 182) * 0x32); + arg3[2] = (-(player->slopeAccel / 182) * 0x32); } - if ((player->unk_0BC & 0x10000) != 0) { + if ((player->effects & 0x10000) != 0) { arg3[0] = ((player->unk_206 / 182) * 0x78); - arg3[2] = (-(player->unk_0C4 / 182) * 0xB4); + arg3[2] = (-(player->slopeAccel / 182) * 0xB4); } } arg3[1] = 0.0f; - mtxf_translate_vec3f_mat3(arg3, player->unk_174); + mtxf_translate_vec3f_mat3(arg3, player->orientationMatrix); } void func_8003EE2C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { @@ -171,18 +171,18 @@ void func_8003EE2C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4 func_8002A5F4(arg1, *arg4, arg2, 0.5f, 2); if (player->unk_110.unk60[1] <= 0.8357f) { arg3[0] = ((player->unk_206 / 182) * 0x78); - arg3[2] = (-(player->unk_0C4 / 182) * 0xB4); + arg3[2] = (-(player->slopeAccel / 182) * 0xB4); func_80031F48(player, 4.0f); func_8003DC40(player); - } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->unk_0BC & 0x10000) == 0x10000)) { + } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) { arg3[0] = ((player->unk_206 / 182) * 0x32); - arg3[2] = (-(player->unk_0C4 / 182) * 0x3C); + arg3[2] = (-(player->slopeAccel / 182) * 0x3C); } else { arg3[0] = 0.0f; - arg3[2] = (-(player->unk_0C4 / 182) * 0x32); + arg3[2] = (-(player->slopeAccel / 182) * 0x32); } arg3[1] = 0.0f; - mtxf_translate_vec3f_mat3(arg3, player->unk_174); + mtxf_translate_vec3f_mat3(arg3, player->orientationMatrix); } void func_8003F138(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { @@ -195,21 +195,21 @@ void func_8003F138(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4 } if (player->unk_110.unk60[1] <= 0.8357f) { arg3[0] = ((player->unk_206 / 182) * 0xC8); - arg3[2] = (-(player->unk_0C4 / 182) * 0xC8); + arg3[2] = (-(player->slopeAccel / 182) * 0xC8); func_80031F48(player, 4.0f); player->unk_DAC = 0.5f; arg3[0] = 0; - } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->unk_0BC & 0x10000) == 0x10000)) { + } else if ((((player->unk_094 / 18.0f) * 216.0f) > 20.0f) || ((player->effects & 0x10000) == 0x10000)) { arg3[0] = ((player->unk_206 / 182) * 0x78); - arg3[2] = (-(player->unk_0C4 / 182) * 0x78); + arg3[2] = (-(player->slopeAccel / 182) * 0x78); arg3[0] = 0; } else { arg3[0] = 0.0f; - arg3[2] = (-(player->unk_0C4 / 182) * 0x32); + arg3[2] = (-(player->slopeAccel / 182) * 0x32); } arg3[1] = 0.0f; arg3[2] = 0.0f; - mtxf_translate_vec3f_mat3(arg3, player->unk_174); + mtxf_translate_vec3f_mat3(arg3, player->orientationMatrix); } void func_8003F46C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4, f32 *arg5, f32 *arg6, f32 *arg7) { @@ -250,7 +250,7 @@ void func_8003F46C(Player *player, Vec3f arg1, Vec3f arg2, Vec3f arg3, f32 *arg4 func_8003E048(player, arg1, arg2, arg3, arg4, arg5, arg6, arg7); break; } - if (player->unk_0BC & 0x10000) { + if (player->effects & 0x10000) { player->unk_DAC = 0.5f; } } @@ -268,7 +268,7 @@ void func_8003F734(Player *player, Vec3f arg1, Vec3f arg2, f32 *arg3, f32 *arg4, *arg4 += arg1[0] * player->unk_110.unk3C[0] * 1; *arg5 += arg1[1] * player->unk_110.unk3C[0] * 0.1; *arg6 += arg1[2] * player->unk_110.unk3C[0] * 1; - if ((player->unk_0C4 < 0) && (((player->unk_094 / 18.0f) * 216.0f) < 10.0f)) { + if ((player->slopeAccel < 0) && (((player->unk_094 / 18.0f) * 216.0f) < 10.0f)) { func_8002A5F4(arg1, *arg3, arg2, 2.5f, 0); } else { func_8002A5F4(arg1, *arg3, arg2, 0.5f, 0); @@ -278,7 +278,7 @@ void func_8003F734(Player *player, Vec3f arg1, Vec3f arg2, f32 *arg3, f32 *arg4, *arg5 += arg1[1] * player->unk_110.unk3C[0] * 0.1; *arg6 += arg1[2] * player->unk_110.unk3C[0] * 1; func_8002A5F4(arg1, *arg3, arg2, 1, 0); - if ((!(player->unk_0BC & 0x10000)) && ((player->unk_0BC & 8) == 0)) { + if ((!(player->effects & 0x10000)) && ((player->effects & 8) == 0)) { arg2[1] *= -1e-05; } } else { @@ -291,11 +291,11 @@ void func_8003F734(Player *player, Vec3f arg1, Vec3f arg2, f32 *arg3, f32 *arg4, } *arg6 += arg1[2] * player->unk_110.unk3C[0] * 1; func_8002A5F4(arg1, *arg3, arg2, 1.2f, 0); - if ((!(player->unk_0BC & 0x10000)) && ((player->unk_0BC & 8) == 0)) { + if ((!(player->effects & 0x10000)) && ((player->effects & 8) == 0)) { arg2[1] *= -1e-05; } } - player->unk_0BC &= ~0x10; + player->effects &= ~0x10; temp_f12 = player->unk_110.unk3C[0] * arg1[0]; temp_f14 = player->unk_110.unk3C[0] * arg1[2]; if (((temp_f12 >= 0) && (temp_f14 >= 0)) || ((temp_f12 < 0) && (temp_f14 >= 0))) { @@ -322,7 +322,7 @@ void func_8003FBAC(Player *player, Vec3f arg1, Vec3f arg2, f32 *arg3, f32 *arg4, *arg4 += arg1[0] * player->unk_110.unk3C[1] * 1; *arg5 += arg1[1] * player->unk_110.unk3C[1] * 0.1; *arg6 += arg1[2] * player->unk_110.unk3C[1] * 1; - if ((player->unk_0C4 < 0) && (((player->unk_094 / 18.0f) * 216.0f) < 10.0f)) { + if ((player->slopeAccel < 0) && (((player->unk_094 / 18.0f) * 216.0f) < 10.0f)) { func_8002A5F4(arg1, *arg3, arg2, 1.5f, 0); } else { func_8002A5F4(arg1, *arg3, arg2, 0.5f, 0); @@ -332,7 +332,7 @@ void func_8003FBAC(Player *player, Vec3f arg1, Vec3f arg2, f32 *arg3, f32 *arg4, *arg5 += arg1[1] * player->unk_110.unk3C[1] * 0.1; *arg6 += arg1[2] * player->unk_110.unk3C[1] * 1; func_8002A5F4(arg1, *arg3, arg2, 1, 0); - if ((!(player->unk_0BC & 0x10000)) && ((player->unk_0BC & 8) == 0)) { + if ((!(player->effects & 0x10000)) && ((player->effects & 8) == 0)) { arg2[1] *= -1e-05; } } else { @@ -345,11 +345,11 @@ void func_8003FBAC(Player *player, Vec3f arg1, Vec3f arg2, f32 *arg3, f32 *arg4, } *arg6 += arg1[2] * player->unk_110.unk3C[1] * 1; func_8002A5F4(arg1, *arg3, arg2, 1.2f, 0); - if ((!(player->unk_0BC & 0x10000)) && ((player->unk_0BC & 8) == 0)) { + if ((!(player->effects & 0x10000)) && ((player->effects & 8) == 0)) { arg2[1] *= -1e-05; } } - player->unk_0BC &= ~0x10; + player->effects &= ~0x10; temp_f12 = player->unk_110.unk3C[1] * arg1[0]; temp_f14 = player->unk_110.unk3C[1] * arg1[2]; if (((temp_f12 >= 0) && (temp_f14 >= 0)) || ((temp_f12 >= 0) && (temp_f14 < 0))) { diff --git a/src/code_80057C60.c b/src/code_80057C60.c index f134a5885..0b01cfde8 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -396,7 +396,7 @@ void func_800588F4(s32 arg0) { } if (gGamestate != CREDITS_SEQUENCE) { - if ((D_8018EDF3 == 1) || (D_8018EDF3 == 2)) { + if ((gPlayerCount == 1) || (gPlayerCount == 2)) { func_80055380(arg0); } } else { @@ -629,7 +629,7 @@ void func_80058F78(void) { func_8004FA78(0); func_8004E78C(0); func_8004EB38(0); - if (D_801657E6 != 0) { + if (D_801657E6 != FALSE) { func_8004ED40(0); } } @@ -702,10 +702,10 @@ void func_800591B4(void) { if (D_8018D188 != 0) { if (D_801657D8 == 0) { - if (D_801657F0 != 0) { + if (D_801657F0 != FALSE) { func_800514BC(); } - if ((!gDemoMode) && (D_801657E8 != 0)) { + if ((!gDemoMode) && (D_801657E8 != FALSE)) { if (D_80165800[0] != 0) { func_8004EE54(0); if (gModeSelection != BATTLE) { @@ -870,7 +870,7 @@ void func_80059820(s32 playerId) { temp_v0->posZInt = (s32) D_8018CF1C->pos[2]; } -void func_800598D4(s32 arg0) { +void randomize_seed_from_controller(s32 arg0) { struct Controller *controller = &gControllerOne[arg0]; if ((controller->button & A_BUTTON) != 0) { @@ -885,7 +885,7 @@ void func_800598D4(s32 arg0) { } void func_8005994C(void) { - D_8018D214 = 1; + D_8018D214 = TRUE; } extern s8 D_80165890; @@ -894,14 +894,14 @@ void func_8005995C(void) { s32 i; Player *player = gPlayerOne; for (i = 0; i != 4; i++) { - if ((D_80165890 != 0) && (player->unk_000 & 0x100)) { - player->unk_010 = 12; + if ((D_80165890 != 0) && (player->type & PLAYER_INVISIBLE_OR_BOMB)) { + player->currentItemCopy = ITEM_MUSHROOM; D_8018CA70[i].unk_75 = 2; } - if ((player->unk_000 & 0x100) && (player->unk_010 == 0)) { + if ((player->type & PLAYER_INVISIBLE_OR_BOMB) && (player->currentItemCopy == ITEM_NONE)) { if (D_8018CA70[i].unk_75) { - player->unk_010 = 12; + player->currentItemCopy = ITEM_MUSHROOM; --D_8018CA70[i].unk_75; } } @@ -910,11 +910,11 @@ void func_8005995C(void) { D_80165890 = 0; } -void func_80059A88(s32 arg0) { - func_80059820(arg0); +void func_80059A88(s32 playerId) { + func_80059820(playerId); if (!gDemoMode) { - func_8007A948(arg0); - func_8007BB9C(arg0); + func_8007A948(playerId); + func_8007BB9C(playerId); } } @@ -985,8 +985,8 @@ void func_80059D00(void) { if (D_801657AE == 0) { switch (gScreenModeSelection) { case SCREEN_MODE_1P: - func_800598D4(0); - if (D_8018D214 == 0) { + randomize_seed_from_controller(0); + if (D_8018D214 == FALSE) { func_80059820(0); func_8005B914(); if (!gDemoMode) { @@ -1006,8 +1006,8 @@ void func_80059D00(void) { func_8005A74C(); break; case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: - func_800598D4(0); - func_800598D4(1); + randomize_seed_from_controller(0); + randomize_seed_from_controller(1); func_80059820(0); func_8005D0FC(0); if (!gDemoMode) { @@ -1025,8 +1025,8 @@ void func_80059D00(void) { func_8005A74C(); break; case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: - func_800598D4(0); - func_800598D4(1); + randomize_seed_from_controller(0); + randomize_seed_from_controller(1); func_80059820(0); func_8005D0FC(0); if (!gDemoMode) { @@ -1044,10 +1044,10 @@ void func_80059D00(void) { func_8005A74C(); break; case SCREEN_MODE_3P_4P_SPLITSCREEN: - func_800598D4(0); - func_800598D4(1); - func_800598D4(2); - func_800598D4(3); + randomize_seed_from_controller(0); + randomize_seed_from_controller(1); + randomize_seed_from_controller(2); + randomize_seed_from_controller(3); func_80059820(0); func_8005D0FC(0); if (!gDemoMode) { @@ -1114,43 +1114,43 @@ void func_8005A14C(s32 playerId) { player = &gPlayerOne[playerId]; objectIndex = D_8018CE10[playerId].objectIndex; lapCount = gLapCountByPlayerId[playerId]; - if (player->unk_000 & 0x8000) { - if (player->unk_0BC & 0x204C0) { - D_80165C18[objectIndex].unk_0BE[2] += 0x1000; + if (player->type & PLAYER_EXISTS) { + if (player->effects & 0x204C0) { + gObjectList[objectIndex].unk_0BE[2] += 0x1000; } else { - if (D_80165C18[objectIndex].unk_0BE[2] != 0) { - D_80165C18[objectIndex].unk_0BE[2] += 0x1000; + if (gObjectList[objectIndex].unk_0BE[2] != 0) { + gObjectList[objectIndex].unk_0BE[2] += 0x1000; } } - if (player->unk_0BC & 0x40000000) { - f32_step_towards(&D_80165C18[objectIndex].sizeScaling, 0.3f, 0.02f); + if (player->effects & LIGHTNING_EFFECT) { + f32_step_towards(&gObjectList[objectIndex].sizeScaling, 0.3f, 0.02f); } else { - f32_step_towards(&D_80165C18[objectIndex].sizeScaling, 0.6f, 0.02f); + f32_step_towards(&gObjectList[objectIndex].sizeScaling, 0.6f, 0.02f); } - if (player->unk_0BC & 0x04000000) { - u16_step_up_towards(&D_80165C18[objectIndex].unk_0BE[0], 0x0C00U, 0x0100U); + if (player->effects & 0x04000000) { + u16_step_up_towards(&gObjectList[objectIndex].unk_0BE[0], 0x0C00U, 0x0100U); } else { - u16_step_down_towards(&D_80165C18[objectIndex].unk_0BE[0], 0, 0x00000100); + u16_step_down_towards(&gObjectList[objectIndex].unk_0BE[0], 0, 0x00000100); } - if (player->unk_0BC & 0x03000000) { + if (player->effects & 0x03000000) { func_80087D24(objectIndex, 6.0f, 1.5f, 0.0f); } else { - f32_step_towards(&D_80165C18[objectIndex].unk_028[1], 0.0f, 1.0f); + f32_step_towards(&gObjectList[objectIndex].unk_028[1], 0.0f, 1.0f); } - if ((player->unk_000 & 0x100) || (player->unk_0BC & 0x80000000)) { - D_80165C18[objectIndex].unk_0A0 = 0x0050; + if ((player->type & PLAYER_INVISIBLE_OR_BOMB) || (player->effects & 0x80000000)) { + gObjectList[objectIndex].unk_0A0 = 0x0050; } else { - D_80165C18[objectIndex].unk_0A0 = 0x00FF; + gObjectList[objectIndex].unk_0A0 = 0x00FF; } if (lapCount >= 3) { - D_80165C18[objectIndex].unk_0BE[2] = 0; - D_80165C18[objectIndex].unk_0BE[1] = 0; - D_80165C18[objectIndex].unk_0BE[0] = 0; - D_80165C18[objectIndex].unk_028[2] = 0.0f; - D_80165C18[objectIndex].unk_028[1] = 0.0f; - D_80165C18[objectIndex].unk_028[0] = 0.0f; - D_80165C18[objectIndex].sizeScaling = 0.6f; - D_80165C18[objectIndex].unk_0A0 = 0x00FF; + gObjectList[objectIndex].unk_0BE[2] = 0; + gObjectList[objectIndex].unk_0BE[1] = 0; + gObjectList[objectIndex].unk_0BE[0] = 0; + gObjectList[objectIndex].unk_028[2] = 0.0f; + gObjectList[objectIndex].unk_028[1] = 0.0f; + gObjectList[objectIndex].unk_028[0] = 0.0f; + gObjectList[objectIndex].sizeScaling = 0.6f; + gObjectList[objectIndex].unk_0A0 = 0x00FF; } } } @@ -1167,7 +1167,7 @@ extern s8 D_801657F8; void func_8006F824(s32); void func_8005A3C0(void) { - s32 b = FALSE; + bool b = FALSE; if ((gGamestate != 5) && (gGamestate != 9) && !D_8018D204) { switch (gPlayerCountSelection1) { case 1: @@ -1202,12 +1202,12 @@ void func_8005A3C0(void) { b = TRUE; } if (D_80165800[0] && D_80165800[1]) { - D_801657F0 = 0; + D_801657F0 = FALSE; } else { - D_801657F0 = 1; + D_801657F0 = TRUE; } if (gDemoMode) { - D_801657F0 = 0; + D_801657F0 = FALSE; } } break; @@ -1244,7 +1244,7 @@ void func_8005A3C0(void) { } void func_8005A71C(void) { - if (gCurrentCourseId == 2) { + if (gCurrentCourseId == COURSE_BOWSER_CASTLE) { func_80081210(); } } @@ -1285,7 +1285,7 @@ void func_8005A74C(void) { if (gGamestate != CREDITS_SEQUENCE) { func_80082E5C(); } - if ((D_8018EDF3 == 1) || (D_8018EDF3 == 2) || (gGamestate == CREDITS_SEQUENCE)) { + if ((gPlayerCount == 1) || (gPlayerCount == 2) || (gGamestate == CREDITS_SEQUENCE)) { func_80082870(); } break; @@ -1334,7 +1334,7 @@ void func_8005A99C(void) { func_8005AA34(); } if (gPlayerCountSelection1 == 3) { - D_801657E8 = 1; + D_801657E8 = TRUE; } D_8018D188 = (s32) 1; D_8018D170 = (s32) 1; @@ -2302,9 +2302,9 @@ extern u32 D_80165658[]; extern s8 D_801657E3; extern s8 D_801657E4; extern s8 D_801657E5; -extern s8 D_801657E6; -extern s8 D_801657E8; -extern s8 D_801657F0; +extern bool8 D_801657E6; +extern bool8 D_801657E8; +extern bool8 D_801657F0; extern s8 D_80165800[2]; extern s32 D_8016587C; extern s8 D_80165898; @@ -2315,7 +2315,7 @@ extern s32 D_8018D1FC; extern s32 D_8018D204; extern s32 D_8018D20C; extern s32 D_8018D320; -extern s8 D_8018EDF3; +extern s8 gPlayerCount; extern f32 gCourseTimer; extern s16 gCurrentCourseId; extern s32 gModeSelection; @@ -2389,9 +2389,9 @@ void func_8005CB60(s32 playerId, s32 arg1) case 3: if ((D_8018D114 == 0) || (D_8018D114 == 1)) { D_801657E4 = 0; - D_801657E6 = 0; - D_801657F0 = 0; - D_801657E8 = 1; + D_801657E6 = FALSE; + D_801657F0 = FALSE; + D_801657E8 = TRUE; D_80165800[0] = 1; D_80165800[1] = 1; D_8018D204 = 1; @@ -2411,7 +2411,7 @@ void func_8005CB60(s32 playerId, s32 arg1) if (D_8018D20C == 0) { func_80079054(playerId); D_8018D20C = 1; - if (D_8018EDF3 == 1) { + if (gPlayerCount == 1) { D_8018D1CC = 0x64; } } @@ -2762,46 +2762,46 @@ void func_8005DAF4(Player *player, s16 arg1, s32 arg2, s32 arg3) { if (((player->unk_094 / 18.0f) * 216.0f) >= 10.0f) { func_8005D794(player, &player->unk_258[10 + arg1], var_f2, var_f12, var_f14, (s8) var_t1, (s8) var_t3); func_8005D7D8(&player->unk_258[10 + arg1], 2, 0.46f); - if ((gCurrentCourseId == 1) || (gCurrentCourseId == 7)) { + if ((gCurrentCourseId == COURSE_CHOCO_MOUNTAIN) || (gCurrentCourseId == COURSE_ROYAL_RACEWAY)) { func_8005DAD8(&player->unk_258[10 + arg1], 1, 0, 0x0080); } - if (gCurrentCourseId == 0x000B) { + if (gCurrentCourseId == COURSE_KALAMARI_DESERT) { func_8005DAD8(&player->unk_258[10 + arg1], 7, 0, 0x0080); } - if (gCurrentCourseId == 9) { + if (gCurrentCourseId == COURSE_MOO_MOO_FARM) { func_8005DAD8(&player->unk_258[10 + arg1], 8, 0, 0x0080); } - if (gCurrentCourseId == 0x000E) { + if (gCurrentCourseId == COURSE_WARIO_STADIUM) { func_8005DAD8(&player->unk_258[10 + arg1], 9, 0, 0x0080); } - if (gCurrentCourseId == 4) { - func_8005DAD8(&player->unk_258[10 + arg1], 0x000A, 0, 0x0080); + if (gCurrentCourseId == COURSE_YOSHI_VALLEY) { + func_8005DAD8(&player->unk_258[10 + arg1], 10, 0, 0x0080); } - if (gCurrentCourseId == 0x0012) { - func_8005DAD8(&player->unk_258[10 + arg1], 0x000B, 0, 0x0080); + if (gCurrentCourseId == COURSE_DK_JUNGLE) { + func_8005DAD8(&player->unk_258[10 + arg1], 11, 0, 0x0080); } player->unk_258[10 + arg1].unk_03A = random_int(0x0010U); } } else if ((player->unk_258[10 + arg2].unk_01E > 0) && (((player->unk_094 / 18.0f) * 216.0f) >= 10.0f)) { func_8005D794(player, &player->unk_258[10 + arg1], var_f2, var_f12, var_f14, (s8) var_t1, (s8) var_t3); func_8005D7D8(&player->unk_258[10 + arg1], 2, 0.46f); - if ((gCurrentCourseId == 1) || (gCurrentCourseId == 7)) { + if ((gCurrentCourseId == COURSE_CHOCO_MOUNTAIN) || (gCurrentCourseId == COURSE_ROYAL_RACEWAY)) { func_8005DAD8(&player->unk_258[10 + arg1], 1, 0, 0x0080); } - if (gCurrentCourseId == 0x000B) { + if (gCurrentCourseId == COURSE_KALAMARI_DESERT) { func_8005DAD8(&player->unk_258[10 + arg1], 7, 0, 0x0080); } - if (gCurrentCourseId == 9) { + if (gCurrentCourseId == COURSE_MOO_MOO_FARM) { func_8005DAD8(&player->unk_258[10 + arg1], 8, 0, 0x0080); } - if (gCurrentCourseId == 0x000E) { + if (gCurrentCourseId == COURSE_WARIO_STADIUM) { func_8005DAD8(&player->unk_258[10 + arg1], 9, 0, 0x0080); } - if (gCurrentCourseId == 4) { - func_8005DAD8(&player->unk_258[10 + arg1], 0x000A, 0, 0x0080); + if (gCurrentCourseId == COURSE_YOSHI_VALLEY) { + func_8005DAD8(&player->unk_258[10 + arg1], 10, 0, 0x0080); } - if (gCurrentCourseId == 0x0012) { - func_8005DAD8(&player->unk_258[10 + arg1], 0x000B, 0, 0x0080); + if (gCurrentCourseId == COURSE_DK_JUNGLE) { + func_8005DAD8(&player->unk_258[10 + arg1], 11, 0, 0x0080); } player->unk_258[10 + arg1].unk_03A = random_int(0x0010U); } @@ -3000,44 +3000,44 @@ void func_8005ED48(Player *player, s16 arg1, s32 arg2, s32 arg3) { if ((arg1 == 0) && ((player->unk_258[10 + arg2].unk_01E > 0) || (player->unk_258[10 + arg2].unk_01C == 0))) { func_8005D794(player, &player->unk_258[10 + arg1], var_f0, var_f2, var_f12, var_t2, var_t3); func_8005D7D8(&player->unk_258[10 + arg1], 5, 0.46f); - if ((gCurrentCourseId == 1) || (gCurrentCourseId == 7)) { + if ((gCurrentCourseId == COURSE_CHOCO_MOUNTAIN) || (gCurrentCourseId == COURSE_ROYAL_RACEWAY)) { func_8005DAD8(&player->unk_258[10 + arg1], 1, 0, 0x0080); } - if (gCurrentCourseId == 0x000B) { + if (gCurrentCourseId == COURSE_KALAMARI_DESERT) { func_8005DAD8(&player->unk_258[10 + arg1], 7, 0, 0x0080); } - if (gCurrentCourseId == 9) { + if (gCurrentCourseId == COURSE_MOO_MOO_FARM) { func_8005DAD8(&player->unk_258[10 + arg1], 8, 0, 0x0080); } - if (gCurrentCourseId == 0x000E) { + if (gCurrentCourseId == COURSE_WARIO_STADIUM) { func_8005DAD8(&player->unk_258[10 + arg1], 9, 0, 0x0080); } - if (gCurrentCourseId == 4) { - func_8005DAD8(&player->unk_258[10 + arg1], 0x000A, 0, 0x0080); + if (gCurrentCourseId == COURSE_YOSHI_VALLEY) { + func_8005DAD8(&player->unk_258[10 + arg1], 10, 0, 0x0080); } - if (gCurrentCourseId == 0x0012) { - func_8005DAD8(&player->unk_258[10 + arg1], 0x000B, 0, 0x0080); + if (gCurrentCourseId == COURSE_DK_JUNGLE) { + func_8005DAD8(&player->unk_258[10 + arg1], 11, 0, 0x0080); } player->unk_258[10 + arg1].unk_03A = random_int(0x0010U); } else if (player->unk_258[10 + arg2].unk_01E > 0) { func_8005D794(player, &player->unk_258[10 + arg1], var_f0, var_f2, var_f12, var_t2, var_t3); func_8005D7D8(&player->unk_258[10 + arg1], 5, 0.46f); - if ((gCurrentCourseId == 1) || (gCurrentCourseId == 7)) { + if ((gCurrentCourseId == COURSE_CHOCO_MOUNTAIN) || (gCurrentCourseId == COURSE_ROYAL_RACEWAY)) { func_8005DAD8(&player->unk_258[10 + arg1], 1, 0, 0x0080); } - if (gCurrentCourseId == 0x000B) { + if (gCurrentCourseId == COURSE_KALAMARI_DESERT) { func_8005DAD8(&player->unk_258[10 + arg1], 7, 0, 0x0080); } - if (gCurrentCourseId == 9) { + if (gCurrentCourseId == COURSE_MOO_MOO_FARM) { func_8005DAD8(&player->unk_258[10 + arg1], 8, 0, 0x0080); } - if (gCurrentCourseId == 0x000E) { + if (gCurrentCourseId == COURSE_WARIO_STADIUM) { func_8005DAD8(&player->unk_258[10 + arg1], 9, 0, 0x0080); } - if (gCurrentCourseId == 4) { + if (gCurrentCourseId == COURSE_YOSHI_VALLEY) { func_8005DAD8(&player->unk_258[10 + arg1], 0x000A, 0, 0x0080); } - if (gCurrentCourseId == 0x0012) { + if (gCurrentCourseId == COURSE_DK_JUNGLE) { func_8005DAD8(&player->unk_258[10 + arg1], 0x000B, 0, 0x0080); } player->unk_258[10 + arg1].unk_03A = random_int(0x0010U); @@ -3160,7 +3160,7 @@ void func_8005F90C(Player *player, s16 arg1, s32 arg2, s32 arg3) { f32 var_f12; var_t1 = 0; - if ((player->unk_0BC & 0x80) == 0x80) { + if ((player->effects & 0x80) == 0x80) { var_f0 = player->pos[0]; var_f2 = player->pos[1] - player->boundingBoxSize; var_f12 = player->pos[2]; @@ -3363,7 +3363,7 @@ void func_80060504(Player *player, s16 arg1, s32 arg2, s32 arg3) { player->unk_258[arg1].unk_024 = 0.0f; if ((player->unk_044 & 0x20) == 0x20) { player->unk_258[arg1].unk_040 = 0; - if ((player->unk_0BC & 0x2000) == 0x2000) { + if ((player->effects & 0x2000) == 0x2000) { func_8005D800(&player->unk_258[arg1], 0x00FFFF00, 0x0080); player->unk_258[arg1].unk_038 = 1; } else { @@ -3372,7 +3372,7 @@ void func_80060504(Player *player, s16 arg1, s32 arg2, s32 arg3) { } } else { player->unk_258[arg1].unk_040 = 1; - if ((player->unk_0BC & 0x2000) == 0x2000) { + if ((player->effects & 0x2000) == 0x2000) { func_8005D800(&player->unk_258[arg1], 0x00FFFF00, 0x0080); player->unk_258[arg1].unk_038 = 1; } else { @@ -3405,13 +3405,13 @@ void func_800608E0(Player *player, s16 arg1, UNUSED s32 arg2, s8 arg3, UNUSED s8 var_f0 = 0.0f; } sp4C = (D_801652A0[arg3] - player->pos[1]) - 3.0f; - if ((player->unk_0DE & 1) && (gCurrentCourseId != 6)) { + if ((player->unk_0DE & 1) && (gCurrentCourseId != COURSE_KOOPA_BEACH)) { var_f0 = 2.5f; sp4C = (f32) ((f64) (D_801652A0[arg3] - player->pos[1]) + 0.1); } func_8005D794(player, &player->unk_258[arg1], 0.0f, 0.0f, 0.0f, (s8) 0, (s8) 0); func_8005D7D8(&player->unk_258[arg1], 3, var_f0); - if ((gCurrentCourseId == 2) || (gCurrentCourseId == 0x0013)) { + if ((gCurrentCourseId == COURSE_BOWSER_CASTLE) || (gCurrentCourseId == COURSE_BIG_DONUT)) { func_8005D800(&player->unk_258[arg1], 0, 0x00AF); } else { func_8005D800(&player->unk_258[arg1], 0x00FFFFFF, 0x00CF); @@ -3423,7 +3423,7 @@ void func_800608E0(Player *player, s16 arg1, UNUSED s32 arg2, s8 arg3, UNUSED s8 } void func_80060B14(Player *player, s16 arg1, s32 arg2, s8 arg3, s8 arg4) { - if ((gCurrentCourseId != 0x0010) && (gCurrentCourseId != 0x000D)) { + if ((gCurrentCourseId != COURSE_SKYSCRAPER) && (gCurrentCourseId != COURSE_RAINBOW_ROAD)) { if ((arg1 == 0) && ((player->unk_258[arg2].unk_01E > 0) || (player->unk_258[arg2].unk_01C == 0))) { func_800608E0(player, arg1, arg2, arg3, arg4); } else if (player->unk_258[arg2].unk_01E > 0) { @@ -3596,7 +3596,7 @@ void func_80061754(Player *player, s16 arg1, UNUSED s32 arg2, UNUSED s32 arg3, U sp48 = random_int(2U); func_8005D794(player, &player->unk_258[0x1E + arg1], 0.0f, 0.0f, 0.0f, (s8) 0, (s8) 0); func_8005D7D8(&player->unk_258[0x1E + arg1], 6, 1.0f); - if ((player->unk_0BC & 0x02000000) || ((player->unk_0BC) & 0x01000000) || ((player->unk_0BC) & 0x400) || ((player->unk_0BC) & 0x80000000)) { + if ((player->effects & 0x02000000) || ((player->effects) & 0x01000000) || ((player->effects) & 0x400) || ((player->effects) & 0x80000000)) { func_8005D800(&player->unk_258[0x1E + arg1], 0x00FFFFFF, 0x00A0); player->unk_258[0x1E + arg1].unk_038 -= temp_s1; player->unk_258[0x1E + arg1].unk_03A -= temp_s1; @@ -4014,7 +4014,7 @@ void func_80062C74(Player *player, s16 arg1, s32 arg2, s32 arg3) { } else { var_f6 = -((player->unk_098 / 6000.0f) + 0.1); } - if (((player->unk_0BC & 0x2000) == 0x2000) && (player->unk_258[arg1].unk_01E >= 6)) { + if (((player->effects & 0x2000) == 0x2000) && (player->unk_258[arg1].unk_01E >= 6)) { player->unk_258[arg1].unk_00C = player->unk_258[arg1].unk_00C + 0.06; } player->unk_258[arg1].unk_010++; @@ -4122,7 +4122,7 @@ void func_80063408(Player* player, s16 arg1, UNUSED s8 arg2, UNUSED s8 arg3) { ++player->unk_258[10 + arg1].unk_01E; player->unk_258[10 + arg1].unk_000[1] += 1.0f; - if (((player->unk_0BC & 0x80) != 0) || ((player->unk_0BC & 0x40) != 0)) { + if (((player->effects & 0x80) != 0) || ((player->effects & 0x40) != 0)) { player->unk_258[10 + arg1].unk_01C = 0; player->unk_258[10 + arg1].unk_01E = 0; } @@ -4149,7 +4149,7 @@ void func_800635D4(Player* player, s16 arg1, UNUSED s8 arg2, UNUSED s8 arg3) { f32 sp3C; if (player->unk_258[10 + arg1].unk_010 == 1) { - if ((player->unk_0BC & 0x40000000)) { + if ((player->effects & LIGHTNING_EFFECT)) { func_80062B18(&sp44, &sp40, &sp3C, -2.0f, 0.0f, (-player->unk_258[10 + arg1].unk_01E * (player->unk_094 / 18.0f) * 216.0f) / 16, -player->unk_258[10 + arg1].unk_020, 2 * -player->unk_206); player->unk_258[10 + arg1].unk_000[0] = player->boundingBoxCorners[2].cornerPos[0] + sp44; player->unk_258[10 + arg1].unk_000[2] = player->boundingBoxCorners[2].cornerPos[2] + sp3C; @@ -4157,7 +4157,7 @@ void func_800635D4(Player* player, s16 arg1, UNUSED s8 arg2, UNUSED s8 arg3) { player->unk_258[10 + arg1].unk_000[2] = player->boundingBoxCorners[2].cornerPos[2] + ((-player->unk_258[10 + arg1].unk_01E * (player->unk_094 / 18.0f) * 216.0f) / 16) * coss(player->unk_258[10 + arg1].unk_020); player->unk_258[10 + arg1].unk_000[0] = player->boundingBoxCorners[2].cornerPos[0] + ((-player->unk_258[10 + arg1].unk_01E * (player->unk_094 / 18.0f) * 216.0f) / 16) * sins(player->unk_258[10 + arg1].unk_020); } - } else if ((player->unk_0BC & 0x40000000)) { + } else if ((player->effects & LIGHTNING_EFFECT)) { func_80062B18(&sp44, &sp40, &sp3C, 2.0f, 0.0f, (-player->unk_258[10 + arg1].unk_01E * (player->unk_094 / 18.0f) * 216.0f) / 16, - player->unk_258[10 + arg1].unk_020, 2 * -player->unk_206); player->unk_258[10 + arg1].unk_000[0] = player->boundingBoxCorners[3].cornerPos[0] + sp44; player->unk_258[10 + arg1].unk_000[2] = player->boundingBoxCorners[3].cornerPos[2] + sp3C; @@ -4168,7 +4168,7 @@ void func_800635D4(Player* player, s16 arg1, UNUSED s8 arg2, UNUSED s8 arg3) { ++player->unk_258[10 + arg1].unk_01E; player->unk_258[10 + arg1].unk_000[1] += 0.2; - if (((player->unk_0BC & 0x80) != 0) || ((player->unk_0BC & 0x40) != 0)) { + if (((player->effects & 0x80) != 0) || ((player->effects & 0x40) != 0)) { player->unk_258[10 + arg1].unk_01C = 0; player->unk_258[10 + arg1].unk_01E = 0; } @@ -4601,13 +4601,13 @@ void func_800650FC(Player* player, UNUSED s16 arg1, UNUSED s8 arg2, s8 arg3) { player->unk_258[20 + arg3].unk_000[2] = (f32) player->pos[2]; player->unk_258[20 + arg3].unk_000[0] = (f32) player->pos[0]; player->unk_258[20 + arg3].unk_000[1] = (f32) (player->pos[1] + 4.0f); - if ((player->unk_0BC & 0x80) == 0x80) { + if ((player->effects & 0x80) == 0x80) { player->unk_258[20 + arg3].unk_020 += 4732; } else { player->unk_258[20 + arg3].unk_020 -= 4732; } - if (((player->unk_0BC & 0x80) != 0x80) && ((player->unk_0BC & 0x40) != 0x40)) { + if (((player->effects & 0x80) != 0x80) && ((player->effects & 0x40) != 0x40)) { player->unk_258[20 + arg3].unk_01C = 0; player->unk_258[20 + arg3].unk_01E = 0; player->unk_258[20 + arg3].unk_012 = 0; @@ -4640,9 +4640,9 @@ void func_800651F4(Player* player, UNUSED s16 arg1, UNUSED s8 arg2, s8 arg3) { void func_800652D4(Vec3f arg0, Vec3s arg1, f32 arg2) { Mat4 sp20; - func_80021E10(sp20, arg0, arg1); - func_80021F84(sp20, arg2); - func_80022180(&gGfxPool->mtxEffect[gMatrixEffectCount], sp20); + mtxf_translate_rotate(sp20, arg0, arg1); + mtxf_scale2(sp20, arg2); + convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], sp20); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -4666,7 +4666,7 @@ void func_8006538C(Player *player, s8 arg1, s16 arg2, s8 arg3) { spAC[0] = 0; spAC[1] = player->unk_048[arg3]; spAC[2] = 0; - if ((player->unk_0BC & 0x200) && (((s32) gCourseTimer - D_8018D930[arg1]) < 9)) { + if ((player->effects & 0x200) && (((s32) gCourseTimer - D_8018D930[arg1]) < 9)) { primRed = (primColors[1] >> 0x10) & 0xFF; primGreen = (primColors[1] >> 0x08) & 0xFF; primBlue = (primColors[1] >> 0x00) & 0xFF; @@ -4674,7 +4674,7 @@ void func_8006538C(Player *player, s8 arg1, s16 arg2, s8 arg3) { envGreen = ( envColors[1] >> 0x08) & 0xFF; envBlue = ( envColors[1] >> 0x00) & 0xFF; primAlpha = player->unk_258[arg2].unk_03E; - func_800652D4(spB4, spAC, ((player->unk_258[arg2].unk_00C * player->unk_224) * 1.4)); + func_800652D4(spB4, spAC, ((player->unk_258[arg2].unk_00C * player->size) * 1.4)); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, D_0D02BC58[player->unk_258[arg2].unk_010], G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); func_8004B72C(primRed, primGreen, primBlue, envRed, envGreen, envBlue, primAlpha); @@ -4688,7 +4688,7 @@ void func_8006538C(Player *player, s8 arg1, s16 arg2, s8 arg3) { envGreen = ( envColors[player->unk_258[arg2].unk_038] >> 0x08) & 0xFF; envBlue = ( envColors[player->unk_258[arg2].unk_038] >> 0x00) & 0xFF; primAlpha = player->unk_258[arg2].unk_03E; - func_800652D4(spB4, spAC, player->unk_258[arg2].unk_00C * player->unk_224); + func_800652D4(spB4, spAC, player->unk_258[arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, D_0D02BC58[player->unk_258[arg2].unk_010], G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); func_8004B72C(primRed, primGreen, primBlue, envRed, envGreen, envBlue, primAlpha); @@ -4717,7 +4717,7 @@ void func_800658A0(Player *player, UNUSED s8 arg1, s16 arg2, s8 arg3) { sp4C[0] = 0; sp4C[1] = player->unk_048[arg3]; sp4C[2] = 0; - func_800652D4(sp54, sp4C, player->unk_258[arg2].unk_00C * player->unk_224); + func_800652D4(sp54, sp4C, player->unk_258[arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, D_8018D48C, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); func_8004B35C(red, green, blue, alpha); @@ -4761,7 +4761,7 @@ void func_80065AB0(Player *player, s8 arg1, s16 arg2, s8 arg3) { spAC[0] = 0; spAC[1] = player->unk_048[arg3]; spAC[2] = 0; - func_800652D4(spB4, spAC, player->unk_258[10 + arg2].unk_00C * player->unk_224); + func_800652D4(spB4, spAC, player->unk_258[10 + arg2].unk_00C * player->size); if (var_s0 == 0) { gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, D_800E4770[var_s0], G_IM_FMT_I, G_IM_SIZ_8b, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -4879,7 +4879,7 @@ void func_80065F0C(Player *player, s32 arg1, s16 arg2, s8 arg3) { spD8 = 0; spD6 = player->unk_048[arg3]; sp44 = temp_v0; - func_800652D4(&spDC, &spD4, temp_v0->unk534 * player->unk_224); + func_800652D4(&spDC, &spD4, temp_v0->unk534 * player->size); if ((s32) sp44->unk53C != 8) { temp_a1 = sp44->unk560; temp_a0 = sp44->unk562; @@ -5050,7 +5050,7 @@ void func_800664E0(Player *player, s8 arg1, s16 arg2, s8 arg3) { sp4C[0] = 0; sp4C[1] = player->unk_048[arg3]; sp4C[2] = 0; - func_800652D4(sp54, sp4C, player->unk_258[10 + arg2].unk_00C * player->unk_224); + func_800652D4(sp54, sp4C, player->unk_258[10 + arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPSetAlphaCompare(gDisplayListHead++, G_AC_DITHER); gDPLoadTextureBlock(gDisplayListHead++, D_8018D48C, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5079,7 +5079,7 @@ void func_80066714(Player *player, s32 arg1, s16 arg2, s8 arg3) { sp54[0] = 0; sp54[1] = player->unk_048[arg3]; sp54[2] = 0; - func_800652D4(sp5C, sp54, player->unk_258[10 + arg2].unk_00C * player->unk_224); + func_800652D4(sp5C, sp54, player->unk_258[10 + arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008C90); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); gDPLoadTextureBlock(gDisplayListHead++, D_0D000200, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5110,7 +5110,7 @@ void func_80066998(Player *player, s8 arg1, s16 arg2, s8 arg3) { sp4C[0] = 0x4000; sp4C[1] = player->unk_048[arg3]; sp4C[2] = 0; - func_800652D4(sp54, sp4C, player->unk_258[arg2].unk_00C * player->unk_224); + func_800652D4(sp54, sp4C, player->unk_258[arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, D_8018D48C, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); func_8004B35C(red, green, blue, alpha); @@ -5139,14 +5139,14 @@ void func_80066BAC(Player *player, s8 arg1, s16 arg2, s8 arg3) { } spD4[1] = player->unk_048[arg3]; spD4[2] = 0; - func_800652D4(spDC, spD4, player->unk_258[arg2].unk_00C * player->unk_224); + func_800652D4(spDC, spD4, player->unk_258[arg2].unk_00C * player->size); if (player->unk_258[arg2].unk_038 == 0) { gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA); gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C4, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, &D_800E8900[0][player->unk_258[arg2].unk_038], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C8, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, &D_800E8900[1][player->unk_258[arg2].unk_038], 4, 0); gSPDisplayList(gDisplayListHead++, D_0D008DA0); @@ -5156,7 +5156,7 @@ void func_80066BAC(Player *player, s8 arg1, s16 arg2, s8 arg3) { gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C8, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, &D_800E8900[0][player->unk_258[arg2].unk_038], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C4, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, &D_800E8900[1][player->unk_258[arg2].unk_038], 4, 0); gSPDisplayList(gDisplayListHead++, D_0D008DA0); @@ -5185,14 +5185,14 @@ void func_80067280(Player *player, s8 arg1, s16 arg2, s8 arg3) { sp74[2] = 0; if (player->unk_258[30 + arg2].unk_010 == 1) { sp74[1] = player->unk_048[arg3] - 0x2000; - func_800652D4(sp7C, sp74, player->unk_258[30 + arg2].unk_00C * player->unk_224); + func_800652D4(sp7C, sp74, player->unk_258[30 + arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, D_8018D48C, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); func_8004B35C(red, green, blue, alpha); gSPDisplayList(gDisplayListHead++, D_0D008E70); } else { sp74[1] = player->unk_048[arg3] + 0x2000; - func_800652D4(sp7C, sp74, player->unk_258[30 + arg2].unk_00C * player->unk_224); + func_800652D4(sp7C, sp74, player->unk_258[30 + arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, D_8018D48C, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); func_8004B35C(red, green, blue, alpha & 0xFFFFFFFF); // huh? @@ -5216,7 +5216,7 @@ void func_80067604(Player *player, s8 arg1, s16 arg2, s8 arg3) { sp84[0] = 0; sp84[1] = player->unk_048[arg3]; sp84[2] = 0; - func_800652D4(sp8C, sp84, player->unk_258[30 + arg2].unk_00C * player->unk_224); + func_800652D4(sp8C, sp84, player->unk_258[30 + arg2].unk_00C * player->size); if (player->unk_258[30 + arg2].unk_010 == 1) { gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, D_0D02AC58, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5256,14 +5256,14 @@ void func_80067964(Player *player, s8 arg1, f32 arg2, s8 arg3, s8 arg4) { sp94[0] = 0; sp94[1] = player->unk_258[20 + arg4].unk_020; sp94[2] = 0; - func_800652D4(sp9C, sp94, player->unk_224 * arg2); + func_800652D4(sp9C, sp94, player->size * arg2); gSPDisplayList(gDisplayListHead++, D_0D008C90); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH); gDPLoadTLUT_pal256(gDisplayListHead++, D_800E52D0); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4AC, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, D_800E8840, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4B0, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, D_800E8800, 4, 0); gSPDisplayList(gDisplayListHead++, D_0D008DA0); @@ -5288,7 +5288,7 @@ void func_80067D3C(Player *player, s8 arg1, u8 *texture, s8 arg3, f32 arg4, s32 sp7C[0] = player->pos[0] + (sins((0x4000 & 0xFFFFFFFF) - (player->unk_02C[1] + player->unk_0C0)) * arg4); sp7C[1] = player->pos[1] + player->boundingBoxSize - sp54[player->characterId] - 2.0f; sp7C[2] = player->pos[2] + (coss((0x4000 & 0xFFFFFFFF) - (player->unk_02C[1] + player->unk_0C0)) * arg4); - func_800652D4(sp7C, sp74, player->unk_258[20 + arg3].unk_00C * player->unk_224); + func_800652D4(sp7C, sp74, player->unk_258[20 + arg3].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, texture, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5315,7 +5315,7 @@ void func_8006801C(Player *player, s8 arg1, u8 *texture, s8 arg3, f32 arg4, s32 sp7C[0] = player->pos[0] + (sins((0x4000 & 0xFFFFFFFF) - (player->unk_02C[1] + player->unk_0C0)) * arg4); sp7C[1] = player->pos[1] + player->boundingBoxSize - sp54[player->characterId] - 2.0f; sp7C[2] = player->pos[2] + (coss((0x4000 & 0xFFFFFFFF) - (player->unk_02C[1] + player->unk_0C0)) * arg4); - func_800652D4(sp7C, sp74, player->unk_258[20 + arg3].unk_00C * player->unk_224 * 0.8); + func_800652D4(sp7C, sp74, player->unk_258[20 + arg3].unk_00C * player->size * 0.8); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, texture, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5340,13 +5340,13 @@ void func_80068310(Player *player, s8 arg1, f32 arg2, s8 arg3, s8 arg4) { sp94[0] = 0; sp94[1] = player->unk_048[arg3]; sp94[2] = 0; - func_800652D4(sp9C, sp94, player->unk_258[20 + arg4].unk_00C * player->unk_224); + func_800652D4(sp9C, sp94, player->unk_258[20 + arg4].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008C90); gDPLoadTLUT_pal256(gDisplayListHead++, D_800E52D0); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4B4, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, D_800E8880, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4B8, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, D_800E88C0, 4, 0); gSPDisplayList(gDisplayListHead++, D_0D008DA0); @@ -5366,13 +5366,13 @@ void func_80068724(Player *player, s8 arg1, f32 arg2, s8 arg3, s8 arg4) { sp7C[0] = 0; sp7C[1] = player->unk_048[arg3]; sp7C[2] = 0; - func_800652D4(sp84, sp7C, player->unk_258[20 + arg4].unk_00C * player->unk_224); + func_800652D4(sp84, sp7C, player->unk_258[20 + arg4].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA); gDPSetRenderMode(gDisplayListHead++, G_RM_ZB_CLD_SURF, G_RM_ZB_CLD_SURF2); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C4, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, D_800E8A00, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C8, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, D_800E8A40, 4, 0); gSPDisplayList(gDisplayListHead++, D_0D008DA0); @@ -5384,14 +5384,14 @@ void func_80068AA4(Player *player, s8 arg1, f32 arg2, s8 arg3, s8 arg4) { Vec3f sp64; Vec3s sp5C; - if ((player->unk_258[20 + arg4].unk_01C == 1) && (player->unk_244[arg3] < 0xD)) { + if ((player->unk_258[20 + arg4].unk_01C == 1) && (player->animFrameSelector[arg3] < 0xD)) { sp64[1] = player->pos[1] - 3.0f; sp64[2] = player->pos[2] + ((-2.5 * player->unk_258[20 + arg4].unk_01E) * coss(player->unk_048[arg3])); sp64[0] = player->pos[0] + ((-2.5 * player->unk_258[20 + arg4].unk_01E) * sins(player->unk_048[arg3])); sp5C[0] = 0; sp5C[1] = player->unk_048[arg3]; sp5C[2] = 0; - func_800652D4(sp64, sp5C, player->unk_258[20 + arg4].unk_00C * player->unk_224); + func_800652D4(sp64, sp5C, player->unk_258[20 + arg4].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008D58); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4A0, G_IM_FMT_IA, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5410,20 +5410,20 @@ void func_80068DA0(Player *player, s8 arg1, f32 arg2, s8 arg3, s8 arg4) { Vec3f sp9C; Vec3s sp94; - if ((player->unk_258[20 + arg4].unk_01C == 1) && ((s32) player->unk_244[arg3] < 0xD)) { + if ((player->unk_258[20 + arg4].unk_01C == 1) && ((s32) player->animFrameSelector[arg3] < 0xD)) { sp9C[1] = (player->pos[1] - 3.0f) + player->unk_258[20 + arg4].unk_000[1]; sp9C[2] = player->pos[2] + (coss(player->unk_048[arg3]) * -10.0f); sp9C[0] = player->pos[0] + (sins(player->unk_048[arg3]) * -10.0f); sp94[0] = 0; sp94[1] = player->unk_048[arg3]; sp94[2] = 0; - func_800652D4(sp9C, sp94, player->unk_258[20 + arg4].unk_00C * player->unk_224); + func_800652D4(sp9C, sp94, player->unk_258[20 + arg4].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008C90); gDPLoadTLUT_pal256(gDisplayListHead++, D_800E52D0); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4A4, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, D_800E8B80, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4A8, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gSPVertex(gDisplayListHead++, D_800E8BC0, 4, 0); gSPDisplayList(gDisplayListHead++, D_0D008DA0); @@ -5445,7 +5445,7 @@ void func_800691B8(Player *player, s8 arg1, s16 arg2, s8 arg3) { sp54[1] = player->unk_048[arg3]; player->unk_258[30 + arg2].unk_03A += 0x1C71; sp54[2] = player->unk_258[30 + arg2].unk_03A; - func_800652D4(sp5C, sp54, player->unk_224 * 0.5); + func_800652D4(sp5C, sp54, player->size * 0.5); gSPDisplayList(gDisplayListHead++, D_0D008D58); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); gDPLoadTextureBlock(gDisplayListHead++, D_8018D488, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5484,7 +5484,7 @@ void func_80069444(Player *player, s8 arg1, s16 arg2, s8 arg3) { sp6C[0] = 0; sp6C[1] = player->unk_048[arg3]; sp6C[2] = 0; - func_800652D4(sp74, sp6C, player->unk_224 * 1.5); + func_800652D4(sp74, sp6C, player->size * 1.5); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, D_8018D494, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); // `test` MUST be a u16 @@ -5511,7 +5511,7 @@ void func_800696CC(Player *player, s8 arg1, s16 arg2, s8 arg3, f32 arg4) { sp54[0] = 0; sp54[1] = player->unk_048[arg3]; sp54[2] = 0; - func_800652D4(sp5C, sp54, player->unk_224 * arg4); + func_800652D4(sp5C, sp54, player->size * arg4); gSPDisplayList(gDisplayListHead++, D_0D008D58); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); gDPLoadTextureBlock(gDisplayListHead++, D_8018D488, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5536,7 +5536,7 @@ void func_80069938(Player *player, s8 arg1, s16 arg2, s8 arg3) { sp54[0] = 0; sp54[1] = player->unk_048[arg3]; sp54[2] = player->unk_258[30 + arg2].unk_038; - func_800652D4(sp5C, sp54, player->unk_258[30 + arg2].unk_00C * player->unk_224); + func_800652D4(sp5C, sp54, player->unk_258[30 + arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008D58); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); gDPLoadTextureBlock(gDisplayListHead++, D_8018D488, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5567,7 +5567,7 @@ void func_80069BA8(Player *player, s8 arg1, s16 arg2, s8 arg3) { sp4C[0] = 0; sp4C[1] = player->unk_048[arg3]; sp4C[2] = 0; - func_800652D4(sp54, sp4C, player->unk_258[30 + arg2].unk_00C * player->unk_224); + func_800652D4(sp54, sp4C, player->unk_258[30 + arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, D_8018D48C, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); func_8004B35C(red, green, blue, alpha); @@ -5588,7 +5588,7 @@ void func_80069DB8(Player *player, s8 arg1, s16 arg2, s8 arg3) { sp54[0] = 0; sp54[1] = player->unk_048[arg3]; sp54[2] = 0; - func_800652D4(sp5C, sp54, player->unk_258[30 + arg2].unk_00C * player->unk_224); + func_800652D4(sp5C, sp54, player->unk_258[30 + arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008D58); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); gDPLoadTextureBlock(gDisplayListHead++, D_8018D49C, G_IM_FMT_IA, G_IM_SIZ_16b, 16, 16, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5611,7 +5611,7 @@ void func_8006A01C(Player *player, s8 arg1, s16 arg2, s8 arg3) { sp4C[0] = 0; sp4C[1] = player->unk_048[arg3]; sp4C[2] = 0; - func_800652D4(sp54, sp4C, player->unk_258[10 + arg2].unk_00C * player->unk_224); + func_800652D4(sp54, sp4C, player->unk_258[10 + arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008D58); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); @@ -5641,7 +5641,7 @@ void func_8006A280(Player *player, s8 arg1, s16 arg2, s8 arg3) { sp54[0] = 0; sp54[1] = player->unk_048[arg3]; sp54[2] = 0; - func_800652D4(sp5C, sp54, player->unk_258[arg2].unk_00C * player->unk_224); + func_800652D4(sp5C, sp54, player->unk_258[arg2].unk_00C * player->size); gSPDisplayList(gDisplayListHead++, D_0D008D58); gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); gDPLoadTextureBlock_4b(gDisplayListHead++, *D_800E47A0[player->unk_258[arg2].unk_01E], G_IM_FMT_I, 64, 64, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -5910,8 +5910,8 @@ extern ? D_8018D860; extern ? D_8018D890; static ? D_800E4934; /* unable to generate initializer */ static ? D_800E4954; /* unable to generate initializer */ -static ? D_800E5250; /* unable to generate initializer */ -static ? D_800E5290; /* unable to generate initializer */ +static ? gBalloonVertexPlane1; /* unable to generate initializer */ +static ? gBalloonVertexPlane2; /* unable to generate initializer */ static ? D_800E52D0; /* unable to generate initializer */ void func_8006AFD0(Player *player, s16 arg1, s8 arg2, s8 arg3) { @@ -6011,7 +6011,7 @@ void func_8006AFD0(Player *player, s16 arg1, s8 arg2, s8 arg3) { temp_v0_2 = &cameras[arg3]; temp_f20 = player->pos[0] - temp_v0_2->pos[0]; temp_f0 = player->pos[2] - temp_v0_2->pos[2]; - if (gActiveScreenMode != 3) { + if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) { sp11C = temp_t1; var_f20 = sqrtf((temp_f20 * temp_f20) + (temp_f0 * temp_f0)) / 300.0f; } else { @@ -6041,9 +6041,9 @@ void func_8006AFD0(Player *player, s16 arg1, s8 arg2, s8 arg3) { sp12E = sp54->unk48; sp58 = coss(unksp46); sp130 = (s16) (s32) (((f32) *(&D_8018D7D0 + (((s8) arg1 * 6) + temp_t6)) - ((f32) *(&D_8018D860 + (((s8) arg1 * 6) + temp_t6)) * sp58)) - (sins(unksp46) * (f32) (*sp3C * 8))); - func_80021E10((f32 (*)[4]) &sp140[0], &sp134, &sp12C); - func_80021F84((f32 (*)[4]) &sp140[0], var_f20); - func_80022180(&gGfxPool->mtxEffect[gMatrixEffectCount], (f32 (*)[4]) &sp140[0]); + mtxf_translate_rotate((f32 (*)[4]) &sp140[0], &sp134, &sp12C); + mtxf_scale2((f32 (*)[4]) &sp140[0], var_f20); + convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], (f32 (*)[4]) &sp140[0]); gSPMatrix(gDisplayListHead++, PHYSICAL_TO_VIRTUAL(&gGfxPool->mtxEffect[gMatrixEffectCount], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, D_0D008DB8); @@ -6054,11 +6054,11 @@ void func_8006AFD0(Player *player, s16 arg1, s8 arg2, s8 arg3) { gDPSetRenderMode(gDisplayListHead++, AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4BC, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPVertex(gDisplayListHead++, D_800E5250, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPVertex(gDisplayListHead++, gBalloonVertexPlane1, 4, 0); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C0 - 0x40, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPVertex(gDisplayListHead++, D_800E5290, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPVertex(gDisplayListHead++, gBalloonVertexPlane2, 4, 0); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 0x0001, 0x0001, 0, G_TX_RENDERTILE, G_OFF); gMatrixEffectCount++; } @@ -6127,8 +6127,8 @@ void func_8006BA94(Player* player, s8 playerIndex, s8 arg2) { } // data/data_code_80071F00_2.s -extern Vtx D_800E5250[]; -extern Vtx D_800E5290[]; +extern Vtx gBalloonVertexPlane1[]; +extern Vtx gBalloonVertexPlane2[]; extern u8 D_800E52D0[]; void render_balloon(Vec3f arg0, f32 arg1, s16 arg2, s16 arg3) { @@ -6163,9 +6163,9 @@ void render_balloon(Vec3f arg0, f32 arg1, s16 arg2, s16 arg3) { spF4[0] = 0; spF4[1] = camera1->rot[1]; spF4[2] = arg2; - func_80021E10(sp108[0], spFC, spF4); - func_80021F84(sp108[0], arg1); - func_80022180(&gGfxPool->mtxEffect[gMatrixEffectCount], sp108); + mtxf_translate_rotate(sp108[0], spFC, spF4); + mtxf_scale2(sp108[0], arg1); + convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], sp108); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTLUT_pal256(gDisplayListHead++, D_800E52D0); @@ -6173,12 +6173,12 @@ void render_balloon(Vec3f arg0, f32 arg1, s16 arg2, s16 arg3) { func_8004B614(primRed, primGreen, primBlue, envRed, envGreen, envBlue, 0x000000D8); gDPSetRenderMode(gDisplayListHead++, AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), AA_EN | Z_CMP | Z_UPD | IM_RD | CVG_DST_WRAP | ZMODE_XLU | CVG_X_ALPHA | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); gDPLoadTextureBlock(gDisplayListHead++, D_8018D4BC, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPVertex(gDisplayListHead++, D_800E5250, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPVertex(gDisplayListHead++, gBalloonVertexPlane1, 4, 0); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); // D_8018D4C0 is correct. But interestingly, IDO seems to set "-0x40" to a different register so the texture still looks fine. gDPLoadTextureBlock(gDisplayListHead++, D_8018D4C0 - 0x40, G_IM_FMT_CI, G_IM_SIZ_8b, 64, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPVertex(gDisplayListHead++, D_800E5290, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D008C78); + gSPVertex(gDisplayListHead++, gBalloonVertexPlane2, 4, 0); + gSPDisplayList(gDisplayListHead++, common_square_plain_render); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); gMatrixEffectCount += 1; } @@ -6303,16 +6303,16 @@ void func_8006C6AC(Player *player, s16 arg1, s8 arg2, s8 arg3) { if (player->unk_0DE & 1) { // func_80060BCC(player, arg1, sp28, (s32) arg2, /* extra? */ (s32) arg3); func_80060BCC(player, arg1, sp28, (s32) arg2); - } else if (!(player->unk_0BC & 8) && !(player->unk_0BC & 2)) { - if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_000 & 0x4000) == 0x4000)) { + } else if (!(player->effects & 8) && !(player->effects & 2)) { + if (((player->effects & 0x10) == 0x10) && ((player->type & 0x4000) == 0x4000)) { func_8005DA30(player, arg1, sp28, arg2, (s8) (s32) arg3); } else if (((f64) (D_801652A0[arg2] - player->boundingBoxCorners[3].cornerGroundY) >= 3.5) || ((f64) (D_801652A0[arg2] - player->boundingBoxCorners[2].cornerGroundY) >= 3.5)) { // func_8005EA94(player, arg1, sp28, arg2, /* extra? */ (s32) arg3); func_8005EA94(player, arg1, sp28, arg2); - } else if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40)) { + } else if (((player->effects & 0x80) == 0x80) || ((player->effects & 0x40) == 0x40)) { // func_8005F90C(player, arg1, sp28, (s32) arg2, /* extra? */ (s32) arg3); func_8005F90C(player, arg1, sp28, (s32) arg2); - } else if (((player->unk_0BC & 0x4000) && !(player->unk_000 & 0x2000)) || (player->unk_0BC & 0x800) || (player->unk_0BC & 0x20) || (player->unk_044 & 0x4000)) { + } else if (((player->effects & 0x4000) && !(player->type & PLAYER_STAGING)) || (player->effects & 0x800) || (player->effects & 0x20) || (player->unk_044 & 0x4000)) { // func_8005ED48(player, arg1, sp28, (s32) arg2, /* extra? */ (s32) arg3); func_8005ED48(player, arg1, sp28, (s32) arg2); } else { @@ -6388,7 +6388,7 @@ void func_8006C9B8(Player *player, s16 arg1, s8 arg2, s8 arg3) { player->unk_044 &= ~0x0100; return; } - if (((((player->unk_0CA & 0x1000) == 0x1000) || ((player->unk_0E0 < 2) && (player->unk_0BC & 0x01000000))) || ((player->unk_0E0 < 2) && (player->unk_0BC & 0x02000000))) || (player->unk_0BC & 0x400)) { + if (((((player->unk_0CA & 0x1000) == 0x1000) || ((player->unk_0E0 < 2) && (player->effects & 0x01000000))) || ((player->unk_0E0 < 2) && (player->effects & 0x02000000))) || (player->effects & 0x400)) { func_8006199C(player, arg1, sp28, arg2, arg3); player->unk_046 &= ~0x0008; player->unk_044 &= ~0x0100; @@ -6400,7 +6400,7 @@ void func_8006C9B8(Player *player, s16 arg1, s8 arg2, s8 arg3) { player->unk_044 &= ~0x0100; return; } - if ((player->unk_0BC & 0x200) && ((((s32) gCourseTimer) - D_8018D930[arg2]) < 9)) { + if ((player->effects & 0x200) && ((((s32) gCourseTimer) - D_8018D930[arg2]) < 9)) { func_800615AC(player, arg1, sp28, arg2); player->unk_046 &= ~0x0008; player->unk_044 &= ~0x0100; @@ -6417,11 +6417,11 @@ void func_8006C9B8(Player *player, s16 arg1, s8 arg2, s8 arg3) { player->unk_044 &= ~0x0100; return; } - if ((player->unk_0BC & 0x2000) && (player->unk_000 & 0x4000)) { + if ((player->effects & 0x2000) && (player->type & 0x4000)) { func_800621BC(player, arg1, sp28, arg2); return; } - if (((player->unk_0BC & 0x200000) || (player->unk_0BC & 0x100000)) && ((player->unk_000 & 0x4000) == 0x4000)) { + if (((player->effects & 0x200000) || (player->effects & 0x100000)) && ((player->type & 0x4000) == 0x4000)) { func_80061EF4(player, arg1, sp28, arg2); player->unk_046 &= ~0x0008; player->unk_044 &= ~0x0100; @@ -6475,13 +6475,13 @@ void func_8006CEC0(Player *arg0, s16 arg1, s8 arg2, s8 arg3) { break; } } else { - if ((arg0->unk_044 & 0x200) && (arg0->unk_000 & 0x4000)) { + if ((arg0->unk_044 & 0x200) && (arg0->type & 0x4000)) { func_80061224(arg0, arg1, sp20, arg2, arg3); return; - } else if (((arg0->unk_0BC & 0x40000000) == 0x40000000) && (arg0->unk_0B0 < 0x32)) { + } else if (((arg0->effects & 0x40000000) == 0x40000000) && (arg0->unk_0B0 < 0x32)) { func_80061094(arg0, arg1, sp20, arg2, arg3); return; - } else if ((arg0->unk_000 & 0x4000) == 0x4000) { + } else if ((arg0->type & 0x4000) == 0x4000) { if ((arg0->unk_0DE & 8) == 8) { func_80060F50(arg0, arg1, sp20, arg2, arg3); return; @@ -6492,9 +6492,9 @@ void func_8006CEC0(Player *arg0, s16 arg1, s8 arg2, s8 arg3) { } switch (gActiveScreenMode) { case SCREEN_MODE_1P: - if (((arg0->unk_0BC & 0x04000000) != 0x04000000) - && ((arg0->unk_0BC & 0x400) != 0x400) - && ((arg0->unk_0BC & 0x01000000) != 0x01000000)) { + if (((arg0->effects & 0x04000000) != 0x04000000) + && ((arg0->effects & 0x400) != 0x400) + && ((arg0->effects & 0x01000000) != 0x01000000)) { if (((arg0->unk_0CA & 2) != 2) && ((arg0->unk_0CA & 0x10) != 0x10) && !(arg0->unk_0CA & 0x100)) { //func_80060504(arg0, arg1, sp20, arg2, arg3); func_80060504(arg0, sp20, arg2, arg3); @@ -6506,10 +6506,10 @@ void func_8006CEC0(Player *arg0, s16 arg1, s8 arg2, s8 arg3) { case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: case SCREEN_MODE_3P_4P_SPLITSCREEN: - if (((arg0->unk_000 & 0x4000) != 0) - && ((arg0->unk_0BC & 0x04000000) != 0x04000000) - && ((arg0->unk_0BC & 0x400) != 0x400) - && ((arg0->unk_0BC & 0x01000000) != 0x01000000)) { + if (((arg0->type & 0x4000) != 0) + && ((arg0->effects & 0x04000000) != 0x04000000) + && ((arg0->effects & 0x400) != 0x400) + && ((arg0->effects & 0x01000000) != 0x01000000)) { if (((arg0->unk_0CA & 2) != 2) && ((arg0->unk_0CA & 0x10) != 0x10) && !(arg0->unk_0CA & 0x100)) { //func_80060504(arg0, arg1, sp20, arg2, arg3); func_80060504(arg0, sp20, arg2, arg3); @@ -6723,14 +6723,14 @@ void func_8006D474(Player *player, s8 arg1, s8 arg2) { } void func_8006DC54(Player* player, s8 arg1, s8 arg2) { - s16 temp_s0; - s32 temp_v0; + s16 i; + s32 bitwiseMask; - temp_v0 = 8 << (arg2 * 4); - if (temp_v0 == (player->unk_002 & temp_v0)) { - for (temp_s0 = 0; temp_s0 < 10; ++temp_s0) { - if (player->unk_258[temp_s0].unk_012 == 7) { - func_800658A0(player, arg1, temp_s0, arg2); + bitwiseMask = 8 << (arg2 * 4); + if (bitwiseMask == (player->unk_002 & bitwiseMask)) { + for (i = 0; i < 10; i++) { + if (player->unk_258[i].unk_012 == 7) { + func_800658A0(player, arg1, i, arg2); } } } @@ -6757,7 +6757,7 @@ void func_8006DD3C(Player* arg0, s8 arg1, s8 arg2) { } } - if (((arg0->unk_000 & 0x4000) == 0x4000) && (arg2 == arg1)) { + if (((arg0->type & 0x4000) == 0x4000) && (arg2 == arg1)) { switch (arg0->unk_258[20].unk_012) { case 2: func_80068310(arg0, arg1, arg0->unk_258[20].unk_00C, arg2, 0); @@ -6801,11 +6801,11 @@ void func_8006E058(void) { case TIME_TRIALS: func_8006E420(gPlayerOne, 0, 0); - if ((gPlayerTwo->unk_000 & 0x100) == 0x100) { + if ((gPlayerTwo->type & 0x100) == 0x100) { func_8006E420(gPlayerTwo, 1, 0); } - if ((gPlayerThree->unk_000 & 0x100) == 0x100) { + if ((gPlayerThree->type & 0x100) == 0x100) { func_8006E420(gPlayerThree, 2, 0); break; } @@ -6852,7 +6852,7 @@ void func_8006E058(void) { case TIME_TRIALS: func_8006E420(gPlayerOne, 0, 0); - if ((gPlayerTwo->unk_000 & 0x8000) == 0x8000) { + if ((gPlayerTwo->type & 0x8000) == 0x8000) { func_8006E420(gPlayerTwo, 1, 0); break; } @@ -6879,15 +6879,15 @@ void func_8006E058(void) { void func_8006E420(Player* player, s8 arg1, s8 arg2) { s16 temp_s0; - if ((player->unk_000 & 0x8000) == 0x8000) { - if ((player->unk_000 & 0x4000) == 0x4000) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { + if ((player->type & 0x4000) == 0x4000) { func_8006D194(player, arg1, arg2); } for (temp_s0 = 0; temp_s0 < 10; ++temp_s0) { func_8006CEC0(player, temp_s0, arg1, arg2); - if (((player->unk_000 & 0x4000) == 0x4000) || (gGamestate == ENDING_SEQUENCE)) { + if (((player->type & 0x4000) == 0x4000) || (gGamestate == ENDING_SEQUENCE)) { func_8006C9B8(player, temp_s0, arg1, arg2); } func_8006C6AC(player, temp_s0, arg1, arg2); @@ -6900,8 +6900,8 @@ void func_8006E420(Player* player, s8 arg1, s8 arg2) { } void func_8006E5AC(Player* player, s8 arg1, s8 arg2) { - if ((player->unk_000 & 0x8000) == 0x8000) { - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { + if ((player->effects & 0x80000000) == 0x80000000) { if (arg1 == arg2) { func_8006D474(player, arg1, arg2); } @@ -6913,8 +6913,8 @@ void func_8006E5AC(Player* player, s8 arg1, s8 arg2) { } void func_8006E634(Player* player, s8 arg1, s8 arg2) { - if ((player->unk_000 & 0x8000) == 0x8000) { - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { + if ((player->effects & 0x80000000) == 0x80000000) { if (arg1 == arg2) { func_8006D474(player, arg1, arg2); } @@ -6926,8 +6926,8 @@ void func_8006E634(Player* player, s8 arg1, s8 arg2) { } void func_8006E6BC(Player* player, s8 arg1, s8 arg2) { - if ((player->unk_000 & 0x8000) == 0x8000) { - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { + if ((player->effects & 0x80000000) == 0x80000000) { if (arg1 == arg2) { func_8006D474(player, arg1, arg2); } @@ -6939,8 +6939,8 @@ void func_8006E6BC(Player* player, s8 arg1, s8 arg2) { } void func_8006E744(Player* player, s8 arg1, s8 arg2) { - if ((player->unk_000 & 0x8000) == 0x8000) { - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { + if ((player->effects & 0x80000000) == 0x80000000) { if (arg1 == arg2) { func_8006D474(player, arg1, arg2); } @@ -6952,8 +6952,8 @@ void func_8006E744(Player* player, s8 arg1, s8 arg2) { } void func_8006E7CC(Player* player, s8 arg1, s8 arg2) { - if ((player->unk_000 & 0x8000) == 0x8000) { - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { + if ((player->effects & 0x80000000) == 0x80000000) { if (arg1 == arg2) { func_8006DD3C(player, arg1, arg2); } @@ -6964,8 +6964,8 @@ void func_8006E7CC(Player* player, s8 arg1, s8 arg2) { } void func_8006E848(Player* player, s8 arg1, s8 arg2) { - if ((player->unk_000 & 0x8000) == 0x8000) { - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { + if ((player->effects & 0x80000000) == 0x80000000) { if (arg1 == arg2) { func_8006DD3C(player, arg1, arg2); } @@ -6976,8 +6976,8 @@ void func_8006E848(Player* player, s8 arg1, s8 arg2) { } void func_8006E8C4(Player* player, s8 arg1, s8 arg2) { - if ((player->unk_000 & 0x8000) == 0x8000) { - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { + if ((player->effects & 0x80000000) == 0x80000000) { if (arg1 == arg2) { func_8006DD3C(player, arg1, arg2); } @@ -6988,8 +6988,8 @@ void func_8006E8C4(Player* player, s8 arg1, s8 arg2) { } void func_8006E940(Player* player, s8 arg1, s8 arg2) { - if ((player->unk_000 & 0x8000) == 0x8000) { - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { + if ((player->effects & 0x80000000) == 0x80000000) { if (arg1 == arg2) { func_8006DD3C(player, arg1, arg2); } diff --git a/src/code_80057C60.h b/src/code_80057C60.h index e290df449..f49778cbc 100644 --- a/src/code_80057C60.h +++ b/src/code_80057C60.h @@ -53,7 +53,7 @@ void func_80059780(void); void func_800597B8(void); void func_800597E8(void); void func_80059820(s32); -void func_800598D4(s32); +void randomize_seed_from_controller(s32); void func_8005994C(void); void func_8005995C(void); void func_80059A88(s32); @@ -231,15 +231,15 @@ extern s32 D_8018D22C; extern s8 D_80165898; extern Gfx D_0D0076F8[]; extern s8 D_801657E4; -extern s8 D_801657E6; +extern bool8 D_801657E6; extern s32 D_8018D2AC; extern u16 D_800DC5B8; -extern s8 D_801657F0; +extern bool8 D_801657F0; extern s8 D_80165800[2]; extern s8 D_80165801; extern s8 D_801657B0; extern u8 gControllerRandom; -extern s32 D_8018D214; +extern bool D_8018D214; extern s32 D_8018D2C8[]; extern u8 *D_8018D420; extern u8 *D_8018D424; @@ -290,16 +290,16 @@ extern struct UnkStruct_800DC5EC *D_800DC5F8; extern u16 gIsGamePaused; -extern s32 D_80164394; -extern s32 D_80164398; -extern s32 D_8016439C; -extern f32 D_801652A0[]; -extern s32 D_801655C0; -extern s32 D_801655F0; -extern s32 D_80165678; -extern s8 D_801657AE; -extern s8 D_801657D8; -extern s8 D_801657E8; +extern s32 D_80164394; +extern s32 D_80164398; +extern s32 D_8016439C; +extern f32 D_801652A0[]; +extern s32 D_801655C0; +extern s32 D_801655F0; +extern s32 D_80165678; +extern s8 D_801657AE; +extern s8 D_801657D8; +extern bool8 D_801657E8; extern s8 D_8018CAE0; extern s16 gGPCurrentRaceCharacterIdByRank[]; diff --git a/src/code_8006E9C0.c b/src/code_8006E9C0.c index a2de012b2..379ba86f2 100644 --- a/src/code_8006E9C0.c +++ b/src/code_8006E9C0.c @@ -16,23 +16,23 @@ #include "main.h" #include "menus.h" -void func_8006E9C0(void) { +void init_object_list(void) { func_8006EA5C(); func_8006FA94(); switch (gScreenModeSelection) { case SCREEN_MODE_1P: - func_80071428(); + init_hud_one_player(); break; case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: - func_80071818(); + init_hud_two_player_vertical(); break; case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: - func_80071A20(); + init_hud_two_player_horizontal(); break; case SCREEN_MODE_3P_4P_SPLITSCREEN: - func_80071C28(); + init_hud_three_four_player(); break; } func_80070148(); @@ -193,7 +193,7 @@ GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006EB10.s") #endif void func_8006ED60() { - bzero(D_80165C18, OBJECT_LIST_SIZE * sizeof(struct_80165C18_entry)); + bzero(gObjectList, OBJECT_LIST_SIZE * sizeof(Objects)); D_80183D5C = -1; } @@ -217,12 +217,12 @@ void func_8006EE44(void) { } // Some kind of initalization for the Item Window part of the HUD -void func_8006EE7C(s32 objectIndex) { - struct_80165C18_entry *temp_v0; +void init_item_window(s32 objectIndex) { + ItemWindowObjects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; - temp_v0->unk_0A4 = 0; - temp_v0->unk_0D2 = temp_v0->unk_0A4; + temp_v0 = &gObjectList[objectIndex]; + temp_v0->currentItem = ITEM_NONE; + temp_v0->itemDisplay = temp_v0->currentItem; temp_v0->tlutList = (s32 *) gTLUTItemWindowNone; temp_v0->activeTLUT = (s32 *) gTLUTItemWindowNone; temp_v0->textureList = gTextureItemWindowNone; @@ -565,7 +565,7 @@ block_26: if (gIsMirrorMode != 0) { D_8018D2E0 = D_8018D2B0 - D_8018D2E0; } - temp_v0 = D_8018EDF3; + temp_v0 = gPlayerCount; if (temp_v0 == 4) { D_8018D2C0.unk0 = 0x00A0; D_8018D2D8.unk0 = 0x0078; @@ -594,13 +594,13 @@ GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_8006F008.s") extern u16 gIsGamePaused; extern s8 D_801657E4; -extern s8 D_801657E6; -extern s8 D_801657E8; -extern s8 D_801657F0; +extern bool8 D_801657E6; +extern bool8 D_801657E8; +extern bool8 D_801657F0; extern s8 D_801657F8; extern s8 D_80165808; -extern s8 D_80165810; -extern s8 D_80165818; +extern bool8 D_80165810; +extern bool8 D_80165818; extern s8 D_80165820; extern s8 D_80165828; @@ -629,14 +629,14 @@ void func_8006F824(s32 arg0) { //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 void func_8006F824(?, s8 *, s8 *, s32); // extern extern s8 D_801657E4; -extern s8 D_801657E6; -extern s8 D_801657E8; -extern s8 D_801657F0; +extern bool8 D_801657E6; +extern bool8 D_801657E8; +extern bool8 D_801657F0; extern s8 D_801657F8; extern s8 D_80165800; extern s8 D_80165808; -extern s8 D_80165810; -extern s8 D_80165818; +extern bool8 D_80165810; +extern bool8 D_80165818; extern s8 D_80165820; extern s8 D_80165828; extern ? D_80165832; @@ -649,12 +649,12 @@ void func_8006F8CC(void) { if (D_8018EDFC == 0) { D_8018EDFC = 1; D_801657E4 = 0; - D_801657E6 = 0; + D_801657E6 = FALSE; D_80165800.unk1 = 1; D_801657F0 = 0; - D_801657E8 = 1; + D_801657E8 = TRUE; D_80165800.unk0 = D_80165800.unk1; - temp_a0 = D_8018EDF3; + temp_a0 = gPlayerCount; if (temp_a0 == FOUR_PLAYERS_SELECTED) { if (gModeSelection != BATTLE) { D_801657E4 = 1; @@ -667,7 +667,7 @@ void func_8006F8CC(void) { D_80165800.unk0 = D_80165800.unk1; } } else if (temp_a0 == THREE_PLAYERS_SELECTED) { - D_801657E8 = 0; + D_801657E8 = FALSE; D_801657F8 = 1; } else if (temp_a0 == TWO_PLAYERS_SELECTED) { if (gModeSelection != BATTLE) { @@ -771,7 +771,7 @@ extern s32 D_8018D1F8; extern s32 D_8018D1FC; extern s32 D_8018D204; extern s32 D_8018D20C; -extern s32 D_8018D214; +extern bool D_8018D214; extern s32 D_8018D224; extern s8 D_8018D228; extern s32 D_8018D2A4; @@ -828,7 +828,7 @@ void func_8006FA94(void) { D_80165658.unk8 = 0; D_80165658.unk4 = 0; D_80165658.unk0 = 0; - temp_ra = D_8018EDF3; + temp_ra = gPlayerCount; D_801658BC = D_801658C6; switch (temp_ra) { /* irregular */ case 1: @@ -941,9 +941,9 @@ void func_8006FA94(void) { D_8018D168 = 0; D_801656F0 = 0; D_801657B2 = 0; - D_801657D8 = D_801657B2; - D_8018D214 = (s32) D_801657D8; - D_801657B0 = (s8) D_8018D214; + D_801657D8 = D_801657B2; // put all to 0 + D_8018D214 = (s32) D_801657D8; // put all to 0 + D_801657B0 = (s8) D_8018D214; // put all to 0 D_801657AE = D_801657B0; D_8018D20C = 0; D_8018D2F8 = 0; @@ -1047,12 +1047,12 @@ void func_80070190(void) { } void func_80070250(s32 objectIndex, s32 arg1, StarSpawn *arg2) { - struct_80165C18_entry *temp_v0; + ItemWindowObjects *temp_v0; func_800723A4(objectIndex, arg1); - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_0D5 = arg2->id; - temp_v0->unk_0A4 = 0; + temp_v0->currentItem = ITEM_NONE; temp_v0->unk_0BE[1] = arg2->pos[0]; temp_v0->unk_09E = arg2->pos[1]; temp_v0->sizeScaling = (f32) arg2->pos[2] / 100.0; @@ -1090,17 +1090,17 @@ void func_80070328(StarSpawn *arg0) { * unk_0A2 is an alpha value, used to make the star twinkle. **/ void func_800703E0(s32 objectIndex, s32 arg1, StarSpawn *arg2) { - struct_80165C18_entry *temp_v0; + ItemWindowObjects *temp_v0; func_800723A4(objectIndex, arg1); - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_0D5 = arg2->id; // No idea, all 0's for stars - temp_v0->unk_0A4 = 1; + temp_v0->currentItem = ITEM_BANANA; temp_v0->unk_0BE[1] = arg2->pos[0]; // No idea temp_v0->unk_09E = arg2->pos[1]; // screen Y position temp_v0->sizeScaling = (f32)arg2->pos[2] / 100.0; // some type of scaling on the texture temp_v0->activeTexture = D_0D0293D8; - func_80073404(objectIndex, 0x10U, 0x10U, D_0D005770); + func_80073404(objectIndex, 0x10U, 0x10U, common_vtx_rectangle); } void func_800704A0(StarSpawn *arg0) { @@ -1122,14 +1122,14 @@ void func_8007055C(void) { s32 var_s4; switch (gCurrentCourseId) { - case 0: + case COURSE_MARIO_RACEWAY: func_80070328(&D_800E6C10); break; - case 4: + case COURSE_YOSHI_VALLEY: func_80070328(&D_800E6AA8); break; - case 5: - if (D_8018EDF3 == 1) { + case COURSE_FRAPPE_SNOWLAND: + if (gPlayerCount == 1) { var_s4 = 0x32; } else { var_s4 = 0x19; @@ -1140,31 +1140,31 @@ void func_8007055C(void) { D_8018D1F8 += var_s0; D_8018D1F0 = var_s0; break; - case 6: + case COURSE_KOOPA_BEACH: func_80070328(D_800E6B00); break; - case 7: + case COURSE_ROYAL_RACEWAY: func_80070328(D_800E6B38); break; - case 8: + case COURSE_LUIGI_RACEWAY: func_80070328(D_800E6A38); break; - case 9: + case COURSE_MOO_MOO_FARM: func_80070328(D_800E6AA8); break; - case 10: + case COURSE_TOADS_TURNPIKE: func_800704A0(D_800E6C80); break; - case 11: + case COURSE_KALAMARI_DESERT: func_80070328(D_800E6C10); break; - case 12: + case COURSE_SHERBET_LAND: func_80070328(D_800E6BA8); break; - case 13: + case COURSE_RAINBOW_ROAD: func_800704A0(D_800E6C80); break; - case 14: + case COURSE_WARIO_STADIUM: func_800704A0(D_800E6DE0); break; } @@ -1173,7 +1173,7 @@ void func_8007055C(void) { void func_80070714(void) { D_80165730 = 1; - if (D_8018EDF3 == ONE_PLAYERS_SELECTED) { + if (gPlayerCount == ONE_PLAYERS_SELECTED) { D_80165738 = 0x64; D_80165740 = 0x3C; D_80165748 = 0x1E; @@ -1223,7 +1223,7 @@ static ? D_800E6360; /* unable to generate initia static ? D_800E641A; /* unable to generate initializer */ void func_80070780(void) { - struct_80165C18_entry *sp4C; + Objects *sp4C; ? *sp48; ? *sp44; ? *var_s1_2; @@ -1294,15 +1294,15 @@ void func_80070780(void) { s8 *var_s0_5; s8 *var_s0_6; s8 *var_s0_7; - struct_80165C18_entry *temp_v0; - struct_80165C18_entry *temp_v0_2; - struct_80165C18_entry *temp_v0_3; - struct_80165C18_entry *temp_v0_4; - struct_80165C18_entry *temp_v0_5; - struct_80165C18_entry *temp_v0_6; - struct_80165C18_entry *temp_v0_7; - struct_80165C18_entry *temp_v0_8; - struct_80165C18_entry *temp_v0_9; + Objects *temp_v0; + Objects *temp_v0_2; + Objects *temp_v0_3; + Objects *temp_v0_4; + Objects *temp_v0_5; + Objects *temp_v0_6; + Objects *temp_v0_7; + Objects *temp_v0_8; + Objects *temp_v0_9; switch ((u16) gCurrentCourseId) { case 0: @@ -1352,7 +1352,7 @@ void func_80070780(void) { temp_v1 = D_80165758 + var_s2; var_s3_2 += 1; temp_f6 = (f32) temp_v1->unk0; - temp_v0 = &D_80165C18[temp_s0]; + temp_v0 = &gObjectList[temp_s0]; var_s2 += 8; var_s1 += 4; temp_v0->unk_010[0] = temp_f6 * D_8018D01C; @@ -1365,7 +1365,7 @@ void func_80070780(void) { temp_s0_2 = *D_80183F28; func_800723A4(temp_s0_2, 0); var_s1_2 = &D_800E5728; - temp_v0_2 = &D_80165C18[temp_s0_2]; + temp_v0_2 = &gObjectList[temp_s0_2]; var_s2_2 = D_8018BFA8; temp_v0_2->pos[1] = 80.0f; temp_v0_2->pos[0] = (f32) ((f64) D_8018D01C * -68.0); @@ -1374,7 +1374,7 @@ void func_80070780(void) { temp_s0_3 = *var_s2_2; func_800723A4(temp_s0_3, 0); temp_t9 = var_s3_2 & 1; - temp_v0_3 = &D_80165C18[temp_s0_3]; + temp_v0_3 = &gObjectList[temp_s0_3]; var_s3_2 += 1; var_s2_2 += 4; temp_v0_3->pos[1] = (f32) var_s1_2->unk2; @@ -1388,15 +1388,15 @@ void func_80070780(void) { } while (var_s3_2 < 4); var_s0_2 = D_8018C030; do { - func_80071F6C(var_s0_2); + delete_object(var_s0_2); var_s0_2 += 4; } while (var_s0_2 != D_8018C0B0); return; case 3: if (gGamestate != 9) { temp_s0_4 = D_80183EA0->unk0; - func_80073444(temp_s0_4, &d_course_banshee_boardwalk_bat_tlut, &d_course_banshee_boardwalk_bat, 0x20U, (u16) 0x00000040); - temp_v0_4 = &D_80165C18[temp_s0_4]; + init_texture_object(temp_s0_4, &d_course_banshee_boardwalk_bat_tlut, &d_course_banshee_boardwalk_bat, 0x20U, (u16) 0x00000040); + temp_v0_4 = &gObjectList[temp_s0_4]; temp_v0_4->unk_0B2[0] = 0; temp_v0_4->unk_0B2[1] = 0; temp_v0_4->unk_0B2[2] = 0x8000; @@ -1420,7 +1420,7 @@ void func_80070780(void) { sp44 = var_v1; func_800723A4(temp_s0_5, 0); temp_f0 = (f32) var_s1_4->unk0 * D_8018D01C; - temp_v0_5 = &D_80165C18[temp_s0_5]; + temp_v0_5 = &gObjectList[temp_s0_5]; temp_v0_5->unk_010[0] = temp_f0; temp_v0_5->pos[0] = temp_f0; temp_f10 = var_s1_4->unk4; @@ -1457,14 +1457,14 @@ void func_80070780(void) { temp_s0_6 = *var_s2_4; sp44 = var_v1_2; func_800723A4(temp_s0_6, 0); - temp_v0_6 = &D_80165C18[temp_s0_6]; + temp_v0_6 = &gObjectList[temp_s0_6]; temp_s0_7 = *var_s1_6; temp_v0_6->unk_010[0] = (f32) var_v1_2->unk0 * D_8018D01C; temp_v0_6->unk_010[2] = (f32) var_v1_2->unk4; temp_v0_6->unk_010[1] = (f32) ((f64) var_v1_2->unk2 + 5.0 + 3.0); func_800723A4(temp_s0_7, 0); temp_t4 = var_v1_2->unk4; - temp_v0_7 = &D_80165C18[temp_s0_7]; + temp_v0_7 = &gObjectList[temp_s0_7]; temp_f8 = (f64) var_v1_2->unk2; temp_f4_2 = (f32) var_v1_2->unk0 * D_8018D01C; temp_t5_2 = var_v1_2->unk6; @@ -1488,7 +1488,7 @@ void func_80070780(void) { sp48 = var_v1_3; func_800723A4(temp_s0_8, 0); temp_f6_2 = var_v1_3->unk4; - temp_v0_8 = &D_80165C18[temp_s0_8]; + temp_v0_8 = &gObjectList[temp_s0_8]; temp_f8_2 = var_v1_3->unk6; temp_f18 = (f32) var_v1_3->unk2; temp_f0_4 = (f32) var_v1_3->unk0 * D_8018D01C; @@ -1509,9 +1509,9 @@ void func_80070780(void) { func_800723A4(temp_s0_9, 0); var_s2_5 += 4; if ((u32) var_s2_5 < (u32) &D_80183F3C) { - D_80165C18[temp_s0_9].unk_0D5 = 0; + gObjectList[temp_s0_9].unk_0D5 = 0; } else { - D_80165C18[temp_s0_9].unk_0D5 = 1; + gObjectList[temp_s0_9].unk_0D5 = 1; } } while (var_s2_5 != &D_80183F50); return; @@ -1556,7 +1556,7 @@ void func_80070780(void) { case 9: if (gGamestate != 9) { var_s1_8 = D_80183EA0; - if ((D_8018EDF3 == 1) || ((D_8018EDF3 == 2) && (gModeSelection == (s32) 2))) { + if ((gPlayerCount == 1) || ((gPlayerCount == 2) && (gModeSelection == (s32) 2))) { switch (gCCSelection) { /* switch 2; irregular */ case 0: /* switch 2 */ D_8018D1C8 = 4; @@ -1613,7 +1613,7 @@ block_75: find_unused_obj_index(var_s1_11); temp_s0_10 = *var_s1_11; func_800723A4(temp_s0_10, 0); - temp_v0_9 = &D_80165C18[temp_s0_10]; + temp_v0_9 = &gObjectList[temp_s0_10]; sp4C = temp_v0_9; temp_v0_9->pos[2] = (f32) var_s2_6->unk4; temp_v0_9->pos[0] = (f32) var_s2_6->unk0 * D_8018D01C; @@ -1725,7 +1725,7 @@ extern s32 D_8018D3DC; extern s32 D_8018D3F0; extern s32 D_8018D3F4; -void func_80071428(void) { +void init_hud_one_player(void) { ? *var_a0; ? *var_a1; ? *var_a2; @@ -1771,7 +1771,7 @@ void func_80071428(void) { D_8018CA70->slideItemBoxX = 0; D_8018CA70->slideItemBoxY = 0; D_8018CA70->stagingPosition = (s16) *gGPCurrentRaceRankByPlayerId; - func_8006EE7C(*gItemWindowObjectByPlayerId); + init_item_window(gItemWindowObjectByPlayerId[0]); var_f0 = 35.0f; var_v0 = &D_8018D078; var_a3 = &D_8018D0A0; @@ -1852,21 +1852,20 @@ void func_80071428(void) { } } #else -GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80071428.s") +GLOBAL_ASM("asm/non_matchings/code_8006E9C0/init_hud_one_player.s") #endif -extern void func_8006EE7C(s32); /* extern */ extern void func_80070190(); /* extern */ extern void func_8007055C(); /* extern */ extern void func_80070780(); /* extern */ extern s32 D_80183DA0; extern s32 D_80183DBC; -void func_80071818(void) { +void init_hud_two_player_vertical(void) { find_unused_obj_index(&D_80183DA0); find_unused_obj_index(D_80183DB8); find_unused_obj_index(&D_80183DBC); - find_unused_obj_index(gItemWindowObjectByPlayerId); + find_unused_obj_index(&gItemWindowObjectByPlayerId[0]); find_unused_obj_index(&gItemWindowObjectByPlayerId[1]); func_80070190(); func_8007055C(); @@ -1886,7 +1885,7 @@ void func_80071818(void) { D_8018CA70[0].timerY = 0x10; D_8018CA70[0].lapX = 0x67; D_8018CA70[0].lapY = 0x28; - func_8006EE7C(*gItemWindowObjectByPlayerId); + init_item_window(gItemWindowObjectByPlayerId[0]); D_8018CA70[1].itemBoxX = 0x43; D_8018CA70[1].itemBoxY = 0x32; D_8018CA70[1].slideItemBoxX = 0; @@ -1901,7 +1900,7 @@ void func_80071818(void) { D_8018CA70[1].timerY = 0x10; D_8018CA70[1].lapX = 0xF7; D_8018CA70[1].lapY = 0x28; - func_8006EE7C((gItemWindowObjectByPlayerId[1])); + init_item_window(gItemWindowObjectByPlayerId[1]); D_8018CA70[1].rankScaling = 0.5f; D_8018CA70[0].stagingPosition = (s16) gGPCurrentRaceRankByPlayerId[0]; D_8018CA70[1].stagingPosition = (s16) gGPCurrentRaceRankByPlayerId[1]; @@ -1925,11 +1924,11 @@ void func_80071818(void) { -void func_80071A20() { +void init_hud_two_player_horizontal() { find_unused_obj_index(&D_80183DA0); find_unused_obj_index(D_80183DB8); find_unused_obj_index(&D_80183DBC); - find_unused_obj_index(gItemWindowObjectByPlayerId); + find_unused_obj_index(&gItemWindowObjectByPlayerId[0]); find_unused_obj_index(&gItemWindowObjectByPlayerId[1]); func_80070190(); func_8007055C(); @@ -1973,8 +1972,8 @@ void func_80071A20() { D_8018CA70[0].stagingPosition = (s16) gGPCurrentRaceRankByPlayerId[0]; D_8018CA70[1].stagingPosition = (s16) gGPCurrentRaceRankByPlayerId[1]; D_8018CA70[0].rankScaling = D_8018CA70[1].rankScaling; - func_8006EE7C(gItemWindowObjectByPlayerId[0]); - func_8006EE7C((gItemWindowObjectByPlayerId[1])); + init_item_window(gItemWindowObjectByPlayerId[0]); + init_item_window((gItemWindowObjectByPlayerId[1])); D_8018D3C4 = 0x1E; D_8018D3BC = 0x18; D_8018D3C0 = 0x28; @@ -2006,7 +2005,7 @@ extern s32 D_8018D3BC; extern s32 D_8018D3C0; extern s32 D_8018D3C4; -void func_80071C28(void) { +void init_hud_three_four_player(void) { find_unused_obj_index(&D_80183DA0); find_unused_obj_index(D_80183DB8); find_unused_obj_index(&D_80183DBC); @@ -2088,20 +2087,20 @@ void func_80071C28(void) { D_8018CA70->unkEE = (s16) gGPCurrentRaceRankByPlayerId->unk4; D_8018CA70->unk172 = (s16) gGPCurrentRaceRankByPlayerId->unk8; D_8018CA70->unk1F6 = (s16) gGPCurrentRaceRankByPlayerId->unkC; - func_8006EE7C(*gItemWindowObjectByPlayerId); - func_8006EE7C(*(gItemWindowObjectByPlayerId + 4)); - func_8006EE7C(*(gItemWindowObjectByPlayerId + 8)); - func_8006EE7C(*(gItemWindowObjectByPlayerId + 0xC)); + init_item_window(*gItemWindowObjectByPlayerId); + init_item_window(*(gItemWindowObjectByPlayerId + 4)); + init_item_window(*(gItemWindowObjectByPlayerId + 8)); + init_item_window(*(gItemWindowObjectByPlayerId + 0xC)); D_8018CA70->unk18C = 1.5f; D_8018CA70->unk108 = (f32) D_8018CA70->unk18C; D_8018CA70->unk84 = (f32) D_8018CA70->unk18C; D_8018CA70->unknownScaling = D_8018CA70->unk18C; - D_8018D158 = (s32) D_8018EDF3; + D_8018D158 = (s32) gPlayerCount; D_8018D3C4 = 0x00000014; D_8018D3BC = 0x00000010; D_8018D3C0 = 0x0000001E; D_801657A2 = 0x0888; } #else -GLOBAL_ASM("asm/non_matchings/code_8006E9C0/func_80071C28.s") +GLOBAL_ASM("asm/non_matchings/code_8006E9C0/init_hud_three_four_player.s") #endif diff --git a/src/code_8006E9C0.h b/src/code_8006E9C0.h index e6083801c..df0984335 100644 --- a/src/code_8006E9C0.h +++ b/src/code_8006E9C0.h @@ -4,13 +4,13 @@ #include "common_structs.h" #include "code_80071F00.h" -void func_8006E9C0(void); +void init_object_list(void); void func_8006EA5C(void); void func_8006EB10(void); void func_8006ED60(void); u8 *func_8006ED94(u8*, u8*, u32, u32); void func_8006EE44(void); -void func_8006EE7C(s32); +void init_item_window(s32); void func_8006FA94(void); void func_80070148(void); void func_80070190(void); @@ -20,10 +20,10 @@ void func_800703E0(s32, s32, StarSpawn*); void func_800704A0(StarSpawn*); void func_8007055C(void); void func_80070714(void); -void func_80071428(void); -void func_80071818(void); -void func_80071C28(void); -void func_80071A20(void); +void init_hud_one_player(void); +void init_hud_two_player_vertical(void); +void init_hud_three_four_player(void); +void init_hud_two_player_horizontal(void); extern s16 D_800E5520[]; extern s16 D_800E5548[]; diff --git a/src/code_80071F00.c b/src/code_80071F00.c index 2bcedc2d4..f57b6078c 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -104,27 +104,27 @@ s32 find_unused_obj_index(s32* arg0) { temp_v1 = 0; } - } while ((D_80165C18[temp_v1].unk_0CA != 0) && (temp_v0 != 0x226)); + } while ((gObjectList[temp_v1].unk_0CA != 0) && (temp_v0 != 0x226)); - D_80165C18[temp_v1].unk_0CA = 1; + gObjectList[temp_v1].unk_0CA = 1; *arg0 = temp_v1; D_80183D5C = temp_v1; return temp_v1; } -// Not actually sure about the pointer type, but its definitely SOME type of pointer -void func_80071F6C(s32 *arg0) { - func_80072428(*arg0); - D_80165C18[*arg0].unk_0CA = 0; - *arg0 = -1; +// @warning Does not clear struct members. +void delete_object(s32 *objectIndex) { + func_80072428(*objectIndex); + gObjectList[*objectIndex].unk_0CA = 0; + *objectIndex = -1; } s32 func_80071FBC(void) { s32 objectIndex; s32 someCount = 0; for (objectIndex = 0; objectIndex < OBJECT_LIST_SIZE; objectIndex++) { - if (D_80165C18[objectIndex].unk_0CA != 0) { + if (gObjectList[objectIndex].unk_0CA != 0) { someCount++; } } @@ -169,420 +169,420 @@ loop_3: return temp_v0; } -void func_80072100(s32 *arg0) { - func_80071F6C(arg0); +void delete_object_wrapper(s32 *arg0) { + delete_object(arg0); } void func_80072120(s32 *arg0, s32 arg1) { s32 i; for (i = 0; i < arg1; i++) { - func_800721E8(*arg0, 0x00600000); + set_object_flag_unk_054_false(*arg0, 0x00600000); arg0++; } } void func_80072180(void) { if (gModeSelection == TIME_TRIALS) { - if (((gPlayerOne->unk_000 & PLAYER_EXISTS) != 0) && - ((gPlayerOne->unk_000 & (PLAYER_INVISIBLE_OR_BOMB | PLAYER_CPU)) == 0)) { + if (((gPlayerOne->type & PLAYER_EXISTS) != 0) && + ((gPlayerOne->type & (PLAYER_INVISIBLE_OR_BOMB | PLAYER_CPU)) == 0)) { D_80162DF8 = 1; } } } -void func_800721C0(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_054 |= arg1; +void set_object_flag_unk_054_true(s32 objectIndex, s32 flag) { + gObjectList[objectIndex].unk_054 |= flag; } -void func_800721E8(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_054 &= ~arg1; +void set_object_flag_unk_054_false(s32 objectIndex, s32 flag) { + gObjectList[objectIndex].unk_054 &= ~flag; } -UNUSED void func_80072214(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_054 ^= arg1; +UNUSED void func_80072214(s32 objectIndex, s32 arg1) { + gObjectList[objectIndex].unk_054 ^= arg1; } -s32 func_8007223C(s32 arg0, s32 arg1) { +bool is_obj_index_flag_unk_054_active(s32 objectIndex, s32 arg1) { + s32 phi_v1 = FALSE; + if ((gObjectList[objectIndex].unk_054 & arg1) != 0) { + phi_v1 = TRUE; + } + return phi_v1; +} + +s32 is_obj_index_flag_unk_054_inactive(s32 objectIndex, s32 arg1) { s32 phi_v1 = 0; - if ((D_80165C18[arg0].unk_054 & arg1) != 0) { + if ((gObjectList[objectIndex].unk_054 & arg1) == 0) { phi_v1 = 1; } return phi_v1; } -s32 func_80072270(s32 arg0, s32 arg1) { +void func_800722A4(s32 objectIndex, s32 arg1) { + gObjectList[objectIndex].unk_058 |= arg1; +} + +void func_800722CC(s32 objectIndex, s32 arg1) { + gObjectList[objectIndex].unk_058 &= ~arg1; +} + +UNUSED void func_800722F8(s32 objectIndex, s32 arg1) { + gObjectList[objectIndex].unk_058 ^= arg1; +} + +s32 func_80072320(s32 objectIndex, s32 arg1) { s32 phi_v1 = 0; - if ((D_80165C18[arg0].unk_054 & arg1) == 0) { + if ((gObjectList[objectIndex].unk_058 & arg1) != 0) { phi_v1 = 1; } return phi_v1; } -void func_800722A4(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_058 |= arg1; -} - -void func_800722CC(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_058 &= ~arg1; -} - -UNUSED void func_800722F8(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_058 ^= arg1; -} - -s32 func_80072320(s32 arg0, s32 arg1) { - s32 phi_v1 = 0; - if ((D_80165C18[arg0].unk_058 & arg1) != 0) { - phi_v1 = 1; +bool func_80072354(s32 objectIndex, s32 arg1) { + s32 b = FALSE; + if ((gObjectList[objectIndex].unk_058 & arg1) == 0) { + b = TRUE; } - return phi_v1; + return b; } -s32 func_80072354(s32 arg0, s32 arg1) { - s32 phi_v1 = 0; - if ((D_80165C18[arg0].unk_058 & arg1) == 0) { - phi_v1 = 1; - } - return phi_v1; +void set_object_unk_0CB(s32 objectIndex, s32 arg1) { + gObjectList[objectIndex].unk_0CB = arg1; } -void func_80072388(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_0CB = arg1; +void func_800723A4(s32 objectIndex, s32 arg1) { + gObjectList[objectIndex].unk_054 = 0; + gObjectList[objectIndex].unk_058 = 0; + gObjectList[objectIndex].unk_05C = 0; + gObjectList[objectIndex].unk_0CD = 0; + gObjectList[objectIndex].unk_0CF = 0; + set_object_unk_0CB(objectIndex, 0); + gObjectList[objectIndex].unk_0D8 = arg1; + gObjectList[objectIndex].state = 1; } -void func_800723A4(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_054 = 0; - D_80165C18[arg0].unk_058 = 0; - D_80165C18[arg0].unk_05C = 0; - D_80165C18[arg0].unk_0CD = 0; - D_80165C18[arg0].unk_0CF = 0; - func_80072388(arg0, 0); - D_80165C18[arg0].unk_0D8 = arg1; - D_80165C18[arg0].unk_0A6 = 1; +UNUSED void func_80072408(s32 objectIndex) { + set_object_unk_0CB(objectIndex, 0); } -UNUSED void func_80072408(s32 arg0) { - func_80072388(arg0, 0); +void func_80072428(s32 objectIndex) { + gObjectList[objectIndex].state = 0; + gObjectList[objectIndex].unk_0D8 = 0; + set_object_unk_0CB(objectIndex, 0); + gObjectList[objectIndex].unk_054 = 0; + gObjectList[objectIndex].unk_058 = 0; + gObjectList[objectIndex].unk_05C = 0; + func_80086F60(objectIndex); } -void func_80072428(s32 arg0) { - D_80165C18[arg0].unk_0A6 = 0; - D_80165C18[arg0].unk_0D8 = 0; - func_80072388(arg0, 0); - D_80165C18[arg0].unk_054 = 0; - D_80165C18[arg0].unk_058 = 0; - D_80165C18[arg0].unk_05C = 0; - func_80086F60(arg0); +void func_80072488(s32 objectIndex) { + set_object_unk_0CB(objectIndex, 0); + set_object_flag_unk_054_false(objectIndex, 0x2000); + gObjectList[objectIndex].state++; } -void func_80072488(s32 arg0) { - func_80072388(arg0, 0); - func_800721E8(arg0, 0x2000); - D_80165C18[arg0].unk_0A6++; +void func_800724DC(s32 objectIndex) { + gObjectList[objectIndex].unk_0D7 = 0; } -void func_800724DC(s32 arg0) { - D_80165C18[arg0].unk_0D7 = 0; +void func_800724F8(s32 objectIndex, s32 arg1) { + gObjectList[objectIndex].unk_084[gObjectList[objectIndex].unk_0D7] = arg1; + gObjectList[objectIndex].unk_0D7++; } -void func_800724F8(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_084[D_80165C18[arg0].unk_0D7] = arg1; - D_80165C18[arg0].unk_0D7++; +s16 func_80072530(s32 objectIndex) { + gObjectList[objectIndex].unk_0D7--; + return gObjectList[objectIndex].unk_084[gObjectList[objectIndex].unk_0D7]; } -s16 func_80072530(s32 arg0) { - D_80165C18[arg0].unk_0D7--; - return D_80165C18[arg0].unk_084[D_80165C18[arg0].unk_0D7]; +void func_80072568(s32 objectIndex, s32 arg1) { + set_object_unk_0CB(objectIndex, 0); + set_object_flag_unk_054_false(objectIndex, 0x2000); + set_object_flag_unk_054_false(objectIndex, 8); + func_80072488(objectIndex); + func_800724F8(objectIndex, gObjectList[objectIndex].state); + gObjectList[objectIndex].state = arg1; } -void func_80072568(s32 arg0, s32 arg1) { - func_80072388(arg0, 0); - func_800721E8(arg0, 0x2000); - func_800721E8(arg0, 8); - func_80072488(arg0); - func_800724F8(arg0, D_80165C18[arg0].unk_0A6); - D_80165C18[arg0].unk_0A6 = arg1; -} - -void func_800725E8(s32 arg0, s32 arg1, s32 arg2) { - func_80072388(arg0, 0); - func_800721E8(arg0, 0x2000); - func_800721E8(arg0, 8); - D_80165C18[arg0].unk_0A6 = arg2; - func_800724F8(arg0, D_80165C18[arg0].unk_0A6); - D_80165C18[arg0].unk_0A6 = arg1; +void func_800725E8(s32 objectIndex, s32 arg1, s32 arg2) { + set_object_unk_0CB(objectIndex, 0); + set_object_flag_unk_054_false(objectIndex, 0x2000); + set_object_flag_unk_054_false(objectIndex, 8); + gObjectList[objectIndex].state = arg2; + func_800724F8(objectIndex, gObjectList[objectIndex].state); + gObjectList[objectIndex].state = arg1; } s16 func_80072530(s32); // extern -void func_8007266C(s32 arg0) { - func_80072388(arg0, 0); - func_800721E8(arg0, 0x2000); - func_800721E8(arg0, 8); - D_80165C18[arg0].unk_0A6 = func_80072530(arg0); +void func_8007266C(s32 objectIndex) { + set_object_unk_0CB(objectIndex, 0); + set_object_flag_unk_054_false(objectIndex, 0x2000); + set_object_flag_unk_054_false(objectIndex, 8); + gObjectList[objectIndex].state = func_80072530(objectIndex); } -void func_800726CC(s32 arg0, s32 arg1) { - func_80072388(arg0, 0); - func_800721E8(arg0, 0x2000); - D_80165C18[arg0].unk_0A6 = arg1; +void func_800726CC(s32 objectIndex, s32 arg1) { + set_object_unk_0CB(objectIndex, 0); + set_object_flag_unk_054_false(objectIndex, 0x2000); + gObjectList[objectIndex].state = arg1; } -UNUSED void func_8007271C(s32 arg0, s32 arg1) { - if (D_80165C18[arg0].unk_0CB == 0) { - D_80165C18[arg0].unk_0A6 = arg1; +UNUSED void func_8007271C(s32 objectIndex, s32 arg1) { + if (gObjectList[objectIndex].unk_0CB == 0) { + gObjectList[objectIndex].state = arg1; } } -UNUSED void func_8007274C(s32 arg0) { - if (D_80165C18[arg0].unk_0CB == 0) { - func_80072488(arg0); +UNUSED void func_8007274C(s32 objectIndex) { + if (gObjectList[objectIndex].unk_0CB == 0) { + func_80072488(objectIndex); } } -s32 func_8007278C(s32 arg0, s32 arg1) { +s32 func_8007278C(s32 objectIndex, s32 arg1) { s32 phi_v1; phi_v1 = 0; - if (D_80165C18[arg0].unk_0CB == 0) { - func_80072388(arg0, 1); - D_80165C18[arg0].unk_050 = arg1; + if (gObjectList[objectIndex].unk_0CB == 0) { + set_object_unk_0CB(objectIndex, 1); + gObjectList[objectIndex].unk_050 = arg1; } - D_80165C18[arg0].unk_050--; - if (D_80165C18[arg0].unk_050 < 0) { - func_80072388(arg0, 0); - func_80072488(arg0); + gObjectList[objectIndex].unk_050--; + if (gObjectList[objectIndex].unk_050 < 0) { + set_object_unk_0CB(objectIndex, 0); + func_80072488(objectIndex); phi_v1 = 1; } return phi_v1; } -UNUSED s32 func_8007281C(s32 arg0, s32 arg1) { +UNUSED s32 func_8007281C(s32 objectIndex, s32 arg1) { s32 phi_a2; phi_a2 = 0; - if (D_80165C18[arg0].unk_0CB == 0) { - func_80072388(arg0, 1); - D_80165C18[arg0].unk_050 = random_int((u16) arg1); + if (gObjectList[objectIndex].unk_0CB == 0) { + set_object_unk_0CB(objectIndex, 1); + gObjectList[objectIndex].unk_050 = random_int((u16) arg1); } - D_80165C18[arg0].unk_050--; - if (D_80165C18[arg0].unk_050 < 0) { - func_80072388(arg0, 0); - func_80072488(arg0); + gObjectList[objectIndex].unk_050--; + if (gObjectList[objectIndex].unk_050 < 0) { + set_object_unk_0CB(objectIndex, 0); + func_80072488(objectIndex); phi_a2 = 1; } return phi_a2; } -UNUSED s32 func_800728B0(s32 arg0, s32 arg1, s32 arg2) { +UNUSED s32 func_800728B0(s32 objectIndex, s32 arg1, s32 arg2) { s32 phi_a3; phi_a3 = 0; - if (D_80165C18[arg0].unk_0CB == 0) { - func_80072388(arg0, 1); - D_80165C18[arg0].unk_050 = random_int((u16) arg2) + arg1; + if (gObjectList[objectIndex].unk_0CB == 0) { + set_object_unk_0CB(objectIndex, 1); + gObjectList[objectIndex].unk_050 = random_int((u16) arg2) + arg1; } - D_80165C18[arg0].unk_050--; - if (D_80165C18[arg0].unk_050 < 0) { - func_80072388(arg0, 0); - func_80072488(arg0); + gObjectList[objectIndex].unk_050--; + if (gObjectList[objectIndex].unk_050 < 0) { + set_object_unk_0CB(objectIndex, 0); + func_80072488(objectIndex); phi_a3 = 1; } return phi_a3; } -void func_80072950(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { +void func_80072950(s32 objectIndex, s32 arg1, s32 arg2, s32 arg3) { if (arg1 == arg2) { - D_80165C18[arg0].unk_0A6 = arg3; + gObjectList[objectIndex].state = arg3; } } -UNUSED void func_80072974(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { +UNUSED void func_80072974(s32 objectIndex, s32 arg1, s32 arg2, s32 arg3) { if (arg1 != arg2) { - D_80165C18[arg0].unk_0A6 = arg3; + gObjectList[objectIndex].state = arg3; } } -UNUSED void func_80072998(s32 arg0) { - D_80165C18[arg0].unk_0CC = 0; +UNUSED void func_80072998(s32 objectIndex) { + gObjectList[objectIndex].unk_0CC = 0; } -void func_800729B4(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_0A2 = arg1; +void func_800729B4(s32 objectIndex, s32 arg1) { + gObjectList[objectIndex].unk_0A2 = arg1; } -void func_800729D0(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_0A4 = arg1; +void set_type_object(s32 objectIndex, s32 arg1) { + gObjectList[objectIndex].type = arg1; } -void func_800729EC(s32 arg0) { +void func_800729EC(s32 objectIndex) { u32 temp_v1 = 1; s32 i; start_race(); - func_80072488(arg0); + func_80072488(objectIndex); D_8018D2BC = 1; D_8018D2A4 = 1; - if (gCurrentCourseId != 4) { - for (i = 0; i < D_8018EDF3; i++) { + if (gCurrentCourseId != COURSE_YOSHI_VALLEY) { + for (i = 0; i < gPlayerCount; i++) { D_8018CA70[i].unk_81 = temp_v1; } } func_8005AB20(); } -UNUSED void func_80072A78(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_0D2 = arg1; - func_80072488(arg0); +UNUSED void func_80072A78(s32 objectIndex, s32 arg1) { + gObjectList[objectIndex].itemDisplay = arg1; + func_80072488(objectIndex); } -s32 func_80072AAC(s32 arg0, s32 arg1, s32 arg2) { +s32 func_80072AAC(s32 objectIndex, s32 arg1, s32 arg2) { s32 phi_v1; phi_v1 = 0; - if (D_80165C18[arg0].unk_0CB == 0) { + if (gObjectList[objectIndex].unk_0CB == 0) { - func_80072388(arg0, 1); - D_80165C18[arg0].unk_0D2 = arg1; - D_80165C18[arg0].unk_050 = arg2; + set_object_unk_0CB(objectIndex, 1); + gObjectList[objectIndex].itemDisplay = arg1; + gObjectList[objectIndex].unk_050 = arg2; } - D_80165C18[arg0].unk_050--; - if (D_80165C18[arg0].unk_050 < 0) { - func_80072388(arg0, 0); - func_80072488(arg0); + gObjectList[objectIndex].unk_050--; + if (gObjectList[objectIndex].unk_050 < 0) { + set_object_unk_0CB(objectIndex, 0); + func_80072488(objectIndex); phi_v1 = 1; } return phi_v1; } -s32 func_80072B48(s32 arg0, s32 arg1) { +s32 func_80072B48(s32 objectIndex, s32 arg1) { s32 phi_v1; phi_v1 = 0; - if (D_80165C18[arg0].unk_0CB == 0) { - func_80072388(arg0, 1); - func_800721C0(arg0, 0x80000); - D_80165C18[arg0].unk_0D2 = D_8018D140; - D_80165C18[arg0].unk_050 = arg1; + if (gObjectList[objectIndex].unk_0CB == 0) { + set_object_unk_0CB(objectIndex, 1); + set_object_flag_unk_054_true(objectIndex, 0x80000); + gObjectList[objectIndex].itemDisplay = D_8018D140; + gObjectList[objectIndex].unk_050 = arg1; } - D_80165C18[arg0].unk_050--; - if (D_80165C18[arg0].unk_050 < 0) { - func_800721E8(arg0, 0x80000); - func_80072388(arg0, 0); - func_80072488(arg0); + gObjectList[objectIndex].unk_050--; + if (gObjectList[objectIndex].unk_050 < 0) { + set_object_flag_unk_054_false(objectIndex, 0x80000); + set_object_unk_0CB(objectIndex, 0); + func_80072488(objectIndex); phi_v1 = 1; } return phi_v1; } -void func_80072C00(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { - if (func_80072270(arg0, 0x2000) != 0) { - D_80165C18[arg0].unk_050 = arg2; - D_80165C18[arg0].unk_0D2 = arg1; - D_80165C18[arg0].unk_0D4 = 1; - D_80165C18[arg0].unk_0CC = arg3; - func_800721C0(arg0, 0x2000); +void func_80072C00(s32 objectIndex, s32 arg1, s32 arg2, s32 arg3) { + if (is_obj_index_flag_unk_054_inactive(objectIndex, 0x2000) != 0) { + gObjectList[objectIndex].unk_050 = arg2; + gObjectList[objectIndex].itemDisplay = arg1; + gObjectList[objectIndex].unk_0D4 = 1; + gObjectList[objectIndex].unk_0CC = arg3; + set_object_flag_unk_054_true(objectIndex, 0x2000); } else { - D_80165C18[arg0].unk_050--; - if (D_80165C18[arg0].unk_050 < 0) { - D_80165C18[arg0].unk_050 = arg2; - D_80165C18[arg0].unk_0D4--; - if ((D_80165C18[arg0].unk_0D4 & 1) != 0) { - func_800721E8(arg0, 0x80000); + gObjectList[objectIndex].unk_050--; + if (gObjectList[objectIndex].unk_050 < 0) { + gObjectList[objectIndex].unk_050 = arg2; + gObjectList[objectIndex].unk_0D4--; + if ((gObjectList[objectIndex].unk_0D4 & 1) != 0) { + set_object_flag_unk_054_false(objectIndex, 0x80000); } else { - func_800721C0(arg0, 0x80000); + set_object_flag_unk_054_true(objectIndex, 0x80000); } - if (D_80165C18[arg0].unk_0D4 < 0) { - D_80165C18[arg0].unk_0D4 = 1; + if (gObjectList[objectIndex].unk_0D4 < 0) { + gObjectList[objectIndex].unk_0D4 = 1; - if (D_80165C18[arg0].unk_0CC > 0) { - D_80165C18[arg0].unk_0CC--; + if (gObjectList[objectIndex].unk_0CC > 0) { + gObjectList[objectIndex].unk_0CC--; } - if (D_80165C18[arg0].unk_0CC == 0) { - func_800721E8(arg0, 0x2000); - func_80072488(arg0); + if (gObjectList[objectIndex].unk_0CC == 0) { + set_object_flag_unk_054_false(objectIndex, 0x2000); + func_80072488(objectIndex); } } } } } -void func_80072D3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { - if (func_80072270(arg0, 0x2000) != 0) { - D_80165C18[arg0].unk_050 = arg3; - D_80165C18[arg0].unk_0D2 = arg1; - D_80165C18[arg0].unk_0D4 = 1; - D_80165C18[arg0].unk_0CC = arg4; - func_800721C0(arg0, 0x2000); +void func_80072D3C(s32 objectIndex, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (is_obj_index_flag_unk_054_inactive(objectIndex, 0x2000) != 0) { + gObjectList[objectIndex].unk_050 = arg3; + gObjectList[objectIndex].itemDisplay = arg1; + gObjectList[objectIndex].unk_0D4 = 1; + gObjectList[objectIndex].unk_0CC = arg4; + set_object_flag_unk_054_true(objectIndex, 0x2000); return; } - D_80165C18[arg0].unk_050--; - if (D_80165C18[arg0].unk_050 < 0) { - D_80165C18[arg0].unk_050 = arg3; - D_80165C18[arg0].unk_0D4--; - if ((D_80165C18[arg0].unk_0D4 & 1) != 0) { - D_80165C18[arg0].unk_0D2 = arg1; + gObjectList[objectIndex].unk_050--; + if (gObjectList[objectIndex].unk_050 < 0) { + gObjectList[objectIndex].unk_050 = arg3; + gObjectList[objectIndex].unk_0D4--; + if ((gObjectList[objectIndex].unk_0D4 & 1) != 0) { + gObjectList[objectIndex].itemDisplay = arg1; } else { - D_80165C18[arg0].unk_0D2 = arg2; + gObjectList[objectIndex].itemDisplay = arg2; } - if (D_80165C18[arg0].unk_0D4 < 0) { - D_80165C18[arg0].unk_0D4 = 1; - if (D_80165C18[arg0].unk_0CC > 0) { - D_80165C18[arg0].unk_0CC--; + if (gObjectList[objectIndex].unk_0D4 < 0) { + gObjectList[objectIndex].unk_0D4 = 1; + if (gObjectList[objectIndex].unk_0CC > 0) { + gObjectList[objectIndex].unk_0CC--; } - if (D_80165C18[arg0].unk_0CC == 0) { - func_800721E8(arg0, 0x2000); - func_80072488(arg0); + if (gObjectList[objectIndex].unk_0CC == 0) { + set_object_flag_unk_054_false(objectIndex, 0x2000); + func_80072488(objectIndex); } } } } -s32 func_80072E54(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { +s32 func_80072E54(s32 objectIndex, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { s32 sp24; sp24 = 0; - if (func_80072270(arg0, 0x2000) != 0) { - D_80165C18[arg0].unk_0D2 = arg1; - D_80165C18[arg0].unk_050 = arg4; - D_80165C18[arg0].unk_0CC = arg5; - func_80072388(arg0, 1); - func_800721C0(arg0, 0x2000); + if (is_obj_index_flag_unk_054_inactive(objectIndex, 0x2000) != 0) { + gObjectList[objectIndex].itemDisplay = arg1; + gObjectList[objectIndex].unk_050 = arg4; + gObjectList[objectIndex].unk_0CC = arg5; + set_object_unk_0CB(objectIndex, 1); + set_object_flag_unk_054_true(objectIndex, 0x2000); } else { - D_80165C18[arg0].unk_050--; - if (D_80165C18[arg0].unk_050 <= 0) { - D_80165C18[arg0].unk_050 = arg4; - D_80165C18[arg0].unk_0D2 += arg3; - if (arg2 < D_80165C18[arg0].unk_0D2) { + gObjectList[objectIndex].unk_050--; + if (gObjectList[objectIndex].unk_050 <= 0) { + gObjectList[objectIndex].unk_050 = arg4; + gObjectList[objectIndex].itemDisplay += arg3; + if (arg2 < gObjectList[objectIndex].itemDisplay) { - if (D_80165C18[arg0].unk_0CC > 0) { - D_80165C18[arg0].unk_0CC--; + if (gObjectList[objectIndex].unk_0CC > 0) { + gObjectList[objectIndex].unk_0CC--; } - if (D_80165C18[arg0].unk_0CC == 0) { - D_80165C18[arg0].unk_0D2 = arg2; - func_800721E8(arg0, 0x2000); - func_80072388(arg0, 0); - func_80072488(arg0); + if (gObjectList[objectIndex].unk_0CC == 0) { + gObjectList[objectIndex].itemDisplay = arg2; + set_object_flag_unk_054_false(objectIndex, 0x2000); + set_object_unk_0CB(objectIndex, 0); + func_80072488(objectIndex); sp24 = 1; } else { - D_80165C18[arg0].unk_0D2 = arg1; + gObjectList[objectIndex].itemDisplay = arg1; } } } @@ -590,33 +590,33 @@ s32 func_80072E54(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { return sp24; } -s32 func_80072F88(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { +bool func_80072F88(s32 objectIndex, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { s32 sp24; - sp24 = 0; - if (func_80072270(arg0, 0x2000) != 0) { - D_80165C18[arg0].unk_0D2 = arg1; - D_80165C18[arg0].unk_050 = arg4; - D_80165C18[arg0].unk_0CC = arg5; - func_80072388(arg0, 1); - func_800721C0(arg0, 0x2000); + sp24 = FALSE; + if (is_obj_index_flag_unk_054_inactive(objectIndex, 0x2000) != 0) { + gObjectList[objectIndex].itemDisplay = arg1; + gObjectList[objectIndex].unk_050 = arg4; + gObjectList[objectIndex].unk_0CC = arg5; + set_object_unk_0CB(objectIndex, 1); + set_object_flag_unk_054_true(objectIndex, 0x2000); } else { - D_80165C18[arg0].unk_050--; - if (D_80165C18[arg0].unk_050 <= 0) { - D_80165C18[arg0].unk_050 = arg4; - D_80165C18[arg0].unk_0D2 -= arg3; - if (D_80165C18[arg0].unk_0D2 < arg2) { - if (D_80165C18[arg0].unk_0CC > 0) { - D_80165C18[arg0].unk_0CC--; + gObjectList[objectIndex].unk_050--; + if (gObjectList[objectIndex].unk_050 <= 0) { + gObjectList[objectIndex].unk_050 = arg4; + gObjectList[objectIndex].itemDisplay -= arg3; + if (gObjectList[objectIndex].itemDisplay < arg2) { + if (gObjectList[objectIndex].unk_0CC > 0) { + gObjectList[objectIndex].unk_0CC--; } - if (D_80165C18[arg0].unk_0CC == 0) { - D_80165C18[arg0].unk_0D2 = arg2; - func_800721E8(arg0, 0x2000); - func_80072388(arg0, 0); - func_80072488(arg0); - sp24 = 1; + if (gObjectList[objectIndex].unk_0CC == 0) { + gObjectList[objectIndex].itemDisplay = arg2; + set_object_flag_unk_054_false(objectIndex, 0x2000); + set_object_unk_0CB(objectIndex, 0); + func_80072488(objectIndex); + sp24 = TRUE; } else { - D_80165C18[arg0].unk_0D2 = arg1; + gObjectList[objectIndex].itemDisplay = arg1; } } } @@ -624,44 +624,87 @@ s32 func_80072F88(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { return sp24; } -s32 func_800730BC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { +bool func_800730BC(s32 objectIndex, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { + s32 sp24; + + sp24 = FALSE; + if (is_obj_index_flag_unk_054_inactive(objectIndex ,0x2000) != 0) { + gObjectList[objectIndex].itemDisplay = arg1; + gObjectList[objectIndex].unk_050 = arg4; + gObjectList[objectIndex].unk_0CC = arg5; + set_object_unk_0CB(objectIndex, 1); + set_object_flag_unk_054_true(objectIndex, 0x2000); + set_object_flag_unk_054_false(objectIndex, 0x4000); + } else { + gObjectList[objectIndex].unk_050--; + if (gObjectList[objectIndex].unk_050 <= 0) { + gObjectList[objectIndex].unk_050 = arg4; + if (is_obj_index_flag_unk_054_inactive(objectIndex, 0x4000) != 0) { + gObjectList[objectIndex].itemDisplay += arg3; + if (gObjectList[objectIndex].itemDisplay >= arg2) { + gObjectList[objectIndex].itemDisplay = arg2; + set_object_flag_unk_054_true(objectIndex, 0x4000); + } + } else { + gObjectList[objectIndex].itemDisplay -= arg3; + if (arg1 >= gObjectList[objectIndex].itemDisplay) { + gObjectList[objectIndex].itemDisplay = arg1; + if (gObjectList[objectIndex].unk_0CC > 0) { + gObjectList[objectIndex].unk_0CC--; + } + + if (gObjectList[objectIndex].unk_0CC == 0) { + set_object_flag_unk_054_false(objectIndex, 0x80); + set_object_flag_unk_054_false(objectIndex, 0x2000); + set_object_unk_0CB(objectIndex, 0); + func_80072488(objectIndex); + sp24 = TRUE; + } else { + set_object_flag_unk_054_false(objectIndex, 0x4000); + set_object_flag_unk_054_true(objectIndex, 0x80); + } + } + } + } + } + return sp24; +} + +s32 func_8007326C(s32 objectIndex, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { s32 sp24; sp24 = 0; - if (func_80072270(arg0 ,0x2000) != 0) { - D_80165C18[arg0].unk_0D2 = arg1; - D_80165C18[arg0].unk_050 = arg4; - D_80165C18[arg0].unk_0CC = arg5; - func_80072388(arg0, 1); - func_800721C0(arg0, 0x2000); - func_800721E8(arg0, 0x4000); + if (is_obj_index_flag_unk_054_inactive(objectIndex, 0x2000) != 0) { + gObjectList[objectIndex].itemDisplay = arg1; + gObjectList[objectIndex].unk_050 = arg4; + gObjectList[objectIndex].unk_0CC = arg5; + set_object_unk_0CB(objectIndex, 1); + set_object_flag_unk_054_true(objectIndex, 0x2000); + set_object_flag_unk_054_false(objectIndex, 0x4000); } else { - D_80165C18[arg0].unk_050--; - if (D_80165C18[arg0].unk_050 <= 0) { - D_80165C18[arg0].unk_050 = arg4; - if (func_80072270(arg0, 0x4000) != 0) { - D_80165C18[arg0].unk_0D2 += arg3; - if (D_80165C18[arg0].unk_0D2 >= arg2) { - D_80165C18[arg0].unk_0D2 = arg2; - func_800721C0(arg0, 0x4000); + gObjectList[objectIndex].unk_050--; + if (gObjectList[objectIndex].unk_050 <= 0) { + gObjectList[objectIndex].unk_050 = arg4; + if (is_obj_index_flag_unk_054_inactive(objectIndex, 0x4000) != 0) { + gObjectList[objectIndex].itemDisplay -= arg3; + if (arg2 >= gObjectList[objectIndex].itemDisplay) { + gObjectList[objectIndex].itemDisplay = arg2; + set_object_flag_unk_054_true(objectIndex, 0x4000); } } else { - D_80165C18[arg0].unk_0D2 -= arg3; - if (arg1 >= D_80165C18[arg0].unk_0D2) { - D_80165C18[arg0].unk_0D2 = arg1; - if (D_80165C18[arg0].unk_0CC > 0) { - D_80165C18[arg0].unk_0CC--; + gObjectList[objectIndex].itemDisplay += arg3; + if (gObjectList[objectIndex].itemDisplay >= arg1) { + gObjectList[objectIndex].itemDisplay = arg1; + if (gObjectList[objectIndex].unk_0CC > 0) { + gObjectList[objectIndex].unk_0CC--; } - - if (D_80165C18[arg0].unk_0CC == 0) { - func_800721E8(arg0, 0x80); - func_800721E8(arg0, 0x2000); - func_80072388(arg0, 0); - func_80072488(arg0); + if (gObjectList[objectIndex].unk_0CC == 0) { + set_object_flag_unk_054_false(objectIndex, 0x2000); + set_object_unk_0CB(objectIndex, 0); + func_80072488(objectIndex); sp24 = 1; } else { - func_800721E8(arg0, 0x4000); - func_800721C0(arg0, 0x80); + set_object_flag_unk_054_false(objectIndex, 0x4000); } } } @@ -670,98 +713,55 @@ s32 func_800730BC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { return sp24; } -s32 func_8007326C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { - s32 sp24; - - sp24 = 0; - if (func_80072270(arg0, 0x2000) != 0) { - D_80165C18[arg0].unk_0D2 = arg1; - D_80165C18[arg0].unk_050 = arg4; - D_80165C18[arg0].unk_0CC = arg5; - func_80072388(arg0, 1); - func_800721C0(arg0, 0x2000); - func_800721E8(arg0, 0x4000); - } else { - D_80165C18[arg0].unk_050--; - if (D_80165C18[arg0].unk_050 <= 0) { - D_80165C18[arg0].unk_050 = arg4; - if (func_80072270(arg0, 0x4000) != 0) { - D_80165C18[arg0].unk_0D2 -= arg3; - if (arg2 >= D_80165C18[arg0].unk_0D2) { - D_80165C18[arg0].unk_0D2 = arg2; - func_800721C0(arg0, 0x4000); - } - } else { - D_80165C18[arg0].unk_0D2 += arg3; - if (D_80165C18[arg0].unk_0D2 >= arg1) { - D_80165C18[arg0].unk_0D2 = arg1; - if (D_80165C18[arg0].unk_0CC > 0) { - D_80165C18[arg0].unk_0CC--; - } - if (D_80165C18[arg0].unk_0CC == 0) { - func_800721E8(arg0, 0x2000); - func_80072388(arg0, 0); - func_80072488(arg0); - sp24 = 1; - } else { - func_800721E8(arg0, 0x4000); - } - } - } - } - } - return sp24; +void func_80073404(s32 objectIndex, u8 arg1, u8 arg2, Vtx *arg3) { + gObjectList[objectIndex].vertex = arg3; + gObjectList[objectIndex].textureWidth = arg1; + gObjectList[objectIndex].textureHeight = arg2; + gObjectList[objectIndex].itemDisplay = 0; + gObjectList[objectIndex].unk_0D3 = -1; + gObjectList[objectIndex].unk_054 = 0; } -void func_80073404(s32 arg0, u8 arg1, u8 arg2, Vtx *arg3) { - D_80165C18[arg0].unk_074 = arg3; - D_80165C18[arg0].textureWidth = arg1; - D_80165C18[arg0].textureHeight = arg2; - D_80165C18[arg0].unk_0D2 = 0; - D_80165C18[arg0].unk_0D3 = -1; - D_80165C18[arg0].unk_054 = 0; +void init_texture_object(s32 objectIndex, u8 *texture, u8* arg2, u8 arg3, u16 arg4) { + gObjectList[objectIndex].tlutList = texture; + gObjectList[objectIndex].textureList = arg2; + gObjectList[objectIndex].textureWidth = arg3; + gObjectList[objectIndex].textureHeight = arg4; + gObjectList[objectIndex].itemDisplay = 0; + gObjectList[objectIndex].unk_0D3 = -1; + gObjectList[objectIndex].unk_054 = 0; } -void func_80073444(s32 arg0, u8 *texture, u8* arg2, u8 arg3, u16 arg4) { - D_80165C18[arg0].tlutList = texture; - D_80165C18[arg0].textureList = arg2; - D_80165C18[arg0].textureWidth = arg3; - D_80165C18[arg0].textureHeight = arg4; - D_80165C18[arg0].unk_0D2 = 0; - D_80165C18[arg0].unk_0D3 = -1; - D_80165C18[arg0].unk_054 = 0; -} - -UNUSED void func_8007348C(s32 arg0, u8 *arg1, u8 arg2, u8 arg3, Vtx *arg4) { - D_80165C18[arg0].activeTLUT = arg1; - D_80165C18[arg0].tlutList = arg1; - D_80165C18[arg0].textureWidth = arg2; - D_80165C18[arg0].textureHeight = arg3; - D_80165C18[arg0].unk_074 = arg4; - D_80165C18[arg0].unk_0D2 = 0; - D_80165C18[arg0].unk_0D3 = -1; - D_80165C18[arg0].unk_054 = 0; +UNUSED void func_8007348C(s32 objectIndex, u8 *arg1, u8 arg2, u8 arg3, Vtx *arg4) { + gObjectList[objectIndex].activeTLUT = arg1; + gObjectList[objectIndex].tlutList = arg1; + gObjectList[objectIndex].textureWidth = arg2; + gObjectList[objectIndex].textureHeight = arg3; + gObjectList[objectIndex].vertex = arg4; + gObjectList[objectIndex].itemDisplay = 0; + gObjectList[objectIndex].unk_0D3 = -1; + gObjectList[objectIndex].unk_054 = 0; } UNUSED void func_800734D4() { } -void func_800734DC(s32 arg0) { +void func_800734DC(s32 objectIndex) { // I have no idea why this typecast works - D_80165C18[arg0].activeTLUT = (u32*)D_80165C18[arg0].tlutList + (D_80165C18[arg0].unk_0D2 << 7); - D_80165C18[arg0].activeTexture = D_80165C18[arg0].textureList; + gObjectList[objectIndex].activeTLUT = (u32*)gObjectList[objectIndex].tlutList + (gObjectList[objectIndex].itemDisplay << 7); + gObjectList[objectIndex].activeTexture = gObjectList[objectIndex].textureList; } -void func_80073514(s32 arg0) { - D_80165C18[arg0].activeTLUT = D_80165C18[arg0].tlutList; - D_80165C18[arg0].activeTexture = D_80165C18[arg0].textureList + (D_80165C18[arg0].textureWidth * D_80165C18[arg0].textureHeight * D_80165C18[arg0].unk_0D2); +void func_80073514(s32 objectIndex) { + gObjectList[objectIndex].activeTLUT = gObjectList[objectIndex].tlutList; + gObjectList[objectIndex].activeTexture = gObjectList[objectIndex].textureList + (gObjectList[objectIndex].textureWidth * gObjectList[objectIndex].textureHeight * gObjectList[objectIndex].itemDisplay); } UNUSED void func_80073568() { } UNUSED void func_80073570(s32 objectIndex) { - s16 *test = &D_80165C18[objectIndex].unk_0A6; + s16 *test = &gObjectList[objectIndex].state; D_8018D1EC++; if (D_8018D1EC == 5) { @@ -770,98 +770,98 @@ UNUSED void func_80073570(s32 objectIndex) { (*test)++; } -void func_800735BC(s32 arg0, Gfx *arg1, f32 arg2) { - D_80165C18[arg0].unk_054 = 0; - D_80165C18[arg0].unk_070 = arg1; - D_80165C18[arg0].sizeScaling = arg2; - func_80072488(arg0); +void func_800735BC(s32 objectIndex, Gfx *arg1, f32 arg2) { + gObjectList[objectIndex].unk_054 = 0; + gObjectList[objectIndex].unk_070 = arg1; + gObjectList[objectIndex].sizeScaling = arg2; + func_80072488(objectIndex); } -void func_80073600(s32 arg0) { - func_80072388(arg0, 0); - D_80165C18[arg0].unk_0D6 = 0; - D_80165C18[arg0].unk_04C = -1; - func_800721E8(arg0, 0x8000); +void func_80073600(s32 objectIndex) { + set_object_unk_0CB(objectIndex, 0); + gObjectList[objectIndex].unk_0D6 = 0; + gObjectList[objectIndex].unk_04C = -1; + set_object_flag_unk_054_false(objectIndex, 0x8000); } -void func_80073654(s32 arg0) { - func_800721E8(arg0, 0x8000); - ++D_80165C18[arg0].unk_0D6; +void func_80073654(s32 objectIndex) { + set_object_flag_unk_054_false(objectIndex, 0x8000); + ++gObjectList[objectIndex].unk_0D6; } -UNUSED void func_8007369C(s32 arg0, s32 arg1) { - func_800721E8(arg0, 0x8000); - D_80165C18[arg0].unk_0D6 = arg1; +UNUSED void func_8007369C(s32 objectIndex, s32 arg1) { + set_object_flag_unk_054_false(objectIndex, 0x8000); + gObjectList[objectIndex].unk_0D6 = arg1; } -void func_800736E0(s32 arg0) { - func_800721E8(arg0, 0x8000); - D_80165C18[arg0].unk_0D6 = 1; +void func_800736E0(s32 objectIndex) { + set_object_flag_unk_054_false(objectIndex, 0x8000); + gObjectList[objectIndex].unk_0D6 = 1; } -void func_80073720(s32 arg0) { - func_800721E8(arg0, 0x8000); - D_80165C18[arg0].unk_0D6 = 0; +void func_80073720(s32 objectIndex) { + set_object_flag_unk_054_false(objectIndex, 0x8000); + gObjectList[objectIndex].unk_0D6 = 0; } -s32 func_8007375C(s32 objectIndex, s32 arg1) { +bool func_8007375C(s32 objectIndex, s32 arg1) { s32 sp24; - sp24 = 0; - if (func_80072270(objectIndex, 0x00008000) != 0) { - D_80165C18[objectIndex].unk_04C = arg1; - func_800721C0(objectIndex, 0x00008000); + sp24 = FALSE; + if (is_obj_index_flag_unk_054_inactive(objectIndex, 0x00008000) != 0) { + gObjectList[objectIndex].unk_04C = arg1; + set_object_flag_unk_054_true(objectIndex, 0x00008000); } - D_80165C18[objectIndex].unk_04C--; - if (D_80165C18[objectIndex].unk_04C < 0) { - func_800721E8(objectIndex, 0x00008000); + gObjectList[objectIndex].unk_04C--; + if (gObjectList[objectIndex].unk_04C < 0) { + set_object_flag_unk_054_false(objectIndex, 0x00008000); func_80073654(objectIndex); - sp24 = 1; + sp24 = TRUE; } return sp24; } -void func_80073800(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_0CF = arg1; +void func_80073800(s32 objectIndex, s32 arg1) { + gObjectList[objectIndex].unk_0CF = arg1; } -void func_8007381C(s32 arg0) { - D_80165C18[arg0].unk_0DC++; +void func_8007381C(s32 objectIndex) { + gObjectList[objectIndex].unk_0DC++; } -void func_80073844(s32 arg0) { - func_80073800(arg0, 0); - D_80165C18[arg0].unk_0DC = 1; +void func_80073844(s32 objectIndex) { + func_80073800(objectIndex, 0); + gObjectList[objectIndex].unk_0DC = 1; } -void func_80073884(s32 arg0) { - D_80165C18[arg0].unk_0DC = 0; - D_80165C18[arg0].unk_0CF = 0; +void func_80073884(s32 objectIndex) { + gObjectList[objectIndex].unk_0DC = 0; + gObjectList[objectIndex].unk_0CF = 0; } -s32 func_800738A8(s32 arg0, s16* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { +s32 func_800738A8(s32 objectIndex, s16* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { s32 phi_t0; phi_t0 = 0; - if (D_80165C18[arg0].unk_0CF == 0) { + if (gObjectList[objectIndex].unk_0CF == 0) { *arg1 = arg2; - D_80165C18[arg0].unk_0AC = arg5; - D_80165C18[arg0].unk_0D0 = arg6; - func_80073800(arg0, 1); + gObjectList[objectIndex].unk_0AC = arg5; + gObjectList[objectIndex].unk_0D0 = arg6; + func_80073800(objectIndex, 1); } else { - D_80165C18[arg0].unk_0AC--; - if (D_80165C18[arg0].unk_0AC < 0) { - D_80165C18[arg0].unk_0AC = arg5; + gObjectList[objectIndex].unk_0AC--; + if (gObjectList[objectIndex].unk_0AC < 0) { + gObjectList[objectIndex].unk_0AC = arg5; *arg1 += arg4; if (arg3 < *arg1) { - if (D_80165C18[arg0].unk_0D0 > 0) { - D_80165C18[arg0].unk_0D0--; + if (gObjectList[objectIndex].unk_0D0 > 0) { + gObjectList[objectIndex].unk_0D0--; } - if (D_80165C18[arg0].unk_0D0 == 0) { + if (gObjectList[objectIndex].unk_0D0 == 0) { *arg1 = arg3; - func_80073800(arg0, 0); - func_8007381C(arg0); + func_80073800(objectIndex, 0); + func_8007381C(objectIndex); phi_t0 = 1; } else { *arg1 = arg2; @@ -883,30 +883,30 @@ UNUSED void func_800739CC(s32 arg0, s16* arg1, s32 arg2, s32 arg3, s32 arg4, s32 } } -s32 func_80073A10(s32 arg0, s16* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { - s32 phi_t0; +bool func_80073A10(s32 objectIndex, s16* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { + bool phi_t0; - phi_t0 = 0; - if (D_80165C18[arg0].unk_0CF == 0) { + phi_t0 = FALSE; + if (gObjectList[objectIndex].unk_0CF == 0) { *arg1 = arg2; - D_80165C18[arg0].unk_0AC = arg5; - D_80165C18[arg0].unk_0D0 = arg6; - func_80073800(arg0, 1); + gObjectList[objectIndex].unk_0AC = arg5; + gObjectList[objectIndex].unk_0D0 = arg6; + func_80073800(objectIndex, 1); } else { - D_80165C18[arg0].unk_0AC--; - if (D_80165C18[arg0].unk_0AC < 0) { - D_80165C18[arg0].unk_0AC = arg5; + gObjectList[objectIndex].unk_0AC--; + if (gObjectList[objectIndex].unk_0AC < 0) { + gObjectList[objectIndex].unk_0AC = arg5; *arg1 -= arg4; if (*arg1 < arg3) { - if (D_80165C18[arg0].unk_0D0 > 0) { - D_80165C18[arg0].unk_0D0--; + if (gObjectList[objectIndex].unk_0D0 > 0) { + gObjectList[objectIndex].unk_0D0--; } - if (D_80165C18[arg0].unk_0D0 == 0) { + if (gObjectList[objectIndex].unk_0D0 == 0) { *arg1 = arg3; - func_80073800(arg0, 0); - func_8007381C(arg0); - phi_t0 = 1; + func_80073800(objectIndex, 0); + func_8007381C(objectIndex); + phi_t0 = TRUE; } else { *arg1 = arg2; } @@ -927,40 +927,40 @@ s32 func_80073B34(s32 arg0, s16* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s } } -s32 func_80073B78(s32 arg0, s32 arg1, s16* arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7) { +bool func_80073B78(s32 arg0, s32 objectIndex, s16* arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7) { s32 phi_t0; - phi_t0 = 0; - if (D_80165C18[arg1].unk_0CF == 0) { - D_80165C18[arg1].unk_0AC = arg6; + phi_t0 = FALSE; + if (gObjectList[objectIndex].unk_0CF == 0) { + gObjectList[objectIndex].unk_0AC = arg6; if (arg0 != 0) { *arg2 = arg3; } - D_80165C18[arg1].unk_0D0 = arg7; - func_80073800(arg1, 1); + gObjectList[objectIndex].unk_0D0 = arg7; + func_80073800(objectIndex, 1); } else { - D_80165C18[arg1].unk_0AC--; - if (D_80165C18[arg1].unk_0AC < 0) { - D_80165C18[arg1].unk_0AC = arg6; - if (D_80165C18[arg1].unk_0CF == 1) { + gObjectList[objectIndex].unk_0AC--; + if (gObjectList[objectIndex].unk_0AC < 0) { + gObjectList[objectIndex].unk_0AC = arg6; + if (gObjectList[objectIndex].unk_0CF == 1) { *arg2 += arg5; if (*arg2 >= arg4) { *arg2 = arg4; - D_80165C18[arg1].unk_0CF++; + gObjectList[objectIndex].unk_0CF++; } } else { *arg2 -= arg5; if (arg3 >= *arg2) { *arg2 = arg3; - if (D_80165C18[arg1].unk_0D0 > 0) { - D_80165C18[arg1].unk_0D0--; + if (gObjectList[objectIndex].unk_0D0 > 0) { + gObjectList[objectIndex].unk_0D0--; } - if (D_80165C18[arg1].unk_0D0 == 0) { - func_80073800(arg1, 0); - func_8007381C(arg1); - phi_t0 = 1; + if (gObjectList[objectIndex].unk_0D0 == 0) { + func_80073800(objectIndex, 0); + func_8007381C(objectIndex); + phi_t0 = TRUE; } else { - D_80165C18[arg1].unk_0CF = 1; + gObjectList[objectIndex].unk_0CF = 1; } } } @@ -970,117 +970,117 @@ s32 func_80073B78(s32 arg0, s32 arg1, s16* arg2, s32 arg3, s32 arg4, s32 arg5, s return phi_t0; } -void func_80073CB0(s32 arg0, s16* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { - func_80073B78(1, arg0, arg1, arg2, arg3, arg4, arg5, arg6); +void func_80073CB0(s32 objectIndex, s16* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { + func_80073B78(1, objectIndex, arg1, arg2, arg3, arg4, arg5, arg6); } -void func_80073D0C(s32 arg0, s16* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { - func_80073B78(0, arg0, arg1, arg2, arg3, arg4, arg5, arg6); +void func_80073D0C(s32 objectIndex, s16* arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6) { + func_80073B78(0, objectIndex, arg1, arg2, arg3, arg4, arg5, arg6); } -UNUSED void func_80073D68(s32 arg0, s16* arg1, s16 arg2, s32 arg3) { +UNUSED void func_80073D68(s32 objectIndex, s16* arg1, s16 arg2, s32 arg3) { *arg1 = *arg1 + arg3; if (*arg1 >= arg2) { *arg1 = arg2; - func_80073800(arg0, 0); - func_8007381C(arg0); + func_80073800(objectIndex, 0); + func_8007381C(objectIndex); } } -void func_80073DC0(s32 arg0, s16* arg1, s16 arg2, s32 arg3) { +void func_80073DC0(s32 objectIndex, s16* arg1, s16 arg2, s32 arg3) { *arg1 = *arg1 - arg3; if (arg2 >= *arg1) { *arg1 = arg2; - func_80073800(arg0, 0); - func_8007381C(arg0); + func_80073800(objectIndex, 0); + func_8007381C(objectIndex); } } -s32 func_80073E18(s32 arg0, u16* arg1, u16 arg2, s32 arg3) { - s32 phi_t0; +bool func_80073E18(s32 objectIndex, u16* arg1, u16 arg2, s32 arg3) { + bool phi_t0; s32 temp_v1; - phi_t0 = 0; - if (D_80165C18[arg0].unk_0CF == 0) { - func_80073800(arg0, 1); - D_80165C18[arg0].unk_048 = arg3; + phi_t0 = FALSE; + if (gObjectList[objectIndex].unk_0CF == 0) { + func_80073800(objectIndex, 1); + gObjectList[objectIndex].unk_048 = arg3; } - temp_v1 = D_80165C18[arg0].unk_048 - arg2; + temp_v1 = gObjectList[objectIndex].unk_048 - arg2; if (temp_v1 <= 0) { - *arg1 += D_80165C18[arg0].unk_048; - func_80073800(arg0, 0); - phi_t0 = 1; + *arg1 += gObjectList[objectIndex].unk_048; + func_80073800(objectIndex, 0); + phi_t0 = TRUE; } else { *arg1 += arg2; - D_80165C18[arg0].unk_048 = temp_v1; + gObjectList[objectIndex].unk_048 = temp_v1; } return phi_t0; } -UNUSED s32 func_80073ED4(s32 arg0, u16* arg1, u16 arg2, s32 arg3) { - s32 phi_t0; +UNUSED bool func_80073ED4(s32 objectIndex, u16* arg1, u16 arg2, s32 arg3) { + bool phi_t0; s32 temp_v1; - phi_t0 = 0; - if (D_80165C18[arg0].unk_0CF == 0) { - func_80073800(arg0, 1); - D_80165C18[arg0].unk_048 = arg3; + phi_t0 = FALSE; + if (gObjectList[objectIndex].unk_0CF == 0) { + func_80073800(objectIndex, 1); + gObjectList[objectIndex].unk_048 = arg3; } - temp_v1 = D_80165C18[arg0].unk_048 - arg2; + temp_v1 = gObjectList[objectIndex].unk_048 - arg2; if (temp_v1 <= 0) { - *arg1 += D_80165C18[arg0].unk_048; - func_80073800(arg0, 0); - phi_t0 = 1; + *arg1 += gObjectList[objectIndex].unk_048; + func_80073800(objectIndex, 0); + phi_t0 = TRUE; } else { *arg1 -= arg2; - D_80165C18[arg0].unk_048 = temp_v1; + gObjectList[objectIndex].unk_048 = temp_v1; } return phi_t0; } -void func_80073F90(s32 arg0, s32 arg1) { - D_80165C18[arg0].unk_0CD = arg1; +void func_80073F90(s32 objectIndex, s32 arg1) { + gObjectList[objectIndex].unk_0CD = arg1; } -void func_80073FAC(s32 arg0) { - D_80165C18[arg0].unk_0DB++; +void func_80073FAC(s32 objectIndex) { + gObjectList[objectIndex].unk_0DB++; } -void func_80073FD4(s32 arg0) { - func_80073F90(arg0, 0); - D_80165C18[arg0].unk_0DB = 1; +void func_80073FD4(s32 objectIndex) { + func_80073F90(objectIndex, 0); + gObjectList[objectIndex].unk_0DB = 1; } UNUSED void func_80074014(void) { } -s32 func_8007401C(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { - s32 phi_a3; +bool func_8007401C(s32 objectIndex, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { + bool phi_a3; - phi_a3 = 0; - if (D_80165C18[arg0].unk_0CD == 0) { + phi_a3 = FALSE; + if (gObjectList[objectIndex].unk_0CD == 0) { *arg1 = arg2; - D_80165C18[arg0].unk_0AA = arg5; - D_80165C18[arg0].unk_0CE = arg6; - func_80073F90(arg0, 1); + gObjectList[objectIndex].unk_0AA = arg5; + gObjectList[objectIndex].unk_0CE = arg6; + func_80073F90(objectIndex, 1); } else { - D_80165C18[arg0].unk_0AA--; - if ((s32) D_80165C18[arg0].unk_0AA < 0) { - D_80165C18[arg0].unk_0AA = arg5; + gObjectList[objectIndex].unk_0AA--; + if ((s32) gObjectList[objectIndex].unk_0AA < 0) { + gObjectList[objectIndex].unk_0AA = arg5; *arg1 += arg4; if (arg3 < *arg1) { - if ((s32) D_80165C18[arg0].unk_0CE > 0) { - D_80165C18[arg0].unk_0CE--; + if ((s32) gObjectList[objectIndex].unk_0CE > 0) { + gObjectList[objectIndex].unk_0CE--; } - if (D_80165C18[arg0].unk_0CE == 0) { + if (gObjectList[objectIndex].unk_0CE == 0) { *arg1 = arg3; - func_80073F90(arg0, 0); - func_80073FAC(arg0); - phi_a3 = 1; + func_80073F90(objectIndex, 0); + func_80073FAC(objectIndex); + phi_a3 = TRUE; } else { *arg1 = arg2; } @@ -1091,35 +1091,35 @@ s32 func_8007401C(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s return phi_a3; } -s32 func_80074118(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { - return func_8007401C(arg0, arg1, arg2, arg3, arg4, arg5, arg6); +s32 func_80074118(s32 objectIndex, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { + return func_8007401C(objectIndex, arg1, arg2, arg3, arg4, arg5, arg6); } -s32 func_8007415C(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { +s32 func_8007415C(s32 objectIndex, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { if (*arg1 < arg3) { - return func_8007401C(arg0, arg1, arg2, arg3, arg4, arg5, arg6); + return func_8007401C(objectIndex, arg1, arg2, arg3, arg4, arg5, arg6); } } -s32 func_800741B4(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { - if (D_80165C18[arg0].unk_0CD == 0) { +s32 func_800741B4(s32 objectIndex, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { + if (gObjectList[objectIndex].unk_0CD == 0) { *arg1 = arg2; - D_80165C18[arg0].unk_0AA = arg5; - D_80165C18[arg0].unk_0CE = arg6; - func_80073F90(arg0, 1); + gObjectList[objectIndex].unk_0AA = arg5; + gObjectList[objectIndex].unk_0CE = arg6; + func_80073F90(objectIndex, 1); } else { - D_80165C18[arg0].unk_0AA += -1; - if (D_80165C18[arg0].unk_0AA < 0) { - D_80165C18[arg0].unk_0AA = arg5; + gObjectList[objectIndex].unk_0AA += -1; + if (gObjectList[objectIndex].unk_0AA < 0) { + gObjectList[objectIndex].unk_0AA = arg5; *arg1 -= arg4; if (*arg1 < arg3) { - if (D_80165C18[arg0].unk_0CE > 0) { - D_80165C18[arg0].unk_0CE--; + if (gObjectList[objectIndex].unk_0CE > 0) { + gObjectList[objectIndex].unk_0CE--; } - if (D_80165C18[arg0].unk_0CE == 0) { + if (gObjectList[objectIndex].unk_0CE == 0) { *arg1 = arg3; - func_80073F90(arg0, 0); - func_80073FAC(arg0); + func_80073F90(objectIndex, 0); + func_80073FAC(objectIndex); } else { *arg1 = arg2; } @@ -1131,59 +1131,59 @@ s32 func_800741B4(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s } -UNUSED void func_800742A8(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { - func_800741B4(arg0, arg1, arg2, arg3, arg4, arg5, arg6); +UNUSED void func_800742A8(s32 objectIndex, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { + func_800741B4(objectIndex, arg1, arg2, arg3, arg4, arg5, arg6); } -UNUSED void func_800742EC(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { +UNUSED void func_800742EC(s32 objectIndex, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { if (arg3 < *arg1) { - func_800741B4(arg0, arg1, arg2, arg3, arg4, arg5, arg6); + func_800741B4(objectIndex, arg1, arg2, arg3, arg4, arg5, arg6); } } -void func_80074344(s32 arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { - if (D_80165C18[arg0].unk_0CD == 0) { +void func_80074344(s32 objectIndex, f32* arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { + if (gObjectList[objectIndex].unk_0CD == 0) { *arg1 = arg2; - D_80165C18[arg0].unk_0AA = arg5; - D_80165C18[arg0].unk_0CE = arg6; - func_80073F90(arg0, 1); + gObjectList[objectIndex].unk_0AA = arg5; + gObjectList[objectIndex].unk_0CE = arg6; + func_80073F90(objectIndex, 1); return; } - D_80165C18[arg0].unk_0AA--; - if (D_80165C18[arg0].unk_0AA < 0) { - D_80165C18[arg0].unk_0AA = arg5; - if (D_80165C18[arg0].unk_0CD == 1) { + gObjectList[objectIndex].unk_0AA--; + if (gObjectList[objectIndex].unk_0AA < 0) { + gObjectList[objectIndex].unk_0AA = arg5; + if (gObjectList[objectIndex].unk_0CD == 1) { *arg1 += arg4; if (arg3 <= *arg1) { *arg1 = arg3; - D_80165C18[arg0].unk_0CD++; + gObjectList[objectIndex].unk_0CD++; } } else { *arg1 -= arg4; if (*arg1 <= arg2) { *arg1 = arg2; - if (D_80165C18[arg0].unk_0CE > 0) { - D_80165C18[arg0].unk_0CE--; + if (gObjectList[objectIndex].unk_0CE > 0) { + gObjectList[objectIndex].unk_0CE--; } - if (D_80165C18[arg0].unk_0CE == 0) { - func_80073F90(arg0, 0); - func_80073FAC(arg0); + if (gObjectList[objectIndex].unk_0CE == 0) { + func_80073F90(objectIndex, 0); + func_80073FAC(objectIndex); } else { - D_80165C18[arg0].unk_0CD = 1; + gObjectList[objectIndex].unk_0CD = 1; } } } } } -void func_80074478(s32 arg0) { - D_80165C18[arg0].unk_054 |= 1; +void func_80074478(s32 objectIndex) { + gObjectList[objectIndex].unk_054 |= 1; } -void func_800744A0(s32 arg0) { - D_80165C18[arg0].unk_054 &= ~1; +void func_800744A0(s32 objectIndex) { + gObjectList[objectIndex].unk_054 &= ~1; } void func_800744CC(void) { @@ -1207,70 +1207,70 @@ void func_80074574(u8 *arg0, void *arg1, u16 arg2, u16 arg3) { void func_800745C8(s32 objectIndex, s32 arg1) { s32 phi_a1; - if ((D_80165C18[objectIndex].unk_054 & 1) != 0) { + if ((gObjectList[objectIndex].unk_054 & 1) != 0) { phi_a1 = 0; - if (D_80165C18[objectIndex].tlutList != D_80165C18[objectIndex].activeTLUT) { - D_80165C18[objectIndex].activeTLUT = D_80165C18[objectIndex].tlutList; + if (gObjectList[objectIndex].tlutList != gObjectList[objectIndex].activeTLUT) { + gObjectList[objectIndex].activeTLUT = gObjectList[objectIndex].tlutList; } - D_80165C18[objectIndex].unk_054 ^= 2; - if ((D_80165C18[objectIndex].unk_054 & 2) != 0) { + gObjectList[objectIndex].unk_054 ^= 2; + if ((gObjectList[objectIndex].unk_054 & 2) != 0) { phi_a1 = 1; } - D_80165C18[objectIndex].activeTexture = (u8 *) (D_80165C18[objectIndex].textureWidth * D_80165C18[objectIndex].textureHeight * phi_a1) + arg1; + gObjectList[objectIndex].activeTexture = (u8 *) (gObjectList[objectIndex].textureWidth * gObjectList[objectIndex].textureHeight * phi_a1) + arg1; func_800744A0(objectIndex); } } -void func_8007466C(s32 arg0, s32 arg1) { +void func_8007466C(s32 objectIndex, s32 arg1) { s32 phi_a1; - if ((D_80165C18[arg0].unk_054 & 1) != 0) { + if ((gObjectList[objectIndex].unk_054 & 1) != 0) { // I have no idea why this typecase works - D_80165C18[arg0].activeTLUT = (u32*)D_80165C18[arg0].tlutList + (D_80165C18[arg0].unk_0D3 << 7) ; - D_80165C18[arg0].unk_054 ^= 2; + gObjectList[objectIndex].activeTLUT = (u32*)gObjectList[objectIndex].tlutList + (gObjectList[objectIndex].unk_0D3 << 7) ; + gObjectList[objectIndex].unk_054 ^= 2; phi_a1 = 0; - if ((D_80165C18[arg0].unk_054 & 2) != 0) { + if ((gObjectList[objectIndex].unk_054 & 2) != 0) { phi_a1 = 1; } - D_80165C18[arg0].activeTexture = (u8 *) (D_80165C18[arg0].textureWidth * D_80165C18[arg0].textureHeight * phi_a1) + arg1; - func_800744A0(arg0); + gObjectList[objectIndex].activeTexture = (u8 *) (gObjectList[objectIndex].textureWidth * gObjectList[objectIndex].textureHeight * phi_a1) + arg1; + func_800744A0(objectIndex); } } -void func_80074704(s32 arg0, s32 arg1) { +void func_80074704(s32 objectIndex, s32 arg1) { s32 phi_a1; - if ((D_80165C18[arg0].unk_054 & 1) != 0) { - D_80165C18[arg0].activeTLUT = D_80165C18[arg0].tlutList; - D_80165C18[arg0].unk_054 ^= 2; + if ((gObjectList[objectIndex].unk_054 & 1) != 0) { + gObjectList[objectIndex].activeTLUT = gObjectList[objectIndex].tlutList; + gObjectList[objectIndex].unk_054 ^= 2; phi_a1 = 0; - if ((D_80165C18[arg0].unk_054 & 2) != 0) { + if ((gObjectList[objectIndex].unk_054 & 2) != 0) { phi_a1 = 1; } - D_80165C18[arg0].activeTexture = (u8 *) (D_80165C18[arg0].textureWidth * D_80165C18[arg0].textureHeight * phi_a1) + arg1; - func_800744A0(arg0); + gObjectList[objectIndex].activeTexture = (u8 *) (gObjectList[objectIndex].textureWidth * gObjectList[objectIndex].textureHeight * phi_a1) + arg1; + func_800744A0(objectIndex); } } -u8 *func_80074790(s32 arg0, u8 *arg1) { +u8 *func_80074790(s32 objectIndex, u8 *arg1) { s32 phi_a2; - D_80165C18[arg0].unk_054 ^= 4; + gObjectList[objectIndex].unk_054 ^= 4; phi_a2 = 0; - if ((D_80165C18[arg0].unk_054 & 4) != 0) { + if ((gObjectList[objectIndex].unk_054 & 4) != 0) { phi_a2 = 1; } - return (D_80165C18[arg0].textureWidth * D_80165C18[arg0].textureHeight * phi_a2) + arg1; + return (gObjectList[objectIndex].textureWidth * gObjectList[objectIndex].textureHeight * phi_a2) + arg1; } void func_800747F0(s32 objectIndex, u8 *arg1) { u8 *sp24; - if (D_80165C18[objectIndex].unk_0D2 != D_80165C18[objectIndex].unk_0D3) { - sp24 = D_80165C18[objectIndex].textureList + (D_80165C18[objectIndex].textureWidth * D_80165C18[objectIndex].textureHeight * D_80165C18[objectIndex].unk_0D2); - func_80074574(sp24, (void *) func_80074790(objectIndex, arg1), D_80165C18[objectIndex].textureWidth, D_80165C18[objectIndex].textureHeight); - D_80165C18[objectIndex].unk_0D3 = D_80165C18[objectIndex].unk_0D2; + if (gObjectList[objectIndex].itemDisplay != gObjectList[objectIndex].unk_0D3) { + sp24 = gObjectList[objectIndex].textureList + (gObjectList[objectIndex].textureWidth * gObjectList[objectIndex].textureHeight * gObjectList[objectIndex].itemDisplay); + func_80074574(sp24, (void *) func_80074790(objectIndex, arg1), gObjectList[objectIndex].textureWidth, gObjectList[objectIndex].textureHeight); + gObjectList[objectIndex].unk_0D3 = gObjectList[objectIndex].itemDisplay; func_80074478(objectIndex); } } @@ -1342,13 +1342,13 @@ void func_80074924(s32 objectIndex) { s32 temp_a0; struct _struct_D_800E6F30_0x3 *temp_v0_2; struct _struct_D_800E6F48_0x3 *temp_v1; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; temp_s0->sizeScaling = 0.15f; temp_v0 = gCurrentCourseId; switch (temp_v0) { /* irregular */ - case 0: + case COURSE_MARIO_RACEWAY: sp2C = random_int(0x00C8U); sp28 = random_int(D_80165748); sp24 = random_int(0x0096U); @@ -1357,7 +1357,7 @@ void func_80074924(s32 objectIndex) { temp_s0->unk_010[1] = (f32) (D_80165720 + sp28); temp_s0->unk_010[2] = (f32) (((f64) D_80165728 + 200.0) - (f64) sp24); break; - case 7: + case COURSE_ROYAL_RACEWAY: sp2C = random_int(0x0168U); sp28 = random_int(D_80165748); sp24 = random_int(0x00B4U); @@ -1366,7 +1366,7 @@ void func_80074924(s32 objectIndex) { temp_s0->unk_010[1] = (f32) (D_80165720 + sp28); temp_s0->unk_010[2] = (f32) (((f64) D_80165728 + 200.0) - (f64) sp24); break; - case 8: + case COURSE_LUIGI_RACEWAY: sp2C = random_int(0x012CU); sp28 = random_int(D_80165748); sp24 = random_int(0x0096U); @@ -1377,7 +1377,7 @@ void func_80074924(s32 objectIndex) { break; } func_8008B80C(objectIndex, 0, 0, 0); - if (D_8018EDF3 == 1) { + if (gPlayerCount == 1) { temp_s0->unk_038[1] = (f32) (((f64) (f32) (sp2C % 4) * 0.25) + 0.8); } else { temp_s0->unk_038[1] = (f32) (((f64) (f32) (sp2C % 3) * 0.2) + 0.4); @@ -1401,32 +1401,32 @@ void func_80074924(s32 objectIndex) { func_80072488(objectIndex); } -void func_80074D94(s32 arg0) { - if (D_80165C18[arg0].unk_0AE == 1) { - if ((D_80165740 <= D_80165C18[arg0].unk_028[1]) && (s16_step_down_towards(&D_80165C18[arg0].unk_0A0, 0, 8) != 0)) { - func_80086F60(arg0); +void func_80074D94(s32 objectIndex) { + if (gObjectList[objectIndex].unk_0AE == 1) { + if ((D_80165740 <= gObjectList[objectIndex].unk_028[1]) && (s16_step_down_towards(&gObjectList[objectIndex].unk_0A0, 0, 8) != 0)) { + func_80086F60(objectIndex); } - func_800877C4(arg0); + func_800877C4(objectIndex); } - func_8008BF18(arg0); + func_8008BF18(objectIndex); } -void func_80074E28(s32 arg0) { - switch (D_80165C18[arg0].unk_0A6) { +void func_80074E28(s32 objectIndex) { + switch (gObjectList[objectIndex].state) { case 1: - func_80074924(arg0); + func_80074924(objectIndex); break; case 2: - if (func_8007278C(arg0, 1) != 0) { - func_80086E70(arg0); + if (func_8007278C(objectIndex, 1) != 0) { + func_80086E70(objectIndex); break; } case 0: break; case 3: - func_80041480(&D_80165C18[arg0].unk_084[6], -0x1000, 0x1000, &D_80165C18[arg0].unk_084[7]); - if (D_80165C18[arg0].unk_0AE == 0) { - func_80072428(arg0); + func_80041480(&gObjectList[objectIndex].unk_084[6], -0x1000, 0x1000, &gObjectList[objectIndex].unk_084[7]); + if (gObjectList[objectIndex].unk_0AE == 0) { + func_80072428(objectIndex); } break; } @@ -1436,18 +1436,18 @@ void func_80074EE8(void) { s32 someIndex; s32 objectIndex; s32 someCount; - struct_80165C18_entry *object; + Objects *object; someCount = 0; for (someIndex = 0; someIndex < D_80165738; someIndex++) { objectIndex = D_8018C630[someIndex]; - if (objectIndex != -1) { - object = &D_80165C18[objectIndex]; - if (object->unk_0A6 != 0) { + if (objectIndex != DELETED_OBJECT_ID) { + object = &gObjectList[objectIndex]; + if (object->state != 0) { func_80074E28(objectIndex); func_80074D94(objectIndex); - if (object->unk_0A6 == 0) { - func_80072100(&D_8018C630[someIndex]); + if (object->state == 0) { + delete_object_wrapper(&D_8018C630[someIndex]); } someCount += 1; } @@ -1459,17 +1459,17 @@ void func_80074EE8(void) { } void func_80074FD8(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 0: break; case 1: - if (func_80087E08(objectIndex, D_80165C18[objectIndex].unk_038[1], 0.12f, D_80165C18[objectIndex].unk_034, D_80165C18[objectIndex].unk_0BE[1], 0x00000064) != 0) { + if (func_80087E08(objectIndex, gObjectList[objectIndex].unk_038[1], 0.12f, gObjectList[objectIndex].unk_034, gObjectList[objectIndex].unk_0BE[1], 0x00000064) != 0) { func_80072488(objectIndex); } func_8008BF18(objectIndex); - D_80165C18[objectIndex].unk_0B2[0] += D_8016582C[0]; - D_80165C18[objectIndex].unk_0B2[1] += D_8016582C[1]; - D_80165C18[objectIndex].unk_0B2[2] += D_8016582C[2]; + gObjectList[objectIndex].unk_0B2[0] += D_8016582C[0]; + gObjectList[objectIndex].unk_0B2[1] += D_8016582C[1]; + gObjectList[objectIndex].unk_0B2[2] += D_8016582C[2]; break; case 2: func_80086F60(objectIndex); @@ -1481,12 +1481,12 @@ void func_80074FD8(s32 objectIndex) { void func_800750D8(s32 objectIndex, s32 arg1, Vec3f arg2, s32 arg3, s32 arg4) { s32 sp24; s32 temp_v0; - struct_80165C18_entry *temp_v1; + Objects *temp_v1; func_800723A4(objectIndex, 0); sp24 = random_int(0x01F4U); temp_v0 = random_int(0x0032U); - temp_v1 = &D_80165C18[objectIndex]; + temp_v1 = &gObjectList[objectIndex]; temp_v1->unk_0D5 = arg3; temp_v1->sizeScaling = ((f64) (f32) sp24 * 0.0005) + 0.05; // ALL HAIL THE FAKE MATCH GODS!!!!! @@ -1523,10 +1523,10 @@ void func_80075304(Vec3f arg0, s32 arg1, s32 arg2, s32 arg3) { } void func_8007542C(s32 arg0) { - s32 var_v0; + s32 objectIndex; s32 var_s2; s32 *var_s3; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; D_8016582C[0] += 0x2000; D_8016582C[1] += 0x1000; @@ -1543,13 +1543,13 @@ void func_8007542C(s32 arg0) { var_s3 = D_8018C630; break; } - var_v0 = var_s3[var_s2]; - if (var_v0 != -1) { - temp_s0 = &D_80165C18[var_v0]; - if (temp_s0->unk_0A6 != 0) { - func_80074FD8(var_v0); - if (temp_s0->unk_0A6 == 0) { - func_80072100(&var_s3[var_s2]); + objectIndex = var_s3[var_s2]; + if (objectIndex != DELETED_OBJECT_ID) { + temp_s0 = &gObjectList[objectIndex]; + if (temp_s0->state != 0) { + func_80074FD8(objectIndex); + if (temp_s0->state == 0) { + delete_object_wrapper(&var_s3[var_s2]); } } } @@ -1558,60 +1558,60 @@ void func_8007542C(s32 arg0) { } void func_80075574(s32 objectIndex, Vec3f arg1, f32 arg2) { - struct_80165C18_entry *temp_v1; + Objects *temp_v1; UNUSED s32 pad[2]; func_800723A4(objectIndex, 0); - temp_v1 = &D_80165C18[objectIndex]; + temp_v1 = &gObjectList[objectIndex]; temp_v1->unk_010[0] = arg1[0]; temp_v1->unk_010[1] = arg1[1]; temp_v1->unk_010[2] = arg1[2]; temp_v1->unk_038[1] = arg2; - temp_v1->unk_0A4 = random_int(0x0064U) + 0x1E; + temp_v1->type = random_int(0x0064U) + 0x1E; } s32 func_800755FC(s32 arg0, Vec3f arg1, f32 arg2) { - s32 temp_v0; + s32 objectIndex; if (arg0 == 0) { - temp_v0 = func_80072044(D_8018C3F0, &D_80183E4C, D_8018C3F0_SIZE); - if (temp_v0 != -1) { - func_80075574(temp_v0, arg1, arg2); + objectIndex = func_80072044(D_8018C3F0, &D_80183E4C, D_8018C3F0_SIZE); + if (objectIndex != -1) { + func_80075574(objectIndex, arg1, arg2); } } else { - temp_v0 = func_80072044(D_8018C630, &D_80183E5C, D_8018C630_SIZE); - if (temp_v0 != -1) { - func_80075574(temp_v0, arg1, arg2); + objectIndex = func_80072044(D_8018C630, &D_80183E5C, D_8018C630_SIZE); + if (objectIndex != -1) { + func_80075574(objectIndex, arg1, arg2); } } - return temp_v0; + return objectIndex; } -void func_80075698(s32 arg0) { - D_80165C18[arg0].unk_0D5 = 1; - D_80165C18[arg0].activeTexture = D_8018D490; - D_80165C18[arg0].textureList = D_8018D490; - D_80165C18[arg0].unk_0A0 = 0xFF; - D_80165C18[arg0].unk_0BE[1] = 0; - D_80165C18[arg0].unk_0B2[0] = 0; - D_80165C18[arg0].unk_0B2[2] = 0; - D_80165C18[arg0].unk_028[0] = 0.0f; - D_80165C18[arg0].unk_028[1] = 0.0f; - D_80165C18[arg0].unk_028[2] = 0.0f; - D_80165C18[arg0].sizeScaling = 0.5f; - func_80072488(arg0); +void func_80075698(s32 objectIndex) { + gObjectList[objectIndex].unk_0D5 = 1; + gObjectList[objectIndex].activeTexture = D_8018D490; + gObjectList[objectIndex].textureList = D_8018D490; + gObjectList[objectIndex].unk_0A0 = 0xFF; + gObjectList[objectIndex].unk_0BE[1] = 0; + gObjectList[objectIndex].unk_0B2[0] = 0; + gObjectList[objectIndex].unk_0B2[2] = 0; + gObjectList[objectIndex].unk_028[0] = 0.0f; + gObjectList[objectIndex].unk_028[1] = 0.0f; + gObjectList[objectIndex].unk_028[2] = 0.0f; + gObjectList[objectIndex].sizeScaling = 0.5f; + func_80072488(objectIndex); } void func_80075714(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 1: func_80075698(objectIndex); break; case 2: - D_80165C18[objectIndex].unk_038[1] -= 0.03; - f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], 100.0f, D_80165C18[objectIndex].unk_038[1]); - func_8007415C(objectIndex, &D_80165C18[objectIndex].sizeScaling, 0.55f, 1.0f, 0.1f, 1, 0); - if (func_80073B00(objectIndex, &D_80165C18[objectIndex].unk_0A0, 0xFF, 0x1E, 7, 0, 0) != 0) { + gObjectList[objectIndex].unk_038[1] -= 0.03; + f32_step_up_towards(&gObjectList[objectIndex].unk_028[1], 100.0f, gObjectList[objectIndex].unk_038[1]); + func_8007415C(objectIndex, &gObjectList[objectIndex].sizeScaling, 0.55f, 1.0f, 0.1f, 1, 0); + if (func_80073B00(objectIndex, &gObjectList[objectIndex].unk_0A0, 0xFF, 0x1E, 7, 0, 0) != 0) { func_80072488(objectIndex); } break; @@ -1633,7 +1633,7 @@ void func_80075838(void) { s32 count; s32 i; s32 temp_a0; - struct_80165C18_entry *temp; + Objects *temp; if (D_8016578C != 0) { D_8016578C -= 1; } @@ -1645,11 +1645,11 @@ void func_80075838(void) { for (i = 0; i < 128; i++) { temp_a0 = D_8018C3F0[i]; if (temp_a0 != -1) { - temp = &D_80165C18[temp_a0]; - if (temp->unk_0A6 != 0) { + temp = &gObjectList[temp_a0]; + if (temp->state != 0) { func_80075714(temp_a0); - if (temp->unk_0A6 == 0) { - func_80072100(&D_8018C3F0[i]); + if (temp->state == 0) { + delete_object_wrapper(&D_8018C3F0[i]); } count += 1; } @@ -1664,11 +1664,11 @@ void func_80075838(void) { for (i = 0; i < 128; i++) { temp_a0 = D_8018C630[i]; if (temp_a0 != -1) { - temp = &D_80165C18[temp_a0]; - if (temp->unk_0A6 != 0) { + temp = &gObjectList[temp_a0]; + if (temp->state != 0) { func_80075714(temp_a0); - if (temp->unk_0A6 == 0) { - func_80072100(&D_8018C630[i]); + if (temp->state == 0) { + delete_object_wrapper(&D_8018C630[i]); } count += 1; } @@ -1681,15 +1681,15 @@ void func_80075838(void) { } void func_800759EC(s32 objectIndex, Vec3f arg1, f32 arg2) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; func_800723A4(objectIndex, 0); - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_010[0] = arg1[0]; temp_v0->unk_010[1] = arg1[1]; temp_v0->unk_010[2] = arg1[2]; temp_v0->unk_038[1] = arg2; - temp_v0->unk_0A4 = 0x00FF; + temp_v0->type = 0x00FF; temp_v0->unk_0A2 = 0x0096; } @@ -1711,42 +1711,42 @@ s32 func_80075A6C(s32 arg0, Vec3f arg1, f32 arg2) { return temp_v0; } -void func_80075B08(s32 arg0) { - D_80165C18[arg0].unk_0D5 = 6; - D_80165C18[arg0].activeTexture = D_8018D490; - D_80165C18[arg0].textureList = D_8018D490; - D_80165C18[arg0].unk_0A0 = 0xFF; - D_80165C18[arg0].unk_0BE[1] = 0; - D_80165C18[arg0].unk_0B2[0] = 0; - D_80165C18[arg0].unk_0B2[2] = 0; - D_80165C18[arg0].unk_028[0] = 0.0f; - D_80165C18[arg0].unk_028[1] = 0.0f; - D_80165C18[arg0].unk_028[2] = 0.0f; - D_80165C18[arg0].sizeScaling = 0.5f; - func_80072488(arg0); +void func_80075B08(s32 objectIndex) { + gObjectList[objectIndex].unk_0D5 = 6; + gObjectList[objectIndex].activeTexture = D_8018D490; + gObjectList[objectIndex].textureList = D_8018D490; + gObjectList[objectIndex].unk_0A0 = 0xFF; + gObjectList[objectIndex].unk_0BE[1] = 0; + gObjectList[objectIndex].unk_0B2[0] = 0; + gObjectList[objectIndex].unk_0B2[2] = 0; + gObjectList[objectIndex].unk_028[0] = 0.0f; + gObjectList[objectIndex].unk_028[1] = 0.0f; + gObjectList[objectIndex].unk_028[2] = 0.0f; + gObjectList[objectIndex].sizeScaling = 0.5f; + func_80072488(objectIndex); } -void func_80075B84(s32 arg0) { - switch (D_80165C18[arg0].unk_0A6) { +void func_80075B84(s32 objectIndex) { + switch (gObjectList[objectIndex].state) { case 1: - func_80075B08(arg0); + func_80075B08(objectIndex); break; case 2: - D_80165C18[arg0].unk_038[1] -= 0.03; - f32_step_up_towards(&D_80165C18[arg0].unk_028[1], 100.0f, D_80165C18[arg0].unk_038[1]); - func_8007415C(arg0, &D_80165C18[arg0].sizeScaling, 0.55f, 1.0f, 0.1f, 1, 0); - if (func_80073B00(arg0, &D_80165C18[arg0].unk_0A0, 0xFF, 0x1E, 7, 0, 0) != 0) { - func_80072488(arg0); + gObjectList[objectIndex].unk_038[1] -= 0.03; + f32_step_up_towards(&gObjectList[objectIndex].unk_028[1], 100.0f, gObjectList[objectIndex].unk_038[1]); + func_8007415C(objectIndex, &gObjectList[objectIndex].sizeScaling, 0.55f, 1.0f, 0.1f, 1, 0); + if (func_80073B00(objectIndex, &gObjectList[objectIndex].unk_0A0, 0xFF, 0x1E, 7, 0, 0) != 0) { + func_80072488(objectIndex); } break; case 3: - func_80072428(arg0); + func_80072428(objectIndex); break; case 0: break; } - func_8008BF18(arg0); + func_8008BF18(objectIndex); } extern s32 D_801637E8; @@ -1759,7 +1759,7 @@ void func_80075CA8(void) { s32 count; s32 i; s32 temp_a0; - struct_80165C18_entry *temp; + Objects *temp; if (D_8016578C != 0) { D_8016578C -= 1; } @@ -1771,11 +1771,11 @@ void func_80075CA8(void) { for (i = 0; i < 128; i++) { temp_a0 = D_8018C3F0[i]; if (temp_a0 != -1) { - temp = &D_80165C18[temp_a0]; - if (temp->unk_0A6 != 0) { + temp = &gObjectList[temp_a0]; + if (temp->state != 0) { func_80075B84(temp_a0); - if (temp->unk_0A6 == 0) { - func_80072100(&D_8018C3F0[i]); + if (temp->state == 0) { + delete_object_wrapper(&D_8018C3F0[i]); } count += 1; } @@ -1790,11 +1790,11 @@ void func_80075CA8(void) { for (i = 0; i < 128; i++) { temp_a0 = D_8018C630[i]; if (temp_a0 != -1) { - temp = &D_80165C18[temp_a0]; - if (temp->unk_0A6 != 0) { + temp = &gObjectList[temp_a0]; + if (temp->state != 0) { func_80075B84(temp_a0); - if (temp->unk_0A6 == 0) { - func_80072100(&D_8018C630[i]); + if (temp->state == 0) { + delete_object_wrapper(&D_8018C630[i]); } count += 1; } @@ -1807,10 +1807,10 @@ void func_80075CA8(void) { } void func_80075E5C(s32 objectIndex, Vec3f arg1, u16 arg2, f32 arg3, s32 arg4) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; func_800723A4(objectIndex, 0); - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->sizeScaling = 0.5f; temp_v0->unk_0D5 = 5; temp_v0->unk_010[0] = arg1[0]; @@ -1820,7 +1820,7 @@ void func_80075E5C(s32 objectIndex, Vec3f arg1, u16 arg2, f32 arg3, s32 arg4) { temp_v0->unk_0BE[2] = 0; temp_v0->unk_034 = arg3 * 4.0; temp_v0->unk_0BE[1] = arg2; - temp_v0->unk_0A4 = 0x00FF; + temp_v0->type = 0x00FF; temp_v0->unk_0A2 = 0x00FF; temp_v0->unk_048 = arg4 * 2; } @@ -1843,40 +1843,40 @@ void func_80075F98(Vec3f arg0, u16 arg1, f32 arg2) { } } -void func_8007601C(s32 arg0) { - if (D_80165C18[arg0].unk_04C > 0) { - D_80165C18[arg0].unk_04C--; - if (D_80165C18[arg0].unk_04C == 0) { - func_800722CC(arg0, 1); +void func_8007601C(s32 objectIndex) { + if (gObjectList[objectIndex].unk_04C > 0) { + gObjectList[objectIndex].unk_04C--; + if (gObjectList[objectIndex].unk_04C == 0) { + func_800722CC(objectIndex, 1); } } - if (D_80165C18[arg0].unk_048 > 0) { - D_80165C18[arg0].unk_048--; - if (D_80165C18[arg0].unk_048 == 0) { - func_800C9EF4(D_80165C18[arg0].pos, 0x5102800A); + if (gObjectList[objectIndex].unk_048 > 0) { + gObjectList[objectIndex].unk_048--; + if (gObjectList[objectIndex].unk_048 == 0) { + func_800C9EF4(gObjectList[objectIndex].pos, 0x5102800A); } } - if (D_80165C18[arg0].unk_04C == 0) { - func_8008A6DC(arg0, 300.0f); - if ((func_8007223C(arg0, 0x40000) != 0) && (func_80072354(arg0, 1) != 0)) { - func_800722A4(arg0, 1); - func_80075F98(D_80165C18[arg0].pos, (u16) D_80165C18[arg0].unk_0BE[1], 1.0f); - func_800C9D80(D_80165C18[arg0].pos, D_80165C18[arg0].unk_038, 0x5102800A); - if (D_80165C18[arg0].unk_0A4 > 0) { - D_80165C18[arg0].unk_0A4--; - D_80165C18[arg0].unk_04C = 0x5A; + if (gObjectList[objectIndex].unk_04C == 0) { + func_8008A6DC(objectIndex, 300.0f); + if ((is_obj_index_flag_unk_054_active(objectIndex, 0x40000) != 0) && (func_80072354(objectIndex, 1) != 0)) { + func_800722A4(objectIndex, 1); + func_80075F98(gObjectList[objectIndex].pos, (u16) gObjectList[objectIndex].unk_0BE[1], 1.0f); + func_800C9D80(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_038, 0x5102800A); + if (gObjectList[objectIndex].type > 0) { + gObjectList[objectIndex].type--; + gObjectList[objectIndex].unk_04C = 0x5A; } else { - D_80165C18[arg0].unk_04C = 0x12C; + gObjectList[objectIndex].unk_04C = 0x12C; } - D_80165C18[arg0].unk_048 = 0x3C; + gObjectList[objectIndex].unk_048 = 0x3C; } } if (func_8008A8B0(9, 0xB) == 0) { - D_80165C18[arg0].unk_0A4 = 2; + gObjectList[objectIndex].type = 2; } } @@ -1889,10 +1889,10 @@ void func_8007614C(void) { } void func_80076194(s32 objectIndex, Vec3f arg1, f32 arg2, s32 arg3) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; func_800723A4(objectIndex, 0); - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_0D5 = 4; temp_v0->sizeScaling = 1.0f; temp_v0->unk_010[0] = arg1[0]; @@ -1904,7 +1904,7 @@ void func_80076194(s32 objectIndex, Vec3f arg1, f32 arg2, s32 arg3) { if (gIsMirrorMode != 0) { temp_v0->unk_0BE[1] += -0x4000; } - temp_v0->unk_0A4 = 0x00FF; + temp_v0->type = 0x00FF; temp_v0->unk_0A2 = 0x00FF; temp_v0->unk_048 = arg3 * 2; temp_v0->unk_034 = arg2 * 8.0; @@ -1929,9 +1929,9 @@ void func_800762DC(Vec3f arg0, f32 arg1) { } void func_8007634C(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->activeTexture = D_0D02BC58; temp_v0->textureList = D_0D02BC58; temp_v0->unk_0A0 = 0x00FF; @@ -1941,11 +1941,11 @@ void func_8007634C(s32 objectIndex) { } void func_800763CC(s32 objectIndex) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; if(objectIndex){} - temp_s0 = &D_80165C18[objectIndex]; - switch (temp_s0->unk_0A6) { + temp_s0 = &gObjectList[objectIndex]; + switch (temp_s0->state) { case 1: func_8007634C(objectIndex); break; @@ -1957,11 +1957,11 @@ void func_800763CC(s32 objectIndex) { case 3: if (temp_s0->unk_0D5 == 4) { f32_step_towards(&temp_s0->sizeScaling, 4.0f, 0.1f); - s16_step_towards(&temp_s0->unk_0A4, 0, 0x0018); + s16_step_towards(&temp_s0->type, 0, 0x0018); s16_step_towards(&temp_s0->unk_0A2, 0x0080, 0x000C); } else { f32_step_towards(&temp_s0->sizeScaling, 1.0f, 0.1f); - s16_step_towards(&temp_s0->unk_0A4, 0, 0x0018); + s16_step_towards(&temp_s0->type, 0, 0x0018); s16_step_towards(&temp_s0->unk_0A2, 0x0080, 0x000C); } if ((temp_s0->unk_0AE >= 2) && (func_80073B00(objectIndex, &temp_s0->unk_0A0, 0x000000FF, 0x00000050, 0x00000020, 0, 0) != 0)) { @@ -1979,11 +1979,11 @@ void func_800763CC(s32 objectIndex) { } void func_80076538(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 0: break; case 1: - if ((u8) D_80165C18[objectIndex].unk_0D5 == 4) { + if ((u8) gObjectList[objectIndex].unk_0D5 == 4) { if (func_80087060(objectIndex, 0x0000000E) != 0) { func_80086FD4(objectIndex); } @@ -1992,10 +1992,10 @@ void func_80076538(s32 objectIndex) { } break; case 2: - u16_step_down_towards(&D_80165C18[objectIndex].unk_0BE[0], 0, 0x00000400); + u16_step_down_towards(&gObjectList[objectIndex].unk_0BE[0], 0, 0x00000400); break; } - if (D_80165C18[objectIndex].unk_0AE > 0) { + if (gObjectList[objectIndex].unk_0AE > 0) { func_80087844(objectIndex); func_8008BF18(objectIndex); } @@ -2005,43 +2005,43 @@ void func_8007661C(void) { s32 objectIndex; objectIndex = D_80183F28[0]; - if (D_80165C18[objectIndex].unk_04C > 0) { - D_80165C18[objectIndex].unk_04C--; - if (D_80165C18[objectIndex].unk_04C == 0) { + if (gObjectList[objectIndex].unk_04C > 0) { + gObjectList[objectIndex].unk_04C--; + if (gObjectList[objectIndex].unk_04C == 0) { func_800722CC(objectIndex, 1); } } - if (D_80165C18[objectIndex].unk_048 > 0) { - D_80165C18[objectIndex].unk_048--; - if (D_80165C18[objectIndex].unk_048 == 0) { - func_800C9EF4(D_80165C18[objectIndex].pos, 0x51038009U); + if (gObjectList[objectIndex].unk_048 > 0) { + gObjectList[objectIndex].unk_048--; + if (gObjectList[objectIndex].unk_048 == 0) { + func_800C9EF4(gObjectList[objectIndex].pos, 0x51038009U); } } - if (D_80165C18[objectIndex].unk_04C == 0) { + if (gObjectList[objectIndex].unk_04C == 0) { func_8008A6DC(objectIndex, 750.0f); - if ((func_8007223C(objectIndex, 0x00040000) != 0) && (func_80072354(objectIndex, 1) != 0)) { + if ((is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) && (func_80072354(objectIndex, 1) != 0)) { func_800722A4(objectIndex, 1); - func_800762DC(D_80165C18[objectIndex].pos, 1.0f); - func_800C9D80(D_80165C18[objectIndex].pos, D_80165C18[objectIndex].unk_038, 0x51038009U); - if (D_80165C18[objectIndex].unk_0A4 > 0) { - D_80165C18[objectIndex].unk_0A4--; - D_80165C18[objectIndex].unk_04C = 0x0000005A; + func_800762DC(gObjectList[objectIndex].pos, 1.0f); + func_800C9D80(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_038, 0x51038009U); + if (gObjectList[objectIndex].type > 0) { + gObjectList[objectIndex].type--; + gObjectList[objectIndex].unk_04C = 0x0000005A; } else { - D_80165C18[objectIndex].unk_04C = 0x0000012C; + gObjectList[objectIndex].unk_04C = 0x0000012C; } - D_80165C18[objectIndex].unk_048 = 0x0000003C; + gObjectList[objectIndex].unk_048 = 0x0000003C; } } if (func_8008A8B0(4, 5) == 0) { - D_80165C18[objectIndex].unk_0A4 = 2; + gObjectList[objectIndex].type = 2; } } void func_8007675C(s32 objectIndex, Vec3s arg1, s32 arg2) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; func_800723A4(objectIndex, 0); - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_0D5 = 9; temp_v0->sizeScaling = 1.0f; temp_v0->unk_010[0] = arg1[0]; @@ -2050,7 +2050,7 @@ void func_8007675C(s32 objectIndex, Vec3s arg1, s32 arg2) { temp_v0->unk_0BE[0] = 0x0C00; temp_v0->unk_0BE[1] = 0x2100; temp_v0->unk_0BE[2] = 0; - temp_v0->unk_0A4 = 0x00FF; + temp_v0->type = 0x00FF; temp_v0->unk_0A2 = 0x00FF; temp_v0->unk_034 = 8.0f; temp_v0->unk_038[1] = 8.0f; @@ -2058,13 +2058,13 @@ void func_8007675C(s32 objectIndex, Vec3s arg1, s32 arg2) { } s32 func_80076828(Vec3s arg0, s32 arg1) { - s32 temp_v0; + s32 objectIndex; - temp_v0 = func_80072044(D_8018C1B0, &D_80183E38, D_8018C1B0_SIZE); - if (temp_v0 != -1) { - func_8007675C(temp_v0, arg0, arg1); + objectIndex = func_80072044(D_8018C1B0, &D_80183E38, D_8018C1B0_SIZE); + if (objectIndex != -1) { + func_8007675C(objectIndex, arg0, arg1); } - return temp_v0; + return objectIndex; } extern s16 D_800E5740[1]; //[15][3]; /* unable to generate initializer */ @@ -2103,9 +2103,9 @@ void func_80076884(s32 arg0) { } void func_80076958(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->activeTexture = D_0D02BC58; temp_v0->textureList = D_0D02BC58; temp_v0->unk_0A0 = 0x00FF; @@ -2115,10 +2115,10 @@ void func_80076958(s32 objectIndex) { } void func_800769D8(s32 objectIndex) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; - switch (temp_s0->unk_0A6) { + temp_s0 = &gObjectList[objectIndex]; + switch (temp_s0->state) { case 0: break; case 1: @@ -2131,7 +2131,7 @@ void func_800769D8(s32 objectIndex) { break; case 3: f32_step_towards(&temp_s0->sizeScaling, 2.0f, 0.05f); - s16_step_towards(&temp_s0->unk_0A4, 0, 0x0018); + s16_step_towards(&temp_s0->type, 0, 0x0018); if ((temp_s0->unk_0AE >= 2) && (func_80073B00(objectIndex, &temp_s0->unk_0A0, 0x000000FF, 0x00000050, 0x00000020, 0, 0) != 0)) { func_80072488(objectIndex); } @@ -2145,7 +2145,7 @@ void func_800769D8(s32 objectIndex) { void func_80076AEC(s32 objectIndex) { s32 thing; - thing = D_80165C18[objectIndex].unk_0AE; + thing = gObjectList[objectIndex].unk_0AE; if(thing) {} if (thing != 0) { if (thing == 1) { @@ -2153,10 +2153,10 @@ void func_80076AEC(s32 objectIndex) { func_80086FD4(objectIndex); } } else { - thing = D_80165C18[objectIndex].unk_0AE; + thing = gObjectList[objectIndex].unk_0AE; } } - if (D_80165C18[objectIndex].unk_0AE > 0) { + if (gObjectList[objectIndex].unk_0AE > 0) { func_800877C4(objectIndex); func_8008BF18(objectIndex); } @@ -2169,15 +2169,15 @@ void func_80076B7C(void) { void func_80076B84(void) { s32 someIndex; s32 objectIndex; - struct_80165C18_entry *object; + Objects *object; func_8007661C(); func_8007614C(); for (someIndex = 0; someIndex < D_8018C1B0_SIZE; someIndex++) { objectIndex = D_8018C1B0[someIndex]; - if (objectIndex != -1) { - object = &D_80165C18[objectIndex]; - if (object->unk_0A6 != 0) { + if (objectIndex != DELETED_OBJECT_ID) { + object = &gObjectList[objectIndex]; + if (object->state != 0) { if ((object->unk_0D5 == 4) || (object->unk_0D5 == 5)) { func_800763CC(objectIndex); func_80076538(objectIndex); @@ -2185,8 +2185,8 @@ void func_80076B84(void) { func_800769D8(objectIndex); func_80076AEC(objectIndex); } - if (object->unk_0A6 == 0) { - func_80072100(&D_8018C1B0[someIndex]); + if (object->state == 0) { + delete_object_wrapper(&D_8018C1B0[someIndex]); } } } @@ -2194,16 +2194,16 @@ void func_80076B84(void) { } void func_80076C9C(s32 objectIndex, Vec3f arg1, s16 arg2) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; func_800723A4(objectIndex, (s32) arg2); - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_0D5 = 0x0A; temp_v0->activeTexture = D_0D02BC58; temp_v0->textureList = D_0D02BC58; temp_v0->sizeScaling = 0.3f; func_8008B7D4(objectIndex, arg1[0], arg1[1], arg1[2]); - temp_v0->unk_0A4 = 0x00FF; + temp_v0->type = 0x00FF; temp_v0->unk_034 = 0.0f; func_8008B8BC(objectIndex, 0U, 0U, 0U); func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); @@ -2220,18 +2220,18 @@ void func_80076D70(Vec3f arg0, UNUSED f32 arg1, s16 arg2) { void func_80076DC4(s32 objectIndex) { func_80072488(objectIndex); - if (D_80165C18[objectIndex].unk_0D5 != 0x0B) { + if (gObjectList[objectIndex].unk_0D5 != 0x0B) { func_80086E70(objectIndex); } } void func_80076E14(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 1: func_80076DC4(objectIndex); break; case 2: - if ((D_80165C18[objectIndex].unk_0AE >= 2) && (func_80073B00(objectIndex, &D_80165C18[objectIndex].unk_0A0, 0x000000FF, 0x00000050, 0x00000020, 0, 0) != 0)) { + if ((gObjectList[objectIndex].unk_0AE >= 2) && (func_80073B00(objectIndex, &gObjectList[objectIndex].unk_0A0, 0x000000FF, 0x00000050, 0x00000020, 0, 0) != 0)) { func_80072488(objectIndex); } break; @@ -2245,7 +2245,7 @@ void func_80076E14(s32 objectIndex) { } void func_80076ED8(s32 objectIndex) { - if ((D_80165C18[objectIndex].unk_0AE != 0) && (D_80165C18[objectIndex].unk_0AE == 1)) { + if ((gObjectList[objectIndex].unk_0AE != 0) && (gObjectList[objectIndex].unk_0AE == 1)) { func_80086FD4(objectIndex); } func_8008BF18(objectIndex); @@ -2254,17 +2254,17 @@ void func_80076ED8(s32 objectIndex) { void func_80076F2C(void) { s32 someIndex; s32 flameIndex; - struct_80165C18_entry *object; + Objects *object; for (someIndex = 0; someIndex < D_8018C870_SIZE; someIndex++) { flameIndex = D_8018C870[someIndex]; - if (flameIndex != -1) { - object = &D_80165C18[flameIndex]; - if (object->unk_0A6 != 0) { + if (flameIndex != DELETED_OBJECT_ID) { + object = &gObjectList[flameIndex]; + if (object->state != 0) { func_80076E14(flameIndex); func_80076ED8(flameIndex); - if (object->unk_0A6 == 0) { - func_80072100(&D_8018C870[someIndex]); + if (object->state == 0) { + delete_object_wrapper(&D_8018C870[someIndex]); } } } @@ -2275,20 +2275,20 @@ extern s16 D_800E6788[1]; // todo: fix this extern void func_80076FEC(s32 objectIndex, s32 flameIndex) { func_800723A4(objectIndex, 3); - D_80165C18[objectIndex].unk_0D5 = 0xB; - D_80165C18[objectIndex].activeTexture = D_0D02BC58; - D_80165C18[objectIndex].textureList = D_0D02BC58; - D_80165C18[objectIndex].sizeScaling = 0.8f; + gObjectList[objectIndex].unk_0D5 = 0xB; + gObjectList[objectIndex].activeTexture = D_0D02BC58; + gObjectList[objectIndex].textureList = D_0D02BC58; + gObjectList[objectIndex].sizeScaling = 0.8f; // Mixing arr + offset and array access... Why? // todo: ifdef this to proper array access. - D_80165C18[objectIndex].unk_010[0] = (f32)(intptr_t)(*(&D_800E6788 + flameIndex * 3)[0]) * D_8018D01C; - D_80165C18[objectIndex].unk_010[1] = (f32)(intptr_t)(*(&D_800E6788 + flameIndex * 3)[1]); - D_80165C18[objectIndex].unk_010[2] = (f32)(intptr_t)(*(&D_800E6788 + flameIndex * 3)[2]); - D_80165C18[objectIndex].unk_034 = 0; - D_80165C18[objectIndex].unk_0A4 = 255; - D_80165C18[objectIndex].unk_0A2 = 255; - D_80165C18[objectIndex].unk_0A0 = 255; + gObjectList[objectIndex].unk_010[0] = (f32)(intptr_t)(*(&D_800E6788 + flameIndex * 3)[0]) * D_8018D01C; + gObjectList[objectIndex].unk_010[1] = (f32)(intptr_t)(*(&D_800E6788 + flameIndex * 3)[1]); + gObjectList[objectIndex].unk_010[2] = (f32)(intptr_t)(*(&D_800E6788 + flameIndex * 3)[2]); + gObjectList[objectIndex].unk_034 = 0; + gObjectList[objectIndex].type = 255; + gObjectList[objectIndex].unk_0A2 = 255; + gObjectList[objectIndex].unk_0A0 = 255; func_8008B8BC(objectIndex, 0, 0, 0); func_8008B80C(objectIndex, 0, 0, 0); } @@ -2307,47 +2307,47 @@ void func_80077138(s32 objectIndex, Vec3f arg1, s32 arg2) { Vec3s sp30; func_800723A4(objectIndex, arg2); - D_80165C18[objectIndex].unk_0D5 = 0x0C; - D_80165C18[objectIndex].sizeScaling = 0.05f; + gObjectList[objectIndex].unk_0D5 = 0x0C; + gObjectList[objectIndex].sizeScaling = 0.05f; func_8008B7D4(objectIndex, arg1[0], arg1[1], arg1[2]); func_8008B8BC(objectIndex, 0U, 0U, 0U); func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); switch (arg2) { case 0: - D_80165C18[objectIndex].unk_038[1] = -1.0f; - D_80165C18[objectIndex].unk_034 = (f32) ((random_int(0x004BU) * 0.01) + 0.25); - D_80165C18[objectIndex].unk_0BE[1] = random_int(0x0040U) << 0xA; + gObjectList[objectIndex].unk_038[1] = -1.0f; + gObjectList[objectIndex].unk_034 = (f32) ((random_int(0x004BU) * 0.01) + 0.25); + gObjectList[objectIndex].unk_0BE[1] = random_int(0x0040U) << 0xA; func_8008751C(objectIndex); - D_80165C18[objectIndex].unk_084[5] = 0x001E; + gObjectList[objectIndex].unk_084[5] = 0x001E; break; case 1: - D_80165C18[objectIndex].unk_038[1] = 1.5f; - D_80165C18[objectIndex].unk_034 = (f32) ((random_int(0x0064U) * 0.01) + 0.5); - D_80165C18[objectIndex].unk_0BE[1] = random_int(0x0040U) << 0xA; + gObjectList[objectIndex].unk_038[1] = 1.5f; + gObjectList[objectIndex].unk_034 = (f32) ((random_int(0x0064U) * 0.01) + 0.5); + gObjectList[objectIndex].unk_0BE[1] = random_int(0x0040U) << 0xA; func_8008751C(objectIndex); - D_80165C18[objectIndex].unk_084[5] = 0x0032; + gObjectList[objectIndex].unk_084[5] = 0x0032; break; } temp_v0_3 = random_int(0x000CU); if (temp_v0_3 < 9) { func_8005C674(temp_v0_3, &sp30[2], &sp30[1], sp30); - D_80165C18[objectIndex].unk_048 = 0; - D_80165C18[objectIndex].unk_084[0] = sp30[2]; - D_80165C18[objectIndex].unk_084[1] = sp30[1]; - D_80165C18[objectIndex].unk_084[2] = sp30[0]; + gObjectList[objectIndex].unk_048 = 0; + gObjectList[objectIndex].unk_084[0] = sp30[2]; + gObjectList[objectIndex].unk_084[1] = sp30[1]; + gObjectList[objectIndex].unk_084[2] = sp30[0]; } else { temp_v0_3 = random_int(3U); func_8005C6B4(temp_v0_3, &sp30[2], &sp30[1], sp30); - D_80165C18[objectIndex].unk_084[0] = sp30[2]; - D_80165C18[objectIndex].unk_084[1] = sp30[1]; - D_80165C18[objectIndex].unk_084[2] = sp30[0]; - D_80165C18[objectIndex].unk_084[4] = temp_v0_3; - D_80165C18[objectIndex].unk_048 = 1; + gObjectList[objectIndex].unk_084[0] = sp30[2]; + gObjectList[objectIndex].unk_084[1] = sp30[1]; + gObjectList[objectIndex].unk_084[2] = sp30[0]; + gObjectList[objectIndex].unk_084[4] = temp_v0_3; + gObjectList[objectIndex].unk_048 = 1; } - D_80165C18[objectIndex].unk_0A0 = 0x00FF; - D_80165C18[objectIndex].unk_084[3] = random_int(0x0800U) + 0x400; - if ((D_80165C18[objectIndex].unk_0BE[1] < 0x3000) || (D_80165C18[objectIndex].unk_0BE[1] >= 0xB001)) { - D_80165C18[objectIndex].unk_084[3] = -D_80165C18[objectIndex].unk_084[3]; + gObjectList[objectIndex].unk_0A0 = 0x00FF; + gObjectList[objectIndex].unk_084[3] = random_int(0x0800U) + 0x400; + if ((gObjectList[objectIndex].unk_0BE[1] < 0x3000) || (gObjectList[objectIndex].unk_0BE[1] >= 0xB001)) { + gObjectList[objectIndex].unk_084[3] = -gObjectList[objectIndex].unk_084[3]; } } @@ -2369,33 +2369,33 @@ void func_80077450(s32 objectIndex) { s16 sp3A; s16 sp38; - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 0: break; case 1: func_80077428(objectIndex); break; case 2: - f32_step_up_towards(&D_80165C18[objectIndex].sizeScaling, 0.1f, 0.01f); - if ((D_80165C18[objectIndex].pos[1] <= D_80165C18[objectIndex].unk_084[5]) && (func_80073B00(objectIndex, &D_80165C18[objectIndex].unk_0A0, 0x000000FF, 0, 0x00000010, 0, 0) != 0)) { + f32_step_up_towards(&gObjectList[objectIndex].sizeScaling, 0.1f, 0.01f); + if ((gObjectList[objectIndex].pos[1] <= gObjectList[objectIndex].unk_084[5]) && (func_80073B00(objectIndex, &gObjectList[objectIndex].unk_0A0, 0x000000FF, 0, 0x00000010, 0, 0) != 0)) { func_80086F60(objectIndex); func_80072428(objectIndex); } break; } - if (D_80165C18[objectIndex].unk_048 != 0) { - D_80165C18[objectIndex].unk_084[4] = (s16) ((s32) (D_80165C18[objectIndex].unk_084[4] + 1) % 3); - func_8005C6B4(D_80165C18[objectIndex].unk_084[4], &sp3C, &sp3A, &sp38); - D_80165C18[objectIndex].unk_084[0] = sp3C; - D_80165C18[objectIndex].unk_084[1] = sp3A; - D_80165C18[objectIndex].unk_084[2] = sp38; + if (gObjectList[objectIndex].unk_048 != 0) { + gObjectList[objectIndex].unk_084[4] = (s16) ((s32) (gObjectList[objectIndex].unk_084[4] + 1) % 3); + func_8005C6B4(gObjectList[objectIndex].unk_084[4], &sp3C, &sp3A, &sp38); + gObjectList[objectIndex].unk_084[0] = sp3C; + gObjectList[objectIndex].unk_084[1] = sp3A; + gObjectList[objectIndex].unk_084[2] = sp38; } } void func_80077584(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; if ((temp_v0->unk_0AE != 0) && (temp_v0->unk_0AE == 1) && ((u8) temp_v0->unk_0D8 != 0)) { if (temp_v0->unk_038[1] >= -0.5) { temp_v0->unk_038[1] -= 0.15; @@ -2412,17 +2412,17 @@ void func_80077584(s32 objectIndex) { void func_80077640(void) { s32 someIndex; s32 objectIndex; - struct_80165C18_entry *object; + Objects *object; for(someIndex = 0; someIndex < D_8018C630_SIZE; someIndex++) { objectIndex = D_8018C630[someIndex]; - if (objectIndex != -1) { - object = &D_80165C18[objectIndex]; - if (object->unk_0A6 != 0) { + if (objectIndex != DELETED_OBJECT_ID) { + object = &gObjectList[objectIndex]; + if (object->state != 0) { func_80077450(objectIndex); func_80077584(objectIndex); - if (object->unk_0A6 == 0) { - func_80072100(&D_8018C630[someIndex]); + if (object->state == 0) { + delete_object_wrapper(&D_8018C630[someIndex]); } } } @@ -2437,31 +2437,31 @@ void func_80077700(s32 objectIndex, Vec3f arg1, s32 arg2) { u16 sp3C; func_800723A4(objectIndex, 0); - D_80165C18[objectIndex].unk_0D5 = 7; - D_80165C18[objectIndex].activeTLUT = (u32 *) D_0D028DD8; - D_80165C18[objectIndex].tlutList = (u32 *) D_0D028DD8; - D_80165C18[objectIndex].sizeScaling = 0.1f; - D_80165C18[objectIndex].unk_044 = arg1[1]; + gObjectList[objectIndex].unk_0D5 = 7; + gObjectList[objectIndex].activeTLUT = (u32 *) D_0D028DD8; + gObjectList[objectIndex].tlutList = (u32 *) D_0D028DD8; + gObjectList[objectIndex].sizeScaling = 0.1f; + gObjectList[objectIndex].unk_044 = arg1[1]; switch (gCurrentCourseId) { case COURSE_MARIO_RACEWAY: func_8008BD14(objectIndex, arg1[0], arg1[1] + 25.0, arg1[2], 0x00000014, 0x0000001E, 0x00000014); - D_80165C18[objectIndex].unk_034 = 1.5f; - D_80165C18[objectIndex].unk_038[1] = 1.5f; + gObjectList[objectIndex].unk_034 = 1.5f; + gObjectList[objectIndex].unk_038[1] = 1.5f; break; case COURSE_YOSHI_VALLEY: func_8008BD14(objectIndex, arg1[0], arg1[1] + 25.0, arg1[2], 0x00000014, 0x0000001E, 0x00000014); - D_80165C18[objectIndex].unk_034 = 2.0f; - D_80165C18[objectIndex].unk_038[1] = 2.0f; + gObjectList[objectIndex].unk_034 = 2.0f; + gObjectList[objectIndex].unk_038[1] = 2.0f; break; case COURSE_ROYAL_RACEWAY: func_8008BD14(objectIndex, arg1[0], arg1[1] + 30.0, arg1[2], 0x00000010, 0x00000028, 0x00000010); - D_80165C18[objectIndex].unk_034 = 2.0f; - D_80165C18[objectIndex].unk_038[1] = 2.0f; + gObjectList[objectIndex].unk_034 = 2.0f; + gObjectList[objectIndex].unk_038[1] = 2.0f; break; case COURSE_LUIGI_RACEWAY: func_8008BD14(objectIndex, arg1[0], arg1[1] + 25.0, arg1[2], 0x00000014, 0x0000001E, 0x00000014); - D_80165C18[objectIndex].unk_034 = 1.5f; - D_80165C18[objectIndex].unk_038[1] = 1.0f; + gObjectList[objectIndex].unk_034 = 1.5f; + gObjectList[objectIndex].unk_038[1] = 1.0f; break; } temp_s0 = random_int(0x0010U) << 0xC; @@ -2495,10 +2495,10 @@ void func_80077B14(s32 arg0) { } void func_80077B3C(s32 objectIndex) { - struct_80165C18_entry *temp_v1; - temp_v1 = &D_80165C18[objectIndex]; + Objects *temp_v1; + temp_v1 = &gObjectList[objectIndex]; - switch (temp_v1->unk_0A6) { + switch (temp_v1->state) { case 0: break; case 1: @@ -2516,35 +2516,35 @@ void func_80077B3C(s32 objectIndex) { } void func_80077BCC(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 1: - func_80087E08(objectIndex, D_80165C18[objectIndex].unk_038[1], 0.2f, D_80165C18[objectIndex].unk_034, (s16) (s32) D_80165C18[objectIndex].unk_0BE[1], 0x0000000A); + func_80087E08(objectIndex, gObjectList[objectIndex].unk_038[1], 0.2f, gObjectList[objectIndex].unk_034, (s16) (s32) gObjectList[objectIndex].unk_0BE[1], 0x0000000A); break; case 2: - if (func_80087B84(objectIndex, 0.4f, D_80165C18[objectIndex].unk_044) != 0) { + if (func_80087B84(objectIndex, 0.4f, gObjectList[objectIndex].unk_044) != 0) { func_80086F60(objectIndex); } break; } func_8008BF18(objectIndex); - D_80165C18[objectIndex].unk_0B2[0] += 0x1000; - D_80165C18[objectIndex].unk_0B2[1] += 0x1000; + gObjectList[objectIndex].unk_0B2[0] += 0x1000; + gObjectList[objectIndex].unk_0B2[1] += 0x1000; } void func_80077C9C(void) { s32 someIndex; s32 leafIndex; - struct_80165C18_entry *object; + Objects *object; for(someIndex = 0; someIndex < D_8018C970_SIZE; someIndex++) { leafIndex = D_8018C970[someIndex]; - if (leafIndex != -1) { - object = &D_80165C18[leafIndex]; - if (object->unk_0A6 != 0) { + if (leafIndex != DELETED_OBJECT_ID) { + object = &gObjectList[leafIndex]; + if (object->state != 0) { func_80077B3C(leafIndex); func_80077BCC(leafIndex); - if (object->unk_0A6 == 0) { - func_80072100(&D_8018C970[someIndex]); + if (object->state == 0) { + delete_object_wrapper(&D_8018C970[someIndex]); } } } @@ -2571,7 +2571,7 @@ loop_3: D_8018D17C = 0; } temp_a0 = *((arg0 * 4) + &D_8018CC80 + (D_8018D17C * 4)); - if (D_80165C18[temp_a0].unk_0A6 == 0) { + if (gObjectList[temp_a0].state == 0) { func_800723A4(temp_a0, 1); return; } @@ -2587,21 +2587,21 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80077D5C.s") #endif void func_80077E20(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->activeTexture = D_0D0293D8; temp_v0->textureList = D_0D0293D8; - // There's something up with the handling of D_0D005770 and the loading of 0x10 right here - temp_v0->unk_074 = D_0D005770; + // There's something up with the handling of common_vtx_rectangle and the loading of 0x10 right here + temp_v0->vertex = common_vtx_rectangle; temp_v0->textureHeight = 0x10; temp_v0->textureWidth = temp_v0->textureHeight; temp_v0->sizeScaling = 0.15f; - func_800721C0(objectIndex, 0x00000010); + set_object_flag_unk_054_true(objectIndex, 0x00000010); func_80086EF0(objectIndex); temp_v0->unk_0A0 = 0x00FF; temp_v0->unk_0D5 = 0; - temp_v0->unk_0A4 = 0; + temp_v0->type = 0; func_80072488(objectIndex); } @@ -2615,34 +2615,34 @@ void func_80077EB8(s32 objectIndex, u16 arg1, Camera *camera) { temp_v0 = camera->rot[1] - arg1; if ((temp_v0 >= D_8018D210) || (D_8018D208 >= temp_v0)) { - D_80165C18[objectIndex].unk_028[0] = D_8018D218 + (D_8018D1E8 * (f32) temp_v0); - func_800721C0(objectIndex, 0x00000010); + gObjectList[objectIndex].unk_028[0] = D_8018D218 + (D_8018D1E8 * (f32) temp_v0); + set_object_flag_unk_054_true(objectIndex, 0x00000010); return; } - func_800721E8(objectIndex, 0x00000010); + set_object_flag_unk_054_false(objectIndex, 0x00000010); } void func_80077F64(s32 objectIndex, Camera *camera) { f64 rand; - switch (D_80165C18[objectIndex].unk_0AE) { /* irregular */ + switch (gObjectList[objectIndex].unk_0AE) { /* irregular */ case 1: - D_80165C18[objectIndex].unk_0BE[1] = (camera->rot[1] + random_int(0x4000U)) - 0x2000; + gObjectList[objectIndex].unk_0BE[1] = (camera->rot[1] + random_int(0x4000U)) - 0x2000; func_8008BAB4(objectIndex, 0x00B4, 0x0014U); rand = random_int(0x0064U); - D_80165C18[objectIndex].unk_038[1] = (f32) (-0.75 - (f64) (f32) (rand * 0.01)); - D_80165C18[objectIndex].unk_028[0] = 0.0f; - D_80165C18[objectIndex].unk_028[1] = 0.0f; + gObjectList[objectIndex].unk_038[1] = (f32) (-0.75 - (f64) (f32) (rand * 0.01)); + gObjectList[objectIndex].unk_028[0] = 0.0f; + gObjectList[objectIndex].unk_028[1] = 0.0f; func_80086FD4(objectIndex); return; case 2: - func_80077EB8(objectIndex, D_80165C18[objectIndex].unk_0BE[1], camera); + func_80077EB8(objectIndex, gObjectList[objectIndex].unk_0BE[1], camera); func_800877C4(objectIndex); func_8008BF18(objectIndex); func_8008BFC0(objectIndex); - if (D_80165C18[objectIndex].pos[1] <= 0.0f) { + if (gObjectList[objectIndex].pos[1] <= 0.0f) { func_80086FD4(objectIndex); return; } @@ -2655,13 +2655,13 @@ void func_80077F64(s32 objectIndex, Camera *camera) { } void func_800780CC(s32 objectIndex, Camera *camera) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 1: func_80077E20(objectIndex); return; case 2: func_80077F64(objectIndex, camera); - if (D_80165C18[objectIndex].unk_0AE == 0) { + if (gObjectList[objectIndex].unk_0AE == 0) { func_80072488(objectIndex); return; } @@ -2680,19 +2680,19 @@ void func_80078170(s32 arg0, Camera *arg1) { func_80077D5C(arg0); for (i = 0; i < D_8018D1F0; i++) { objectIndex = D_8018CC80[arg0 + i]; - if (D_80165C18[objectIndex].unk_0A6 != 0) { + if (gObjectList[objectIndex].state != 0) { func_800780CC(objectIndex, arg1); } } } void func_80078220(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->activeTexture = D_0D0293D8; temp_v0->textureList = D_0D0293D8; - temp_v0->unk_074 = D_0D005770; + temp_v0->vertex = common_vtx_rectangle; temp_v0->sizeScaling = 0.15f; func_80086EF0(objectIndex); func_80072488(objectIndex); @@ -2705,7 +2705,7 @@ void func_80078288(s32 objectIndex) { UNUSED u16 pad; u16 temp_t6; - switch (D_80165C18[objectIndex].unk_0AE) { /* irregular */ + switch (gObjectList[objectIndex].unk_0AE) { /* irregular */ case 0: break; case 1: @@ -2714,38 +2714,38 @@ void func_80078288(s32 objectIndex) { sp3E = (random_int(0x000FU) - sp3A) + 0x2D; sp3C = random_int(0x012CU) + 0x1E; temp_t6 = camera1->rot[1] + ((s32) (random_int(0x3000U) - 0x1800) / (s16) ((sp3A / 15) + 1)); - D_80165C18[objectIndex].unk_010[0] = gPlayerOneCopy->pos[0] + (sins(temp_t6) * sp3C); - D_80165C18[objectIndex].unk_010[1] = sp3E + gPlayerOneCopy->unk_074; - D_80165C18[objectIndex].unk_010[2] = gPlayerOneCopy->pos[2] + (coss(temp_t6) * sp3C); - D_80165C18[objectIndex].unk_0C4 = random_int(0x0400U) + 0x100; - D_80165C18[objectIndex].unk_01C[0] = (f32) (((f32) random_int(0x0064U) * 0.03) + 2.0); - D_80165C18[objectIndex].unk_038[1] = (f32) (-0.3 - (f64) (f32) (random_int(0x0032U) * 0.01)); - D_80165C18[objectIndex].unk_028[0] = 0.0f; - D_80165C18[objectIndex].unk_028[1] = 0.0f; + gObjectList[objectIndex].unk_010[0] = gPlayerOneCopy->pos[0] + (sins(temp_t6) * sp3C); + gObjectList[objectIndex].unk_010[1] = sp3E + gPlayerOneCopy->unk_074; + gObjectList[objectIndex].unk_010[2] = gPlayerOneCopy->pos[2] + (coss(temp_t6) * sp3C); + gObjectList[objectIndex].unk_0C4 = random_int(0x0400U) + 0x100; + gObjectList[objectIndex].unk_01C[0] = (f32) (((f32) random_int(0x0064U) * 0.03) + 2.0); + gObjectList[objectIndex].unk_038[1] = (f32) (-0.3 - (f64) (f32) (random_int(0x0032U) * 0.01)); + gObjectList[objectIndex].unk_028[0] = 0.0f; + gObjectList[objectIndex].unk_028[1] = 0.0f; func_80086FD4(objectIndex); } else { sp3C = random_int(0x0064U) + 0x28; temp_t6 = camera1->rot[1] + random_int(0x3000U) - 0x1800; - D_80165C18[objectIndex].unk_010[0] = camera1->pos[0] + (sins(temp_t6) * sp3C); - D_80165C18[objectIndex].unk_010[1] = camera1->pos[1] + 45.0; - D_80165C18[objectIndex].unk_010[2] = camera1->pos[2] + (coss(temp_t6) * sp3C); - D_80165C18[objectIndex].unk_0C4 = random_int(0x0400U) + 0x100; - D_80165C18[objectIndex].unk_01C[0] = (f32) (((f32) random_int(0x0064U) * 0.03) + 2.0); - D_80165C18[objectIndex].unk_038[1] = (f32) (-0.6 - (f64) (f32) (random_int(0x0032U) * 0.01)); - D_80165C18[objectIndex].unk_028[0] = 0.0f; - D_80165C18[objectIndex].unk_028[1] = 0.0f; + gObjectList[objectIndex].unk_010[0] = camera1->pos[0] + (sins(temp_t6) * sp3C); + gObjectList[objectIndex].unk_010[1] = camera1->pos[1] + 45.0; + gObjectList[objectIndex].unk_010[2] = camera1->pos[2] + (coss(temp_t6) * sp3C); + gObjectList[objectIndex].unk_0C4 = random_int(0x0400U) + 0x100; + gObjectList[objectIndex].unk_01C[0] = (f32) (((f32) random_int(0x0064U) * 0.03) + 2.0); + gObjectList[objectIndex].unk_038[1] = (f32) (-0.6 - (f64) (f32) (random_int(0x0032U) * 0.01)); + gObjectList[objectIndex].unk_028[0] = 0.0f; + gObjectList[objectIndex].unk_028[1] = 0.0f; func_80086FD4(objectIndex); } break; case 2: func_800877C4(objectIndex); - D_80165C18[objectIndex].unk_0BE[0] += D_80165C18[objectIndex].unk_0C4; - D_80165C18[objectIndex].unk_028[0] = sins(D_80165C18[objectIndex].unk_0BE[0]) * D_80165C18[objectIndex].unk_01C[0]; + gObjectList[objectIndex].unk_0BE[0] += gObjectList[objectIndex].unk_0C4; + gObjectList[objectIndex].unk_028[0] = sins(gObjectList[objectIndex].unk_0BE[0]) * gObjectList[objectIndex].unk_01C[0]; func_8008BF18(objectIndex); - if ((f64) D_80165C18[objectIndex].pos[1] <= 0.0) { + if ((f64) gObjectList[objectIndex].pos[1] <= 0.0) { func_80086FD4(objectIndex); } - D_80165C18[objectIndex].unk_0B2[1] = func_800872D8(objectIndex, camera1); + gObjectList[objectIndex].unk_0B2[1] = angle_between_object_camera(objectIndex, camera1); break; case 3: func_80086F60(objectIndex); @@ -2754,7 +2754,7 @@ void func_80078288(s32 objectIndex) { } void func_800786EC(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 0: break; case 1: @@ -2762,7 +2762,7 @@ void func_800786EC(s32 objectIndex) { break; case 2: func_80078288(objectIndex); - if (D_80165C18[objectIndex].unk_0AE == 0) { + if (gObjectList[objectIndex].unk_0AE == 0) { func_80072488(objectIndex); } break; @@ -2780,7 +2780,7 @@ void func_80078790(void) { if (D_8018D174 >= NUM_SNOWFLAKES) { D_8018D174 = 0; } - if (D_80165C18[D_8018C1B0[D_8018D174]].unk_0A6 == 0) { + if (gObjectList[D_8018C1B0[D_8018D174]].state == 0) { func_800723A4(D_8018C1B0[D_8018D174], 1); break; } @@ -2801,7 +2801,7 @@ void func_80078838(void) { } for (someIndex = 0; someIndex < NUM_SNOWFLAKES; someIndex++) { snowflakeIndex = D_8018C1B0[someIndex]; - if (D_80165C18[snowflakeIndex].unk_0A6 != 0) { + if (gObjectList[snowflakeIndex].state != 0) { func_800786EC(snowflakeIndex); } } @@ -2817,11 +2817,11 @@ void func_800788F8(s32 objectIndex, u16 rot, Camera *camera) { temp_v0 = camera->rot[1] + rot; if ((temp_v0 >= D_8018D210) && (D_8018D208 >= temp_v0)) { - D_80165C18[objectIndex].unk_09C = (D_8018D218 + (D_8018D1E8 * temp_v0)); - func_800721C0(objectIndex, 0x00000010); + gObjectList[objectIndex].unk_09C = (D_8018D218 + (D_8018D1E8 * temp_v0)); + set_object_flag_unk_054_true(objectIndex, 0x00000010); return; } - func_800721E8(objectIndex, 0x00000010); + set_object_flag_unk_054_false(objectIndex, 0x00000010); } #ifdef MIPS_TO_C @@ -2865,29 +2865,29 @@ typedef struct { typedef u16 testA[44][4]; void func_80078A44(s32 arg0, Camera *camera, u16 rot[][4]) { - s32 temp_s0; + s32 objectIndex; s32 i; for (i = 0; i < D_8018D1F0; i++, arg0++) { - temp_s0 = D_8018CC80[arg0]; + objectIndex = D_8018CC80[arg0]; // rot[i][0] - func_800788F8(temp_s0, *(u16 *)(rot + i), camera); + func_800788F8(objectIndex, *(u16 *)(rot + i), camera); switch (i % 5U) { case 0: - func_80073CB0(temp_s0, &D_80165C18[temp_s0].unk_0A0, 0x00000028, 0x000000B4, 0x000000FF, 0, -1); + func_80073CB0(objectIndex, &gObjectList[objectIndex].unk_0A0, 0x00000028, 0x000000B4, 0x000000FF, 0, -1); break; case 1: - func_80073CB0(temp_s0, &D_80165C18[temp_s0].unk_0A0, 0x00000080, 0x000000FF, 0x000000FF, 0, -1); + func_80073CB0(objectIndex, &gObjectList[objectIndex].unk_0A0, 0x00000080, 0x000000FF, 0x000000FF, 0, -1); break; case 2: - func_80073CB0(temp_s0, &D_80165C18[temp_s0].unk_0A0, 0x00000050, 0x000000C8, 0x000000FF, 0, -1); + func_80073CB0(objectIndex, &gObjectList[objectIndex].unk_0A0, 0x00000050, 0x000000C8, 0x000000FF, 0, -1); break; case 3: - func_80073CB0(temp_s0, &D_80165C18[temp_s0].unk_0A0, 0, 0x0000009B, 0x000000FF, 0, -1); + func_80073CB0(objectIndex, &gObjectList[objectIndex].unk_0A0, 0, 0x0000009B, 0x000000FF, 0, -1); break; case 4: - func_80073CB0(temp_s0, &D_80165C18[temp_s0].unk_0A0, 0x0000005A, 0x00000080, 0x000000FF, 0, -1); + func_80073CB0(objectIndex, &gObjectList[objectIndex].unk_0A0, 0x0000005A, 0x00000080, 0x000000FF, 0, -1); break; } } @@ -2950,40 +2950,40 @@ void func_80078C70(s32 arg0) { D_8018D1E8 = 1.7578125 / D_8018D200; D_8018D218 = 0xA0; switch (gCurrentCourseId) { /* switch 2 */ - case 0: /* switch 2 */ + case COURSE_MARIO_RACEWAY: /* switch 2 */ func_800789AC(sp1C, camera, D_800E6A38); break; - case 4: /* switch 2 */ + case COURSE_YOSHI_VALLEY: /* switch 2 */ func_800789AC(sp1C, camera, D_800E6AA8); break; - case 5: /* switch 2 */ + case COURSE_FRAPPE_SNOWLAND: /* switch 2 */ func_80078170(sp1C, camera); break; - case 6: /* switch 2 */ + case COURSE_KOOPA_BEACH: /* switch 2 */ func_800789AC(sp1C, camera, D_800E6B00); break; - case 7: /* switch 2 */ + case COURSE_ROYAL_RACEWAY: /* switch 2 */ func_800789AC(sp1C, camera, D_800E6B38); break; - case 8: /* switch 2 */ + case COURSE_LUIGI_RACEWAY: /* switch 2 */ func_800789AC(sp1C, camera, D_800E6A38); break; - case 9: /* switch 2 */ + case COURSE_MOO_MOO_FARM: /* switch 2 */ func_800789AC(sp1C, camera, D_800E6AA8); break; - case 10: /* switch 2 */ + case COURSE_TOADS_TURNPIKE: /* switch 2 */ func_80078A44(sp1C, camera, D_800E6C80); break; - case 11: /* switch 2 */ + case COURSE_KALAMARI_DESERT: /* switch 2 */ func_800789AC(sp1C, camera, D_800E6C10); break; - case 12: /* switch 2 */ + case COURSE_SHERBET_LAND: /* switch 2 */ func_800789AC(sp1C, camera, D_800E6BA8); break; - case 13: /* switch 2 */ + case COURSE_RAINBOW_ROAD: /* switch 2 */ func_80078A44(sp1C, camera, D_800E6C80); break; - case 14: /* switch 2 */ + case COURSE_WARIO_STADIUM: /* switch 2 */ func_80078A44(sp1C, camera, D_800E6DE0); break; } @@ -3012,33 +3012,33 @@ void func_80078F64(void) { } } -void func_80079054(s32 arg0) { - func_800723A4(D_80183DB8[arg0], 2); +void func_80079054(s32 playerId) { + func_800723A4(D_80183DB8[playerId], 2); } -void func_80079084(s32 arg0) { - func_800723A4(D_80183DB8[arg0], 4); +void func_80079084(s32 playerId) { + func_800723A4(D_80183DB8[playerId], 4); } -void func_800790B4(s32 arg0) { - func_800723A4(D_80183DB8[arg0], 5); +void func_800790B4(s32 playerId) { + func_800723A4(D_80183DB8[playerId], 5); } -void func_800790E4(s32 arg0) { - func_800723A4(D_80183DB8[arg0], 6); +void func_800790E4(s32 playerId) { + func_800723A4(D_80183DB8[playerId], 6); } void func_80079114(s32 objectIndex, s32 arg1, s32 arg2) { s32 a; - if (D_80165C18[objectIndex].unk_0A6 >= 2) { - if ((u8)D_80165C18[objectIndex].unk_0D8 == 1) { + if (gObjectList[objectIndex].state >= 2) { + if ((u8)gObjectList[objectIndex].unk_0D8 == 1) { if (arg1 == 0) { func_80074894(objectIndex, D_8018C028); return; } a = D_80183DB8[0]; - D_80165C18[objectIndex].activeTLUT = D_80165C18[a].activeTLUT; - D_80165C18[objectIndex].activeTexture = D_80165C18[a].activeTexture; + gObjectList[objectIndex].activeTLUT = gObjectList[a].activeTLUT; + gObjectList[objectIndex].activeTexture = gObjectList[a].activeTexture; if (0) { } return; } @@ -3059,15 +3059,15 @@ void func_80079114(s32 objectIndex, s32 arg1, s32 arg2) { void func_800791F0(s32 objectIndex, s32 playerId) { Player *temp_v1 = &gPlayerOne[playerId]; - if ((D_80165C18[objectIndex].unk_0D8 != 3) && (D_80165C18[objectIndex].unk_0D8 != 7)) { + if ((gObjectList[objectIndex].unk_0D8 != 3) && (gObjectList[objectIndex].unk_0D8 != 7)) { func_800722CC(objectIndex, 1); - if (gCurrentCourseId == 0x000C) { + if (gCurrentCourseId == COURSE_SHERBET_LAND) { temp_v1->unk_0CA &= 0xFFEF; } } else { // ????? } - if (gCurrentCourseId == 0x000C) { + if (gCurrentCourseId == COURSE_SHERBET_LAND) { func_800722CC(objectIndex, 0x00000010); temp_v1->unk_0CA &= 0xFFDF; } @@ -3084,12 +3084,12 @@ void func_800792D8(s32 objectIndex, s32 arg1) { D_801656F0 = 0; D_8018D168 = 0; } - func_80073444(objectIndex, (u8 *) gTLUTLakituCountdown, (u8 *) &D_0F05EB50, 0x38U, (u16) 0x00000048); - D_80165C18[objectIndex].unk_074 = (Vtx *) D_0D005EB0; - D_80165C18[objectIndex].sizeScaling = 0.15f; - func_800721E8(objectIndex, 0x00000010); + init_texture_object(objectIndex, (u8 *) gTLUTLakituCountdown, (u8 *) &D_0F05EB50, 0x38U, (u16) 0x00000048); + gObjectList[objectIndex].vertex = D_0D005EB0; + gObjectList[objectIndex].sizeScaling = 0.15f; + set_object_flag_unk_054_false(objectIndex, 0x00000010); func_80072488(objectIndex); - D_80165C18[objectIndex].unk_048 = D_8018D180; + gObjectList[objectIndex].unk_048 = D_8018D180; } extern s16 D_801656F0; @@ -3099,25 +3099,25 @@ extern u16 D_800E67B8[][4]; // static void func_80079380(s32 objectIndex, s32 arg1) { UNUSED s32 pad; - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 0: break; case 1: func_800792D8(objectIndex, arg1); break; case 2: - func_8007278C(objectIndex, D_80165C18[objectIndex].unk_048); - if ((D_80165C18[objectIndex].unk_050 == 0x00000055) && (D_8018EDF3 == 3) && (arg1 == 0)) { + func_8007278C(objectIndex, gObjectList[objectIndex].unk_048); + if ((gObjectList[objectIndex].unk_050 == 0x00000055) && (gPlayerCount == 3) && (arg1 == 0)) { D_8018D168 = 1; } break; case 3: - func_800721C0(objectIndex, 0x00000010); + set_object_flag_unk_054_true(objectIndex, 0x00000010); func_80086F10(objectIndex, 1, D_800E67B8); func_80072488(objectIndex); break; case 4: - if ((func_8007278C(objectIndex, 0x0000001E) != 0) && (D_8018EDF3 != 3) && (arg1 == 0)) { + if ((func_8007278C(objectIndex, 0x0000001E) != 0) && (gPlayerCount != 3) && (arg1 == 0)) { D_8018D168 = 1; } break; @@ -3129,7 +3129,7 @@ void func_80079380(s32 objectIndex, s32 arg1) { break; case 7: if (func_8007278C(objectIndex, 0x00000014) != 0) { - D_80165C18[objectIndex].tlutList += 0x200; + gObjectList[objectIndex].tlutList += 0x200; if (arg1 == 0) { play_sound2(SOUND_ACTION_COUNTDOWN_LIGHT); } @@ -3150,7 +3150,7 @@ void func_80079380(s32 objectIndex, s32 arg1) { break; case 11: if (func_8007278C(objectIndex, 8) != 0) { - D_80165C18[objectIndex].tlutList += 0x200; + gObjectList[objectIndex].tlutList += 0x200; if (arg1 == 0) { play_sound2(SOUND_ACTION_GREEN_LIGHT); } @@ -3181,31 +3181,31 @@ extern u8 *D_0F07E350; extern u16 D_800E6834[][4]; // static void func_8007963C(s32 objectIndex, s32 playerIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; func_800791F0(objectIndex, playerIndex); - func_80073444(objectIndex, gTLUTLakituCheckeredFlag, (u8 *) &D_0F07E350, 0x48U, (u16) 0x00000038); - temp_v0 = &D_80165C18[objectIndex]; + init_texture_object(objectIndex, gTLUTLakituCheckeredFlag, (u8 *) &D_0F07E350, 0x48U, (u16) 0x00000038); + temp_v0 = &gObjectList[objectIndex]; temp_v0->activeTexture = D_8018C028; - temp_v0->unk_074 = D_0D006730; + temp_v0->vertex = D_0D006730; temp_v0->pos[2] = 5000.0f; temp_v0->pos[1] = 5000.0f; temp_v0->pos[0] = 5000.0f; temp_v0->sizeScaling = 0.15f; func_80086F10(objectIndex, 2, D_800E6834); - func_800721E8(objectIndex, 0x00000010); + set_object_flag_unk_054_false(objectIndex, 0x00000010); func_80072488(objectIndex); } void func_80079700(s32 objectIndex, s32 playerIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 0: break; case 1: func_8007963C(objectIndex, playerIndex); break; case 2: - func_800721C0(objectIndex, 0x00000010); + set_object_flag_unk_054_true(objectIndex, 0x00000010); func_80072488(objectIndex); break; case 3: @@ -3242,7 +3242,7 @@ void func_80079860(s32 playerId) { ( ((func_802ABDF4(player->unk_110.unk3A) != 0) && (player->unk_110.unk3C[2] <= 3.0f)) || (player->unk_0CA & 1) || - ((player->unk_0F8 == 0x00FD) && !(player->unk_0BC & 8)) + ((player->unk_0F8 == 0x00FD) && !(player->effects & 8)) ) ) { func_80090778(player); @@ -3253,7 +3253,7 @@ void func_80079860(s32 playerId) { void func_8007993C(s32 objectIndex, Player *player) { if (player->unk_0CA & 4) { func_800722A4(objectIndex, 2); - D_80165C18[objectIndex].unk_0A0 = player->unk_0C6; + gObjectList[objectIndex].unk_0A0 = player->unk_0C6; return; } func_800722CC(objectIndex, 2); @@ -3263,36 +3263,36 @@ extern u8 D_0F0CCF50; void func_800799A8(s32 objectIndex, s32 arg1) { func_800791F0(objectIndex, arg1); - func_80073444(objectIndex, gTLUTLakituFishing, &D_0F0CCF50, 0x38U, (u16) 0x00000048); - D_80165C18[objectIndex].unk_074 = D_0D005F30; - D_80165C18[objectIndex].sizeScaling = 0.15f; + init_texture_object(objectIndex, gTLUTLakituFishing, &D_0F0CCF50, 0x38U, (u16) 0x00000048); + gObjectList[objectIndex].vertex = D_0D005F30; + gObjectList[objectIndex].sizeScaling = 0.15f; func_80086E70(objectIndex); - func_800721E8(objectIndex, 0x00000010); + set_object_flag_unk_054_false(objectIndex, 0x00000010); func_80073720(objectIndex); func_80072488(objectIndex); func_800C8F80((u8)arg1, 0x0100FA28); } void func_80079A5C(s32 objectIndex, UNUSED Player *player) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 0: break; case 1: - D_80165C18[objectIndex].unk_010[2] = 0.0f; - D_80165C18[objectIndex].unk_010[1] = 0.0f; - D_80165C18[objectIndex].unk_010[0] = 0.0f; - D_80165C18[objectIndex].unk_028[2] = 0.0f; - D_80165C18[objectIndex].unk_028[0] = 0.0f; - D_80165C18[objectIndex].unk_028[1] = 80.0f; + gObjectList[objectIndex].unk_010[2] = 0.0f; + gObjectList[objectIndex].unk_010[1] = 0.0f; + gObjectList[objectIndex].unk_010[0] = 0.0f; + gObjectList[objectIndex].unk_028[2] = 0.0f; + gObjectList[objectIndex].unk_028[0] = 0.0f; + gObjectList[objectIndex].unk_028[1] = 80.0f; func_80086FD4(objectIndex); break; case 2: - if (f32_step_down_towards(&D_80165C18[objectIndex].unk_028[1], 5.0f, 1.0f) != 0) { + if (f32_step_down_towards(&gObjectList[objectIndex].unk_028[1], 5.0f, 1.0f) != 0) { func_80086F60(objectIndex); } break; case 3: - if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], 100.0f, 1.0f) != 0) { + if (f32_step_up_towards(&gObjectList[objectIndex].unk_028[1], 100.0f, 1.0f) != 0) { func_80086F60(objectIndex); } break; @@ -3302,14 +3302,14 @@ void func_80079A5C(s32 objectIndex, UNUSED Player *player) { void func_80079B40(s32 objectIndex, s32 playerId) { Player *player = &gPlayerOne[playerId]; - switch (D_80165C18[objectIndex].unk_0A6) { /* switch 1; irregular */ + switch (gObjectList[objectIndex].state) { /* switch 1; irregular */ case 0: /* switch 1 */ break; case 1: /* switch 1 */ func_800799A8(objectIndex, playerId); break; case 2: /* switch 1 */ - func_800721C0(objectIndex, 0x00000010); + set_object_flag_unk_054_true(objectIndex, 0x00000010); func_800736E0(objectIndex); func_80072488(objectIndex); break; @@ -3317,7 +3317,7 @@ void func_80079B40(s32 objectIndex, s32 playerId) { func_800730BC(objectIndex, 0, 3, 1, 2, -1); break; } - switch (D_80165C18[objectIndex].unk_0D6) { + switch (gObjectList[objectIndex].unk_0D6) { case 0: break; case 1: @@ -3347,7 +3347,7 @@ void func_80079B40(s32 objectIndex, s32 playerId) { func_80073720(objectIndex); break; } - if (D_80165C18[objectIndex].unk_0A6 >= 2) { + if (gObjectList[objectIndex].state >= 2) { func_8007993C(objectIndex, player); } func_80079A5C(objectIndex, player); @@ -3358,14 +3358,14 @@ void func_80079D44(s32 objectIndex, s32 playerId) { Player *temp_s1; temp_s1 = &gPlayerOne[playerId]; - switch (D_80165C18[objectIndex].unk_0A6) { /* switch 1; irregular */ + switch (gObjectList[objectIndex].state) { /* switch 1; irregular */ case 0: /* switch 1 */ break; case 1: /* switch 1 */ func_800799A8(objectIndex, playerId); break; case 2: /* switch 1 */ - func_800721C0(objectIndex, 0x00000010); + set_object_flag_unk_054_true(objectIndex, 0x00000010); func_800736E0(objectIndex); temp_s1->unk_0CA |= 0x80; func_80072488(objectIndex); @@ -3374,7 +3374,7 @@ void func_80079D44(s32 objectIndex, s32 playerId) { func_800730BC(objectIndex, 0, 3, 1, 2, -1); break; } - switch (D_80165C18[objectIndex].unk_0D6) { + switch (gObjectList[objectIndex].unk_0D6) { case 1: if (func_80086FA4(objectIndex) != 0) { func_800C9060((u8) playerId, 0x1900A055U); @@ -3426,7 +3426,7 @@ void func_80079D44(s32 objectIndex, s32 playerId) { break; } - if (D_80165C18[objectIndex].unk_0A6 >= 2) { + if (gObjectList[objectIndex].state >= 2) { func_8007993C(objectIndex, temp_s1); } func_80079A5C(objectIndex, temp_s1); @@ -3436,31 +3436,31 @@ extern u8 *D_0F09DB50[]; extern u16 D_800E694C[]; void func_8007A060(s32 objectIndex, s32 playerIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; func_800791F0(objectIndex, playerIndex); - func_80073444(objectIndex, gTLUTLakituSecondLap, (u8 *) D_0F09DB50, 0x48U, (u16) 0x00000038); - temp_v0 = &D_80165C18[objectIndex]; + init_texture_object(objectIndex, gTLUTLakituSecondLap, (u8 *) D_0F09DB50, 0x48U, (u16) 0x00000038); + temp_v0 = &gObjectList[objectIndex]; temp_v0->activeTexture = D_8018C028; - temp_v0->unk_074 = D_0D006730; + temp_v0->vertex = D_0D006730; temp_v0->pos[2] = 5000.0f; temp_v0->pos[1] = 5000.0f; temp_v0->pos[0] = 5000.0f; temp_v0->sizeScaling = 0.15f; - func_800721E8(objectIndex, 0x00000010); + set_object_flag_unk_054_false(objectIndex, 0x00000010); func_80086F10(objectIndex, 5, &D_800E694C); func_80072488(objectIndex); } void func_8007A124(s32 objectIndex, s32 playerIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 0: break; case 1: func_8007A060(objectIndex, playerIndex); break; case 2: - func_800721C0(objectIndex, 0x00000010); + set_object_flag_unk_054_true(objectIndex, 0x00000010); func_80072488(objectIndex); break; case 3: @@ -3476,7 +3476,7 @@ void func_8007A124(s32 objectIndex, s32 playerIndex) { func_80072F88(objectIndex, 0x0000000F, 0, 1, 2, 1); break; case 7: - if (D_80165C18[objectIndex].unk_0AE == 0) { + if (gObjectList[objectIndex].unk_0AE == 0) { func_80072428(objectIndex); } break; @@ -3486,31 +3486,31 @@ void func_8007A124(s32 objectIndex, s32 playerIndex) { extern u8 *D_0F0AD750; void func_8007A228(s32 objectIndex, s32 playerIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; func_800791F0(objectIndex, playerIndex); - func_80073444(objectIndex, gTLUTLakituFinalLap, (u8 *)&D_0F0AD750, 0x48U, (u16) 0x00000038); - temp_v0 = &D_80165C18[objectIndex]; + init_texture_object(objectIndex, gTLUTLakituFinalLap, (u8 *)&D_0F0AD750, 0x48U, (u16) 0x00000038); + temp_v0 = &gObjectList[objectIndex]; temp_v0->activeTexture = D_8018C028; - temp_v0->unk_074 = D_0D006730; + temp_v0->vertex = D_0D006730; temp_v0->pos[2] = 5000.0f; temp_v0->pos[1] = 5000.0f; temp_v0->pos[0] = 5000.0f; temp_v0->sizeScaling = 0.15f; - func_800721E8(objectIndex, 0x00000010); + set_object_flag_unk_054_false(objectIndex, 0x00000010); func_80086F10(objectIndex, 5, &D_800E694C); func_80072488(objectIndex); } void func_8007A2EC(s32 objectIndex, s32 playerIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 0: break; case 1: func_8007A228(objectIndex, playerIndex); break; case 2: - func_800721C0(objectIndex, 0x00000010); + set_object_flag_unk_054_true(objectIndex, 0x00000010); func_80072488(objectIndex); break; case 3: @@ -3526,7 +3526,7 @@ void func_8007A2EC(s32 objectIndex, s32 playerIndex) { func_80072F88(objectIndex, 0x0000000F, 0, 1, 2, 1); break; case 7: - if (D_80165C18[objectIndex].unk_0AE == 0) { + if (gObjectList[objectIndex].unk_0AE == 0) { func_80072428(objectIndex); } break; @@ -3539,16 +3539,16 @@ extern u16 D_800E69B0[][4]; // static? void func_8007A3F0(s32 objectIndex, s32 arg1) { f32 var = 5000.0f; func_800791F0(objectIndex, arg1); - func_80073444(objectIndex, gTLUTLakituReverse, D_0F0BD350, 0x48U, (u16) 0x00000038); - D_80165C18[objectIndex].activeTexture = D_8018C028; - D_80165C18[objectIndex].unk_074 = D_0D006730; - D_80165C18[objectIndex].pos[2] = var; - D_80165C18[objectIndex].pos[1] = var; - D_80165C18[objectIndex].pos[0] = var; - D_80165C18[objectIndex].sizeScaling = 0.15f; - func_800721E8(objectIndex, 0x00000010); + init_texture_object(objectIndex, gTLUTLakituReverse, D_0F0BD350, 0x48U, (u16) 0x00000038); + gObjectList[objectIndex].activeTexture = D_8018C028; + gObjectList[objectIndex].vertex = D_0D006730; + gObjectList[objectIndex].pos[2] = var; + gObjectList[objectIndex].pos[1] = var; + gObjectList[objectIndex].pos[0] = var; + gObjectList[objectIndex].sizeScaling = 0.15f; + set_object_flag_unk_054_false(objectIndex, 0x00000010); func_80086F10(objectIndex, 6, D_800E69B0); - D_80165C18[objectIndex].unk_0D6 = 0; + gObjectList[objectIndex].unk_0D6 = 0; func_80072488(objectIndex); func_800C8F80((u8)arg1, 0x0100FA28); } @@ -3558,15 +3558,15 @@ extern u16 D_800E69F4[][4]; // static? void func_8007A4D4(s32 objectIndex, s32 playerId) { Player *sp2C = &gPlayerOne[playerId]; - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 0: break; case 1: func_8007A3F0(objectIndex, playerId); break; case 2: - func_800721C0(objectIndex, 0x00000010); - D_80165C18[objectIndex].unk_0D6 = 1; + set_object_flag_unk_054_true(objectIndex, 0x00000010); + gObjectList[objectIndex].unk_0D6 = 1; func_80072488(objectIndex); break; case 3: @@ -3576,21 +3576,21 @@ void func_8007A4D4(s32 objectIndex, s32 playerId) { func_80072428(objectIndex); break; } - switch (D_80165C18[objectIndex].unk_0D6) { /* switch 1; irregular */ + switch (gObjectList[objectIndex].unk_0D6) { /* switch 1; irregular */ case 1: /* switch 1 */ - if ((D_80165C18[objectIndex].unk_0A6 >= 3) && (!(sp2C->unk_0BC & 0x400000))) { + if ((gObjectList[objectIndex].state >= 3) && (!(sp2C->effects & 0x400000))) { func_80086F10(objectIndex, 6, D_800E69F4); - D_80165C18[objectIndex].unk_0D6 = 2; - D_80165C18[objectIndex].unk_04C = 0x00000050; + gObjectList[objectIndex].unk_0D6 = 2; + gObjectList[objectIndex].unk_04C = 0x00000050; func_800C9018((u8) playerId, 0x0100FA28); return; } return; case 2: /* switch 1 */ - D_80165C18[objectIndex].unk_04C--; - if (D_80165C18[objectIndex].unk_04C == 0) { + gObjectList[objectIndex].unk_04C--; + if (gObjectList[objectIndex].unk_04C == 0) { func_80072488(objectIndex); - D_80165C18[objectIndex].unk_0D6 = 0; + gObjectList[objectIndex].unk_0D6 = 0; } break; } @@ -3600,18 +3600,18 @@ void func_8007A66C(s32 objectIndex, Player *player, Camera *camera) { u16 temp_t8; temp_t8 = 0x8000 - camera->rot[1]; - D_80165C18[objectIndex].pos[0] = (player->pos[0] + (coss(temp_t8) * (D_80165C18[objectIndex].unk_010[0] + D_80165C18[objectIndex].unk_028[0]))) - (sins(temp_t8) * (D_80165C18[objectIndex].unk_010[2] + D_80165C18[objectIndex].unk_028[2])); - D_80165C18[objectIndex].pos[1] = player->unk_074 + D_80165C18[objectIndex].unk_010[1] + D_80165C18[objectIndex].unk_028[1]; - D_80165C18[objectIndex].pos[2] = (player->pos[2] + (sins(temp_t8) * (D_80165C18[objectIndex].unk_010[0] + D_80165C18[objectIndex].unk_028[0]))) + (coss(temp_t8) * (D_80165C18[objectIndex].unk_010[2] + D_80165C18[objectIndex].unk_028[2])); + gObjectList[objectIndex].pos[0] = (player->pos[0] + (coss(temp_t8) * (gObjectList[objectIndex].unk_010[0] + gObjectList[objectIndex].unk_028[0]))) - (sins(temp_t8) * (gObjectList[objectIndex].unk_010[2] + gObjectList[objectIndex].unk_028[2])); + gObjectList[objectIndex].pos[1] = player->unk_074 + gObjectList[objectIndex].unk_010[1] + gObjectList[objectIndex].unk_028[1]; + gObjectList[objectIndex].pos[2] = (player->pos[2] + (sins(temp_t8) * (gObjectList[objectIndex].unk_010[0] + gObjectList[objectIndex].unk_028[0]))) + (coss(temp_t8) * (gObjectList[objectIndex].unk_010[2] + gObjectList[objectIndex].unk_028[2])); } void func_8007A778(s32 objectIndex, Player *player, Camera *camera) { u16 temp_t8; temp_t8 = 0x8000 - camera->rot[1]; - D_80165C18[objectIndex].pos[0] = (player->pos[0] + (coss(temp_t8) * (D_80165C18[objectIndex].unk_010[0] + D_80165C18[objectIndex].unk_028[0]))) - (sins(temp_t8) * (D_80165C18[objectIndex].unk_010[2] + D_80165C18[objectIndex].unk_028[2])); - D_80165C18[objectIndex].pos[1] = player->pos[1] + D_80165C18[objectIndex].unk_010[1] + D_80165C18[objectIndex].unk_028[1]; - D_80165C18[objectIndex].pos[2] = (player->pos[2] + (sins(temp_t8) * (D_80165C18[objectIndex].unk_010[0] + D_80165C18[objectIndex].unk_028[0]))) + (coss(temp_t8) * (D_80165C18[objectIndex].unk_010[2] + D_80165C18[objectIndex].unk_028[2])); + gObjectList[objectIndex].pos[0] = (player->pos[0] + (coss(temp_t8) * (gObjectList[objectIndex].unk_010[0] + gObjectList[objectIndex].unk_028[0]))) - (sins(temp_t8) * (gObjectList[objectIndex].unk_010[2] + gObjectList[objectIndex].unk_028[2])); + gObjectList[objectIndex].pos[1] = player->pos[1] + gObjectList[objectIndex].unk_010[1] + gObjectList[objectIndex].unk_028[1]; + gObjectList[objectIndex].pos[2] = (player->pos[2] + (sins(temp_t8) * (gObjectList[objectIndex].unk_010[0] + gObjectList[objectIndex].unk_028[0]))) + (coss(temp_t8) * (gObjectList[objectIndex].unk_010[2] + gObjectList[objectIndex].unk_028[2])); } UNUSED void func_8007A884(void) { @@ -3625,7 +3625,7 @@ void func_8007A88C(s32 playerId) { objectIndex = D_80183DB8[playerId]; player = &gPlayerOne[playerId]; - if ((D_80165C18[objectIndex].unk_0A6 == 0) && (player->unk_0BC & 0x400000)) { + if ((gObjectList[objectIndex].state == 0) && (player->effects & 0x400000)) { func_800790E4(playerId); } } @@ -3637,75 +3637,75 @@ void func_8007A910(s32 arg0) { func_80079860(arg0); } -void func_8007A948(s32 arg0) { - s32 temp_s0 = D_80183DB8[arg0]; +void func_8007A948(s32 playerId) { + s32 objectIndex = D_80183DB8[playerId]; - switch (D_80165C18[temp_s0].unk_0D8) { + switch (gObjectList[objectIndex].unk_0D8) { case 0: break; case 1: - func_80079380(temp_s0, arg0); - func_8008BFFC(temp_s0); + func_80079380(objectIndex, playerId); + func_8008BFFC(objectIndex); break; case 2: - func_80079700(temp_s0, arg0); - func_8008BFFC(temp_s0); + func_80079700(objectIndex, playerId); + func_8008BFFC(objectIndex); break; case 3: - func_80079B40(temp_s0, arg0); + func_80079B40(objectIndex, playerId); break; case 4: - func_8007A124(temp_s0, arg0); - func_8008BFFC(temp_s0); + func_8007A124(objectIndex, playerId); + func_8008BFFC(objectIndex); break; case 5: - func_8007A2EC(temp_s0, arg0); - func_8008BFFC(temp_s0); + func_8007A2EC(objectIndex, playerId); + func_8008BFFC(objectIndex); break; case 6: - func_8007A4D4(temp_s0, arg0); - func_8008BFFC(temp_s0); + func_8007A4D4(objectIndex, playerId); + func_8008BFFC(objectIndex); break; case 7: - func_80079D44(temp_s0, arg0); + func_80079D44(objectIndex, playerId); break; } } -void func_8007AA44(s32 arg0) { - s32 temp_s0; +void func_8007AA44(s32 playerId) { + s32 objectIndex; - func_8007A910(arg0); - temp_s0 = D_80183DB8[arg0]; - D_8018C028 = D_80183FA8[arg0]; - switch (D_80165C18[temp_s0].unk_0D8) { + func_8007A910(playerId); + objectIndex = D_80183DB8[playerId]; + D_8018C028 = D_80183FA8[playerId]; + switch (gObjectList[objectIndex].unk_0D8) { case 1: - func_80079114(temp_s0, arg0, 2); - func_8007A66C(temp_s0, D_8018CF1C, D_8018CF14); + func_80079114(objectIndex, playerId, 2); + func_8007A66C(objectIndex, D_8018CF1C, D_8018CF14); break; case 2: - func_80079114(temp_s0, arg0, 0); - func_8007A66C(temp_s0, D_8018CF1C, D_8018CF14); + func_80079114(objectIndex, playerId, 0); + func_8007A66C(objectIndex, D_8018CF1C, D_8018CF14); break; case 3: - func_80079114(temp_s0, arg0, 0); - func_8007A778(temp_s0, D_8018CF1C, D_8018CF14); + func_80079114(objectIndex, playerId, 0); + func_8007A778(objectIndex, D_8018CF1C, D_8018CF14); break; case 4: - func_80079114(temp_s0, arg0, 0); - func_8007A66C(temp_s0, D_8018CF1C, D_8018CF14); + func_80079114(objectIndex, playerId, 0); + func_8007A66C(objectIndex, D_8018CF1C, D_8018CF14); break; case 5: - func_80079114(temp_s0, arg0, 0); - func_8007A66C(temp_s0, D_8018CF1C, D_8018CF14); + func_80079114(objectIndex, playerId, 0); + func_8007A66C(objectIndex, D_8018CF1C, D_8018CF14); break; case 6: - func_80079114(temp_s0, arg0, 0); - func_8007A66C(temp_s0, D_8018CF1C, D_8018CF14); + func_80079114(objectIndex, playerId, 0); + func_8007A66C(objectIndex, D_8018CF1C, D_8018CF14); break; case 7: - func_80079114(temp_s0, arg0, 0); - func_8007A778(temp_s0, D_8018CF1C, D_8018CF14); + func_80079114(objectIndex, playerId, 0); + func_8007A778(objectIndex, D_8018CF1C, D_8018CF14); break; case 0: default: @@ -3713,10 +3713,10 @@ void func_8007AA44(s32 arg0) { } } -void func_8007ABFC(s32 playerId, s32 arg1) { +void func_8007ABFC(s32 playerId, bool arg1) { s32 itemWindow; - if (D_8018CA70[playerId].raceCompleteBool == 0) { + if (D_8018CA70[playerId].raceCompleteBool == FALSE) { itemWindow = gItemWindowObjectByPlayerId[playerId]; if (func_80072354(itemWindow, 4) != 0) { func_800723A4(itemWindow, 0); @@ -3728,32 +3728,32 @@ void func_8007ABFC(s32 playerId, s32 arg1) { } } -void func_8007AC9C(s32 playerId) { +void consume_item(s32 playerId) { UNUSED s32 pad; Player *player; s32 objectIndex; - struct_80165C18_entry *itemWindow; + ItemWindowObjects *itemWindow; player = &gPlayerOne[playerId]; objectIndex = gItemWindowObjectByPlayerId[playerId]; - itemWindow = &D_80165C18[objectIndex]; - if (itemWindow->unk_0A4 == 0x000F) { + itemWindow = &gObjectList[objectIndex]; + if (itemWindow->currentItem == ITEM_SUPER_MUSHROOM) { if (func_80072354(objectIndex, 2) != 0) { func_800722A4(objectIndex, 2); - itemWindow->unk_098 = 0x0258; + itemWindow->goldenMushroomTimer = 0x0258; func_800726CC(objectIndex, 0x00000032); } - if (itemWindow->unk_098 == 0) { + if (itemWindow->goldenMushroomTimer == 0) { func_800722CC(objectIndex, 2); - player->unk_010 = 0; - itemWindow->unk_0A4 = 0; - func_80072388(objectIndex, 0); + player->currentItemCopy = ITEM_NONE; + itemWindow->currentItem = ITEM_NONE; + set_object_unk_0CB(objectIndex, 0); func_800726CC(objectIndex, 9); } } else { - player->unk_010 = 0; - itemWindow->unk_0A4 = 0; - func_80072388(objectIndex, 0); + player->currentItemCopy = ITEM_NONE; + itemWindow->currentItem = ITEM_NONE; + set_object_unk_0CB(objectIndex, 0); } } @@ -3762,7 +3762,7 @@ extern u8 gControllerRandom; extern s32 gRaceFrameCounter; // todo: Cleanup this function to use array access and struct if possible. -u8 gen_random_item(s16 arg0, s16 arg1) +u8 gen_random_item(s16 rank, s16 isCpu) { u16 rand = random_int(100); u8 *curve; @@ -3783,36 +3783,36 @@ u8 gen_random_item(s16 arg0, s16 arg1) curve = segmented_to_virtual((void *) gVersus4PlayerItemCurve); break; } - randomItem = *((arg0 * 100) + curve + sRandomItemIndex); + randomItem = *((rank * 100) + curve + sRandomItemIndex); } else if (gModeSelection == BATTLE) { curve = segmented_to_virtual((void *) gBattleItemCurve); randomItem = curve[sRandomItemIndex]; } else { // GP Mode - if (arg1 == 0) { + if (isCpu == 0) { curve = segmented_to_virtual((void *) gGrandPrixHumanItemCurve); } else { curve = segmented_to_virtual((void *) gGrandPrixCPUItemCurve); } - randomItem = *((arg0 * 100) + curve + sRandomItemIndex); + randomItem = *((rank * 100) + curve + sRandomItemIndex); } return randomItem; } -u8 func_8007AF40(UNUSED s16 arg0, s16 arg1) { - return gen_random_item(arg1, 0); +u8 gen_random_item_human(UNUSED s16 arg0, s16 rank) { + return gen_random_item(rank, FALSE); } -u8 func_8007AF78(UNUSED s32 arg0, s16 arg1) { - return gen_random_item(arg1, 1); +u8 gen_random_item_cpu(UNUSED s32 arg0, s16 rank) { + return gen_random_item(rank, TRUE); } s16 func_8007AFB0(s32 objectIndex, s32 arg1) { UNUSED s32 pad[3]; s16 randomItem; - randomItem = func_8007AF40(gLapCountByPlayerId[arg1], gGPCurrentRaceRankByPlayerId[arg1]); + randomItem = gen_random_item_human(gLapCountByPlayerId[arg1], gGPCurrentRaceRankByPlayerId[arg1]); if (D_8018CA70[arg1].itemOverride != 0) { randomItem = (s16) D_8018CA70[arg1].itemOverride; @@ -3845,21 +3845,21 @@ s32 func_8007B040(s32 objectIndex, s32 playerId) { var_t3 = 0; if (gModeSelection == GRAND_PRIX) { if (random_int(0x0064U) < 0x51) { - var_v1 = func_8007AF40(gLapCountByPlayerId[playerId], gGPCurrentRaceRankByPlayerId[playerId]); + var_v1 = gen_random_item_human(gLapCountByPlayerId[playerId], gGPCurrentRaceRankByPlayerId[playerId]); } else { var_v1 = 0; func_800C9060(playerId, 0x1900A058U); } var_t3 = 1; - D_80165C18[objectIndex].unk_0A2 = var_v1; - D_80165C18[objectIndex].unk_0D2 = var_v1; + gObjectList[objectIndex].unk_0A2 = var_v1; + gObjectList[objectIndex].itemDisplay = var_v1; } else { for (var_v1_2 = 0; var_v1_2 < gPlayerCountSelection1; var_v1_2++) { temp_a0 = gItemWindowObjectByPlayerId[var_v1_2]; if (var_v1_2 != playerId) { - if (D_80165C18[temp_a0].unk_0A4 != 0) { + if (gObjectList[temp_a0].type != 0) { sp50[var_a3] = var_v1_2; - sp40[var_a3] = D_80165C18[temp_a0].unk_0A4; + sp40[var_a3] = gObjectList[temp_a0].type; var_a3 += 1; } } @@ -3867,18 +3867,18 @@ s32 func_8007B040(s32 objectIndex, s32 playerId) { if (var_a3 != 0) { var_v1 = random_int(var_a3); temp_v1 = sp50[var_v1]; - D_80165C18[objectIndex].unk_0D1 = temp_v1; + gObjectList[objectIndex].unk_0D1 = temp_v1; temp_a1 = sp40[var_v1]; - D_80165C18[objectIndex].unk_0A2 = temp_a1; - D_80165C18[objectIndex].unk_0D2 = temp_a1; + gObjectList[objectIndex].unk_0A2 = temp_a1; + gObjectList[objectIndex].itemDisplay = temp_a1; temp_a0 = gItemWindowObjectByPlayerId[temp_v1]; sp38 = &gPlayerOne[temp_v1]; func_800722A4(temp_a0, 1); - D_80165C18[temp_a0].unk_0A4 = 0; - sp38->unk_010 = 0; + gObjectList[temp_a0].type = 0; + sp38->currentItemCopy = 0; if (func_80072320(temp_a0, 2) != 0) { func_800722CC(temp_a0, 2); - D_80165C18[temp_a0].unk_098 = 0; + gObjectList[temp_a0].timer = 0; } var_t3 = 1; } @@ -3895,30 +3895,30 @@ extern s8 D_80165888; extern s16 D_8018CAB8; void func_8007B254(s32 objectIndex, u8 arg1) { - struct_80165C18_entry *sp18; + Objects *sp18; s8 temp_v1; - struct_80165C18_entry *temp_v0; + ItemWindowObjects *temp_v0; func_80072428(objectIndex); - temp_v0 = &D_80165C18[objectIndex]; - temp_v0->unk_0A6 = 2; - temp_v0->unk_0A4 = 0; + temp_v0 = &gObjectList[objectIndex]; + temp_v0->itemDisplayState = 2; + temp_v0->currentItem = ITEM_NONE; temp_v0->tlutList = (u8 *) gTLUTItemWindowNone; temp_v0->textureList = gTextureItemWindowNone; temp_v0->textureWidth = 0x28; temp_v0->textureHeight = 0x20; temp_v0->unk_04C = 0x00000032; temp_v0->unk_0D6 = 1; - temp_v0->unk_098 = 0; + temp_v0->goldenMushroomTimer = 0; sp18 = temp_v0; func_800722A4(objectIndex, 4); if (D_80165888 != 0) { sp18 = temp_v0; func_800726CC(objectIndex, 8); - temp_v0->unk_0A4 = 0x000E; + temp_v0->currentItem = ITEM_TRIPLE_MUSHROOM; temp_v1 = temp_v0->unkA5; temp_v0->unk_0D6 = 2; - temp_v0->unk_0D2 = temp_v1; + temp_v0->itemDisplay = temp_v1; temp_v0->unk_0A2 = (s16) temp_v1; D_8018CAB8 = 0; D_80165888 = 0; @@ -3940,7 +3940,7 @@ static u8 *gItemWindowTextures[0x10]; void func_8007B34C(s32 playerId) { s32 sp40; Player *sp38; - struct_80165C18_entry *sp2C; + ItemWindowObjects *sp2C; struct_8018CA70_entry *sp28; s16 temp_a1; s16 temp_a1_2; @@ -3949,7 +3949,7 @@ void func_8007B34C(s32 playerId) { s32 temp_s0; s32 temp_v0_2; s8 temp_v0_5; - struct_80165C18_entry *temp_t0; + Objects *temp_t0; struct_8018CA70_entry *temp_v1; struct_8018CA70_entry *temp_v1_2; struct_8018CA70_entry *temp_v1_3; @@ -3969,22 +3969,22 @@ void func_8007B34C(s32 playerId) { if (D_80165888 != 0) { func_800723A4(temp_s0, 0); } - temp_t0 = &D_80165C18[temp_s0]; + temp_t0 = &gObjectList[temp_s0]; sp2C = temp_t0; - temp_t6 = (u16) temp_t0->unk_0A6; + temp_t6 = (u16) temp_t0->state; switch (temp_t6) { case 1: func_8007B254(temp_s0, playerId); break; case 2: - if (gActiveScreenMode == 0) { + if (gActiveScreenMode == SCREEN_MODE_1P) { temp_v1 = &D_8018CA70[playerId]; sp28 = temp_v1; s16_step_up_towards(&temp_v1->slideItemBoxY, 0x0040, 4); if (temp_v1->slideItemBoxY == 0x0040) { func_80072488(temp_s0); } - } else if (gActiveScreenMode == 3) { + } else if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) { if ((playerId == 0) || (playerId == 2)) { temp_v1_2 = &D_8018CA70[playerId]; sp28 = temp_v1_2; @@ -4019,7 +4019,7 @@ void func_8007B34C(s32 playerId) { func_80072E54(temp_s0, 1, 4, 1, 0x00000010, 1); break; case 6: - sp2C->unk_0D2 = func_8007AFB0(temp_s0, playerId); + sp2C->itemDisplay = func_8007AFB0(temp_s0, playerId); sp2C->unk_04C = 8; sp2C->unk_0D6 = 2; func_80072488(temp_s0); @@ -4033,18 +4033,18 @@ void func_8007B34C(s32 playerId) { case 9: func_800722CC(temp_s0, 4); func_80073600(temp_s0); - sp2C->unk_0D2 = 0; + sp2C->itemDisplay = 0; func_80072488(temp_s0); break; case 10: func_8007278C(temp_s0, 0x00000014); break; case 11: - if (gActiveScreenMode == 0) { + if (gActiveScreenMode == SCREEN_MODE_1P) { if (s16_step_down_towards(&D_8018CA70[playerId].slideItemBoxY, 0, 4) != 0) { func_80072488(temp_s0); } - } else if (gActiveScreenMode == 3) { + } else if (gActiveScreenMode == SCREEN_MODE_3P_4P_SPLITSCREEN) { if ((playerId == 0) || (playerId == 2)) { temp_v1_5 = &D_8018CA70[playerId]; sp28 = temp_v1_5; @@ -4106,11 +4106,11 @@ void func_8007B34C(s32 playerId) { break; } if (func_80072320(temp_s0, 2) != 0) { - temp_v0 = sp2C->unk_098; + temp_v0 = sp2C->goldenMushroomTimer; if (temp_v0 == 0) { - func_8007AC9C(playerId); + consume_item(playerId); } else { - sp2C->unk_098 = temp_v0 - 1; + sp2C->goldenMushroomTimer = temp_v0 - 1; } } temp_v0_2 = sp2C->unk_04C; @@ -4127,11 +4127,11 @@ void func_8007B34C(s32 playerId) { } break; case 2: /* switch 1 */ - func_800729D0(temp_s0, (s32) sp2C->unk_0A2); + set_type_object(temp_s0, (s32) sp2C->unk_0A2); sp2C->unk_0D6 = 3; break; case 3: /* switch 1 */ - if (sp2C->unk_0A4 == 0) { + if (sp2C->type == 0) { if (func_80072354(temp_s0, 1) != 0) { temp_v0_4 = sp2C->unk_0A2; if (temp_v0_4 == 0x000B) { @@ -4143,7 +4143,7 @@ void func_8007B34C(s32 playerId) { } } else if ((temp_v0_4 == 0x000D) || (temp_v0_4 == 0x000E)) { sp2C->unk_0A2 = temp_v0_4 - 1; - func_800729D0(temp_s0, (s32) sp2C->unk_0A2); + set_type_object(temp_s0, (s32) sp2C->unk_0A2); sp2C->unk_0D6 = 3; func_800726CC(temp_s0, 0x00000028); } else { @@ -4159,10 +4159,10 @@ void func_8007B34C(s32 playerId) { } } } - temp_v0_5 = sp2C->unk_0D2; + temp_v0_5 = sp2C->itemDisplay; sp2C->activeTLUT = gItemWindowTLUTs[temp_v0_5]; sp2C->activeTexture = gItemWindowTextures[temp_v0_5]; - sp38->unk_010 = sp2C->unk_0A4; + sp38->currentItemCopy = sp2C->currentItem; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007B34C.s") @@ -4174,13 +4174,13 @@ void func_8007BB9C(s32 arg0) { void func_8007BBBC(s32 objectIndex) { f32 var_f14; - struct_80165C18_entry *temp_s1; + Objects *temp_s1; - temp_s1 = &D_80165C18[objectIndex]; - switch (temp_s1->unk_0A6) { /* irregular */ + temp_s1 = &gObjectList[objectIndex]; + switch (temp_s1->state) { /* irregular */ case 1: func_800735BC(objectIndex, d_course_banshee_boardwalk_dl_cheep_cheep, 2.0f); - func_800721C0(objectIndex, 0x00000010); + set_object_flag_unk_054_true(objectIndex, 0x00000010); temp_s1->unk_0D5 = 0; break; case 2: @@ -4209,7 +4209,7 @@ void func_8007BD04(s32 playerId) { s32 objectIndex; objectIndex = D_80183F28[0]; - if (D_80165C18[objectIndex].unk_0A6 == 0) { + if (gObjectList[objectIndex].state == 0) { if (((s32) gNearestWaypointByPlayerId[playerId] >= 0xA0) && ((s32) gNearestWaypointByPlayerId[playerId] < 0xAB)) { func_8008B7D4(objectIndex, D_8018D01C * -1650.0, -200.0f, -1650.0f); func_800723A4(objectIndex, 1); @@ -4228,9 +4228,9 @@ void func_8007BDA8(void) { } void func_8007BDE0(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_0D5 = 1; temp_v0->unk_054 = 0; temp_v0->unk_070 = d_course_banshee_boardwalk_dl_cheep_cheep; @@ -4242,16 +4242,16 @@ void func_8007BDE0(s32 objectIndex) { } void func_8007BEC8(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; - switch (temp_v0->unk_0A6) { + temp_v0 = &gObjectList[objectIndex]; + switch (temp_v0->state) { case 1: func_8007BDE0(objectIndex); break; case 2: if (func_8007278C(objectIndex, 0x0000003C) != 0) { - func_800721C0(objectIndex, 0x00000010); + set_object_flag_unk_054_true(objectIndex, 0x00000010); func_80086E70(objectIndex); } break; @@ -4277,9 +4277,9 @@ void func_8007BEC8(s32 objectIndex) { } void func_8007BFB0(s32 objectIndex) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; switch (temp_s0->unk_0AE) { case 0: break; @@ -4331,7 +4331,7 @@ void func_8007BFB0(s32 objectIndex) { case 7: temp_s0->sizeScaling = (f32) ((f64) temp_s0->sizeScaling - 0.05); if ((f64) temp_s0->sizeScaling <= 0.01) { - func_800721E8(objectIndex, 0x00000010); + set_object_flag_unk_054_false(objectIndex, 0x00000010); temp_s0->sizeScaling = 0.000001f; func_80086FD4(objectIndex); } @@ -4355,7 +4355,7 @@ void func_8007C280(void) { D_801658BC = 0; func_800723A4(objectIndex, 0); } - if (D_80165C18[objectIndex].unk_0A6 != 0) { + if (gObjectList[objectIndex].state != 0) { func_8007BEC8(objectIndex); func_8007BFB0(objectIndex); } @@ -4379,14 +4379,14 @@ void func_8007C340(void) { #ifdef MIPS_TO_C //generated by m2c commit d9d3d6575355663122de59f6b2882d8f174e2355 on Dec-27-2022 void func_8007C360(s32 objectIndex, Camera *camera) { - struct_80165C18_entry *sp20; + Objects *sp20; s32 sp1C; s32 temp_t0; s32 temp_t2; s32 var_t1; - struct_80165C18_entry *temp_a2; + Objects *temp_a2; - temp_a2 = &D_80165C18[objectIndex]; + temp_a2 = &gObjectList[objectIndex]; temp_t0 = (((temp_a2->unk_0BE[1] - (u16) camera->rot[1]) + 0x8000) & 0xFFFF) * 0x24; var_t1 = temp_t0 >> 0x10; if (temp_t0 < 0) { @@ -4396,14 +4396,14 @@ void func_8007C360(s32 objectIndex, Camera *camera) { if (temp_t2 < 0x13) { sp20 = temp_a2; sp1C = temp_t2; - func_800721E8(objectIndex, 0x00000080); - temp_a2->unk_0D2 = (s8) sp1C; + set_object_flag_unk_054_false(objectIndex, 0x00000080); + temp_a2->itemDisplay = (s8) sp1C; return; } sp20 = temp_a2; sp1C = temp_t2; - func_800721C0(objectIndex, 0x00000080); - temp_a2->unk_0D2 = 0x24 - temp_t2; + set_object_flag_unk_054_true(objectIndex, 0x00000080); + temp_a2->itemDisplay = 0x24 - temp_t2; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007C360.s") @@ -4413,9 +4413,9 @@ void func_8007C420(s32 objectIndex, Player *player, Camera *camera) { f32 x; f32 z; - x = player->pos[0] - D_80165C18[objectIndex].pos[0]; - z = player->pos[2] - D_80165C18[objectIndex].pos[2]; - D_80165C18[objectIndex].unk_0BE[1] = func_800417B4(D_80165C18[objectIndex].unk_0BE[1], atan2s(x, z)); + x = player->pos[0] - gObjectList[objectIndex].pos[0]; + z = player->pos[2] - gObjectList[objectIndex].pos[2]; + gObjectList[objectIndex].unk_0BE[1] = func_800417B4(gObjectList[objectIndex].unk_0BE[1], atan2s(x, z)); func_8007C360(objectIndex, camera); } @@ -4426,14 +4426,14 @@ UNUSED void func_8007C49C(void) { #ifdef MIPS_TO_C //generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f void func_8007C4A4(s32 objectIndex) { - struct_80165C18_entry *sp20; + Objects *sp20; s32 sp1C; s32 temp_t0; s32 temp_t8; s32 var_t9; - struct_80165C18_entry *temp_v1; + Objects *temp_v1; - temp_v1 = &D_80165C18[objectIndex]; + temp_v1 = &gObjectList[objectIndex]; temp_t8 = temp_v1->unk_0BE[1] * 0x24; var_t9 = temp_t8 >> 0x10; if (temp_t8 < 0) { @@ -4443,21 +4443,21 @@ void func_8007C4A4(s32 objectIndex) { if (temp_t0 < 0x13) { sp20 = temp_v1; sp1C = temp_t0; - func_800721E8(objectIndex, 0x00000080); - temp_v1->unk_0D2 = (s8) sp1C; + set_object_flag_unk_054_false(objectIndex, 0x00000080); + temp_v1->itemDisplay = (s8) sp1C; return; } sp20 = temp_v1; sp1C = temp_t0; - func_800721C0(objectIndex, 0x00000080); - temp_v1->unk_0D2 = 0x24 - temp_t0; + set_object_flag_unk_054_true(objectIndex, 0x00000080); + temp_v1->itemDisplay = 0x24 - temp_t0; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007C4A4.s") #endif void func_8007C550(s32 objectIndex) { - D_80165C18[objectIndex].unk_0BE[1] = func_800417B4(D_80165C18[objectIndex].unk_0BE[1], atan2s(D_80165C18[objectIndex].unk_038[0], D_80165C18[objectIndex].unk_038[2])); + gObjectList[objectIndex].unk_0BE[1] = func_800417B4(gObjectList[objectIndex].unk_0BE[1], atan2s(gObjectList[objectIndex].unk_038[0], gObjectList[objectIndex].unk_038[2])); func_8007C4A4(objectIndex); } @@ -4465,14 +4465,14 @@ extern u8 d_course_banshee_boardwalk_boo_tlut[]; extern u8 *D_80165880; void func_8007C5B4(s32 objectIndex) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - func_80073444(objectIndex, d_course_banshee_boardwalk_boo_tlut, D_80165880, 48, 40); - temp_s0 = &D_80165C18[objectIndex]; + init_texture_object(objectIndex, d_course_banshee_boardwalk_boo_tlut, D_80165880, 48, 40); + temp_s0 = &gObjectList[objectIndex]; temp_s0->pos[0] = 0.0f; temp_s0->pos[1] = 0.0f; temp_s0->pos[2] = 0.0f; - func_800721C0(objectIndex, 0x00000020); + set_object_flag_unk_054_true(objectIndex, 0x00000020); func_80072488(objectIndex); temp_s0->unk_0A0 = 0; func_80073844(objectIndex); @@ -4480,31 +4480,31 @@ void func_8007C5B4(s32 objectIndex) { temp_s0->unk_034 = 1.0f; func_80073FD4(objectIndex); func_80086EF0(objectIndex); - func_800721C0(objectIndex, 0x00000800); + set_object_flag_unk_054_true(objectIndex, 0x00000800); temp_s0->unk_0B2[0] = 0; temp_s0->unk_0B2[2] = 0x8000; } void func_8007C684(s32 objectIndex) { - switch(D_80165C18[objectIndex].unk_0A6) { + switch(gObjectList[objectIndex].state) { case 0: break; case 1: func_8007C5B4(objectIndex); break; } - if (D_80165C18[objectIndex].unk_0A6 >= 2) { - switch (D_80165C18[objectIndex].unk_0DC) { + if (gObjectList[objectIndex].state >= 2) { + switch (gObjectList[objectIndex].unk_0DC) { case 0: break; case 1: - func_80073998(objectIndex, &D_80165C18[objectIndex].unk_0A0, 0, 0x00000050, 2, 1, 0); + func_80073998(objectIndex, &gObjectList[objectIndex].unk_0A0, 0, 0x00000050, 2, 1, 0); break; case 2: - func_80073CB0(objectIndex, &D_80165C18[objectIndex].unk_0A0, 0x00000050, 0x00000078, 1, 0, -1); + func_80073CB0(objectIndex, &gObjectList[objectIndex].unk_0A0, 0x00000050, 0x00000078, 1, 0, -1); break; case 3: - func_80073DC0(objectIndex, &D_80165C18[objectIndex].unk_0A0, 0, 2); + func_80073DC0(objectIndex, &gObjectList[objectIndex].unk_0A0, 0, 2); break; case 4: func_80072428(objectIndex); @@ -4546,7 +4546,7 @@ void func_8007C7B4(s32 arg0, s32 arg1) { s32 var_s3; s32 *temp_s1; UNUSED s32 *temp_v1; - //struct_80165C18_entry *temp_s0; + //Objects *temp_s0; //s32 i = 0; temp_s1 = &D_8018BFA8[arg0]; @@ -4557,8 +4557,8 @@ void func_8007C7B4(s32 arg0, s32 arg1) { var_s3 = *temp_s1; //temp_s1 = *var_s3; func_800723A4(var_s3, 1); - //temp_s0 = &D_80165C18[var_s3[i]]; - D_80165C18[var_s3].unk_0D1 = arg1; + //temp_s0 = &gObjectList[var_s3[i]]; + gObjectList[var_s3].unk_0D1 = arg1; temp_s1_2 = random_int(60) - 30; temp_s4 = random_int(20) - 10; temp_s5 = random_int(80) - 40; @@ -4566,10 +4566,10 @@ void func_8007C7B4(s32 arg0, s32 arg1) { temp_v1 = (s32 *) var_s2; var_s2 += 4; temp_s1 += 4; - D_80165C18[var_s3].unk_010[0] = (f32)temp_s1_2; - D_80165C18[var_s3].unk_080 = (u16 *) var_s2; - D_80165C18[var_s3].unk_010[1] = (f32) temp_s4; - D_80165C18[var_s3].unk_010[2] = (f32) temp_s5; + gObjectList[var_s3].unk_010[0] = (f32)temp_s1_2; + gObjectList[var_s3].unk_080 = (u16 *) var_s2; + gObjectList[var_s3].unk_010[1] = (f32) temp_s4; + gObjectList[var_s3].unk_010[2] = (f32) temp_s5; } while (*var_s2 != D_800E5DB0); func_800C9060(arg1, 0x1900705A); @@ -4591,23 +4591,23 @@ extern s16 D_8018D048; void func_8007C91C(s32 objectIndex) { s32 *temp_a0; s32 *temp_a1; - struct_80165C18_entry *temp_a2; - struct_80165C18_entry *temp_a2_2; - struct_80165C18_entry *temp_a2_3; - struct_80165C18_entry *temp_a2_4; - struct_80165C18_entry *temp_a2_5; + Objects *temp_a2; + Objects *temp_a2_2; + Objects *temp_a2_3; + Objects *temp_a2_4; + Objects *temp_a2_5; temp_a1 = &D_8018BFA8[objectIndex]; temp_a0 = &temp_a1[1]; - temp_a2 = &D_80165C18[*temp_a1]; + temp_a2 = &gObjectList[*temp_a1]; temp_a2->unk_0DC += 1; - temp_a2_2 = &D_80165C18[temp_a0->unk0]; + temp_a2_2 = &gObjectList[temp_a0->unk0]; temp_a2_2->unk_0DC += 1; - temp_a2_3 = &D_80165C18[temp_a0->unk4]; + temp_a2_3 = &gObjectList[temp_a0->unk4]; temp_a2_3->unk_0DC += 1; - temp_a2_4 = &D_80165C18[temp_a0->unk8]; + temp_a2_4 = &gObjectList[temp_a0->unk8]; temp_a2_4->unk_0DC += 1; - temp_a2_5 = &D_80165C18[temp_a0->unkC]; + temp_a2_5 = &gObjectList[temp_a0->unkC]; temp_a2_5->unk_0DC += 1; if (temp_a1 == D_8018BFA8) { D_8018D048 = 0; @@ -4622,10 +4622,10 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007C91C.s") s32 func_8007C9F8(void) { s32 ret; s32 first, second; - if (D_8018EDF3 == 1) { + if (gPlayerCount == 1) { ret = 0; } else { - if (D_8018EDF3 == 2) { + if (gPlayerCount == 2) { if (gModeSelection == 0) { first = gGPCurrentRaceRankByPlayerId[0]; second = gGPCurrentRaceRankByPlayerId[1]; @@ -4720,13 +4720,13 @@ void func_8007CC00(void) { s32 objectIndex; Player *player; Camera *camera; - struct_80165C18_entry *object; + Objects *object; func_8007CA70(); for (someIndex = 0; someIndex < NUM_BOOS; someIndex++) { objectIndex = D_8018BFA8[someIndex]; - object = &D_80165C18[objectIndex]; - if (object->unk_0A6 != 0) { + object = &gObjectList[objectIndex]; + if (object->state != 0) { func_8007C684(objectIndex); func_8008B78C(objectIndex); player = &gPlayerOne[object->unk_0D1]; @@ -4736,21 +4736,21 @@ void func_8007CC00(void) { object->pos[1] = 6.5 + player->unk_074 + object->unk_010[1] + object->unk_028[1]; object->pos[2] = player->pos[2] + (sins(temp_t4) * (object->unk_010[0] + object->unk_028[0])) + (coss(temp_t4) * (object->unk_010[2] + object->unk_028[2])); func_8007C550(objectIndex); - if (func_8007223C(objectIndex, 0x00000080) != 0) { - object->unk_074 = D_800E44B0; + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000080) != 0) { + object->vertex = D_800E44B0; } else { - object->unk_074 = D_800E4470; + object->vertex = D_800E4470; } } } } void func_8007CE0C(s32 objectIndex) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - func_80073444(objectIndex, d_course_banshee_boardwalk_boo_tlut, D_0F0D0E50, 0x30U, (u16) 0x00000028); - temp_s0 = &D_80165C18[objectIndex]; - temp_s0->unk_0D2 = 0x1C; + init_texture_object(objectIndex, d_course_banshee_boardwalk_boo_tlut, D_0F0D0E50, 0x30U, (u16) 0x00000028); + temp_s0 = &gObjectList[objectIndex]; + temp_s0->itemDisplay = 0x1C; temp_s0->pos[0] = 0.0f; temp_s0->pos[1] = 0.0f; temp_s0->pos[2] = 0.0f; @@ -4764,10 +4764,10 @@ void func_8007CE0C(s32 objectIndex) { } void func_8007CEDC(s32 objectIndex) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; - switch (temp_s0->unk_0A6) { /* switch 1 */ + temp_s0 = &gObjectList[objectIndex]; + switch (temp_s0->state) { /* switch 1 */ case 0: /* switch 1 */ break; case 1: /* switch 1 */ @@ -4785,7 +4785,7 @@ void func_8007CEDC(s32 objectIndex) { default: /* switch 2 */ break; } - if (temp_s0->unk_0A6 >= 2) { + if (temp_s0->state >= 2) { func_80072950(objectIndex, (s32) temp_s0->unk_0DC, 0, 4); func_80073514(objectIndex); switch (temp_s0->unk_0DC) { /* switch 2 */ @@ -4794,7 +4794,7 @@ void func_8007CEDC(s32 objectIndex) { break; case 2: /* switch 2 */ func_80073CB0(objectIndex, &temp_s0->unk_0A0, 0x00000050, 0x000000B4, 2, 0, -1); - if ((temp_s0->unk_0AE == 0) || (temp_s0->unk_0A6 == 3)) { + if ((temp_s0->unk_0AE == 0) || (temp_s0->state == 3)) { temp_s0->unk_0DC += 1; } break; @@ -4834,24 +4834,24 @@ void func_8007D070(void) { s32 temp_t2; s32 temp_t5; s32 var_v0; - struct_80165C18_entry *temp_s0; - struct_80165C18_entry *temp_s0_2; + Objects *temp_s0; + Objects *temp_s0_2; var_v0 = 0; if ((D_8016559C == 0) && (D_8018D2A4 != 0) && (*D_8018CF68 < 0x1D) && (*(&D_800E5DB4 + *D_8018CF68) == 1)) { - if (D_80165C18[D_8018C1D8].unk_0A6 != 0) { + if (gObjectList[D_8018C1D8].state != 0) { loop_5: var_v0 += 1; if (var_v0 != 0x1E) { - if (D_80165C18[D_8018C1B0[var_v0].unk28].unk_0A6 != 0) { + if (gObjectList[D_8018C1B0[var_v0].unk28].state != 0) { goto loop_5; } } } temp_s1 = D_8018C1B0[var_v0].unk28; if (var_v0 != 0x1E) { - temp_s0 = &D_80165C18[temp_s1]; - if (temp_s0->unk_0A6 == 0) { + temp_s0 = &gObjectList[temp_s1]; + if (temp_s0->state == 0) { func_800723A4(temp_s1, 1); temp_s2 = random_int(0x012CU); temp_s3 = (random_int(0x1000U) - 0x800) & 0xFFFF; @@ -4872,18 +4872,18 @@ loop_5: var_s2 = D_8018C1B0; do { temp_s1_2 = var_s2->unk28; - temp_s0_2 = &D_80165C18[temp_s1_2]; - if (temp_s0_2->unk_0A6 != 0) { + temp_s0_2 = &gObjectList[temp_s1_2]; + if (temp_s0_2->state != 0) { func_8007CEDC(temp_s1_2); func_8008B724(temp_s1_2); temp_s0_2->pos[0] = temp_s0_2->unk_028[0] + temp_s0_2->unk_010[0]; temp_s0_2->pos[1] = temp_s0_2->unk_028[1] + (D_8018CF1C->unk_074 + temp_s0_2->unk_010[1]); temp_s0_2->pos[2] = temp_s0_2->unk_028[2] + temp_s0_2->unk_010[2]; func_8007C420(temp_s1_2, D_8018CF1C, D_8018CF14); - if (func_8007223C(temp_s1_2, 0x00000080) != 0) { - temp_s0_2->unk_074 = &D_800E44B0; + if (is_obj_index_flag_unk_054_active(temp_s1_2, 0x00000080) != 0) { + temp_s0_2->vertex = &D_800E44B0; } else { - temp_s0_2->unk_074 = &D_800E4470; + temp_s0_2->vertex = &D_800E4470; } } var_s2 += 4; @@ -4895,45 +4895,45 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007D070.s") void func_8007D360(s32 objectIndex, s32 arg1) { if (arg1 == 1) { - D_80165C18[objectIndex].unk_010[0] = (f32) ((-1775.0 - random_int(0x001EU)) * (f64) D_8018D01C); - D_80165C18[objectIndex].unk_010[1] = (f32) (random_int(0x0019U) + 25.0); - D_80165C18[objectIndex].unk_010[2] = (f32) (random_int(0x001EU) + 130.0); - D_80165C18[objectIndex].unk_01C[0] = (f32) ((f64) D_8018D01C * -2500.0); - D_80165C18[objectIndex].unk_01C[1] = 0.0f; - D_80165C18[objectIndex].unk_01C[2] = (f32) (220.0 - random_int(0x0096U)); - D_80165C18[objectIndex].unk_0BE[0] = 0xDC00; - D_80165C18[objectIndex].unk_0C6 = 0x0800; + gObjectList[objectIndex].unk_010[0] = (f32) ((-1775.0 - random_int(0x001EU)) * (f64) D_8018D01C); + gObjectList[objectIndex].unk_010[1] = (f32) (random_int(0x0019U) + 25.0); + gObjectList[objectIndex].unk_010[2] = (f32) (random_int(0x001EU) + 130.0); + gObjectList[objectIndex].unk_01C[0] = (f32) ((f64) D_8018D01C * -2500.0); + gObjectList[objectIndex].unk_01C[1] = 0.0f; + gObjectList[objectIndex].unk_01C[2] = (f32) (220.0 - random_int(0x0096U)); + gObjectList[objectIndex].unk_0BE[0] = 0xDC00; + gObjectList[objectIndex].unk_0C6 = 0x0800; } if (arg1 == 2) { - D_80165C18[objectIndex].unk_010[0] = (f32) (-0x55B - random_int(0x001EU)) * D_8018D01C; - D_80165C18[objectIndex].unk_010[1] = (f32) (random_int(0x0019U) + 0xF); - D_80165C18[objectIndex].unk_010[2] = (f32) (random_int(0x001EU) - 0xE8); - D_80165C18[objectIndex].unk_01C[0] = (f32) ((f64) D_8018D01C * -2100.0); - D_80165C18[objectIndex].unk_01C[1] = 0.0f; - D_80165C18[objectIndex].unk_01C[2] = (f32) (random_int(0x00C8U) + -290.0); - D_80165C18[objectIndex].unk_0BE[0] = 0; - D_80165C18[objectIndex].unk_0C6 = 0; + gObjectList[objectIndex].unk_010[0] = (f32) (-0x55B - random_int(0x001EU)) * D_8018D01C; + gObjectList[objectIndex].unk_010[1] = (f32) (random_int(0x0019U) + 0xF); + gObjectList[objectIndex].unk_010[2] = (f32) (random_int(0x001EU) - 0xE8); + gObjectList[objectIndex].unk_01C[0] = (f32) ((f64) D_8018D01C * -2100.0); + gObjectList[objectIndex].unk_01C[1] = 0.0f; + gObjectList[objectIndex].unk_01C[2] = (f32) (random_int(0x00C8U) + -290.0); + gObjectList[objectIndex].unk_0BE[0] = 0; + gObjectList[objectIndex].unk_0C6 = 0; } - D_80165C18[objectIndex].unk_0BE[1] = func_80041770(D_80165C18[objectIndex].unk_010[0], D_80165C18[objectIndex].unk_01C[0], D_80165C18[objectIndex].unk_010[2], D_80165C18[objectIndex].unk_01C[2]); - D_80165C18[objectIndex].unk_0BE[2] = 0; + gObjectList[objectIndex].unk_0BE[1] = func_80041770(gObjectList[objectIndex].unk_010[0], gObjectList[objectIndex].unk_01C[0], gObjectList[objectIndex].unk_010[2], gObjectList[objectIndex].unk_01C[2]); + gObjectList[objectIndex].unk_0BE[2] = 0; func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); - D_80165C18[objectIndex].unk_0B0 = 0; + gObjectList[objectIndex].unk_0B0 = 0; if (gCCSelection < 2) { - D_80165C18[objectIndex].unk_034 = (random_int(4U) + 4.0); + gObjectList[objectIndex].unk_034 = (random_int(4U) + 4.0); } else { - D_80165C18[objectIndex].unk_034 = (random_int(4U) + 5.0); + gObjectList[objectIndex].unk_034 = (random_int(4U) + 5.0); } } void func_8007D6A8(s32 objectIndex, s32 arg1) { UNUSED s32 pad[2]; - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_0D5 = 0x0D; func_8007D360(objectIndex, arg1); temp_v0->sizeScaling = 0.1f; - func_800721C0(objectIndex, 0x00000200); + set_object_flag_unk_054_true(objectIndex, 0x00000200); temp_v0->unk_0C8 = 3; } @@ -4980,7 +4980,7 @@ void func_8007D8AC(s32 arg0) { } void func_8007D8D4(s32 objectIndex, s32 arg1) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 1: func_8007D8AC(objectIndex); break; @@ -4990,18 +4990,18 @@ void func_8007D8D4(s32 objectIndex, s32 arg1) { } if (arg1 == 1) { if (gIsMirrorMode != 0) { - if (D_80165C18[objectIndex].pos[0] >= 2540.0) { + if (gObjectList[objectIndex].pos[0] >= 2540.0) { func_80072428(objectIndex); } - } else if (D_80165C18[objectIndex].pos[0] <= -2540.0) { + } else if (gObjectList[objectIndex].pos[0] <= -2540.0) { func_80072428(objectIndex); } } else if (gIsMirrorMode != 0) { - if (D_80165C18[objectIndex].pos[0] >= 2150.0) { + if (gObjectList[objectIndex].pos[0] >= 2150.0) { func_80072428(objectIndex); } } else { - if (D_80165C18[objectIndex].pos[0] <= -2150.0) { + if (gObjectList[objectIndex].pos[0] <= -2150.0) { func_80072428(objectIndex); } } @@ -5018,12 +5018,12 @@ void func_8007DA4C(s32 arg0) { void func_8007DA74(s32 objectIndex) { UNUSED s32 pad; - if ((D_80165C18[objectIndex].unk_0AE != 0) && (D_80165C18[objectIndex].unk_0AE == 1)) { + if ((gObjectList[objectIndex].unk_0AE != 0) && (gObjectList[objectIndex].unk_0AE == 1)) { if (func_80087060(objectIndex, 0x0000001E) != 0) { - D_80165C18[objectIndex].unk_0C6 = 0U; + gObjectList[objectIndex].unk_0C6 = 0U; } } - D_80165C18[objectIndex].unk_0BE[0] = func_800417B4(D_80165C18[objectIndex].unk_0BE[0], D_80165C18[objectIndex].unk_0C6); + gObjectList[objectIndex].unk_0BE[0] = func_800417B4(gObjectList[objectIndex].unk_0BE[0], gObjectList[objectIndex].unk_0C6); func_80087844(objectIndex); func_8008BF18(objectIndex); } @@ -5056,9 +5056,9 @@ void func_8007DB44(void) { s32 temp_s0; s32 temp_s0_2; s32 temp_s0_3; - struct_80165C18_entry *temp_s1; - struct_80165C18_entry *temp_s1_2; - struct_80165C18_entry *temp_s1_3; + Objects *temp_s1; + Objects *temp_s1_2; + Objects *temp_s1_3; if (D_8018CFC8 != 0) { D_8018CFC8 -= 1; @@ -5069,7 +5069,7 @@ void func_8007DB44(void) { temp_s0 = *D_80183EA0; func_80072E54(temp_s0, 0, 3, 1, 0, -1); func_80073514(temp_s0); - temp_s1 = &D_80165C18[temp_s0]; + temp_s1 = &gObjectList[temp_s0]; func_80073CB0(temp_s0, &temp_s1->unk_0A0, -0x00001000, 0x00001000, 0x00000400, 0, -1); temp_s1->unk_0B2[2] = temp_s1->unk_0A0 + 0x8000; if ((D_8018CFB0 != 0) || (D_8018CFC8 != 0)) { @@ -5078,13 +5078,13 @@ void func_8007DB44(void) { do { temp_s0_2 = *var_s2; if (temp_s0_2 != -1) { - temp_s1_2 = &D_80165C18[temp_s0_2]; - if (temp_s1_2->unk_0A6 != 0) { + temp_s1_2 = &gObjectList[temp_s0_2]; + if (temp_s1_2->state != 0) { func_8007D8D4(temp_s0_2, 1); func_8007DAF8(temp_s0_2, 1); func_8007D794(temp_s0_2); - if (temp_s1_2->unk_0A6 == 0) { - func_80072100(var_s2); + if (temp_s1_2->state == 0) { + delete_object_wrapper(var_s2); } D_8018CFD8 += 1; } @@ -5107,13 +5107,13 @@ block_19: do { temp_s0_3 = *var_s2_2; if (temp_s0_3 != -1) { - temp_s1_3 = &D_80165C18[temp_s0_3]; - if (temp_s1_3->unk_0A6 != 0) { + temp_s1_3 = &gObjectList[temp_s0_3]; + if (temp_s1_3->state != 0) { func_8007D8D4(temp_s0_3, 2); func_8007DAF8(temp_s0_3, 2); func_8007D794(temp_s0_3); - if (temp_s1_3->unk_0A6 == 0) { - func_80072100(var_s2_2); + if (temp_s1_3->state == 0) { + delete_object_wrapper(var_s2_2); } D_8018D010 += 1; } @@ -5130,9 +5130,9 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007DB44.s") void func_8007DDC0(s32 objectIndex) { f32 sp2C; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; if (temp_s0->unk_04C > 0) { temp_s0->unk_04C--; if (temp_s0->unk_04C == 0) { @@ -5150,12 +5150,12 @@ void func_8007DDC0(s32 objectIndex) { sp2C = 1150.0f; } func_8008A6DC(objectIndex, sp2C); - if ((func_8007223C(objectIndex, 0x00040000) != 0) && (func_80072354(objectIndex, 1) != 0)) { + if ((is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) && (func_80072354(objectIndex, 1) != 0)) { func_800722A4(objectIndex, 1); func_800C9D80(temp_s0->pos, temp_s0->unk_038, 0x51028006U); func_800726CC(objectIndex, 3); - if (temp_s0->unk_0A4 > 0) { - temp_s0->unk_0A4--; + if (temp_s0->type > 0) { + temp_s0->type--; temp_s0->unk_04C = 0x00000168; } else { temp_s0->unk_04C = 0x00000168; @@ -5164,27 +5164,27 @@ void func_8007DDC0(s32 objectIndex) { } } if (func_8008A8B0(0x000F, 0x0012) == 0) { - temp_s0->unk_0A4 = 2; + temp_s0->type = 2; } } void init_bb_trash_bin(s32 objectIndex) { - D_80165C18[objectIndex].sizeScaling = 1.0f; - D_80165C18[objectIndex].unk_070 = d_course_banshee_boardwalk_dl_trash_bin; - D_80165C18[objectIndex].unk_04C = 0; - D_80165C18[objectIndex].unk_084[7] = 0; + gObjectList[objectIndex].sizeScaling = 1.0f; + gObjectList[objectIndex].unk_070 = d_course_banshee_boardwalk_dl_trash_bin; + gObjectList[objectIndex].unk_04C = 0; + gObjectList[objectIndex].unk_084[7] = 0; func_8008B8BC(objectIndex, 0U, 0U, 0U); if (gIsMirrorMode != 0) { - D_80165C18[objectIndex].pos[0] = 1765.0f; - D_80165C18[objectIndex].pos[2] = 195.0f; - D_80165C18[objectIndex].unk_0B2[1] = 0x8000; + gObjectList[objectIndex].pos[0] = 1765.0f; + gObjectList[objectIndex].pos[2] = 195.0f; + gObjectList[objectIndex].unk_0B2[1] = 0x8000; } else { - D_80165C18[objectIndex].pos[0] = -1765.0f; - D_80165C18[objectIndex].pos[2] = 70.0f; + gObjectList[objectIndex].pos[0] = -1765.0f; + gObjectList[objectIndex].pos[2] = 70.0f; } - D_80165C18[objectIndex].pos[1] = 45.0f; + gObjectList[objectIndex].pos[1] = 45.0f; func_8008B8F0(objectIndex, 0.0f, 0.0f, 0.0f); - D_80165C18[objectIndex].unk_0A4 = 0; + gObjectList[objectIndex].type = 0; func_80072488(objectIndex); } @@ -5195,12 +5195,12 @@ extern s16 D_8018CFB0; void func_8007E00C(s32 objectIndex) { s16 temp_v1; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; u16 temp_t8; u16 temp_v0; - temp_s0 = &D_80165C18[objectIndex]; - temp_t8 = (u16) temp_s0->unk_0A6; + temp_s0 = &gObjectList[objectIndex]; + temp_t8 = (u16) temp_s0->state; switch (temp_t8) { case 1: init_bb_trash_bin(objectIndex); @@ -5276,9 +5276,9 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007E1AC.s") void func_8007E1F4(s32 objectIndex) { f32 sp2C; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; if (temp_s0->unk_04C > 0) { temp_s0->unk_04C--; if (temp_s0->unk_04C == 0) { @@ -5296,12 +5296,12 @@ void func_8007E1F4(s32 objectIndex) { sp2C = 700.0f; } func_8008A6DC(objectIndex, sp2C); - if ((func_8007223C(objectIndex, 0x00040000) != 0) && (func_80072354(objectIndex, 1) != 0)) { + if ((is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) && (func_80072354(objectIndex, 1) != 0)) { func_800722A4(objectIndex, 1); func_800C9D80(temp_s0->pos, temp_s0->unk_038, 0x51028006U); func_800726CC(objectIndex, 3); - if (temp_s0->unk_0A4 > 0) { - temp_s0->unk_0A4--; + if (temp_s0->type > 0) { + temp_s0->type--; temp_s0->unk_04C = 0x00000168; } else { temp_s0->unk_04C = 0x00000168; @@ -5310,24 +5310,24 @@ void func_8007E1F4(s32 objectIndex) { } } if (func_8008A8B0(0x000F, 0x0013) == 0) { - temp_s0->unk_0A4 = 2; + temp_s0->type = 2; } } void func_8007E358(s32 objectIndex) { - D_80165C18[objectIndex].pos[0] = -1371.0f * D_8018D01C; - D_80165C18[objectIndex].pos[1] = 31.0f; - D_80165C18[objectIndex].pos[2] = -217.0f; + gObjectList[objectIndex].pos[0] = -1371.0f * D_8018D01C; + gObjectList[objectIndex].pos[1] = 31.0f; + gObjectList[objectIndex].pos[2] = -217.0f; func_8008B8F0(objectIndex, 0.0f, 0.0f, 0.0f); - D_80165C18[objectIndex].unk_0A4 = 0; - D_80165C18[objectIndex].unk_04C = 0; - D_80165C18[objectIndex].unk_084[7] = 0; + gObjectList[objectIndex].type = 0; + gObjectList[objectIndex].unk_04C = 0; + gObjectList[objectIndex].unk_084[7] = 0; func_80072488(objectIndex); } void func_8007E3EC(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 1: func_8007E358(objectIndex); break; @@ -5393,28 +5393,28 @@ s32 func_8007E59C(s32 objectIndex) { } void func_8007E63C(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 0x32: - if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], D_80165C18[objectIndex].unk_01C[1] + 15.0, 1.5f) != 0) { - func_800721C0(objectIndex, 0x00000200); + if (f32_step_up_towards(&gObjectList[objectIndex].unk_028[1], gObjectList[objectIndex].unk_01C[1] + 15.0, 1.5f) != 0) { + set_object_flag_unk_054_true(objectIndex, 0x00000200); func_800722A4(objectIndex, 1); func_800722CC(objectIndex, 2); func_80072488(objectIndex); } break; case 0x33: - if (f32_step_down_towards(&D_80165C18[objectIndex].unk_028[1], 0.0f, 2.0f) != 0) { - if (D_80165C18[objectIndex].unk_028[1] >= 16.0f) { - D_80165C18[objectIndex].unk_0D2 = 0; - } else if (D_80165C18[objectIndex].unk_028[1] >= 8.0f) { - D_80165C18[objectIndex].unk_0D2 = 1; + if (f32_step_down_towards(&gObjectList[objectIndex].unk_028[1], 0.0f, 2.0f) != 0) { + if (gObjectList[objectIndex].unk_028[1] >= 16.0f) { + gObjectList[objectIndex].itemDisplay = 0; + } else if (gObjectList[objectIndex].unk_028[1] >= 8.0f) { + gObjectList[objectIndex].itemDisplay = 1; } else { - D_80165C18[objectIndex].unk_0D2 = 2; + gObjectList[objectIndex].itemDisplay = 2; } func_800722CC(objectIndex, 1); - if (func_8007223C(objectIndex, 0x00010000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00010000) != 0) { func_800722A4(objectIndex, 0x00000010); - if (func_8007223C(objectIndex, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { func_800722A4(objectIndex, 0x00000020); } } @@ -5432,13 +5432,13 @@ void func_8007E63C(s32 objectIndex) { func_80072AAC(objectIndex, 2, 0x00000032); break; case 0x36: - if (D_80165C18[objectIndex].unk_028[1] >= 20.0f) { - D_80165C18[objectIndex].unk_0D2 = 0; - } else if (D_80165C18[objectIndex].unk_028[1] >= 18.0f) { - D_80165C18[objectIndex].unk_0D2 = 1; + if (gObjectList[objectIndex].unk_028[1] >= 20.0f) { + gObjectList[objectIndex].itemDisplay = 0; + } else if (gObjectList[objectIndex].unk_028[1] >= 18.0f) { + gObjectList[objectIndex].itemDisplay = 1; } - if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], D_80165C18[objectIndex].unk_01C[1], 0.5f) != 0) { - func_800721E8(objectIndex, 0x00000200); + if (f32_step_up_towards(&gObjectList[objectIndex].unk_028[1], gObjectList[objectIndex].unk_01C[1], 0.5f) != 0) { + set_object_flag_unk_054_false(objectIndex, 0x00000200); func_8007266C(objectIndex); } break; @@ -5449,15 +5449,15 @@ void func_8007E63C(s32 objectIndex) { func_8007278C(objectIndex, 0x0000001E); break; case 0x66: - if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], 20.0f, 1.5f) != 0) { + if (f32_step_up_towards(&gObjectList[objectIndex].unk_028[1], 20.0f, 1.5f) != 0) { func_80072488(objectIndex); } break; case 0x67: - if (f32_step_down_towards(&D_80165C18[objectIndex].unk_028[1], 0.0f, 1.5f) != 0) { - if (func_8007223C(objectIndex, 0x00020000) != 0) { + if (f32_step_down_towards(&gObjectList[objectIndex].unk_028[1], 0.0f, 1.5f) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00020000) != 0) { func_800722A4(objectIndex, 0x00000010); - if (func_8007223C(objectIndex, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { func_800722A4(objectIndex, 0x00000020); } } @@ -5465,19 +5465,19 @@ void func_8007E63C(s32 objectIndex) { } break; case 0x68: - if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], 12.0f, 1.5f) != 0) { + if (f32_step_up_towards(&gObjectList[objectIndex].unk_028[1], 12.0f, 1.5f) != 0) { func_80072488(objectIndex); } break; case 0x69: - if (f32_step_down_towards(&D_80165C18[objectIndex].unk_028[1], 0.0f, 1.5f) != 0) { - if (func_8007223C(objectIndex, 0x00020000) != 0) { + if (f32_step_down_towards(&gObjectList[objectIndex].unk_028[1], 0.0f, 1.5f) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00020000) != 0) { func_800722A4(objectIndex, 0x00000010); - if (func_8007223C(objectIndex, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { func_800722A4(objectIndex, 0x00000020); } } - func_800C98B8(D_80165C18[objectIndex].pos, D_80165C18[objectIndex].unk_038, 0x19018045U); + func_800C98B8(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_038, 0x19018045U); func_80072488(objectIndex); } break; @@ -5487,28 +5487,28 @@ void func_8007E63C(s32 objectIndex) { } break; case 0x6B: - if (D_80165C18[objectIndex].unk_028[1] >= 22.0f) { - D_80165C18[objectIndex].unk_0D2 = 0; - } else if (D_80165C18[objectIndex].unk_028[1] >= 20.0f) { - D_80165C18[objectIndex].unk_0D2 = 1; - } else if (D_80165C18[objectIndex].unk_028[1] >= 18.0f) { - D_80165C18[objectIndex].unk_0D2 = 2; - } else if (D_80165C18[objectIndex].unk_028[1] >= 16.0f) { - D_80165C18[objectIndex].unk_0D2 = 3; - } else if (D_80165C18[objectIndex].unk_028[1] >= 14.0f) { - D_80165C18[objectIndex].unk_0D2 = 4; + if (gObjectList[objectIndex].unk_028[1] >= 22.0f) { + gObjectList[objectIndex].itemDisplay = 0; + } else if (gObjectList[objectIndex].unk_028[1] >= 20.0f) { + gObjectList[objectIndex].itemDisplay = 1; + } else if (gObjectList[objectIndex].unk_028[1] >= 18.0f) { + gObjectList[objectIndex].itemDisplay = 2; + } else if (gObjectList[objectIndex].unk_028[1] >= 16.0f) { + gObjectList[objectIndex].itemDisplay = 3; + } else if (gObjectList[objectIndex].unk_028[1] >= 14.0f) { + gObjectList[objectIndex].itemDisplay = 4; } else { func_800730BC(objectIndex, 3, 5, 1, 6, -1); } - if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], D_80165C18[objectIndex].unk_01C[1], 0.5f) != 0) { - func_80072388(objectIndex, 0); + if (f32_step_up_towards(&gObjectList[objectIndex].unk_028[1], gObjectList[objectIndex].unk_01C[1], 0.5f) != 0) { + set_object_unk_0CB(objectIndex, 0); func_80072488(objectIndex); } break; case 0x6C: if (func_8007278C(objectIndex, 0x00000064) != 0) { func_800722CC(objectIndex, 2); - func_800721E8(objectIndex, 0x00000200); + set_object_flag_unk_054_false(objectIndex, 0x00000200); func_8007266C(objectIndex); } break; @@ -5520,7 +5520,7 @@ void func_8007E63C(s32 objectIndex) { } break; case 0x12C: - if (func_80073E18(objectIndex, &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00008000) != 0) { + if (func_80073E18(objectIndex, &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x00008000) != 0) { func_800722CC(objectIndex, 4); func_8007266C(objectIndex); } @@ -5529,9 +5529,9 @@ void func_8007E63C(s32 objectIndex) { } void func_8007EC30(s32 objectIndex) { - struct_80165C18_entry *temp_s1; + Objects *temp_s1; - temp_s1 = &D_80165C18[objectIndex]; + temp_s1 = &gObjectList[objectIndex]; temp_s1->unk_044 = 0.0f; temp_s1->unk_010[1] = 0.0f; func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); @@ -5542,13 +5542,13 @@ void func_8007EC30(s32 objectIndex) { func_8008B888(objectIndex, 0U, 0xC000U, 0U); func_8008B8BC(objectIndex, 0U, 0xC000U, 0U); } - func_80073444(objectIndex, d_course_bowsers_castle_thwomp_tlut, d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); + init_texture_object(objectIndex, d_course_bowsers_castle_thwomp_tlut, d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); temp_s1->unk_070 = d_course_bowsers_castle_dl_thwomp; temp_s1->unk_0C8 = 0x000C; temp_s1->sizeScaling = 1.0f; temp_s1->unk_01C[1] = 30.0f; - func_800721C0(objectIndex, 0x05000220); - temp_s1->unk_0A4 = 0; + set_object_flag_unk_054_true(objectIndex, 0x05000220); + temp_s1->type = 0; temp_s1->unk_0DF = 6; func_800724DC(objectIndex); func_80072488(objectIndex); @@ -5556,7 +5556,7 @@ void func_8007EC30(s32 objectIndex) { void func_8007ED6C(s32 objectIndex) { s32 stackPadding[4]; - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 0: break; case 1: @@ -5578,20 +5578,20 @@ void func_8007ED6C(s32 objectIndex) { } func_8007E63C(objectIndex); func_8008BF18(objectIndex); - D_80165C18[objectIndex].unk_0BE[1] = D_80165C18[objectIndex].unk_0B2[1]; + gObjectList[objectIndex].unk_0BE[1] = gObjectList[objectIndex].unk_0B2[1]; func_80073514(objectIndex); } void func_8007EE5C(s32 objectIndex) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - func_80073444(objectIndex, d_course_bowsers_castle_thwomp_tlut, d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); - temp_s0 = &D_80165C18[objectIndex]; + init_texture_object(objectIndex, d_course_bowsers_castle_thwomp_tlut, d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); + temp_s0 = &gObjectList[objectIndex]; temp_s0->sizeScaling = 1.0f; temp_s0->unk_070 = d_course_bowsers_castle_dl_thwomp; temp_s0->unk_0C8 = 0x000C; - func_800721C0(objectIndex, 0x04000220); - temp_s0->unk_0A4 = 0; + set_object_flag_unk_054_true(objectIndex, 0x04000220); + temp_s0->type = 0; temp_s0->unk_0DF = 6; func_80086E70(objectIndex); temp_s0->unk_044 = 0.0f; @@ -5615,68 +5615,68 @@ void func_8007EE5C(s32 objectIndex) { } void func_8007EFBC(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 1: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0800U, 0x00008000) != 0) { - D_80165C18[objectIndex].unk_01C[0] = (f32) ((f64) D_8018D01C * 200.0); + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0800U, 0x00008000) != 0) { + gObjectList[objectIndex].unk_01C[0] = (f32) ((f64) D_8018D01C * 200.0); func_80086FD4(objectIndex); } break; case 2: - if (f32_step_towards(D_80165C18[objectIndex].unk_028, D_80165C18[objectIndex].unk_01C[0], 4.0f) != 0) { + if (f32_step_towards(gObjectList[objectIndex].unk_028, gObjectList[objectIndex].unk_01C[0], 4.0f) != 0) { func_80086FD4(objectIndex); } break; case 3: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00008000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x00008000) != 0) { func_800726CC(objectIndex, 3); func_80086FD4(objectIndex); } break; case 5: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x0000C000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x0000C000) != 0) { func_80086FD4(objectIndex); } break; case 6: - if (f32_step_down_towards(&D_80165C18[objectIndex].unk_028[2], -100.0f, 2.0f) != 0) { + if (f32_step_down_towards(&gObjectList[objectIndex].unk_028[2], -100.0f, 2.0f) != 0) { func_80086FD4(objectIndex); } break; case 7: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00004000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x00004000) != 0) { func_80086FD4(objectIndex); func_800726CC(objectIndex, 3); } break; case 9: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00010000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x00010000) != 0) { func_80086FD4(objectIndex); } break; case 10: - if (f32_step_towards(D_80165C18[objectIndex].unk_028, 0.0f, 4.0f) != 0) { + if (f32_step_towards(gObjectList[objectIndex].unk_028, 0.0f, 4.0f) != 0) { func_80086FD4(objectIndex); } break; case 11: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00010000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x00010000) != 0) { func_80086FD4(objectIndex); func_800726CC(objectIndex, 3); } break; case 13: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00014000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x00014000) != 0) { func_80086FD4(objectIndex); } break; case 14: - if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[2], 0.0f, 2.0f) != 0) { + if (f32_step_up_towards(&gObjectList[objectIndex].unk_028[2], 0.0f, 2.0f) != 0) { func_80086FD4(objectIndex); } break; case 15: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x0000C000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x0000C000) != 0) { func_80086FD4(objectIndex); func_800726CC(objectIndex, 3); } @@ -5691,68 +5691,68 @@ void func_8007EFBC(s32 objectIndex) { } void func_8007F280(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 1: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00010000) != 0) { - D_80165C18[objectIndex].unk_01C[0] = (f32) ((f64) D_8018D01C * -200.0); + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x00010000) != 0) { + gObjectList[objectIndex].unk_01C[0] = (f32) ((f64) D_8018D01C * -200.0); func_80086FD4(objectIndex); } break; case 2: - if (f32_step_towards(D_80165C18[objectIndex].unk_028, D_80165C18[objectIndex].unk_01C[0], 4.0f) != 0) { + if (f32_step_towards(gObjectList[objectIndex].unk_028, gObjectList[objectIndex].unk_01C[0], 4.0f) != 0) { func_80086FD4(objectIndex); } break; case 3: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00010000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x00010000) != 0) { func_800726CC(objectIndex, 3); func_80086FD4(objectIndex); } break; case 5: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00004000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x00004000) != 0) { func_80086FD4(objectIndex); } break; case 6: - if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[2], 100.0f, 2.0f) != 0) { + if (f32_step_up_towards(&gObjectList[objectIndex].unk_028[2], 100.0f, 2.0f) != 0) { func_80086FD4(objectIndex); } break; case 7: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x0000C000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x0000C000) != 0) { func_80086FD4(objectIndex); func_800726CC(objectIndex, 3); } break; case 9: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00008000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x00008000) != 0) { func_80086FD4(objectIndex); } break; case 10: - if (f32_step_towards(D_80165C18[objectIndex].unk_028, 0.0f, 4.0f) != 0) { + if (f32_step_towards(gObjectList[objectIndex].unk_028, 0.0f, 4.0f) != 0) { func_80086FD4(objectIndex); } break; case 11: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00008000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x00008000) != 0) { func_80086FD4(objectIndex); func_800726CC(objectIndex, 3); } break; case 13: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x0000C000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x0000C000) != 0) { func_80086FD4(objectIndex); } break; case 14: - if (f32_step_down_towards(&D_80165C18[objectIndex].unk_028[2], 0.0f, 2.0f) != 0) { + if (f32_step_down_towards(&gObjectList[objectIndex].unk_028[2], 0.0f, 2.0f) != 0) { func_80086FD4(objectIndex); } break; case 15: - if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00014000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &gObjectList[objectIndex].unk_0B2[1], 0x0400U, 0x00014000) != 0) { func_80086FD4(objectIndex); func_800726CC(objectIndex, 3); } @@ -5767,7 +5767,7 @@ void func_8007F280(s32 objectIndex) { } void func_8007F544(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0DD) { /* irregular */ + switch (gObjectList[objectIndex].unk_0DD) { /* irregular */ case 1: func_8007EFBC(objectIndex); break; @@ -5779,7 +5779,7 @@ void func_8007F544(s32 objectIndex) { void func_8007F5A8(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 0: break; case 1: @@ -5800,11 +5800,11 @@ void func_8007F5A8(s32 objectIndex) { } void func_8007F660(s32 objectIndex, s32 arg1, s32 arg2) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; func_800722A4(objectIndex, 8); func_80086E70(objectIndex); - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_0DD = 1; temp_v0->unk_0D1 = arg1; temp_v0->unk_048 = arg2; @@ -5816,9 +5816,9 @@ void func_8007F6C4(s32 objectIndex, s32 playerId) { player = &gPlayerOne[playerId]; func_800722A4(objectIndex, 8); func_80086E70(objectIndex); - D_80165C18[objectIndex].unk_0DD = 2; - D_80165C18[objectIndex].unk_01C[0] = player->pos[0] - D_80165C18[objectIndex].unk_010[0]; - D_80165C18[objectIndex].unk_0D1 = playerId; + gObjectList[objectIndex].unk_0DD = 2; + gObjectList[objectIndex].unk_01C[0] = player->pos[0] - gObjectList[objectIndex].unk_010[0]; + gObjectList[objectIndex].unk_0D1 = playerId; } s32 func_8007F75C(s32 playerId) { @@ -5834,7 +5834,7 @@ s32 func_8007F75C(s32 playerId) { temp_s7 = random_int(0x0032U) + 0x32; for (someIndex = 0; someIndex < D_80165750; someIndex++) { objectIndex = D_80183EA0[someIndex]; - if (D_80165C18[objectIndex].unk_0D5 == 3) { + if (gObjectList[objectIndex].unk_0D5 == 3) { var_s6 = 1; func_8007F660(objectIndex, playerId, temp_s7); } @@ -5842,7 +5842,7 @@ s32 func_8007F75C(s32 playerId) { } else if ((waypoint >= 0xD7) && (waypoint < 0xE2)) { for (someIndex = 0; someIndex < D_80165750; someIndex++) { objectIndex = D_80183EA0[someIndex]; - if (D_80165C18[objectIndex].unk_0D5 == 3) { + if (gObjectList[objectIndex].unk_0D5 == 3) { var_s6 = 1; func_8007F6C4(objectIndex, playerId); } @@ -5857,16 +5857,16 @@ void func_8007F8D8(void) { s32 var_s0; s32 someIndex; s32 var_s4; - struct_80165C18_entry *object; + Objects *object; player = gPlayerOne; var_s4 = 1; for (someIndex = 0; someIndex < D_80165750; someIndex++){ objectIndex = D_80183EA0[someIndex]; - object = &D_80165C18[objectIndex]; + object = &gObjectList[objectIndex]; if (object->unk_0D5 == 3) { var_s0 = 0; - if ((object->unk_0A6 >= 2) && (func_80072354(objectIndex, 8) != 0)) { + if ((object->state >= 2) && (func_80072354(objectIndex, 8) != 0)) { var_s0 = 1; } var_s4 *= var_s0; @@ -5874,7 +5874,7 @@ void func_8007F8D8(void) { } if (var_s4 != 0) { for (var_s0 = 0; var_s0 < 4; var_s0++, player++){ - if ((player->unk_000 & 0x8000) && !(player->unk_000 & 0x1000)) { + if ((player->type & PLAYER_EXISTS) && !(player->type & PLAYER_CPU)) { if (func_8007F75C(var_s0) != 0) break; } } @@ -5882,15 +5882,15 @@ void func_8007F8D8(void) { } void func_8007FA08(s32 objectIndex) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - func_80073444(objectIndex, d_course_bowsers_castle_thwomp_tlut, d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); - temp_s0 = &D_80165C18[objectIndex]; + init_texture_object(objectIndex, d_course_bowsers_castle_thwomp_tlut, d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); + temp_s0 = &gObjectList[objectIndex]; temp_s0->unk_070 = d_course_bowsers_castle_dl_thwomp; temp_s0->unk_0C8 = 0x000C; temp_s0->sizeScaling = 1.0f; - func_800721C0(objectIndex, 0x04000220); - temp_s0->unk_0A4 = 0; + set_object_flag_unk_054_true(objectIndex, 0x04000220); + temp_s0->type = 0; temp_s0->unk_044 = 0.0f; temp_s0->unk_010[1] = 0.0f; func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); @@ -5915,16 +5915,16 @@ extern f32 D_8018D01C; extern s32 D_8018D400; void func_8007FB48(s32 objectIndex) { - struct_80165C18_entry *sp18; + Objects *sp18; s16 temp_a0; s16 var_a0; s32 temp_v0; s32 var_v0; - struct_80165C18_entry *temp_v1; + Objects *temp_v1; u16 temp_t2; u16 temp_v0_2; - temp_v1 = &D_80165C18[objectIndex]; + temp_v1 = &gObjectList[objectIndex]; temp_t2 = (u16) temp_v1->unk_0AE; switch (temp_t2) { case 1: @@ -5962,7 +5962,7 @@ void func_8007FB48(s32 objectIndex) { var_a0 = temp_v1->unk_0B0; temp_v1->unk_0B2[1] = func_800417B4(temp_v1->unk_0B2[1], (temp_v1->unk_0BE[1] + 0x8000) & 0xFFFF); if (var_a0 == 0x0064) { - temp_v1->unk_0D2 = 1; + temp_v1->itemDisplay = 1; var_a0 = temp_v1->unk_0B0; } } @@ -6001,7 +6001,7 @@ block_20: sp18 = temp_v1; func_800722CC(objectIndex, 8); func_80086FD4(objectIndex); - temp_v1->unk_0D2 = 0; + temp_v1->itemDisplay = 0; } break; } @@ -6011,9 +6011,9 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007FB48.s") #endif void func_8007FEA4(s32 objectIndex) { - struct_80165C18_entry *temp_v1; + Objects *temp_v1; - temp_v1 = &D_80165C18[objectIndex]; + temp_v1 = &gObjectList[objectIndex]; switch (temp_v1->unk_0AE) { case 1: if (f32_step_towards(&temp_v1->unk_028[0], temp_v1->unk_01C[0], 5.0f) != 0) { @@ -6035,7 +6035,7 @@ void func_8007FEA4(s32 objectIndex) { void func_8007FF5C(s32 objectIndex) { - switch(D_80165C18[objectIndex].unk_0DD) { + switch(gObjectList[objectIndex].unk_0DD) { case 1: func_8007FB48(objectIndex); break; @@ -6046,7 +6046,7 @@ void func_8007FF5C(s32 objectIndex) } void func_8007FFC0(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 0: break; case 1: @@ -6067,15 +6067,15 @@ void func_8007FFC0(s32 objectIndex) { } void func_80080078(s32 objectIndex) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - func_80073444(objectIndex, d_course_bowsers_castle_thwomp_tlut, d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); - temp_s0 = &D_80165C18[objectIndex]; + init_texture_object(objectIndex, d_course_bowsers_castle_thwomp_tlut, d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); + temp_s0 = &gObjectList[objectIndex]; temp_s0->unk_070 = d_course_bowsers_castle_dl_thwomp; temp_s0->unk_0C8 = 0x000C; temp_s0->sizeScaling = 1.0f; - func_800721C0(objectIndex, 0x04000220); - temp_s0->unk_0A4 = 2; + set_object_flag_unk_054_true(objectIndex, 0x04000220); + temp_s0->type = 2; temp_s0->unk_0DF = 8; func_8008B888(objectIndex, 0U, 0U, 0U); temp_s0->unk_044 = 0.0f; @@ -6106,10 +6106,10 @@ void func_80080078(s32 objectIndex) { } void func_800801FC(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; - switch (temp_v0->unk_0A6) { + temp_v0 = &gObjectList[objectIndex]; + switch (temp_v0->state) { case 0: break; case 1: @@ -6132,17 +6132,17 @@ void func_800801FC(s32 objectIndex) { } void func_800802C0(s32 objectIndex) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; temp_s0->unk_0D8 = 0; - func_80073444(objectIndex, d_course_bowsers_castle_thwomp_tlut, d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); + init_texture_object(objectIndex, d_course_bowsers_castle_thwomp_tlut, d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); temp_s0->unk_070 = d_course_bowsers_castle_dl_thwomp; - temp_s0->unk_0D2 = 0; + temp_s0->itemDisplay = 0; temp_s0->unk_0C8 = 0x000C; temp_s0->sizeScaling = 1.5f; - func_800721C0(objectIndex, 0x05000220); - temp_s0->unk_0A4 = 1; + set_object_flag_unk_054_true(objectIndex, 0x05000220); + temp_s0->type = 1; temp_s0->unk_0DF = 6; func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); func_8008B888(objectIndex, 0U, 0U, 0U); @@ -6162,7 +6162,7 @@ void func_800802C0(s32 objectIndex) { } void func_80080408(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 0: break; case 1: @@ -6170,14 +6170,14 @@ void func_80080408(s32 objectIndex) { break; case 2: func_8008A6DC(objectIndex, 100.0f); - if (func_8007223C(objectIndex, 0x00040000) != 0) { - func_800C98B8(D_80165C18[objectIndex].pos, D_80165C18[objectIndex].unk_038, 0x19018045U); + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { + func_800C98B8(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_038, 0x19018045U); func_80072488(objectIndex); } break; case 3: if (func_800730BC(objectIndex, 3, 5, 1, 6, 6) != 0) { - D_80165C18[objectIndex].unk_0D2 = 0; + gObjectList[objectIndex].itemDisplay = 0; } break; case 4: @@ -6191,16 +6191,16 @@ void func_80080408(s32 objectIndex) { } void func_80080524(s32 objectIndex) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - func_80073444(objectIndex, d_course_bowsers_castle_thwomp_tlut, d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); - temp_s0 = &D_80165C18[objectIndex]; + init_texture_object(objectIndex, d_course_bowsers_castle_thwomp_tlut, d_course_bowsers_castle_thwomp_faces, 0x10U, (u16) 0x00000040); + temp_s0 = &gObjectList[objectIndex]; temp_s0->unk_070 = d_course_bowsers_castle_dl_thwomp; temp_s0->unk_0C8 = 0x000C; - temp_s0->unk_0D2 = 0; + temp_s0->itemDisplay = 0; temp_s0->sizeScaling = 1.0f; - func_800721C0(objectIndex, 0x04000220); - temp_s0->unk_0A4 = 0; + set_object_flag_unk_054_true(objectIndex, 0x04000220); + temp_s0->type = 0; temp_s0->unk_0DF = 0x0A; func_80086E70(objectIndex); func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); @@ -6228,18 +6228,18 @@ void func_80080524(s32 objectIndex) { } void func_800806BC(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 0: break; case 1: - if (f32_step_towards(&D_80165C18[objectIndex].unk_028[2], 250.0f, D_80165C18[objectIndex].unk_038[2]) != 0) { - D_80165C18[objectIndex].unk_038[2] = -D_80165C18[objectIndex].unk_038[2]; + if (f32_step_towards(&gObjectList[objectIndex].unk_028[2], 250.0f, gObjectList[objectIndex].unk_038[2]) != 0) { + gObjectList[objectIndex].unk_038[2] = -gObjectList[objectIndex].unk_038[2]; func_80086FD4(objectIndex); } break; case 2: - if (f32_step_towards(&D_80165C18[objectIndex].unk_028[2], 0.0f, D_80165C18[objectIndex].unk_038[2]) != 0) { - D_80165C18[objectIndex].unk_038[2] = -D_80165C18[objectIndex].unk_038[2]; + if (f32_step_towards(&gObjectList[objectIndex].unk_028[2], 0.0f, gObjectList[objectIndex].unk_038[2]) != 0) { + gObjectList[objectIndex].unk_038[2] = -gObjectList[objectIndex].unk_038[2]; func_8008701C(objectIndex, 1); } break; @@ -6247,18 +6247,18 @@ void func_800806BC(s32 objectIndex) { } void func_8008078C(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 0: break; case 1: - if (f32_step_towards(&D_80165C18[objectIndex].unk_028[2], -250.0f, D_80165C18[objectIndex].unk_038[2]) != 0) { - D_80165C18[objectIndex].unk_038[2] = -D_80165C18[objectIndex].unk_038[2]; + if (f32_step_towards(&gObjectList[objectIndex].unk_028[2], -250.0f, gObjectList[objectIndex].unk_038[2]) != 0) { + gObjectList[objectIndex].unk_038[2] = -gObjectList[objectIndex].unk_038[2]; func_80086FD4(objectIndex); } break; case 2: - if (f32_step_towards(&D_80165C18[objectIndex].unk_028[2], 0.0f, D_80165C18[objectIndex].unk_038[2]) != 0) { - D_80165C18[objectIndex].unk_038[2] = -D_80165C18[objectIndex].unk_038[2]; + if (f32_step_towards(&gObjectList[objectIndex].unk_028[2], 0.0f, gObjectList[objectIndex].unk_038[2]) != 0) { + gObjectList[objectIndex].unk_038[2] = -gObjectList[objectIndex].unk_038[2]; func_8008701C(objectIndex, 1); } break; @@ -6266,7 +6266,7 @@ void func_8008078C(s32 objectIndex) { } void func_8008085C(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0DD) { + switch (gObjectList[objectIndex].unk_0DD) { case 1: func_800806BC(objectIndex); break; @@ -6283,12 +6283,12 @@ extern s32 D_8018D40C; extern s16 gCutsceneShotTimer; void func_800808CC(s32 arg0) { - struct_80165C18_entry *sp20; + Objects *sp20; s16 var_v1; - struct_80165C18_entry *temp_t0; + Objects *temp_t0; - temp_t0 = &D_80165C18[arg0]; - var_v1 = temp_t0->unk_0A6; + temp_t0 = &gObjectList[arg0]; + var_v1 = temp_t0->state; switch (var_v1) { /* irregular */ case 0: break; @@ -6296,7 +6296,7 @@ void func_800808CC(s32 arg0) { sp20 = temp_t0; func_80080524(arg0); block_6: - var_v1 = temp_t0->unk_0A6; + var_v1 = temp_t0->state; break; case 2: sp20 = temp_t0; @@ -6309,7 +6309,7 @@ block_6: func_8008085C(arg0); func_80073514(arg0); if (gGamestate != 9) { - if ((D_8018D40C == 0) && (temp_t0->unk_0A6 == 2)) { + if ((D_8018D40C == 0) && (temp_t0->state == 2)) { func_800C98B8(temp_t0->pos, temp_t0->unk_038, 0x19036045U); } } else if ((gCutsceneShotTimer < 0xBF) && (((s16) gCutsceneShotTimer % 88) == 0x0000001E)) { @@ -6334,7 +6334,7 @@ void func_80080A4C(s32 objectIndex, s32 cameraPlayerId) { if (gScreenModeSelection != 3) { if ((func_80072320(objectIndex, 0x00000010) != 0) && (func_80088A58(objectIndex, player, 500.0f) != 0)) { func_8001CA10(camera); - func_800C98B8(D_80165C18[objectIndex].pos, D_80165C18[objectIndex].unk_038, 0x1900800FU); + func_800C98B8(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_038, 0x1900800FU); } } } @@ -6344,30 +6344,30 @@ void func_80080B28(s32 objectIndex, s32 playerId) { Player *temp_s0; temp_s0 = &gPlayerOne[playerId]; - if (func_8007223C(objectIndex, 0x00000200) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) { if (!(temp_s0->statusEffects & 0x100)) { temp_f0 = func_80088F54(objectIndex, temp_s0); - if ((temp_f0 <= 9.0) && !(temp_s0->unk_0BC & 0x04000000) && (func_80088D18(objectIndex, temp_s0) != 0)) { - if ((temp_s0->unk_000 & 0x8000) && !(temp_s0->unk_000 & 0x100)) { - if (!(temp_s0->unk_0BC & 0x200)) { + if ((temp_f0 <= 9.0) && !(temp_s0->effects & 0x04000000) && (func_80088D18(objectIndex, temp_s0) != 0)) { + if ((temp_s0->type & 0x8000) && !(temp_s0->type & 0x100)) { + if (!(temp_s0->effects & 0x200)) { func_80089474(objectIndex, playerId, 1.4f, 1.1f, 0x1900A04CU); } else if (func_80072354(objectIndex, 0x00000040) != 0) { - if (temp_s0->unk_000 & 0x1000) { - func_800C98B8(temp_s0->pos, temp_s0->unk_034, 0x1901A24AU); + if (temp_s0->type & 0x1000) { + func_800C98B8(temp_s0->pos, temp_s0->velocity, 0x1901A24AU); } else { func_800C9060((u8) playerId, 0x1901A24AU); } func_80080DE4(objectIndex); - func_80075304(D_80165C18[objectIndex].pos, 3, 3, D_8018D3C4); - func_800721E8(objectIndex, 0x00000200); + func_80075304(gObjectList[objectIndex].pos, 3, 3, D_8018D3C4); + set_object_flag_unk_054_false(objectIndex, 0x00000200); func_800722A4(objectIndex, 0x00000040); func_80086F60(objectIndex); func_800726CC(objectIndex, 0x000000C8); } } } else if ((temp_f0 <= 17.5) && (func_80072320(objectIndex, 1) != 0) && (func_80088A58(objectIndex, temp_s0, (temp_s0->unk_094 * 0.5) + 7.0) != 0)) { - if ((temp_s0->unk_000 & 0x8000) && !(temp_s0->unk_000 & 0x100)) { - if (func_8007223C(objectIndex, 0x04000000) != 0) { + if ((temp_s0->type & 0x8000) && !(temp_s0->type & 0x100)) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) { func_80072180(); } func_800722A4(objectIndex, 2); @@ -6409,24 +6409,24 @@ s16 D_800E597C[6] = { 0, 0, 0x4000, 0x8000, 0x8000, 0xC000 }; void func_80080E8C(s32 objectIndex1, s32 objectIndex2, s32 arg2) { f32 sp38; - struct_80165C18_entry *sp2C; + Objects *sp2C; s32 sp28; f32 *sp24; f32 *temp_v1; s32 temp_t1; s32 temp_t7; - struct_80165C18_entry *temp_s0; - struct_80165C18_entry *temp_v0; + Objects *temp_s0; + Objects *temp_v0; u16 temp_s1; func_800723A4(objectIndex1, arg2); temp_t1 = arg2 * 2; temp_v1 = &(*D_800E594C)[temp_t1]; - temp_s0 = &D_80165C18[objectIndex1]; + temp_s0 = &gObjectList[objectIndex1]; temp_s0->unk_0D5 = 2; sp24 = temp_v1; sp28 = temp_t1; - temp_v0 = &D_80165C18[objectIndex2]; + temp_v0 = &gObjectList[objectIndex2]; temp_s1 = temp_v0->unk_0BE[1]; sp2C = temp_v0; sp38 = func_800416D8(temp_v1->unk4, temp_v1->unk0, temp_s1); @@ -6453,9 +6453,9 @@ void func_80080FEC(s32 arg0) { } void func_80081080(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->activeTexture = D_8018D490; temp_v0->textureList = D_8018D490; temp_v0->unk_0A0 = 0x00FF; @@ -6470,7 +6470,7 @@ void func_80081080(s32 objectIndex) { } void func_800810F4(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 0: break; case 1: @@ -6478,9 +6478,9 @@ void func_800810F4(s32 objectIndex) { break; case 2: func_8008775C(objectIndex); - f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], 14.0f, 0.5f); - func_8007415C(objectIndex, &D_80165C18[objectIndex].sizeScaling, 0.25f, 0.75f, 0.025f, 1, 0); - if (func_80073B00(objectIndex, &D_80165C18[objectIndex].unk_0A0, 0x000000FF, 0, 4, 0, 0) != 0) { + f32_step_up_towards(&gObjectList[objectIndex].unk_028[1], 14.0f, 0.5f); + func_8007415C(objectIndex, &gObjectList[objectIndex].sizeScaling, 0.25f, 0.75f, 0.025f, 1, 0); + if (func_80073B00(objectIndex, &gObjectList[objectIndex].unk_0A0, 0x000000FF, 0, 4, 0, 0) != 0) { func_80072488(objectIndex); } break; @@ -6497,39 +6497,39 @@ void func_80081208(void) { void func_80081210(void) { Player *player; - s32 var_s2; + s32 objectIndex; s32 var_s2_3; s32 var_s4; D_80165834[0] += 0x100; D_80165834[1] += 0x200; for (var_s4 = 0; var_s4 < D_80165750; var_s4++) { - var_s2 = D_80183EA0[var_s4]; - func_800722CC(var_s2, 0x00000010); - func_8008A4CC(var_s2); + objectIndex = D_80183EA0[var_s4]; + func_800722CC(objectIndex, 0x00000010); + func_8008A4CC(objectIndex); } func_8007F8D8(); for (var_s4 = 0; var_s4 < D_80165750; var_s4++) { - var_s2 = D_80183EA0[var_s4]; - if (D_80165C18[var_s2].unk_0A6 != 0) { - switch (D_80165C18[var_s2].unk_0D5) { + objectIndex = D_80183EA0[var_s4]; + if (gObjectList[objectIndex].state != 0) { + switch (gObjectList[objectIndex].unk_0D5) { case 1: - func_8007ED6C(var_s2); + func_8007ED6C(objectIndex); break; case 2: - func_8007F5A8(var_s2); + func_8007F5A8(objectIndex); break; case 3: - func_8007FFC0(var_s2); + func_8007FFC0(objectIndex); break; case 4: - func_800801FC(var_s2); + func_800801FC(objectIndex); break; case 6: - func_80080408(var_s2); + func_80080408(objectIndex); break; case 5: - func_800808CC(var_s2); + func_800808CC(objectIndex); break; } } @@ -6539,33 +6539,33 @@ void func_80081210(void) { player->boundingBoxCorners[0].unk_14 &= ~3; player->unk_046 &= ~0x0006; for (var_s2_3 = 0; var_s2_3 < D_80165750; var_s2_3++) { - var_s2 = D_80183EA0[var_s2_3]; - if (!(player->unk_0BC & 0x80000000)) { - func_80080B28(var_s2, var_s4); + objectIndex = D_80183EA0[var_s2_3]; + if (!(player->effects & 0x80000000)) { + func_80080B28(objectIndex, var_s4); } - if (func_8007223C(var_s2, 0x00020000) != 0) { - func_80080A14(var_s2, player); + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00020000) != 0) { + func_80080A14(objectIndex, player); } - if (func_8007223C(var_s2, 0x00010000) != 0) { - func_80080A4C(var_s2, var_s4); + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00010000) != 0) { + func_80080A4C(objectIndex, var_s4); } } } func_8007542C(3); for (var_s4 = 0; var_s4 < D_80165750; var_s4++) { - var_s2 = D_80183EA0[var_s4]; - if (func_80072320(var_s2, 0x00000020) == 0) continue; + objectIndex = D_80183EA0[var_s4]; + if (func_80072320(objectIndex, 0x00000020) == 0) continue; - func_800722CC(var_s2, 0x00000020); - func_80080FEC(var_s2); + func_800722CC(objectIndex, 0x00000020); + func_80080FEC(objectIndex); } for (var_s4 = 0; var_s4 < D_8018C3F0_SIZE; var_s4++) { - var_s2 = D_8018C3F0[var_s4]; - if (var_s2 == -1) continue; - if (D_80165C18[var_s2].unk_0A6 == 0) continue; - func_800810F4(var_s2); - if (D_80165C18[var_s2].unk_0A6 != 0) continue; - func_80072100(&D_8018C3F0[var_s4]); + objectIndex = D_8018C3F0[var_s4]; + if (objectIndex == DELETED_OBJECT_ID) continue; + if (gObjectList[objectIndex].state == 0) continue; + func_800810F4(objectIndex); + if (gObjectList[objectIndex].state != 0) continue; + delete_object_wrapper(&D_8018C3F0[var_s4]); } } @@ -6586,31 +6586,31 @@ void func_8008153C(s32 objectIndex) { for (var_s1 = 0; var_s1 < D_8018C3F0_SIZE; var_s1++) { loopObjectIndex = D_8018C3F0[var_s1]; - if (D_80165C18[loopObjectIndex].unk_0A6 != 0) continue; + if (gObjectList[loopObjectIndex].state != 0) continue; func_800723A4(loopObjectIndex, 0); - D_80165C18[loopObjectIndex].activeTLUT = d_course_moo_moo_farm_mole_dirt; - D_80165C18[loopObjectIndex].tlutList = d_course_moo_moo_farm_mole_dirt; - D_80165C18[loopObjectIndex].sizeScaling = 0.15f; - D_80165C18[loopObjectIndex].unk_038[1] = random_int(0x000AU); - D_80165C18[loopObjectIndex].unk_038[1] = (D_80165C18[loopObjectIndex].unk_038[1] * 0.1) + 4.8; - D_80165C18[loopObjectIndex].unk_034 = random_int(5U); - D_80165C18[loopObjectIndex].unk_034 = (D_80165C18[loopObjectIndex].unk_034 * 0.01) + 0.8; - D_80165C18[loopObjectIndex].unk_0B2[1] = (0x10000 / sp70) * var_s1; - D_80165C18[loopObjectIndex].unk_010[0] = D_80165C18[objectIndex].unk_010[0]; - D_80165C18[loopObjectIndex].unk_010[1] = D_80165C18[objectIndex].unk_010[1] - 13.0; - D_80165C18[loopObjectIndex].unk_010[2] = D_80165C18[objectIndex].unk_010[2]; + gObjectList[loopObjectIndex].activeTLUT = d_course_moo_moo_farm_mole_dirt; + gObjectList[loopObjectIndex].tlutList = d_course_moo_moo_farm_mole_dirt; + gObjectList[loopObjectIndex].sizeScaling = 0.15f; + gObjectList[loopObjectIndex].unk_038[1] = random_int(0x000AU); + gObjectList[loopObjectIndex].unk_038[1] = (gObjectList[loopObjectIndex].unk_038[1] * 0.1) + 4.8; + gObjectList[loopObjectIndex].unk_034 = random_int(5U); + gObjectList[loopObjectIndex].unk_034 = (gObjectList[loopObjectIndex].unk_034 * 0.01) + 0.8; + gObjectList[loopObjectIndex].unk_0B2[1] = (0x10000 / sp70) * var_s1; + gObjectList[loopObjectIndex].unk_010[0] = gObjectList[objectIndex].unk_010[0]; + gObjectList[loopObjectIndex].unk_010[1] = gObjectList[objectIndex].unk_010[1] - 13.0; + gObjectList[loopObjectIndex].unk_010[2] = gObjectList[objectIndex].unk_010[2]; break; } } } void func_80081790(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 0: break; /* irregular */ case 1: - if (func_80087E08(objectIndex, D_80165C18[objectIndex].unk_038[1], 0.3f, D_80165C18[objectIndex].unk_034, D_80165C18[objectIndex].unk_0B2[1], 0x00000032) != 0) { + if (func_80087E08(objectIndex, gObjectList[objectIndex].unk_038[1], 0.3f, gObjectList[objectIndex].unk_034, gObjectList[objectIndex].unk_0B2[1], 0x00000032) != 0) { func_80072488(objectIndex); } func_8008BF18(objectIndex); @@ -6623,22 +6623,22 @@ void func_80081790(s32 objectIndex) { } void func_80081848(s32 objectIndex) { - func_80073444(objectIndex, d_course_moo_moo_farm_mole_tlut, d_course_moo_moo_farm_mole_frames, 0x20U, (u16) 0x00000040); - D_80165C18[objectIndex].sizeScaling = 0.15f; - D_80165C18[objectIndex].unk_0D2 = 0; + init_texture_object(objectIndex, d_course_moo_moo_farm_mole_tlut, d_course_moo_moo_farm_mole_frames, 0x20U, (u16) 0x00000040); + gObjectList[objectIndex].sizeScaling = 0.15f; + gObjectList[objectIndex].itemDisplay = 0; func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); func_8008B888(objectIndex, 0U, 0U, 0U); func_8008B8BC(objectIndex, 0U, 0U, 0x8000U); - D_80165C18[objectIndex].unk_0C8 = 6; - D_80165C18[objectIndex].unk_038[1] = 4.0f; - func_800721C0(objectIndex, 0x04000000); + gObjectList[objectIndex].unk_0C8 = 6; + gObjectList[objectIndex].unk_038[1] = 4.0f; + set_object_flag_unk_054_true(objectIndex, 0x04000000); func_80072488(objectIndex); } void func_80081924(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 1: - if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], 9.0f, 0.7f) != 0) { + if (f32_step_up_towards(&gObjectList[objectIndex].unk_028[1], 9.0f, 0.7f) != 0) { func_80086FD4(objectIndex); } break; @@ -6646,7 +6646,7 @@ void func_80081924(s32 objectIndex) { func_800871AC(objectIndex, 0x0000000A); break; case 3: - if (f32_step_down_towards(&D_80165C18[objectIndex].unk_028[1], 3.0f, 1.0f) != 0) { + if (f32_step_down_towards(&gObjectList[objectIndex].unk_028[1], 3.0f, 1.0f) != 0) { func_80086F60(objectIndex); } break; @@ -6657,11 +6657,11 @@ void func_80081924(s32 objectIndex) { func_80086F60(objectIndex); break; case 10: - D_80165C18[objectIndex].unk_0B2[2] += 0x1000; - D_80165C18[objectIndex].unk_038[1] -= 0.184; + gObjectList[objectIndex].unk_0B2[2] += 0x1000; + gObjectList[objectIndex].unk_038[1] -= 0.184; func_8008751C(objectIndex); func_80087710(objectIndex); - if (D_80165C18[objectIndex].pos[1] <= -10.0) { + if (gObjectList[objectIndex].pos[1] <= -10.0) { func_80086F60(objectIndex); } break; @@ -6672,7 +6672,7 @@ void func_80081924(s32 objectIndex) { } void func_80081A88(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0DD) { /* irregular */ + switch (gObjectList[objectIndex].unk_0DD) { /* irregular */ case 0: break; case 1: @@ -6695,10 +6695,10 @@ void func_80081AFC(s32 objectIndex, s32 arg1) { ? *sp2C; s16 temp_v1; s32 temp_v0; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; - temp_v1 = temp_s0->unk_0A6; + temp_s0 = &gObjectList[objectIndex]; + temp_v1 = temp_s0->state; switch (temp_v1) { /* irregular */ case 0x1: func_80081848(objectIndex); @@ -6708,7 +6708,7 @@ void func_80081AFC(s32 objectIndex, s32 arg1) { if (temp_v0 == 0) { func_80086EAC(objectIndex, 2, 1); func_80072488(objectIndex); - func_800721C0(objectIndex, 0x00000200); + set_object_flag_unk_054_true(objectIndex, 0x00000200); } else { temp_s0->unk_04C = temp_v0 - 1; } @@ -6734,7 +6734,7 @@ void func_80081AFC(s32 objectIndex, s32 arg1) { break; case 0x64: if (temp_s0->unk_0AE == 0) { - func_800721E8(objectIndex, 0x00000200); + set_object_flag_unk_054_false(objectIndex, 0x00000200); func_80072428(objectIndex); switch (arg1) { /* switch 1; irregular */ case 1: /* switch 1 */ @@ -6747,11 +6747,11 @@ void func_80081AFC(s32 objectIndex, s32 arg1) { sp2C = &D_8018D1B8; break; } - *(sp2C + temp_s0->unk_0A4) = 0; + *(sp2C + temp_s0->type) = 0; } break; } - if (temp_s0->unk_0A6 >= 2) { + if (temp_s0->state >= 2) { func_80073514(objectIndex); } } @@ -6764,20 +6764,20 @@ void func_80081D34(s32 objectIndex) { Camera *var_s4; s32 var_s2; s32 var_s5; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; var_s5 = 0; var_s1 = gPlayerOne; var_s4 = camera1; for (var_s2 = 0; var_s2 < D_8018D158; var_s2++, var_s1++, var_s4++) { - if ((func_8007223C(objectIndex, 0x00000200) != 0) && !(var_s1->unk_0BC & 0x80000000) && (func_80088DA4(objectIndex, var_s1) != 0)) { - if ((var_s1->unk_000 & 0x8000) && !(var_s1->unk_000 & 0x100)) { + if ((is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) && !(var_s1->effects & 0x80000000) && (func_80088DA4(objectIndex, var_s1) != 0)) { + if ((var_s1->type & 0x8000) && !(var_s1->type & 0x100)) { var_s5 = 1; - temp_s0 = &D_80165C18[objectIndex]; - if (func_8007223C(objectIndex, 0x04000000) != 0) { + temp_s0 = &gObjectList[objectIndex]; + if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) { func_80072180(); } - if (var_s1->unk_0BC & 0x200) { + if (var_s1->effects & 0x200) { func_800C9060(var_s2, 0x1900A046U); } else { var_s1->statusEffects |= 2; @@ -6795,8 +6795,8 @@ void func_80081D34(s32 objectIndex) { } } if (var_s5 != 0) { - temp_s0 = &D_80165C18[objectIndex]; - func_800721E8(objectIndex, 0x00000200); + temp_s0 = &gObjectList[objectIndex]; + set_object_flag_unk_054_false(objectIndex, 0x00000200); func_80086F60(objectIndex); func_8008B7D4(objectIndex, temp_s0->pos[0], temp_s0->pos[1], temp_s0->pos[2]); func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); @@ -6817,16 +6817,16 @@ void func_80081FF4(s32 objectIndex, s32 arg1) { s32 sp2C; s16 sp28; ? *sp20; - struct_80165C18_entry *sp18; + Objects *sp18; ? *var_a2; s16 var_v1; s32 var_a0; s8 *temp_v0; - struct_80165C18_entry *temp_a3; + Objects *temp_a3; void *temp_v0_2; func_800723A4(objectIndex, 0); - temp_a3 = &D_80165C18[objectIndex]; + temp_a3 = &gObjectList[objectIndex]; temp_a3->unk_04C = random_int(0x001EU) + 5; switch (arg1) { /* irregular */ case 1: @@ -6864,7 +6864,7 @@ loop_9: } } else { *temp_v0 = 1; - temp_a3->unk_0A4 = var_v1; + temp_a3->type = var_v1; } } temp_v0_2 = (sp28 * 2) + (var_v1 * 6) + &D_800E6360; @@ -6877,7 +6877,7 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80081FF4.s") #endif void func_800821AC(s32 objectIndex, s32 arg1) { - if (D_80165C18[objectIndex].unk_0A6 != 0) { + if (gObjectList[objectIndex].state != 0) { func_80081AFC(objectIndex, arg1); func_80081A88(objectIndex); func_80081D34(objectIndex); @@ -6886,46 +6886,46 @@ void func_800821AC(s32 objectIndex, s32 arg1) { void func_800821FC(void) { s32 var_s1; - s32 var_s2; + s32 objectIndex; s32 stackPadding; for (var_s1 = 0; var_s1 < D_8018D1C8; var_s1++) { - var_s2 = D_80183EA0[var_s1]; - if (D_80165C18[var_s2].unk_0A6 == 0) { + objectIndex = D_80183EA0[var_s1]; + if (gObjectList[objectIndex].state == 0) { if (func_8008A8B0(8, 9) != 0) { - func_80081FF4(var_s2, 1); + func_80081FF4(objectIndex, 1); } } else { - func_800821AC(var_s2, 1); + func_800821AC(objectIndex, 1); } } for (var_s1 = 0; var_s1 < D_8018D1D0; var_s1++) { - var_s2 = D_80183F28[var_s1]; - if (D_80165C18[var_s2].unk_0A6 == 0) { + objectIndex = D_80183F28[var_s1]; + if (gObjectList[objectIndex].state == 0) { if (func_8008A8B0(0x0010, 0x0013) != 0) { - func_80081FF4(var_s2, 2); + func_80081FF4(objectIndex, 2); } } else { - func_800821AC(var_s2, 2); + func_800821AC(objectIndex, 2); } } for (var_s1 = 0; var_s1 < D_8018D1D8; var_s1++) { - var_s2 = D_8018BFA8[var_s1]; - if (D_80165C18[var_s2].unk_0A6 == 0) { + objectIndex = D_8018BFA8[var_s1]; + if (gObjectList[objectIndex].state == 0) { if (func_8008A8B0(0x0011, 0x0014) != 0) { - func_80081FF4(var_s2, 3); + func_80081FF4(objectIndex, 3); } } else { - func_800821AC(var_s2, 3); + func_800821AC(objectIndex, 3); } } for (var_s1 = 0; var_s1 < D_8018C3F0_SIZE; var_s1++) { - var_s2 = D_8018C3F0[var_s1]; - if (D_80165C18[var_s2].unk_0A6 != 0) { - func_80081790(var_s2); + objectIndex = D_8018C3F0[var_s1]; + if (gObjectList[objectIndex].state != 0) { + func_80081790(objectIndex); } } } @@ -6950,12 +6950,12 @@ void func_8008241C(s32 objectIndex, s32 arg1) { s32 temp_f4; s32 temp_v0; s32 temp_v0_2; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; temp_s0->unk_0D8 = 1; temp_s0->unk_070 = (s32) &d_course_koopa_troopa_beach_unk4; - temp_s0->unk_074 = (s32) &d_course_koopa_troopa_beach_unk_data5; + temp_s0->vertex = (s32) &d_course_koopa_troopa_beach_unk_data5; temp_s0->unk_0DD = 1; temp_s0->sizeScaling = 0.2f; temp_v0 = random_int(0x00C8U); @@ -6982,7 +6982,7 @@ void func_8008241C(s32 objectIndex, s32 arg1) { temp_s0->unk_034 = 1.0f; func_80086EF0(objectIndex); temp_s0->unk_080 = D_800E633C[arg1 % 4]; - func_800721C0(objectIndex, 0x00000800); + set_object_flag_unk_054_true(objectIndex, 0x00000800); func_80072488(objectIndex); } #else @@ -6990,7 +6990,7 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8008241C.s") #endif void func_80082714(s32 objectIndex, s32 arg1) { - switch(D_80165C18[objectIndex].unk_0A6) { + switch(gObjectList[objectIndex].state) { case 1: func_8008241C(objectIndex , arg1); break; @@ -7002,20 +7002,20 @@ void func_80082714(s32 objectIndex, s32 arg1) { void func_8008275C(s32 objectIndex) { s32 stackPadding; - switch (D_80165C18[objectIndex].unk_0DD) { /* irregular */ + switch (gObjectList[objectIndex].unk_0DD) { /* irregular */ case 1: func_8008B78C(objectIndex); func_8008BF18(objectIndex); break; case 2: func_8008B78C(objectIndex); - vec3f_copy(D_80165C18[objectIndex].unk_01C, D_80165C18[objectIndex].pos); - func_8000D940(D_80165C18[objectIndex].unk_010, &D_80165C18[objectIndex].unk_0C6, D_80165C18[objectIndex].unk_034, 0.0f, 0); - D_80165C18[objectIndex].unk_028[0] *= 2.0; - D_80165C18[objectIndex].unk_028[1] *= 2.5; - D_80165C18[objectIndex].unk_028[2] *= 2.0; + vec3f_copy(gObjectList[objectIndex].unk_01C, gObjectList[objectIndex].pos); + func_8000D940(gObjectList[objectIndex].unk_010, &gObjectList[objectIndex].unk_0C6, gObjectList[objectIndex].unk_034, 0.0f, 0); + gObjectList[objectIndex].unk_028[0] *= 2.0; + gObjectList[objectIndex].unk_028[1] *= 2.5; + gObjectList[objectIndex].unk_028[2] *= 2.0; func_8008BF18(objectIndex); - D_80165C18[objectIndex].unk_0BE[1] = get_angle_between_points(D_80165C18[objectIndex].unk_01C, D_80165C18[objectIndex].pos); + gObjectList[objectIndex].unk_0BE[1] = get_angle_between_points(gObjectList[objectIndex].unk_01C, gObjectList[objectIndex].pos); break; } func_800873F4(objectIndex); @@ -7033,14 +7033,14 @@ void func_80082870(void) { s32 *var_s4; s32 temp_s0; s32 var_s3; - struct_80165C18_entry *temp_s1; + Objects *temp_s1; var_s4 = D_80183F28; var_s3 = 0; do { temp_s0 = *var_s4; - temp_s1 = &D_80165C18[temp_s0]; - if (temp_s1->unk_0A6 != 0) { + temp_s1 = &gObjectList[temp_s0]; + if (temp_s1->state != 0) { func_80082714(temp_s0, var_s3); func_8008275C(temp_s0); if (func_80072320(temp_s0, 2) != 0) { @@ -7053,7 +7053,7 @@ void func_80082870(void) { if (gGamestate != 9) { func_800C98B8(temp_s1->pos, D_80183E40, 0x19017043U); } else if (gCutsceneShotTimer < 0x97) { - func_800C98B8(D_80165C18[D_80183F2C].pos, D_80183E40, 0x19017043U); + func_800C98B8(gObjectList[D_80183F2C].pos, D_80183E40, 0x19017043U); } } } @@ -7080,24 +7080,24 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80082870.s") #endif void init_ktb_crab(s32 objectIndex) { - struct_80165C18_entry *object; + Objects *object; - func_80073444(objectIndex, d_course_koopa_troopa_beach_crab_tlut, d_course_koopa_troopa_beach_crab_frames, 0x40U, (u16) 0x00000040); - object = &D_80165C18[objectIndex]; + init_texture_object(objectIndex, d_course_koopa_troopa_beach_crab_tlut, d_course_koopa_troopa_beach_crab_frames, 0x40U, (u16) 0x00000040); + object = &gObjectList[objectIndex]; object->sizeScaling = 0.15f; - object->unk_0D2 = 0; + object->itemDisplay = 0; func_80072488(objectIndex); object->unk_0C8 = 1; - func_800721C0(objectIndex, 0x04000420); + set_object_flag_unk_054_true(objectIndex, 0x04000420); func_80086EAC(objectIndex, 0, 1); func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); func_8008B8BC(objectIndex, 0U, 0U, 0x8000U); object->unk_034 = 1.5f; - func_800721C0(objectIndex, 0x00000200); + set_object_flag_unk_054_true(objectIndex, 0x00000200); } void func_80082B34(s32 objectIndex, s32 unused) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 0: break; case 1: @@ -7110,22 +7110,22 @@ void func_80082B34(s32 objectIndex, s32 unused) { func_80072E54(objectIndex, 4, 6, 1, 2, -1); break; } - if (D_80165C18[objectIndex].unk_0A6 >= 2) { + if (gObjectList[objectIndex].state >= 2) { func_80073514(objectIndex); } } void func_80082C30(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 1: - if (func_80087A0C(objectIndex, D_80165C18[objectIndex].unk_010[0], D_80165C18[objectIndex].unk_01C[0], D_80165C18[objectIndex].unk_010[2], D_80165C18[objectIndex].unk_01C[2]) != 0) { + if (func_80087A0C(objectIndex, gObjectList[objectIndex].unk_010[0], gObjectList[objectIndex].unk_01C[0], gObjectList[objectIndex].unk_010[2], gObjectList[objectIndex].unk_01C[2]) != 0) { func_800726CC(objectIndex, 3); func_80086FD4(objectIndex); } break; case 2: if (func_80087104(objectIndex, 0x003CU) != 0) { - D_80165C18[objectIndex].unk_034 = 0.8f; + gObjectList[objectIndex].unk_034 = 0.8f; func_800726CC(objectIndex, 2); func_80086FD4(objectIndex); } @@ -7150,29 +7150,29 @@ void func_80082C30(s32 objectIndex) { break; } func_8008BF18(objectIndex); - if (func_8007223C(objectIndex, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { func_80088538(objectIndex); - D_80165C18[objectIndex].pos[1] = (f32) (D_80165C18[objectIndex].unk_044 + 2.5); + gObjectList[objectIndex].pos[1] = (f32) (gObjectList[objectIndex].unk_044 + 2.5); } } void func_80082E18(s32 objectIndex) { - if (D_80165C18[objectIndex].unk_0A6 >= 2) { + if (gObjectList[objectIndex].state >= 2) { func_80089F24(objectIndex); } } void func_80082E5C(void) { - s32 temp_s0; + s32 objectIndex; s32 var_s1; for (var_s1 = 0; var_s1 < NUM_CRABS; var_s1++) { - temp_s0 = D_80183EA0[var_s1]; - if (D_80165C18[temp_s0].unk_0A6 != 0) { - func_80082B34(temp_s0, var_s1); - func_8008A6DC(temp_s0, 500.0f); - func_80082C30(temp_s0); - func_80082E18(temp_s0); + objectIndex = D_80183EA0[var_s1]; + if (gObjectList[objectIndex].state != 0) { + func_80082B34(objectIndex, var_s1); + func_8008A6DC(objectIndex, 500.0f); + func_80082C30(objectIndex); + func_80082E18(objectIndex); } } } @@ -7181,9 +7181,9 @@ void func_80082E5C(void) { // https://decomp.me/scratch/RquH0 // Gollygee I sure love register allocation :^) void func_80082F1C(s32 objectIndex, s32 arg1) { - D_80165C18[objectIndex].unk_070 = d_course_yoshi_valley_unk5; - D_80165C18[objectIndex].unk_074 = d_course_yoshi_valley_unk4; - D_80165C18[objectIndex].sizeScaling = 0.027f; + gObjectList[objectIndex].unk_070 = d_course_yoshi_valley_unk5; + gObjectList[objectIndex].vertex = d_course_yoshi_valley_unk4; + gObjectList[objectIndex].sizeScaling = 0.027f; func_80072488(objectIndex); func_8008B7D4(objectIndex, D_800E5DF4[arg1].pos[0] * D_8018D01C, D_800E5DF4[arg1].pos[1], D_800E5DF4[arg1].pos[2]); func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); @@ -7194,7 +7194,7 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80082F1C.s") #endif void func_80083018(s32 objectIndex, s32 arg1) { - switch(D_80165C18[objectIndex].unk_0A6) { + switch(gObjectList[objectIndex].state) { case 1: func_80082F1C(objectIndex , arg1); break; @@ -7214,7 +7214,7 @@ void func_80083080(void) { for (var_s1 = 0; var_s1 < NUM_YV_FLAG_POLES; var_s1++) { objectIndex = D_80183EA0[var_s1]; - if (D_80165C18[objectIndex].unk_0A6 != 0) { + if (gObjectList[objectIndex].state != 0) { func_80083018(objectIndex, var_s1); func_80083060(objectIndex); } @@ -7222,30 +7222,30 @@ void func_80083080(void) { } void func_8008311C(s32 objectIndex, s32 arg1) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - func_80073444(objectIndex, d_course_yoshi_valley_hedgehog_tlut, d_course_yoshi_valley_hedgehog, 0x40U, (u16) 0x00000040); - temp_s0 = &D_80165C18[objectIndex]; + init_texture_object(objectIndex, d_course_yoshi_valley_hedgehog_tlut, d_course_yoshi_valley_hedgehog, 0x40U, (u16) 0x00000040); + temp_s0 = &gObjectList[objectIndex]; temp_s0->activeTLUT = d_course_yoshi_valley_hedgehog_tlut; temp_s0->activeTexture = d_course_yoshi_valley_hedgehog; - temp_s0->unk_074 = D_0D0060B0; + temp_s0->vertex = D_0D0060B0; temp_s0->sizeScaling = 0.2f; - temp_s0->unk_0D2 = 0; + temp_s0->itemDisplay = 0; func_80072488(objectIndex); func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); func_8008B8BC(objectIndex, 0U, 0U, 0x8000U); temp_s0->unk_034 = ((arg1 % 6) * 0.1) + 0.5; func_80086E70(objectIndex); - func_800721C0(objectIndex, 0x04000600); + set_object_flag_unk_054_true(objectIndex, 0x04000600); temp_s0->unk_0C8 = 2; } void func_80083248(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 0: break; case 1: - if (func_80087A0C(objectIndex, D_80165C18[objectIndex].unk_010[0], D_80165C18[objectIndex].unk_09C, D_80165C18[objectIndex].unk_010[2], D_80165C18[objectIndex].unk_09E) != 0) { + if (func_80087A0C(objectIndex, gObjectList[objectIndex].unk_010[0], gObjectList[objectIndex].unk_09C, gObjectList[objectIndex].unk_010[2], gObjectList[objectIndex].unk_09E) != 0) { func_80086FD4(objectIndex); } break; @@ -7253,7 +7253,7 @@ void func_80083248(s32 objectIndex) { func_800871AC(objectIndex, 0x0000003C); break; case 3: - if (func_80087A0C(objectIndex, D_80165C18[objectIndex].unk_09C, D_80165C18[objectIndex].unk_010[0], D_80165C18[objectIndex].unk_09E, D_80165C18[objectIndex].unk_010[2]) != 0) { + if (func_80087A0C(objectIndex, gObjectList[objectIndex].unk_09C, gObjectList[objectIndex].unk_010[0], gObjectList[objectIndex].unk_09E, gObjectList[objectIndex].unk_010[2]) != 0) { func_80086FD4(objectIndex); } break; @@ -7264,16 +7264,16 @@ void func_80083248(s32 objectIndex) { break; } func_8008BF18(objectIndex); - if (func_8007223C(objectIndex, 0x00200000) != 0) { - if (func_8007223C(objectIndex, 0x00400000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00200000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00400000) != 0) { func_8008861C(objectIndex); } - D_80165C18[objectIndex].pos[1] = D_80165C18[objectIndex].unk_044 + 6.0; + gObjectList[objectIndex].pos[1] = gObjectList[objectIndex].unk_044 + 6.0; } } void func_800833D0(s32 objectIndex, s32 arg1) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 0: break; case 1: @@ -7283,15 +7283,15 @@ void func_800833D0(s32 objectIndex, s32 arg1) { func_80072D3C(objectIndex, 0, 1, 4, -1); break; } - if (D_80165C18[objectIndex].unk_0D2 == 0) { - D_80165C18[objectIndex].unk_074 = D_0D0060B0; + if (gObjectList[objectIndex].itemDisplay == 0) { + gObjectList[objectIndex].vertex = D_0D0060B0; } else { - D_80165C18[objectIndex].unk_074 = D_0D006130; + gObjectList[objectIndex].vertex = D_0D006130; } } void func_80083474(s32 objectIndex) { - if (D_80165C18[objectIndex].unk_0A6 >= 2) { + if (gObjectList[objectIndex].state >= 2) { func_80089F24(objectIndex); } } @@ -7310,10 +7310,10 @@ void func_800834B8(void) { } void func_80083538(s32 objectIndex, Vec3f arg1, s32 arg2, s32 arg3) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; func_800723A4(objectIndex, 0); - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; temp_s0->activeTexture = d_course_frappe_snowland_snow; temp_s0->textureList = d_course_frappe_snowland_snow; temp_s0->activeTLUT = d_course_frappe_snowland_snow_tlut; @@ -7343,11 +7343,11 @@ void func_800836F0(Vec3f arg0) { } void func_8008379C(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 0: break; case 1: - if (func_80087E08(objectIndex, D_80165C18[objectIndex].unk_038[1], 0.74f, D_80165C18[objectIndex].unk_034, D_80165C18[objectIndex].unk_0BE[1], 0x00000064) != 0) { + if (func_80087E08(objectIndex, gObjectList[objectIndex].unk_038[1], 0.74f, gObjectList[objectIndex].unk_034, gObjectList[objectIndex].unk_0BE[1], 0x00000064) != 0) { func_80072488(objectIndex); } break; @@ -7357,17 +7357,17 @@ void func_8008379C(s32 objectIndex) { break; } func_8008BF18(objectIndex); - D_80165C18[objectIndex].unk_0B2[2] += D_80165C18[objectIndex].unk_0A0; + gObjectList[objectIndex].unk_0B2[2] += gObjectList[objectIndex].unk_0A0; } void func_80083868(s32 objectIndex) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - func_80073444(objectIndex, d_course_frappe_snowland_snowman_tlut, d_course_frappe_snowland_snowman_head, 0x40U, (u16) 0x00000040); - temp_s0 = &D_80165C18[objectIndex]; - temp_s0->unk_074 = D_0D0061B0; + init_texture_object(objectIndex, d_course_frappe_snowland_snowman_tlut, d_course_frappe_snowland_snowman_head, 0x40U, (u16) 0x00000040); + temp_s0 = &gObjectList[objectIndex]; + temp_s0->vertex = D_0D0061B0; temp_s0->sizeScaling = 0.1f; - temp_s0->unk_0D2 = 0; + temp_s0->itemDisplay = 0; func_80072488(objectIndex); func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); temp_s0->unk_0B2[0] = 0; @@ -7376,11 +7376,11 @@ void func_80083868(s32 objectIndex) { temp_s0->unk_0A0 = random_int(0x2000U) - 0x1000; func_80086E70(objectIndex); temp_s0->unk_034 = 1.5f; - func_800721C0(objectIndex, 0x00000200); + set_object_flag_unk_054_true(objectIndex, 0x00000200); } void func_80083948(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 1: func_80086FD4(objectIndex); break; @@ -7397,7 +7397,7 @@ void func_80083948(s32 objectIndex) { func_80087D24(objectIndex, 0.0f, 0.2f, -7.0f); break; case 20: - if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[1], 0.0f, 0.2f) != 0) { + if (f32_step_up_towards(&gObjectList[objectIndex].unk_028[1], 0.0f, 0.2f) != 0) { func_80073800(objectIndex, 0); func_8008701C(objectIndex, 1); } @@ -7407,37 +7407,37 @@ void func_80083948(s32 objectIndex) { break; } func_8008BF18(objectIndex); - func_80073D0C(objectIndex, &D_80165C18[objectIndex].unk_0A0, -0x00001000, 0x00001000, 0x00000400, 1, -1); - D_80165C18[objectIndex].unk_0B2[2] = D_80165C18[objectIndex].unk_0A0 + 0x8000; + func_80073D0C(objectIndex, &gObjectList[objectIndex].unk_0A0, -0x00001000, 0x00001000, 0x00000400, 1, -1); + gObjectList[objectIndex].unk_0B2[2] = gObjectList[objectIndex].unk_0A0 + 0x8000; } void func_80083A94(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 0: break; case 1: func_80083868(objectIndex); break; } - if (D_80165C18[objectIndex].unk_0A6 >= 2) { + if (gObjectList[objectIndex].state >= 2) { func_80073514(objectIndex); } func_80083948(objectIndex); } void func_80083B0C(s32 objectIndex) { - func_80073444(objectIndex, d_course_frappe_snowland_snowman_tlut, d_course_frappe_snowland_snowman_body, 0x40U, (u16) 0x00000040); - D_80165C18[objectIndex].unk_074 = D_0D0060B0; - D_80165C18[objectIndex].sizeScaling = 0.1f; - D_80165C18[objectIndex].unk_0D2 = 0; + init_texture_object(objectIndex, d_course_frappe_snowland_snowman_tlut, d_course_frappe_snowland_snowman_body, 0x40U, (u16) 0x00000040); + gObjectList[objectIndex].vertex = D_0D0060B0; + gObjectList[objectIndex].sizeScaling = 0.1f; + gObjectList[objectIndex].itemDisplay = 0; func_80072488(objectIndex); func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); - D_80165C18[objectIndex].unk_0B2[0] = 0; - D_80165C18[objectIndex].unk_0B2[1] = 0; - D_80165C18[objectIndex].unk_0B2[2] = 0x8000; - D_80165C18[objectIndex].unk_0C8 = 2; - D_80165C18[objectIndex].unk_034 = 1.5f; - func_800721C0(objectIndex, 0x04000210); + gObjectList[objectIndex].unk_0B2[0] = 0; + gObjectList[objectIndex].unk_0B2[1] = 0; + gObjectList[objectIndex].unk_0B2[2] = 0x8000; + gObjectList[objectIndex].unk_0C8 = 2; + gObjectList[objectIndex].unk_034 = 1.5f; + set_object_flag_unk_054_true(objectIndex, 0x04000210); } void func_80083BE4(s32 arg0) { @@ -7445,10 +7445,10 @@ void func_80083BE4(s32 arg0) { } void func_80083C04(s32 objectIndex) { - struct_80165C18_entry *temp_s1; + Objects *temp_s1; - temp_s1 = &D_80165C18[objectIndex]; - switch (temp_s1->unk_0A6) { + temp_s1 = &gObjectList[objectIndex]; + switch (temp_s1->state) { case 0: break; case 1: @@ -7464,7 +7464,7 @@ void func_80083C04(s32 objectIndex) { break; case 11: if (func_8007278C(objectIndex, 0x0000000A) != 0) { - func_800721C0(objectIndex, 0x00000010); + set_object_flag_unk_054_true(objectIndex, 0x00000010); temp_s1->sizeScaling = 0.001f; } break; @@ -7475,10 +7475,10 @@ void func_80083C04(s32 objectIndex) { break; case 13: func_800726CC(objectIndex, 2); - func_800721E8(objectIndex, 0x00001000); + set_object_flag_unk_054_false(objectIndex, 0x00001000); break; } - if (temp_s1->unk_0A6 >= 2) { + if (temp_s1->state >= 2) { func_80073514(objectIndex); } func_80083BE4(objectIndex); @@ -7488,18 +7488,18 @@ void func_80083D60(void) { s32 var_s0; s32 var_s3; s32 var_s4; - s32 temp_a0; - struct_80165C18_entry *temp_s1; + s32 objectIndex; + Objects *temp_s1; for (var_s0 = 0; var_s0 < D_8018C3F0_SIZE; var_s0++) { - temp_a0 = D_8018C3F0[var_s0]; + objectIndex = D_8018C3F0[var_s0]; - if (temp_a0 == -1) continue; + if (objectIndex == DELETED_OBJECT_ID) continue; - if (D_80165C18[temp_a0].unk_0A6 == 0) continue; - func_8008379C(temp_a0); - if (D_80165C18[temp_a0].unk_0A6 != 0) continue; - func_80072100(&D_8018C3F0[var_s0]); + if (gObjectList[objectIndex].state == 0) continue; + func_8008379C(objectIndex); + if (gObjectList[objectIndex].state != 0) continue; + delete_object_wrapper(&D_8018C3F0[var_s0]); if (var_s0) {} // ?? } @@ -7508,11 +7508,11 @@ void func_80083D60(void) { var_s3 = D_80183F28[var_s0]; func_80083A94(var_s3); func_80083C04(var_s4); - if (func_80072270(var_s4, 0x00001000) != 0) { - temp_s1 = &D_80165C18[var_s4]; + if (is_obj_index_flag_unk_054_inactive(var_s4, 0x00001000) != 0) { + temp_s1 = &gObjectList[var_s4]; if ((func_8008A8B0(temp_s1->unk_0D5 - 1, temp_s1->unk_0D5 + 1) != 0) && (func_80089B50(var_s4) != 0)) { - func_800721C0(var_s4, 0x00001000); - func_800721E8(var_s4, 0x00000010); + set_object_flag_unk_054_true(var_s4, 0x00001000); + set_object_flag_unk_054_false(var_s4, 0x00000010); func_800726CC(var_s4, 0x0000000A); func_8008701C(var_s3, 0x0000000A); func_800836F0(temp_s1->pos); @@ -7525,11 +7525,11 @@ void func_80083D60(void) { } void func_80083F18(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 0: break; case 1: - if (func_80087E08(objectIndex, D_80165C18[objectIndex].unk_038[1], 0.12f, D_80165C18[objectIndex].unk_034, D_80165C18[objectIndex].unk_0BE[1], 0x00000064) != 0) { + if (func_80087E08(objectIndex, gObjectList[objectIndex].unk_038[1], 0.12f, gObjectList[objectIndex].unk_034, gObjectList[objectIndex].unk_0BE[1], 0x00000064) != 0) { func_80072488(objectIndex); } func_8008BF18(objectIndex); @@ -7542,10 +7542,10 @@ void func_80083F18(s32 objectIndex) { } void func_80083FD0(s32 objectIndex, s32 arg1, s32 playerId) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; Player *sp20; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; sp20 = &gPlayerOne[playerId]; temp_s0->unk_084[7] = playerId; func_800723A4(objectIndex, 0); @@ -7572,8 +7572,8 @@ void func_8008421C(s32 arg0, s32 playerId) { } void func_800842C8(void) { - s32 var_s2; - s32 var_s1; + s32 objectIndex; + s32 playerId; D_80165834[0] += 0x200; D_80165834[1] += 0x400; @@ -7581,20 +7581,20 @@ void func_800842C8(void) { D_8016582C[0] += 0x2000; D_8016582C[1] += 0x1000; D_8016582C[2] += 0x1800; - for (var_s1 = 0; var_s1 < gPlayerCountSelection1; var_s1++) { - var_s2 = D_80183DB8[var_s1]; - if (func_80072320(var_s2, 0x00000020) != 0) { - func_800722CC(var_s2, 0x00000020); - func_8008421C(var_s2, var_s1); + for (playerId = 0; playerId < gPlayerCountSelection1; playerId++) { + objectIndex = D_80183DB8[playerId]; + if (func_80072320(objectIndex, 0x00000020) != 0) { + func_800722CC(objectIndex, 0x00000020); + func_8008421C(objectIndex, playerId); } } - for (var_s1 = 0; var_s1 < D_8018C3F0_SIZE; var_s1++) { - var_s2 = D_8018C3F0[var_s1]; - if (var_s2 != -1) { - if (D_80165C18[var_s2].unk_0A6 != 0) { - func_80083F18(var_s2); - if (D_80165C18[var_s2].unk_0A6 == 0) { - func_80072100(&D_8018C3F0[var_s1]); + for (playerId = 0; playerId < D_8018C3F0_SIZE; playerId++) { + objectIndex = D_8018C3F0[playerId]; + if (objectIndex != DELETED_OBJECT_ID) { + if (gObjectList[objectIndex].state != 0) { + func_80083F18(objectIndex); + if (gObjectList[objectIndex].state == 0) { + delete_object_wrapper(&D_8018C3F0[playerId]); } } } @@ -7610,12 +7610,12 @@ static s16 D_800E6668[4]; /* unable to generate initia static s16 (*D_800E672C[2])[4] = { (s16 (*)[4]) D_800E659C, (s16 (*)[4]) D_800E6668 }; void func_80084430(s32 objectIndex, s32 arg1) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; temp_s0->unk_0D8 = 0; temp_s0->unk_070 = &d_course_sherbet_land_unk_data1; - temp_s0->unk_074 = &d_course_sherbet_land_unk_data11; + temp_s0->vertex = &d_course_sherbet_land_unk_data11; temp_s0->unk_0C8 = 0x000C; temp_s0->unk_09C = 1; temp_s0->sizeScaling = 0.2f; @@ -7624,8 +7624,8 @@ void func_80084430(s32 objectIndex, s32 arg1) { temp_s0->unk_0DD = 1; func_80086EF0(objectIndex); temp_s0->unk_080 = *D_800E672C; - func_800721C0(objectIndex, 0x04000800); - temp_s0->unk_0A4 = func_80004EAC(&d_course_sherbet_land_unk_data11, 0); + set_object_flag_unk_054_true(objectIndex, 0x04000800); + temp_s0->type = func_80004EAC(&d_course_sherbet_land_unk_data11, 0); func_80072488(objectIndex); } #else @@ -7633,7 +7633,7 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80084430.s") #endif void func_8008453C(s32 objectIndex, s32 arg1) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 0: break; case 1: @@ -7642,22 +7642,22 @@ void func_8008453C(s32 objectIndex, s32 arg1) { } break; case 2: - func_80072E54(objectIndex, 0, D_80165C18[objectIndex].unk_0A4, 1, 0, -1); + func_80072E54(objectIndex, 0, gObjectList[objectIndex].type, 1, 0, -1); break; } } void func_800845C8(s32 objectIndex, s32 arg1) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; temp_s0->unk_0D8 = 0; temp_s0->unk_070 = d_course_sherbet_land_unk_data1; - temp_s0->unk_074 = d_course_sherbet_land_unk_data11; + temp_s0->vertex = d_course_sherbet_land_unk_data11; temp_s0->unk_0C8 = 4; temp_s0->unk_09C = 2; temp_s0->unk_04C = random_int(0x012CU); - func_800721C0(objectIndex, 0x04000220); + set_object_flag_unk_054_true(objectIndex, 0x04000220); if ((arg1 > 0) && (arg1 < 9)) { if ((arg1 == 1) || (arg1 == 2)) { func_8008B7D4(objectIndex, D_8018D01C * -2960.0, -80.0f, 1521.0f); @@ -7746,22 +7746,22 @@ void func_800845C8(s32 objectIndex, s32 arg1) { } func_80086EF0(objectIndex); temp_s0->unk_034 = 0.0f; - temp_s0->unk_0A4 = func_80004EAC(d_course_sherbet_land_unk_data11, 0); + temp_s0->type = func_80004EAC(d_course_sherbet_land_unk_data11, 0); func_80072488(objectIndex); } void func_80084B7C(s32 objectIndex, s32 arg1) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; - switch (temp_s0->unk_0A6) { + temp_s0 = &gObjectList[objectIndex]; + switch (temp_s0->state) { case 0: break; case 1: func_800845C8(objectIndex, arg1); break; case 2: - func_80072E54(objectIndex, 0, (s32) temp_s0->unk_0A4, (s32) temp_s0->unk_09C, 0, -1); + func_80072E54(objectIndex, 0, (s32) temp_s0->type, (s32) temp_s0->unk_09C, 0, -1); if (func_80072354(objectIndex, 0x00000020) != 0) { if (temp_s0->unk_084[6] == 0) { temp_s0->unk_084[6] = random_int(0x005AU) + 0x5A; @@ -7772,7 +7772,7 @@ void func_80084B7C(s32 objectIndex, s32 arg1) { } break; case 3: - func_80072E54(objectIndex, 0, temp_s0->unk_0A4, 1, 0, 0); + func_80072E54(objectIndex, 0, temp_s0->type, 1, 0, 0); break; case 4: func_800722CC(objectIndex, 2); @@ -7800,26 +7800,26 @@ void func_80084B7C(s32 objectIndex, s32 arg1) { void func_80084D2C(s32 objectIndex, s32 arg1) { f32 sp24; - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 0: break; case 1: - D_80165C18[objectIndex].unk_0BE[1] = func_800417B4(D_80165C18[objectIndex].unk_0BE[1], D_80165C18[objectIndex].unk_0C6); - if (D_80165C18[objectIndex].unk_0BE[1] == D_80165C18[objectIndex].unk_0C6) { - D_80165C18[objectIndex].unk_09C = 4; - D_80165C18[objectIndex].unk_034 = 0.4f; + gObjectList[objectIndex].unk_0BE[1] = func_800417B4(gObjectList[objectIndex].unk_0BE[1], gObjectList[objectIndex].unk_0C6); + if (gObjectList[objectIndex].unk_0BE[1] == gObjectList[objectIndex].unk_0C6) { + gObjectList[objectIndex].unk_09C = 4; + gObjectList[objectIndex].unk_034 = 0.4f; func_80086FD4(objectIndex); } break; case 2: - f32_step_towards(&D_80165C18[objectIndex].unk_034, 0.8f, 0.02f); + f32_step_towards(&gObjectList[objectIndex].unk_034, 0.8f, 0.02f); if (func_80087060(objectIndex, 0x0000000F) != 0) { func_800722A4(objectIndex, 1); func_800722A4(objectIndex, 2); - D_80165C18[objectIndex].unk_09C = 1; - D_80165C18[objectIndex].unk_0D8 = 1; - D_80165C18[objectIndex].unk_0D2 = 0; - D_80165C18[objectIndex].unk_0A4 = func_80004EAC(d_course_sherbet_land_unk_data11, D_80165C18[objectIndex].unk_0D8); + gObjectList[objectIndex].unk_09C = 1; + gObjectList[objectIndex].unk_0D8 = 1; + gObjectList[objectIndex].itemDisplay = 0; + gObjectList[objectIndex].type = func_80004EAC(d_course_sherbet_land_unk_data11, gObjectList[objectIndex].unk_0D8); func_800726CC(objectIndex, 3); func_80086FD4(objectIndex); if (func_80072354(objectIndex, 0x00000020) != 0) { @@ -7842,8 +7842,8 @@ void func_80084D2C(s32 objectIndex, s32 arg1) { sp24 = 2.5f; break; } - f32_step_towards(&D_80165C18[objectIndex].unk_034, sp24, 0.15f); - if ((func_80072354(objectIndex, 2) != 0) && (sp24 == D_80165C18[objectIndex].unk_034)) { + f32_step_towards(&gObjectList[objectIndex].unk_034, sp24, 0.15f); + if ((func_80072354(objectIndex, 2) != 0) && (sp24 == gObjectList[objectIndex].unk_034)) { func_80086FD4(objectIndex); } break; @@ -7854,22 +7854,22 @@ void func_80084D2C(s32 objectIndex, s32 arg1) { } break; case 5: - f32_step_towards(&D_80165C18[objectIndex].unk_034, 0.4f, 0.2f); + f32_step_towards(&gObjectList[objectIndex].unk_034, 0.4f, 0.2f); if (func_80087060(objectIndex, 0x0000000A) != 0) { func_800722A4(objectIndex, 2); - D_80165C18[objectIndex].unk_0D8 = 2; - D_80165C18[objectIndex].unk_0D2 = 0; - D_80165C18[objectIndex].unk_0A4 = func_80004EAC(d_course_sherbet_land_unk_data11, D_80165C18[objectIndex].unk_0D8); + gObjectList[objectIndex].unk_0D8 = 2; + gObjectList[objectIndex].itemDisplay = 0; + gObjectList[objectIndex].type = func_80004EAC(d_course_sherbet_land_unk_data11, gObjectList[objectIndex].unk_0D8); func_800726CC(objectIndex, 3); func_80086FD4(objectIndex); } break; case 6: if (func_80072354(objectIndex, 2) != 0) { - D_80165C18[objectIndex].unk_0D8 = 0; - D_80165C18[objectIndex].unk_0D2 = 0; - D_80165C18[objectIndex].unk_0A4 = func_80004EAC(d_course_sherbet_land_unk_data11, D_80165C18[objectIndex].unk_0D8); - D_80165C18[objectIndex].unk_0C6 += 0x8000; + gObjectList[objectIndex].unk_0D8 = 0; + gObjectList[objectIndex].itemDisplay = 0; + gObjectList[objectIndex].type = func_80004EAC(d_course_sherbet_land_unk_data11, gObjectList[objectIndex].unk_0D8); + gObjectList[objectIndex].unk_0C6 += 0x8000; func_800726CC(objectIndex, 2); func_8008701C(objectIndex, 1); } @@ -7884,7 +7884,7 @@ void func_80085024(void) { } void func_8008502C(s32 objectIndex, UNUSED s32 arg1) { - func_80088038(objectIndex, D_80165C18[objectIndex].unk_01C[1], D_80165C18[objectIndex].unk_0C6); + func_80088038(objectIndex, gObjectList[objectIndex].unk_01C[1], gObjectList[objectIndex].unk_0C6); func_8008BF18(objectIndex); func_800873F4(objectIndex); } @@ -7896,9 +7896,9 @@ void func_80085080(s32 arg0) { } void func_800850B0(s32 objectIndex, s32 arg1) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; switch (temp_s0->unk_0DD) { case 1: func_80085080(objectIndex); @@ -7942,36 +7942,36 @@ void func_800850B0(s32 objectIndex, s32 arg1) { void func_80085214(void) { s32 var_s2; - s32 temp_s0; + s32 objectIndex; s32 var_s1; for (var_s1 = 0; var_s1 < 0xF; var_s1++) { - temp_s0 = D_80183EA0[var_s1]; - if (D_80165C18[temp_s0].unk_0A6 != 0) { + objectIndex = D_80183EA0[var_s1]; + if (gObjectList[objectIndex].state != 0) { if (var_s1 == 0) { - func_8008453C(temp_s0, var_s1); + func_8008453C(objectIndex, var_s1); } else { - func_80084B7C(temp_s0, var_s1); + func_80084B7C(objectIndex, var_s1); } - func_800850B0(temp_s0, var_s1); + func_800850B0(objectIndex, var_s1); } - if (func_80072320(temp_s0, 1) != 0) { - func_80089820(temp_s0, 1.75f, 1.5f, 0x1900A046U); - } else if (func_80072320(temp_s0, 8) != 0) { - func_80089820(temp_s0, 1.3f, 1.0f, 0x1900A046U); + if (func_80072320(objectIndex, 1) != 0) { + func_80089820(objectIndex, 1.75f, 1.5f, 0x1900A046U); + } else if (func_80072320(objectIndex, 8) != 0) { + func_80089820(objectIndex, 1.3f, 1.0f, 0x1900A046U); } else { - func_80089820(temp_s0, 1.5f, 1.25f, 0x1900A046U); + func_80089820(objectIndex, 1.5f, 1.25f, 0x1900A046U); } - if ((func_8007223C(temp_s0, 0x02000000) != 0) && (func_80072354(temp_s0, 0x00000020) != 0)) { - func_800722A4(temp_s0, 0x00000060); - func_800721E8(temp_s0, 0x02000000); + if ((is_obj_index_flag_unk_054_active(objectIndex, 0x02000000) != 0) && (func_80072354(objectIndex, 0x00000020) != 0)) { + func_800722A4(objectIndex, 0x00000060); + set_object_flag_unk_054_false(objectIndex, 0x02000000); } } } void func_800853DC(s32 objectIndex) { - D_80165C18[objectIndex].sizeScaling = 1.0f; - D_80165C18[objectIndex].unk_070 = d_course_luigi_raceway_dl_F960; + gObjectList[objectIndex].sizeScaling = 1.0f; + gObjectList[objectIndex].unk_070 = d_course_luigi_raceway_dl_F960; if (gGamestate != 9) { func_8008B7D4(objectIndex, D_8018D01C * -176.0, 0.0f, -2323.0f); func_8008B80C(objectIndex, 0.0f, 300.0f, 0.0f); @@ -7982,21 +7982,21 @@ void func_800853DC(s32 objectIndex) { func_8008B844(objectIndex); func_800886F4(objectIndex); func_80086EF0(objectIndex); - D_80165C18[objectIndex].unk_038[1] = -2.0f; + gObjectList[objectIndex].unk_038[1] = -2.0f; func_802A14BC(0.0f, 0.0f, 0.0f); func_80072488(objectIndex); } void func_80085534(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 1: - if (D_80165C18[objectIndex].unk_028[1] <= 18.0) { + if (gObjectList[objectIndex].unk_028[1] <= 18.0) { func_80086FD4(objectIndex); } break; case 2: - f32_step_towards(&D_80165C18[objectIndex].unk_038[1], 0.0f, 0.05f); - if (D_80165C18[objectIndex].unk_038[1] == 0.0) { + f32_step_towards(&gObjectList[objectIndex].unk_038[1], 0.0f, 0.05f); + if (gObjectList[objectIndex].unk_038[1] == 0.0) { func_80086FD4(objectIndex); } break; @@ -8004,8 +8004,8 @@ void func_80085534(s32 objectIndex) { func_800871AC(objectIndex, 1); break; case 4: - f32_step_towards(&D_80165C18[objectIndex].unk_038[1], 1.0f, 0.05f); - if (D_80165C18[objectIndex].unk_038[1] == 1.0) { + f32_step_towards(&gObjectList[objectIndex].unk_038[1], 1.0f, 0.05f); + if (gObjectList[objectIndex].unk_038[1] == 1.0) { func_80086FD4(objectIndex); } break; @@ -8013,14 +8013,14 @@ void func_80085534(s32 objectIndex) { func_800871AC(objectIndex, 0x0000005A); break; case 6: - f32_step_towards(&D_80165C18[objectIndex].unk_038[1], 0.0f, 0.05f); - if (D_80165C18[objectIndex].unk_038[1] == 0.0) { + f32_step_towards(&gObjectList[objectIndex].unk_038[1], 0.0f, 0.05f); + if (gObjectList[objectIndex].unk_038[1] == 0.0) { func_80086FD4(objectIndex); } break; case 7: - f32_step_towards(&D_80165C18[objectIndex].unk_038[1], -1.0f, 0.05f); - if (D_80165C18[objectIndex].unk_038[1] == -1.0) { + f32_step_towards(&gObjectList[objectIndex].unk_038[1], -1.0f, 0.05f); + if (gObjectList[objectIndex].unk_038[1] == -1.0) { func_80086FD4(objectIndex); } break; @@ -8028,18 +8028,18 @@ void func_80085534(s32 objectIndex) { func_800871AC(objectIndex, 0x0000005A); break; case 9: - f32_step_towards(&D_80165C18[objectIndex].unk_038[1], 0.0f, 0.05f); + f32_step_towards(&gObjectList[objectIndex].unk_038[1], 0.0f, 0.05f); if (func_80087060(objectIndex, 0x0000005A) != 0) { func_8008701C(objectIndex, 3); } break; } func_800877C4(objectIndex); - D_80165C18[objectIndex].unk_0BE[1] += 0x100; + gObjectList[objectIndex].unk_0BE[1] += 0x100; } void func_80085768(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 1: func_800853DC(objectIndex); break; @@ -8053,51 +8053,51 @@ void func_800857C0(void) { s32 objectIndex; objectIndex = D_80183EA0[0]; - if (D_80165C18[objectIndex].unk_0A6 != 0) { + if (gObjectList[objectIndex].state != 0) { func_80085768(objectIndex); func_80085534(objectIndex); func_8008BF18(objectIndex); - if (D_80165C18[objectIndex].unk_0A6 >= 2) { - D_802BA05C->pos[0] = D_80165C18[objectIndex].pos[0]; - D_802BA05C->pos[1] = D_80165C18[objectIndex].pos[1] - 10.0; - D_802BA05C->pos[2] = D_80165C18[objectIndex].pos[2]; + if (gObjectList[objectIndex].state >= 2) { + D_802BA05C->pos[0] = gObjectList[objectIndex].pos[0]; + D_802BA05C->pos[1] = gObjectList[objectIndex].pos[1] - 10.0; + D_802BA05C->pos[2] = gObjectList[objectIndex].pos[2]; } } } void func_80085878(s32 objectIndex, s32 arg1) { struct TrackWayPoint *temp_v0; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; temp_s0->unk_0D8 = 1; temp_s0->unk_070 = d_rainbow_road_unk4; - temp_s0->unk_074 = d_rainbow_road_unk3; + temp_s0->vertex = d_rainbow_road_unk3; temp_s0->sizeScaling = 0.03f; temp_s0->unk_0C8 = 0x000A; - func_800721C0(objectIndex, 0x04000200); + set_object_flag_unk_054_true(objectIndex, 0x04000200); temp_s0->unk_084[8] = (arg1 * 0x12C) + 0x1F4; func_8008B7D4(objectIndex, 0.0f, -15.0f, 0.0f); temp_v0 = &D_80164490[(u16)temp_s0->unk_084[8]]; func_8008B80C(objectIndex, temp_v0->wayPointX, temp_v0->wayPointY, temp_v0->wayPointZ); func_8008B888(objectIndex, 0U, 0U, 0U); temp_s0->unk_034 = 4.0f; - temp_s0->unk_0A4 = func_80004EAC(d_rainbow_road_unk3, 0); + temp_s0->type = func_80004EAC(d_rainbow_road_unk3, 0); func_80072488(objectIndex); } void func_800859C8(s32 objectIndex, s32 arg1) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; - switch (temp_s0->unk_0A6) { /* irregular */ + temp_s0 = &gObjectList[objectIndex]; + switch (temp_s0->state) { /* irregular */ case 0: break; case 1: func_80085878(objectIndex, arg1); break; case 2: - func_80072E54(objectIndex, 0, (s32) temp_s0->unk_0A4, 1, 0, -1); + func_80072E54(objectIndex, 0, (s32) temp_s0->type, 1, 0, -1); break; } if (D_8018D40C == 0) { @@ -8107,26 +8107,26 @@ void func_800859C8(s32 objectIndex, s32 arg1) { } void func_80085AA8(void) { - s32 temp_s2; + s32 objectIndex; s32 var_s4; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; for (var_s4 = 0; var_s4 < 3; var_s4++) { - temp_s2 = D_80183F28[var_s4]; - temp_s0 = &D_80165C18[temp_s2]; - if (temp_s0->unk_0A6 != 0) { - func_800859C8(temp_s2, var_s4); + objectIndex = D_80183F28[var_s4]; + temp_s0 = &gObjectList[objectIndex]; + if (temp_s0->state != 0) { + func_800859C8(objectIndex, var_s4); vec3f_copy(temp_s0->unk_01C, temp_s0->unk_028); func_8000D940(temp_s0->unk_028, &temp_s0->unk_084[8], temp_s0->unk_034, temp_s0->unk_044, 0); temp_s0->unk_0BE[1] = get_angle_between_points(temp_s0->unk_01C, temp_s0->unk_028); - func_8008BF18(temp_s2); - func_80089CBC(temp_s2, 30.0f); + func_8008BF18(objectIndex); + func_80089CBC(objectIndex, 30.0f); } } } void func_80085BB4(s32 objectIndex) { - D_80165C18[objectIndex].sizeScaling = 8.0f; + gObjectList[objectIndex].sizeScaling = 8.0f; func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); func_8008B8BC(objectIndex, 0U, 0U, 0x8000U); func_80072488(objectIndex); @@ -8134,12 +8134,12 @@ void func_80085BB4(s32 objectIndex) { void func_80085C20(s32 objectIndex) { func_8008B7D4(objectIndex, D_8018D01C * -1431.0, 827.0f, -2957.0f); - func_80073444(objectIndex, d_course_rainbow_road_neon_mushroom_tlut_list, d_course_rainbow_road_neon_mushroom, 0x40U, (u16) 0x00000040); + init_texture_object(objectIndex, d_course_rainbow_road_neon_mushroom_tlut_list, d_course_rainbow_road_neon_mushroom, 0x40U, (u16) 0x00000040); func_80085BB4(objectIndex); } void func_80085CA0(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 1: func_80085C20(objectIndex); break; @@ -8172,12 +8172,12 @@ void func_80085CA0(s32 objectIndex) { void func_80085DB8(s32 objectIndex) { func_8008B7D4(objectIndex, D_8018D01C * 799.0, 1193.0f, -5891.0f); - func_80073444(objectIndex, d_course_rainbow_road_neon_mario_tlut_list, d_course_rainbow_road_neon_mario, 0x40U, (u16) 0x00000040); + init_texture_object(objectIndex, d_course_rainbow_road_neon_mario_tlut_list, d_course_rainbow_road_neon_mario, 0x40U, (u16) 0x00000040); func_80085BB4(objectIndex); } void func_80085E38(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 1: func_80085DB8(objectIndex); break; @@ -8201,12 +8201,12 @@ void func_80085E38(s32 objectIndex) { void func_80085EF8(s32 objectIndex) { func_8008B7D4(objectIndex, D_8018D01C * -2013.0, 555.0f, 0.0f); - func_80073444(objectIndex, d_course_rainbow_road_neon_boo_tlut_list, d_course_rainbow_road_neon_boo, 0x40U, (u16) 0x00000040); + init_texture_object(objectIndex, d_course_rainbow_road_neon_boo_tlut_list, d_course_rainbow_road_neon_boo, 0x40U, (u16) 0x00000040); func_80085BB4(objectIndex); } void func_80085F74(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 1: func_80085EF8(objectIndex); break; @@ -8247,7 +8247,7 @@ extern Vec3f D_800E6734[]; /* unable to generate i void func_80086074(s32 objectIndex, s32 arg1) { func_8008B7D4(objectIndex, D_800E6734[arg1][0] * D_8018D01C, D_800E6734[arg1][1], D_800E6734[arg1][2]); - func_80073444(objectIndex, d_course_rainbow_road_static_tluts[arg1], d_course_rainbow_road_static_textures[arg1], 64, 64); + init_texture_object(objectIndex, d_course_rainbow_road_static_tluts[arg1], d_course_rainbow_road_static_textures[arg1], 64, 64); func_80085BB4(objectIndex); } #else @@ -8255,7 +8255,7 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80086074.s") #endif void func_80086110(s32 objectIndex, s32 arg1) { - switch (D_80165C18[objectIndex].unk_0A6) { + switch (gObjectList[objectIndex].state) { case 1: func_80086074(objectIndex, arg1); break; @@ -8282,16 +8282,16 @@ void func_80086158(s32 objectIndex, s32 arg1) { } void func_800861E0(void) { - s32 temp_s0; + s32 objectIndex; s32 var_s2; for (var_s2 = 0; var_s2 < NUM_NEON_SIGNS; var_s2++) { - temp_s0 = D_80183EA0[var_s2]; - if (D_80165C18[temp_s0].unk_0A6 != 0) { - func_80086158(temp_s0, var_s2); - if (D_80165C18[temp_s0].unk_0A6 >= 2) { - func_800734DC(temp_s0); - func_8008BF18(temp_s0); + objectIndex = D_80183EA0[var_s2]; + if (gObjectList[objectIndex].state != 0) { + func_80086158(objectIndex, var_s2); + if (gObjectList[objectIndex].state >= 2) { + func_800734DC(objectIndex); + func_8008BF18(objectIndex); } } } @@ -8300,44 +8300,44 @@ void func_800861E0(void) { void func_8008629C(s32 objectIndex, s32 arg1) { switch (arg1) { /* irregular */ case 0: - D_80165C18[objectIndex].unk_070 = D_0B0075F0; - D_80165C18[objectIndex].unk_04C = 0x00000038; + gObjectList[objectIndex].unk_070 = D_0B0075F0; + gObjectList[objectIndex].unk_04C = 0x00000038; break; case 1: - D_80165C18[objectIndex].unk_070 = D_0B008040; - D_80165C18[objectIndex].unk_04C = 0x0000002B; + gObjectList[objectIndex].unk_070 = D_0B008040; + gObjectList[objectIndex].unk_04C = 0x0000002B; break; case 2: - D_80165C18[objectIndex].unk_070 = D_0B008A90; - D_80165C18[objectIndex].unk_04C = 0x0000001E; + gObjectList[objectIndex].unk_070 = D_0B008A90; + gObjectList[objectIndex].unk_04C = 0x0000001E; break; default: break; } - D_80165C18[objectIndex].sizeScaling = 1.0f; + gObjectList[objectIndex].sizeScaling = 1.0f; func_8008B7D4(objectIndex, D_800E634C[0][0] - 1.5, D_800E634C[0][1], D_800E634C[0][2]); func_8008B80C(objectIndex, 0.0f, -10.0f, 0.0f); func_8008B888(objectIndex, 0U, 0xF8E4U, 0U); - D_80165C18[objectIndex].unk_048 = 0; + gObjectList[objectIndex].unk_048 = 0; func_80072488(objectIndex); } void func_80086424(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 0: break; case 1: - D_80165C18[objectIndex].unk_038[1] = 0.75f; + gObjectList[objectIndex].unk_038[1] = 0.75f; func_80086FD4(objectIndex); break; case 2: - if (D_80165C18[objectIndex].unk_028[1] >= -2.0) { - D_80165C18[objectIndex].unk_038[1] -= 0.1; + if (gObjectList[objectIndex].unk_028[1] >= -2.0) { + gObjectList[objectIndex].unk_038[1] -= 0.1; } func_800877C4(objectIndex); - if (D_80165C18[objectIndex].unk_028[1] >= 0.0) { - D_80165C18[objectIndex].unk_028[1] = 0.0f; - D_80165C18[objectIndex].unk_038[1] = 0.0f; + if (gObjectList[objectIndex].unk_028[1] >= 0.0) { + gObjectList[objectIndex].unk_028[1] = 0.0f; + gObjectList[objectIndex].unk_038[1] = 0.0f; func_80086F60(objectIndex); } break; @@ -8346,12 +8346,12 @@ void func_80086424(s32 objectIndex) { } void func_80086528(s32 objectIndex, s32 arg1) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 1: func_8008629C(objectIndex, arg1); break; case 2: - if (func_8007278C(objectIndex, D_80165C18[objectIndex].unk_04C) != 0) { + if (func_8007278C(objectIndex, gObjectList[objectIndex].unk_04C) != 0) { func_80091440(arg1); func_80086E70(objectIndex); func_80072488(objectIndex); @@ -8360,8 +8360,8 @@ void func_80086528(s32 objectIndex, s32 arg1) { case 0: break; case 3: - if (D_80165C18[objectIndex].unk_0AE == 0) { - D_80165C18[objectIndex].unk_048 = 1; + if (gObjectList[objectIndex].unk_0AE == 0) { + gObjectList[objectIndex].unk_048 = 1; func_80072488(objectIndex); } break; @@ -8394,7 +8394,7 @@ void func_80086604(void) { var_s2 = 0; do { temp_s0 = *var_s1_2; - if (D_80165C18[temp_s0].unk_0A6 != 0) { + if (gObjectList[temp_s0].state != 0) { func_80086528(temp_s0, var_s2); func_80086424(temp_s0); } @@ -8410,13 +8410,13 @@ void func_80086700(s32 objectIndex) { if (gCCSelection < CC_150) { switch (D_802874D8.unk1D) { /* switch 1; irregular */ case 0: /* switch 1 */ - D_80165C18[objectIndex].unk_070 = D_0B0069D8; + gObjectList[objectIndex].unk_070 = D_0B0069D8; break; case 1: /* switch 1 */ - D_80165C18[objectIndex].unk_070 = D_0B006A78; + gObjectList[objectIndex].unk_070 = D_0B006A78; break; case 2: /* switch 1 */ - D_80165C18[objectIndex].unk_070 = D_0B006B18; + gObjectList[objectIndex].unk_070 = D_0B006B18; break; default: /* switch 1 */ break; @@ -8424,23 +8424,23 @@ void func_80086700(s32 objectIndex) { } else { switch (D_802874D8.unk1D) { /* irregular */ case 0: - D_80165C18[objectIndex].unk_070 = D_0B006A28; + gObjectList[objectIndex].unk_070 = D_0B006A28; break; case 1: - D_80165C18[objectIndex].unk_070 = D_0B006AC8; + gObjectList[objectIndex].unk_070 = D_0B006AC8; break; case 2: - D_80165C18[objectIndex].unk_070 = D_0B006B68; + gObjectList[objectIndex].unk_070 = D_0B006B68; break; default: break; } } - D_80165C18[objectIndex].sizeScaling = 0.005f; - func_8008B7D4(objectIndex, D_80165C18[D_80183F28[0]].pos[0], D_80165C18[D_80183F28[0]].pos[1] + 16.0, D_80165C18[D_80183F28[0]].pos[2]); + gObjectList[objectIndex].sizeScaling = 0.005f; + func_8008B7D4(objectIndex, gObjectList[D_80183F28[0]].pos[0], gObjectList[D_80183F28[0]].pos[1] + 16.0, gObjectList[D_80183F28[0]].pos[2]); func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); func_8008B888(objectIndex, 0U, 0U, 0U); - D_80165C18[objectIndex].unk_084[1] = 0x0200; + gObjectList[objectIndex].unk_084[1] = 0x0200; func_80072488(objectIndex); func_80086E70(objectIndex); } @@ -8452,10 +8452,10 @@ extern s8 D_801658F4; void func_80086940(s32 objectIndex) { s8 temp_v0; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; u16 temp_t8; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; temp_t8 = (u16) temp_s0->unk_0AE; switch (temp_t8) { case 1: @@ -8524,7 +8524,7 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80086940.s") #endif void func_80086C14(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0A6) { /* irregular */ + switch (gObjectList[objectIndex].state) { /* irregular */ case 1: func_80086700(objectIndex); break; @@ -8537,12 +8537,12 @@ void func_80086C14(s32 objectIndex) { void func_80086C6C(s32 objectIndex) { Vec3f sp24; - sp24[0] = (D_80165C18[objectIndex].pos[0] - 5.0f) + random_int(0x000AU); - sp24[2] = (D_80165C18[objectIndex].pos[2] - 5.0f) + random_int(0x000AU); + sp24[0] = (gObjectList[objectIndex].pos[0] - 5.0f) + random_int(0x000AU); + sp24[2] = (gObjectList[objectIndex].pos[2] - 5.0f) + random_int(0x000AU); if (D_801658F4 != 0) { - sp24[1] = D_80165C18[objectIndex].pos[1] + 14.0; + sp24[1] = gObjectList[objectIndex].pos[1] + 14.0; } else { - sp24[1] = D_80165C18[objectIndex].pos[1] - 2.0; + sp24[1] = gObjectList[objectIndex].pos[1] - 2.0; } func_800773D8(sp24, (s32) D_801658F4); } diff --git a/src/code_80071F00.h b/src/code_80071F00.h index b835617e7..1683b1fa4 100644 --- a/src/code_80071F00.h +++ b/src/code_80071F00.h @@ -21,23 +21,23 @@ typedef struct { void func_80077D5C(s32); s32 find_unused_obj_index(s32*); -void func_80071F6C(s32*); +void delete_object(s32*); s32 func_80071FBC(void); s32 func_80072044(s32*, s32*, s32); -void func_80072100(s32*); +void delete_object_wrapper(s32*); void func_80072120(s32*, s32); void func_80072180(void); -void func_800721C0(s32, s32); -void func_800721E8(s32, s32); +void set_object_flag_unk_054_true(s32, s32); +void set_object_flag_unk_054_false(s32, s32); void func_80072214(s32, s32); -s32 func_8007223C(s32, s32); -s32 func_80072270(s32, s32); +s32 is_obj_index_flag_unk_054_active(s32, s32); +s32 is_obj_index_flag_unk_054_inactive(s32, s32); void func_800722A4(s32, s32); void func_800722CC(s32, s32); void func_800722F8(s32, s32); s32 func_80072320(s32, s32); s32 func_80072354(s32, s32); -void func_80072388(s32, s32); +void set_object_unk_0CB(s32, s32); void func_800723A4(s32, s32); void func_80072408(s32); void func_80072428(s32); @@ -59,7 +59,7 @@ void func_80072950(s32, s32, s32, s32); void func_80072974(s32, s32, s32, s32); void func_80072998(s32); void func_800729B4(s32, s32); -void func_800729D0(s32, s32); +void set_type_object(s32, s32); void func_80072A78(s32, s32); s32 func_80072AAC(s32, s32, s32); s32 func_80072B48(s32, s32); @@ -70,7 +70,7 @@ s32 func_80072F88(s32, s32, s32, s32, s32, s32); s32 func_800730BC(s32, s32, s32, s32, s32, s32); s32 func_8007326C(s32, s32, s32, s32, s32, s32); void func_80073404(s32, u8, u8, Vtx*); -void func_80073444(s32, u8*, u8*, u8, u16); +void init_texture_object(s32, u8*, u8*, u8, u16); void func_8007348C(s32, u8*, u8, u8, Vtx *); void func_800734D4(void); void func_800734DC(s32); @@ -207,10 +207,10 @@ void func_8007A910(s32); void func_8007A948(s32); void func_8007AA44(s32); void func_8007ABFC(s32, s32); -void func_8007AC9C(s32); +void consume_item(s32); u8 gen_random_item(s16, s16); -u8 func_8007AF40(s16, s16); -u8 func_8007AF78(s32, s16); +u8 gen_random_item_human(s16, s16); +u8 gen_random_item_cpu(s32, s16); s16 func_8007AFB0(s32, s32); s32 func_8007B040(s32, s32); void func_8007B34C(s32); diff --git a/src/code_80086E70.c b/src/code_80086E70.c index 9c0661808..97f6afe82 100644 --- a/src/code_80086E70.c +++ b/src/code_80086E70.c @@ -8,70 +8,70 @@ #include "objects.h" #include "math_util.h" #include "math_util_2.h" -#include "memory.h" +#include "racing/memory.h" #include "code_80071F00.h" #include "collision.h" #include "audio/external.h" #include "variables.h" #include "main.h" -void func_80086E70(s32 arg0) { - D_80165C18[arg0].unk_0AE = 1;// * 0xE0)) = 1; - func_800721E8(arg0, 8); +void func_80086E70(s32 objectIndex) { + gObjectList[objectIndex].unk_0AE = 1;// * 0xE0)) = 1; + set_object_flag_unk_054_false(objectIndex, 8); } -void func_80086EAC(s32 arg0, s32 arg1, s16 arg2) { - D_80165C18[arg0].unk_0DD = arg1; - D_80165C18[arg0].unk_0AE = arg2; - func_800721E8(arg0, 8); +void func_80086EAC(s32 objectIndex, s32 arg1, s16 arg2) { + gObjectList[objectIndex].unk_0DD = arg1; + gObjectList[objectIndex].unk_0AE = arg2; + set_object_flag_unk_054_false(objectIndex, 8); } -void func_80086EF0(s32 arg0) { - func_80086E70(arg0); +void func_80086EF0(s32 objectIndex) { + func_80086E70(objectIndex); } -void func_80086F10(s32 arg0, s32 arg1, u16 arg2[][4]) { - func_80086E70(arg0); - D_80165C18[arg0].unk_0DE = arg1; - D_80165C18[arg0].unk_080 = (u16 *) arg2; +void func_80086F10(s32 objectIndex, s32 arg1, u16 arg2[][4]) { + func_80086E70(objectIndex); + gObjectList[objectIndex].unk_0DE = arg1; + gObjectList[objectIndex].unk_080 = (u16 *) arg2; } -void func_80086F60(s32 arg0) { - D_80165C18[arg0].unk_0AE = 0; - D_80165C18[arg0].unk_0DD = 0; - D_80165C18[arg0].unk_0DE = 0; - func_800721E8(arg0, 8); +void func_80086F60(s32 objectIndex) { + gObjectList[objectIndex].unk_0AE = 0; + gObjectList[objectIndex].unk_0DD = 0; + gObjectList[objectIndex].unk_0DE = 0; + set_object_flag_unk_054_false(objectIndex, 8); } -s32 func_80086FA4(s32 arg0) { - s32 ret = 0; - if (D_80165C18[arg0].unk_0AE == 0) { - ret = 1; +bool func_80086FA4(s32 objectIndex) { + bool ret = FALSE; + if (gObjectList[objectIndex].unk_0AE == 0) { + ret = TRUE; } return ret; } -void func_80086FD4(s32 arg0) { - func_800721E8(arg0, 8); - D_80165C18[arg0].unk_0AE += 1; +void func_80086FD4(s32 objectIndex) { + set_object_flag_unk_054_false(objectIndex, 8); + gObjectList[objectIndex].unk_0AE += 1; } -void func_8008701C(s32 arg0, s32 arg1) { - func_800721E8(arg0, 8); - D_80165C18[arg0].unk_0AE = arg1; +void func_8008701C(s32 objectIndex, s32 arg1) { + set_object_flag_unk_054_false(objectIndex, 8); + gObjectList[objectIndex].unk_0AE = arg1; } s32 func_80087060(s32 objectIndex, s32 arg1) { s32 sp1C; sp1C = 0; - if (func_80072270(objectIndex, 8) != 0) { - func_800721C0(objectIndex, 8); - D_80165C18[objectIndex].unk_0B0 = arg1; + if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { + set_object_flag_unk_054_true(objectIndex, 8); + gObjectList[objectIndex].unk_0B0 = arg1; } - D_80165C18[objectIndex].unk_0B0--; - if (D_80165C18[objectIndex].unk_0B0 < 0) { - func_800721E8(objectIndex, 8); + gObjectList[objectIndex].unk_0B0--; + if (gObjectList[objectIndex].unk_0B0 < 0) { + set_object_flag_unk_054_false(objectIndex, 8); sp1C = 1; } return sp1C; @@ -81,13 +81,13 @@ s32 func_80087104(s32 objectIndex, u16 arg1) { s32 sp24; sp24 = 0; - if (func_80072270(objectIndex, 8) != 0) { - func_800721C0(objectIndex, 8); - D_80165C18[objectIndex].unk_0B0 = random_int(arg1); + if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { + set_object_flag_unk_054_true(objectIndex, 8); + gObjectList[objectIndex].unk_0B0 = random_int(arg1); } - D_80165C18[objectIndex].unk_0B0--; - if (D_80165C18[objectIndex].unk_0B0 < 0) { - func_800721E8(objectIndex, 8); + gObjectList[objectIndex].unk_0B0--; + if (gObjectList[objectIndex].unk_0B0 < 0) { + set_object_flag_unk_054_false(objectIndex, 8); sp24 = 1; } return sp24; @@ -97,13 +97,13 @@ s32 func_800871AC(s32 objectIndex, s32 arg1) { s32 sp24; sp24 = 0; - if (func_80072270(objectIndex, 8) != 0) { - func_800721C0(objectIndex, 8); - D_80165C18[objectIndex].unk_0B0 = (s16) arg1; + if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { + set_object_flag_unk_054_true(objectIndex, 8); + gObjectList[objectIndex].unk_0B0 = (s16) arg1; } - D_80165C18[objectIndex].unk_0B0--; - if (D_80165C18[objectIndex].unk_0B0 < 0) { - func_800721E8(objectIndex, 8); + gObjectList[objectIndex].unk_0B0--; + if (gObjectList[objectIndex].unk_0B0 < 0) { + set_object_flag_unk_054_false(objectIndex, 8); func_80086FD4(objectIndex); sp24 = 1; } @@ -111,92 +111,92 @@ s32 func_800871AC(s32 objectIndex, s32 arg1) { } UNUSED void func_80087258(s32 objectIndex, UNUSED s32 arg1, f32 arg2) { - D_80165C18[objectIndex].unk_028[1] += arg2; - D_80165C18[objectIndex].unk_028[2] -= arg2; + gObjectList[objectIndex].unk_028[1] += arg2; + gObjectList[objectIndex].unk_028[2] -= arg2; } UNUSED s32 func_80087294(s32 objectIndex, Player *player) { - return func_80041770(player->pos[0], D_80165C18[objectIndex].pos[0], player->pos[2], D_80165C18[objectIndex].pos[2]); + return func_80041770(player->pos[0], gObjectList[objectIndex].pos[0], player->pos[2], gObjectList[objectIndex].pos[2]); } -s32 func_800872D8(s32 objectIndex, Camera *camera) { - return atan2s(D_80165C18[objectIndex].pos[0] - camera->pos[0], D_80165C18[objectIndex].pos[2] - camera->pos[2]); +s32 angle_between_object_camera(s32 objectIndex, Camera *camera) { + return atan2s(gObjectList[objectIndex].pos[0] - camera->pos[0], gObjectList[objectIndex].pos[2] - camera->pos[2]); } u16 func_80087324(s32 objectIndex) { - return -atan2s(D_80165C18[objectIndex].unk_038[1], D_80165C18[objectIndex].unk_038[2]); + return -atan2s(gObjectList[objectIndex].unk_038[1], gObjectList[objectIndex].unk_038[2]); } s32 func_80087368(s32 objectIndex) { - return atan2s(D_80165C18[objectIndex].unk_038[0], D_80165C18[objectIndex].unk_038[2]); + return atan2s(gObjectList[objectIndex].unk_038[0], gObjectList[objectIndex].unk_038[2]); } UNUSED void func_800873A4(s32 objectIndex) { - D_80165C18[objectIndex].unk_0BE[0] = func_800417B4(D_80165C18[objectIndex].unk_0BE[0], func_80087324(objectIndex)); + gObjectList[objectIndex].unk_0BE[0] = func_800417B4(gObjectList[objectIndex].unk_0BE[0], func_80087324(objectIndex)); } void func_800873F4(s32 objectIndex) { - D_80165C18[objectIndex].unk_0BE[1] = func_800417B4(D_80165C18[objectIndex].unk_0BE[1], func_80087368(objectIndex)); + gObjectList[objectIndex].unk_0BE[1] = func_800417B4(gObjectList[objectIndex].unk_0BE[1], func_80087368(objectIndex)); } UNUSED void func_80087444(s32 objectIndex) { - D_80165C18[objectIndex].unk_038[0] = D_80165C18[objectIndex].unk_034 * sins(D_80165C18[objectIndex].unk_0BE[1]); + gObjectList[objectIndex].unk_038[0] = gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].unk_0BE[1]); } UNUSED void func_8008748C(s32 objectIndex) { - D_80165C18[objectIndex].unk_038[1] = D_80165C18[objectIndex].unk_034 * coss(D_80165C18[objectIndex].unk_0BE[0]); + gObjectList[objectIndex].unk_038[1] = gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].unk_0BE[0]); } UNUSED void func_800874D4(s32 objectIndex) { - D_80165C18[objectIndex].unk_038[2] = D_80165C18[objectIndex].unk_034 * coss(D_80165C18[objectIndex].unk_0BE[1]); + gObjectList[objectIndex].unk_038[2] = gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].unk_0BE[1]); } void func_8008751C(s32 objectIndex) { - D_80165C18[objectIndex].unk_038[0] = D_80165C18[objectIndex].unk_034 * sins(D_80165C18[objectIndex].unk_0BE[1]); - D_80165C18[objectIndex].unk_038[2] = D_80165C18[objectIndex].unk_034 * coss(D_80165C18[objectIndex].unk_0BE[1]); + gObjectList[objectIndex].unk_038[0] = gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].unk_0BE[1]); + gObjectList[objectIndex].unk_038[2] = gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].unk_0BE[1]); } void func_8008757C(s32 objectIndex) { f32 sp24; - sp24 = coss(D_80165C18[objectIndex].unk_0BE[0]); - D_80165C18[objectIndex].unk_038[0] = (D_80165C18[objectIndex].unk_034 * sp24) * sins(D_80165C18[objectIndex].unk_0BE[1]); - D_80165C18[objectIndex].unk_038[1] = -D_80165C18[objectIndex].unk_034 * sins(D_80165C18[objectIndex].unk_0BE[0]); - sp24 = coss(D_80165C18[objectIndex].unk_0BE[0]); - D_80165C18[objectIndex].unk_038[2] = (D_80165C18[objectIndex].unk_034 * sp24) * coss(D_80165C18[objectIndex].unk_0BE[1]); + sp24 = coss(gObjectList[objectIndex].unk_0BE[0]); + gObjectList[objectIndex].unk_038[0] = (gObjectList[objectIndex].unk_034 * sp24) * sins(gObjectList[objectIndex].unk_0BE[1]); + gObjectList[objectIndex].unk_038[1] = -gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].unk_0BE[0]); + sp24 = coss(gObjectList[objectIndex].unk_0BE[0]); + gObjectList[objectIndex].unk_038[2] = (gObjectList[objectIndex].unk_034 * sp24) * coss(gObjectList[objectIndex].unk_0BE[1]); } void func_80087620(s32 objectIndex) { - D_80165C18[objectIndex].unk_038[0] = D_80165C18[objectIndex].unk_034 * sins(D_80165C18[objectIndex].unk_0BE[1] + 0x8000); - D_80165C18[objectIndex].unk_038[2] = D_80165C18[objectIndex].unk_034 * coss(D_80165C18[objectIndex].unk_0BE[1] + 0x8000); + gObjectList[objectIndex].unk_038[0] = gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].unk_0BE[1] + 0x8000); + gObjectList[objectIndex].unk_038[2] = gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].unk_0BE[1] + 0x8000); } void func_800876A0(s32 objectIndex) { - D_80165C18[objectIndex].unk_028[0] += D_80165C18[objectIndex].unk_034 * sins(D_80165C18[objectIndex].unk_0BE[1]); - D_80165C18[objectIndex].unk_028[2] += D_80165C18[objectIndex].unk_034 * coss(D_80165C18[objectIndex].unk_0BE[1]); + gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].unk_034 * sins(gObjectList[objectIndex].unk_0BE[1]); + gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].unk_034 * coss(gObjectList[objectIndex].unk_0BE[1]); } void func_80087710(s32 objectIndex) { - D_80165C18[objectIndex].unk_028[0] += D_80165C18[objectIndex].unk_038[0]; - D_80165C18[objectIndex].unk_028[1] += D_80165C18[objectIndex].unk_038[1]; - D_80165C18[objectIndex].unk_028[2] += D_80165C18[objectIndex].unk_038[2]; + gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].unk_038[0]; + gObjectList[objectIndex].unk_028[1] += gObjectList[objectIndex].unk_038[1]; + gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].unk_038[2]; } void func_8008775C(s32 objectIndex) { - D_80165C18[objectIndex].unk_028[0] += D_80165C18[objectIndex].unk_038[0]; - D_80165C18[objectIndex].unk_028[2] += D_80165C18[objectIndex].unk_038[2]; + gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].unk_038[0]; + gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].unk_038[2]; } UNUSED void func_80087798(s32 objectIndex) { - D_80165C18[objectIndex].unk_028[0] += D_80165C18[objectIndex].unk_038[0]; + gObjectList[objectIndex].unk_028[0] += gObjectList[objectIndex].unk_038[0]; } void func_800877C4(s32 objectIndex) { - D_80165C18[objectIndex].unk_028[1] += D_80165C18[objectIndex].unk_038[1]; + gObjectList[objectIndex].unk_028[1] += gObjectList[objectIndex].unk_038[1]; } UNUSED void func_800877F0(s32 objectIndex) { - D_80165C18[objectIndex].unk_028[2] += D_80165C18[objectIndex].unk_038[2]; + gObjectList[objectIndex].unk_028[2] += gObjectList[objectIndex].unk_038[2]; } void func_8008781C(s32 arg0) { @@ -217,14 +217,14 @@ s32 func_8008789C(s32 objectIndex, s32 arg1) { s32 sp24; sp24 = 0; - if (func_80072270(objectIndex, 8) != 0) { - func_800721C0(objectIndex, 8); + if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { + set_object_flag_unk_054_true(objectIndex, 8); func_8008751C(objectIndex); - D_80165C18[objectIndex].unk_0B0 = arg1; + gObjectList[objectIndex].unk_0B0 = arg1; } - D_80165C18[objectIndex].unk_0B0--; - if (D_80165C18[objectIndex].unk_0B0 < 0) { - func_800721E8(objectIndex, 8); + gObjectList[objectIndex].unk_0B0--; + if (gObjectList[objectIndex].unk_0B0 < 0) { + set_object_flag_unk_054_false(objectIndex, 8); sp24 = 1; } else { func_8008775C(objectIndex); @@ -236,14 +236,14 @@ s32 func_80087954(s32 objectIndex, s32 arg1) { s32 sp24; sp24 = 0; - if (func_80072270(objectIndex, 8) != 0) { - func_800721C0(objectIndex, 8); + if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { + set_object_flag_unk_054_true(objectIndex, 8); func_80087620(objectIndex); - D_80165C18[objectIndex].unk_0B0 = arg1; + gObjectList[objectIndex].unk_0B0 = arg1; } - D_80165C18[objectIndex].unk_0B0--; - if (D_80165C18[objectIndex].unk_0B0 < 0) { - func_800721E8(objectIndex, 8); + gObjectList[objectIndex].unk_0B0--; + if (gObjectList[objectIndex].unk_0B0 < 0) { + set_object_flag_unk_054_false(objectIndex, 8); sp24 = 1; } else { func_8008775C(objectIndex); @@ -258,19 +258,19 @@ s32 func_80087A0C(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, s16 arg4) { s32 sp2C; sp2C = 0; - if (func_80072270(objectIndex, 8) != 0) { - func_800721C0(objectIndex, 8); + if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { + set_object_flag_unk_054_true(objectIndex, 8); temp_v0 = arg2 - arg1; temp_a0 = arg4 - arg3; sp36 = sqrtf((temp_v0 * temp_v0) + (temp_a0 * temp_a0)); - D_80165C18[objectIndex].unk_010[1] = 0.0f; - D_80165C18[objectIndex].unk_0BE[1] = atan2s(temp_v0, temp_a0); + gObjectList[objectIndex].unk_010[1] = 0.0f; + gObjectList[objectIndex].unk_0BE[1] = atan2s(temp_v0, temp_a0); func_8008751C(objectIndex); - D_80165C18[objectIndex].unk_0B0 = sp36 / D_80165C18[objectIndex].unk_034; + gObjectList[objectIndex].unk_0B0 = sp36 / gObjectList[objectIndex].unk_034; } - D_80165C18[objectIndex].unk_0B0--; - if (D_80165C18[objectIndex].unk_0B0 < 0) { - func_800721E8(objectIndex, 8); + gObjectList[objectIndex].unk_0B0--; + if (gObjectList[objectIndex].unk_0B0 < 0) { + set_object_flag_unk_054_false(objectIndex, 8); sp2C = 1; } else { func_8008775C(objectIndex); @@ -282,13 +282,13 @@ s32 func_80087B84(s32 objectIndex, f32 arg1, f32 arg2) { s32 sp24; sp24 = 0; - if (func_80072270(objectIndex, 8) != 0) { - func_800721C0(objectIndex, 8); - D_80165C18[objectIndex].unk_038[1] = -arg1; + if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { + set_object_flag_unk_054_true(objectIndex, 8); + gObjectList[objectIndex].unk_038[1] = -arg1; } func_800877C4(objectIndex); - if (D_80165C18[objectIndex].pos[1] <= arg2) { - func_800721E8(objectIndex, 8); + if (gObjectList[objectIndex].pos[1] <= arg2) { + set_object_flag_unk_054_false(objectIndex, 8); func_80086FD4(objectIndex); sp24 = 1; } @@ -299,18 +299,18 @@ s32 func_80087C48(s32 objectIndex, f32 arg1, f32 arg2, s32 arg3) { s32 sp24; sp24 = 0; - if (func_80072270(objectIndex, 8) != 0) { - func_800721C0(objectIndex, 8); - D_80165C18[objectIndex].unk_038[1] = arg1; - D_80165C18[objectIndex].unk_0B0 = (s16) arg3; + if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { + set_object_flag_unk_054_true(objectIndex, 8); + gObjectList[objectIndex].unk_038[1] = arg1; + gObjectList[objectIndex].unk_0B0 = (s16) arg3; } - D_80165C18[objectIndex].unk_0B0--; - if (D_80165C18[objectIndex].unk_0B0 < 0) { - func_800721E8(objectIndex, 8); + gObjectList[objectIndex].unk_0B0--; + if (gObjectList[objectIndex].unk_0B0 < 0) { + set_object_flag_unk_054_false(objectIndex, 8); func_80086FD4(objectIndex); sp24 = 1; } else { - D_80165C18[objectIndex].unk_038[1] -= arg2; + gObjectList[objectIndex].unk_038[1] -= arg2; func_800877C4(objectIndex); } return sp24; @@ -320,44 +320,44 @@ s32 func_80087D24(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) { s32 sp24; sp24 = 0; - if (func_80072270(objectIndex, 8) != 0) { - func_800721C0(objectIndex, 8); - D_80165C18[objectIndex].unk_038[1] = arg1; + if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { + set_object_flag_unk_054_true(objectIndex, 8); + gObjectList[objectIndex].unk_038[1] = arg1; } - D_80165C18[objectIndex].unk_038[1] -= arg2; + gObjectList[objectIndex].unk_038[1] -= arg2; func_800877C4(objectIndex); - if (D_80165C18[objectIndex].unk_028[1] <= arg3) { - func_800721E8(objectIndex, 8); - D_80165C18[objectIndex].unk_028[1] = arg3; + if (gObjectList[objectIndex].unk_028[1] <= arg3) { + set_object_flag_unk_054_false(objectIndex, 8); + gObjectList[objectIndex].unk_028[1] = arg3; func_80086FD4(objectIndex); sp24 = 1; } return sp24; } -s32 func_80087E08(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s32 arg5) { - s32 sp2C; +bool func_80087E08(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s32 arg5) { + bool sp2C; UNUSED s32 pad; - sp2C = 0; - if (func_80072270(objectIndex, 8) != 0) { - func_800721C0(objectIndex, 8); - D_80165C18[objectIndex].unk_028[2] = 0.0f; - D_80165C18[objectIndex].unk_028[1] = 0.0f; - D_80165C18[objectIndex].unk_028[0] = 0.0f; - D_80165C18[objectIndex].unk_034 = arg3; - D_80165C18[objectIndex].unk_038[1] = arg1; - D_80165C18[objectIndex].unk_0BE[1] = arg4; + sp2C = FALSE; + if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { + set_object_flag_unk_054_true(objectIndex, 8); + gObjectList[objectIndex].unk_028[2] = 0.0f; + gObjectList[objectIndex].unk_028[1] = 0.0f; + gObjectList[objectIndex].unk_028[0] = 0.0f; + gObjectList[objectIndex].unk_034 = arg3; + gObjectList[objectIndex].unk_038[1] = arg1; + gObjectList[objectIndex].unk_0BE[1] = arg4; func_8008751C(objectIndex); - D_80165C18[objectIndex].unk_0B0 = arg5; + gObjectList[objectIndex].unk_0B0 = arg5; } - D_80165C18[objectIndex].unk_0B0--; - if (D_80165C18[objectIndex].unk_0B0 < 0) { - func_800721E8(objectIndex, 8); + gObjectList[objectIndex].unk_0B0--; + if (gObjectList[objectIndex].unk_0B0 < 0) { + set_object_flag_unk_054_false(objectIndex, 8); func_80086FD4(objectIndex); - sp2C = 1; + sp2C = TRUE; } else { - D_80165C18[objectIndex].unk_038[1] -= arg2; + gObjectList[objectIndex].unk_038[1] -= arg2; func_80087710(objectIndex); } return sp2C; @@ -368,23 +368,23 @@ UNUSED s32 func_80087F14(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3, s16 arg4 UNUSED s32 stackPadding; sp2C = 0; - if (func_80072270(objectIndex, 8) != 0) { - func_800721C0(objectIndex, 8); - D_80165C18[objectIndex].unk_028[2] = 0.0f; - D_80165C18[objectIndex].unk_028[1] = 0.0f; - D_80165C18[objectIndex].unk_028[0] = 0.0f; - D_80165C18[objectIndex].unk_034 = arg3; - D_80165C18[objectIndex].unk_038[1] = arg1; - D_80165C18[objectIndex].unk_0BE[1] = arg4; + if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { + set_object_flag_unk_054_true(objectIndex, 8); + gObjectList[objectIndex].unk_028[2] = 0.0f; + gObjectList[objectIndex].unk_028[1] = 0.0f; + gObjectList[objectIndex].unk_028[0] = 0.0f; + gObjectList[objectIndex].unk_034 = arg3; + gObjectList[objectIndex].unk_038[1] = arg1; + gObjectList[objectIndex].unk_0BE[1] = arg4; func_8008751C(objectIndex); - D_80165C18[objectIndex].unk_0B0 = gVBlankTimer; + gObjectList[objectIndex].unk_0B0 = gVBlankTimer; } - if (D_80165C18[objectIndex].unk_028[1] <= arg5) { - func_800721E8(objectIndex, 8); + if (gObjectList[objectIndex].unk_028[1] <= arg5) { + set_object_flag_unk_054_false(objectIndex, 8); func_80086FD4(objectIndex); sp2C = 1; } else { - D_80165C18[objectIndex].unk_038[1] -= arg2; + gObjectList[objectIndex].unk_038[1] -= arg2; func_80087710(objectIndex); } return sp2C; @@ -394,13 +394,13 @@ void func_80088038(s32 objectIndex, f32 arg1, u16 arg2) { f32 temp_f4; f32 sp20; - temp_f4 = D_80165C18[objectIndex].unk_028[0]; - sp20 = D_80165C18[objectIndex].unk_028[2]; - D_80165C18[objectIndex].unk_0C4 += arg2; - D_80165C18[objectIndex].unk_028[0] = sins(D_80165C18[objectIndex].unk_0C4) * arg1; - D_80165C18[objectIndex].unk_028[2] = coss(D_80165C18[objectIndex].unk_0C4) * arg1; - D_80165C18[objectIndex].unk_038[0] = D_80165C18[objectIndex].unk_028[0] - temp_f4; - D_80165C18[objectIndex].unk_038[2] = D_80165C18[objectIndex].unk_028[2] - sp20; + temp_f4 = gObjectList[objectIndex].unk_028[0]; + sp20 = gObjectList[objectIndex].unk_028[2]; + gObjectList[objectIndex].unk_0C4 += arg2; + gObjectList[objectIndex].unk_028[0] = sins(gObjectList[objectIndex].unk_0C4) * arg1; + gObjectList[objectIndex].unk_028[2] = coss(gObjectList[objectIndex].unk_0C4) * arg1; + gObjectList[objectIndex].unk_038[0] = gObjectList[objectIndex].unk_028[0] - temp_f4; + gObjectList[objectIndex].unk_038[2] = gObjectList[objectIndex].unk_028[2] - sp20; } UNUSED void func_800880DC(void) { @@ -410,7 +410,7 @@ UNUSED void func_800880DC(void) { void func_800880E4(s32 objectIndex) { Vec4s *phi_v0; s32 someIndex; - phi_v0 = D_80165C18[objectIndex].unk_07C; + phi_v0 = gObjectList[objectIndex].unk_07C; for (someIndex = 0; someIndex < 2; someIndex++, phi_v0++) { D_80165760[someIndex] = (*phi_v0)[0]; D_80165770[someIndex] = (*phi_v0)[1]; @@ -419,14 +419,14 @@ void func_800880E4(s32 objectIndex) { } void func_80088150(s32 arg0) { - D_80165C18[arg0].unk_07C++; + gObjectList[arg0].unk_07C++; } void func_80088178(s32 objectIndex, s32 arg1) { s16 temp_a1; - struct_80165C18_entry *temp_v1; + Objects *temp_v1; - temp_v1 = &D_80165C18[objectIndex]; + temp_v1 = &gObjectList[objectIndex]; temp_a1 = atan2s(D_80165760[1] - D_80165760[0], D_80165780[1] - D_80165780[0]); temp_a1 -= temp_v1->unk_0BE[1]; if (temp_a1 > 0) { @@ -439,15 +439,15 @@ void func_80088178(s32 objectIndex, s32 arg1) { // if the code is too ugly for you, then go fix it without tampering with the register allocations void func_80088228(s32 objectIndex) { s16 *temp_v1; - struct_80165C18_entry *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + Objects *temp_v0; + temp_v0 = &gObjectList[objectIndex]; temp_v1 = temp_v0->unk_080[0]; temp_v1 = &temp_v0->unk_080[0][1]; - (&D_80165C18[objectIndex])->unk_084[9] = 0; - (&D_80165C18[objectIndex])->unk_07C = (s16 (*)[4]) temp_v1; - (&D_80165C18[objectIndex])->unk_084[8] = temp_v1[-1]; - (&D_80165C18[objectIndex])->unk_028[0] = temp_v1[0]; - (&D_80165C18[objectIndex])->unk_028[1] = temp_v1[1]; + (&gObjectList[objectIndex])->unk_084[9] = 0; + (&gObjectList[objectIndex])->unk_07C = (s16 (*)[4]) temp_v1; + (&gObjectList[objectIndex])->unk_084[8] = temp_v1[-1]; + (&gObjectList[objectIndex])->unk_028[0] = temp_v1[0]; + (&gObjectList[objectIndex])->unk_028[1] = temp_v1[1]; temp_v0->unk_028[2] = temp_v1[2]; func_80086FD4(objectIndex); } @@ -460,9 +460,9 @@ s32 func_800882B0(s32 objectIndex, s32 arg1) { s32 var_v1; var_v1 = 0; - temp_f0 = (s32)((D_80165760[1] - D_80165C18[objectIndex].unk_028[0]) * (D_80165760[1] - D_80165C18[objectIndex].unk_028[0])); - temp_f12 = (s32)((D_80165770[1] - D_80165C18[objectIndex].unk_028[1]) * (D_80165770[1] - D_80165C18[objectIndex].unk_028[1])); - temp_f2 = (s32)((D_80165780[1] - D_80165C18[objectIndex].unk_028[2]) * (D_80165780[1] - D_80165C18[objectIndex].unk_028[2])); + temp_f0 = (s32)((D_80165760[1] - gObjectList[objectIndex].unk_028[0]) * (D_80165760[1] - gObjectList[objectIndex].unk_028[0])); + temp_f12 = (s32)((D_80165770[1] - gObjectList[objectIndex].unk_028[1]) * (D_80165770[1] - gObjectList[objectIndex].unk_028[1])); + temp_f2 = (s32)((D_80165780[1] - gObjectList[objectIndex].unk_028[2]) * (D_80165780[1] - gObjectList[objectIndex].unk_028[2])); if ((temp_f0 + temp_f12 + temp_f2 - (arg1 * arg1)) <= 0) { var_v1 = 1; } @@ -470,13 +470,13 @@ s32 func_800882B0(s32 objectIndex, s32 arg1) { } void func_80088364(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; func_800880E4(objectIndex); func_80088178(objectIndex, 1); func_800876A0(objectIndex); if (func_800882B0(objectIndex, 0x0000000A) != 0) { - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_084[9] = (u16) temp_v0->unk_084[9] + 1; if (((u16)temp_v0->unk_084[9] + 3) == (u16) temp_v0->unk_084[8]) { temp_v0->unk_0AE += 1; @@ -487,7 +487,7 @@ void func_80088364(s32 objectIndex) { } void func_800883FC(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 0: break; case 1: @@ -506,14 +506,14 @@ s32 func_8008847C(s32 objectIndex) { s32 sp2C; sp2C = 0; - func_800721E8(objectIndex, 0x00800000); - if (func_8007223C(objectIndex, 0x00000400) != 0) { - func_802ADDC8(&D_8018C3B0, 10.0f, D_80165C18[objectIndex].pos[0], 20.0f, D_80165C18[objectIndex].pos[2]); + set_object_flag_unk_054_false(objectIndex, 0x00800000); + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000400) != 0) { + func_802ADDC8(&D_8018C3B0, 10.0f, gObjectList[objectIndex].pos[0], 20.0f, gObjectList[objectIndex].pos[2]); if (D_8018C3B0.unk34 == 1) { sp2C = 1; - func_800721C0(objectIndex, 0x00800000); + set_object_flag_unk_054_true(objectIndex, 0x00800000); } - D_80165C18[objectIndex].unk_044 = func_802ABE30(D_80165C18[objectIndex].pos[0], 0.0f, D_80165C18[objectIndex].pos[2], D_8018C3B0.unk3A); + gObjectList[objectIndex].unk_044 = func_802ABE30(gObjectList[objectIndex].pos[0], 0.0f, gObjectList[objectIndex].pos[2], D_8018C3B0.unk3A); } return sp2C; } @@ -522,16 +522,16 @@ s32 func_80088538(s32 objectIndex) { s32 sp2C; sp2C = 0; - func_800721E8(objectIndex, 0x00800000); - if (func_8007223C(objectIndex, 0x00000400) != 0) { - func_802ADDC8(&D_8018C3B0, 10.0f, D_80165C18[objectIndex].pos[0], 20.0f, D_80165C18[objectIndex].pos[2]); + set_object_flag_unk_054_false(objectIndex, 0x00800000); + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000400) != 0) { + func_802ADDC8(&D_8018C3B0, 10.0f, gObjectList[objectIndex].pos[0], 20.0f, gObjectList[objectIndex].pos[2]); if (D_8018C3B0.unk34 == 1) { sp2C = 1; - func_800721C0(objectIndex, 0x00800000); + set_object_flag_unk_054_true(objectIndex, 0x00800000); } - D_80165C18[objectIndex].unk_044 = func_802ABE30(D_80165C18[objectIndex].pos[0], 0.0f, D_80165C18[objectIndex].pos[2], D_8018C3B0.unk3A); - D_80165C18[objectIndex].unk_0B8[0] = atan2s(D_8018C3B0.unk60[2], D_8018C3B0.unk60[1]) + 0x4000; - D_80165C18[objectIndex].unk_0B8[2] = atan2s(D_8018C3B0.unk60[0], D_8018C3B0.unk60[1]); + gObjectList[objectIndex].unk_044 = func_802ABE30(gObjectList[objectIndex].pos[0], 0.0f, gObjectList[objectIndex].pos[2], D_8018C3B0.unk3A); + gObjectList[objectIndex].unk_0B8[0] = atan2s(D_8018C3B0.unk60[2], D_8018C3B0.unk60[1]) + 0x4000; + gObjectList[objectIndex].unk_0B8[2] = atan2s(D_8018C3B0.unk60[0], D_8018C3B0.unk60[1]); } return sp2C; } @@ -540,52 +540,52 @@ s32 func_8008861C(s32 objectIndex) { s32 sp2C; sp2C = 0; - func_800721E8(objectIndex, 0x00800000); - if (func_8007223C(objectIndex, 0x00000400) != 0) { - func_802ADDC8(&D_8018C3B0, 10.0f, D_80165C18[objectIndex].pos[0], 20.0f, D_80165C18[objectIndex].pos[2]); + set_object_flag_unk_054_false(objectIndex, 0x00800000); + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000400) != 0) { + func_802ADDC8(&D_8018C3B0, 10.0f, gObjectList[objectIndex].pos[0], 20.0f, gObjectList[objectIndex].pos[2]); if (D_8018C3B0.unk34 == 1) { sp2C = 1; - func_800721C0(objectIndex, 0x00800000); + set_object_flag_unk_054_true(objectIndex, 0x00800000); } - D_80165C18[objectIndex].unk_044 = func_802ABE30(D_80165C18[objectIndex].pos[0], 0.0f, D_80165C18[objectIndex].pos[2], D_8018C3B0.unk3A); - D_80165C18[objectIndex].unk_01C[0] = D_8018C3B0.unk60[0]; - D_80165C18[objectIndex].unk_01C[1] = D_8018C3B0.unk60[1]; - D_80165C18[objectIndex].unk_01C[2] = D_8018C3B0.unk60[2]; + gObjectList[objectIndex].unk_044 = func_802ABE30(gObjectList[objectIndex].pos[0], 0.0f, gObjectList[objectIndex].pos[2], D_8018C3B0.unk3A); + gObjectList[objectIndex].unk_01C[0] = D_8018C3B0.unk60[0]; + gObjectList[objectIndex].unk_01C[1] = D_8018C3B0.unk60[1]; + gObjectList[objectIndex].unk_01C[2] = D_8018C3B0.unk60[2]; } return sp2C; } void func_800886F4(s32 objectIndex) { - func_802ADDC8(&D_8018C3B0, 10.0f, D_80165C18[objectIndex].pos[0], 20.0f, D_80165C18[objectIndex].pos[2]); + func_802ADDC8(&D_8018C3B0, 10.0f, gObjectList[objectIndex].pos[0], 20.0f, gObjectList[objectIndex].pos[2]); if (D_8018C3B0.unk34 == 1) { - func_800721C0(objectIndex, 0x00800000); - D_80165C18[objectIndex].unk_044 = func_802ABE30(D_80165C18[objectIndex].pos[0], 0.0f, D_80165C18[objectIndex].pos[2], D_8018C3B0.unk3A); - D_80165C18[objectIndex].unk_0B8[0] = atan2s(D_8018C3B0.unk60[2], D_8018C3B0.unk60[1]) + 0x4000; - D_80165C18[objectIndex].unk_0B8[2] = atan2s(D_8018C3B0.unk60[0], D_8018C3B0.unk60[1]); + set_object_flag_unk_054_true(objectIndex, 0x00800000); + gObjectList[objectIndex].unk_044 = func_802ABE30(gObjectList[objectIndex].pos[0], 0.0f, gObjectList[objectIndex].pos[2], D_8018C3B0.unk3A); + gObjectList[objectIndex].unk_0B8[0] = atan2s(D_8018C3B0.unk60[2], D_8018C3B0.unk60[1]) + 0x4000; + gObjectList[objectIndex].unk_0B8[2] = atan2s(D_8018C3B0.unk60[0], D_8018C3B0.unk60[1]); return; } - func_800721E8(objectIndex, 0x00800000); + set_object_flag_unk_054_false(objectIndex, 0x00800000); } void func_800887C0(s32 objectIndex) { - func_802ADDC8(&D_8018C3B0, 10.0f, D_80165C18[objectIndex].pos[0], 20.0f, D_80165C18[objectIndex].pos[2]); + func_802ADDC8(&D_8018C3B0, 10.0f, gObjectList[objectIndex].pos[0], 20.0f, gObjectList[objectIndex].pos[2]); if (D_8018C3B0.unk34 == 1) { - func_800721C0(objectIndex, 0x00800000); - D_80165C18[objectIndex].unk_044 = func_802ABE30(D_80165C18[objectIndex].pos[0], 0.0f, D_80165C18[objectIndex].pos[2], D_8018C3B0.unk3A); - D_80165C18[objectIndex].unk_038[0] = D_8018C3B0.unk60[0]; - D_80165C18[objectIndex].unk_038[1] = D_8018C3B0.unk60[1]; - D_80165C18[objectIndex].unk_038[2] = D_8018C3B0.unk60[2]; + set_object_flag_unk_054_true(objectIndex, 0x00800000); + gObjectList[objectIndex].unk_044 = func_802ABE30(gObjectList[objectIndex].pos[0], 0.0f, gObjectList[objectIndex].pos[2], D_8018C3B0.unk3A); + gObjectList[objectIndex].unk_038[0] = D_8018C3B0.unk60[0]; + gObjectList[objectIndex].unk_038[1] = D_8018C3B0.unk60[1]; + gObjectList[objectIndex].unk_038[2] = D_8018C3B0.unk60[2]; return; } - func_800721E8(objectIndex, 0x00800000); + set_object_flag_unk_054_false(objectIndex, 0x00800000); } UNUSED s32 func_80088880(s32 objectIndex, Player *player) { s32 temp_f10; s32 temp_f6; - temp_f10 = D_80165C18[objectIndex].pos[0] - player->pos[0]; - temp_f6 = D_80165C18[objectIndex].pos[2] - player->pos[2]; + temp_f10 = gObjectList[objectIndex].pos[0] - player->pos[0]; + temp_f6 = gObjectList[objectIndex].pos[2] - player->pos[2]; return (temp_f10 * temp_f10) + (temp_f6 * temp_f6); } @@ -594,9 +594,9 @@ UNUSED s32 func_800888E8(s32 objectIndex, Player *player) { s32 temp_f18; s32 temp_f6; - temp_f10 = D_80165C18[objectIndex].pos[0] - player->pos[0]; - temp_f6 = D_80165C18[objectIndex].pos[1] - player->pos[1]; - temp_f18 = D_80165C18[objectIndex].pos[2] - player->pos[2]; + temp_f10 = gObjectList[objectIndex].pos[0] - player->pos[0]; + temp_f6 = gObjectList[objectIndex].pos[1] - player->pos[1]; + temp_f18 = gObjectList[objectIndex].pos[2] - player->pos[2]; return (temp_f10 * temp_f10) + (temp_f6 * temp_f6) + (temp_f18 * temp_f18); } @@ -604,8 +604,8 @@ u32 func_8008896C(s32 objectIndex, Camera *camera) { s32 temp_f10; s32 temp_f6; - temp_f10 = D_80165C18[objectIndex].pos[0] - camera->pos[0]; - temp_f6 = D_80165C18[objectIndex].pos[2] - camera->pos[2]; + temp_f10 = gObjectList[objectIndex].pos[0] - camera->pos[0]; + temp_f6 = gObjectList[objectIndex].pos[2] - camera->pos[2]; return (temp_f10 * temp_f10) + (temp_f6 * temp_f6); } @@ -614,9 +614,9 @@ UNUSED s32 func_800889D4(s32 objectIndex, Camera *camera) { s32 temp_f18; s32 temp_f6; - temp_f10 = D_80165C18[objectIndex].pos[0] - camera->pos[0]; - temp_f6 = D_80165C18[objectIndex].pos[1] - camera->pos[1]; - temp_f18 = D_80165C18[objectIndex].pos[2] - camera->pos[2]; + temp_f10 = gObjectList[objectIndex].pos[0] - camera->pos[0]; + temp_f6 = gObjectList[objectIndex].pos[1] - camera->pos[1]; + temp_f18 = gObjectList[objectIndex].pos[2] - camera->pos[2]; return (temp_f10 * temp_f10) + (temp_f6 * temp_f6) + (temp_f18 * temp_f18); } @@ -626,8 +626,8 @@ s32 func_80088A58(s32 objectIndex, Player *player, f32 arg2) { s32 var_v1; var_v1 = 0; - temp_f0 = D_80165C18[objectIndex].pos[0] - player->pos[0]; - temp_f2 = D_80165C18[objectIndex].pos[2] - player->pos[2]; + temp_f0 = gObjectList[objectIndex].pos[0] - player->pos[0]; + temp_f2 = gObjectList[objectIndex].pos[2] - player->pos[2]; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= (arg2 * arg2)) { var_v1 = 1; } @@ -641,8 +641,8 @@ s32 func_80088AC0(s32 objectIndex, Player *player, f32 arg2, f32 arg3) { s32 var_v1; var_v1 = 0; - temp_f0 = D_80165C18[objectIndex].pos[0] - player->pos[0]; - temp_f2 = D_80165C18[objectIndex].pos[2] - player->pos[2]; + temp_f0 = gObjectList[objectIndex].pos[0] - player->pos[0]; + temp_f2 = gObjectList[objectIndex].pos[2] - player->pos[2]; temp_f12 = (temp_f0 * temp_f0) + (temp_f2 * temp_f2); if (((arg2 * arg2) <= temp_f12) && (temp_f12 <= (arg3 * arg3))) { var_v1 = 1; @@ -657,9 +657,9 @@ s32 func_80088B40(s32 objectIndex, Player *player, f32 arg2) { s32 var_v1; var_v1 = 0; - temp_f0 = D_80165C18[objectIndex].pos[0] - player->pos[0]; - temp_f2 = D_80165C18[objectIndex].pos[1] - player->pos[1]; - temp_f12 = D_80165C18[objectIndex].pos[2] - player->pos[2]; + temp_f0 = gObjectList[objectIndex].pos[0] - player->pos[0]; + temp_f2 = gObjectList[objectIndex].pos[1] - player->pos[1]; + temp_f12 = gObjectList[objectIndex].pos[2] - player->pos[2]; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f12 * temp_f12)) <= (arg2 * arg2)) { var_v1 = 1; } @@ -672,8 +672,8 @@ s32 func_80088BB8(s32 objectIndex, Camera *camera, f32 arg2) { s32 var_v1; var_v1 = 0; - temp_f0 = D_80165C18[objectIndex].pos[0] - camera->pos[0]; - temp_f2 = D_80165C18[objectIndex].pos[2] - camera->pos[2]; + temp_f0 = gObjectList[objectIndex].pos[0] - camera->pos[0]; + temp_f2 = gObjectList[objectIndex].pos[2] - camera->pos[2]; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= (arg2 * arg2)) { var_v1 = 1; } @@ -687,8 +687,8 @@ UNUSED s32 func_80088C20(s32 objectIndex, Camera *camera, f32 arg2, f32 arg3) { s32 var_v1; var_v1 = 0; - temp_f0 = D_80165C18[objectIndex].pos[0] - camera->pos[0]; - temp_f2 = D_80165C18[objectIndex].pos[2] - camera->pos[2]; + temp_f0 = gObjectList[objectIndex].pos[0] - camera->pos[0]; + temp_f2 = gObjectList[objectIndex].pos[2] - camera->pos[2]; temp_f12 = (temp_f0 * temp_f0) + (temp_f2 * temp_f2); if (((arg2 * arg2) <= temp_f12) && (temp_f12 <= (arg3 * arg3))) { var_v1 = 1; @@ -703,9 +703,9 @@ UNUSED s32 func_80088CA0(s32 objectIndex, Camera *camera, f32 arg2) { s32 var_v1; var_v1 = 0; - temp_f0 = D_80165C18[objectIndex].pos[0] - camera->pos[0]; - temp_f2 = D_80165C18[objectIndex].pos[1] - camera->pos[1]; - temp_f12 = D_80165C18[objectIndex].pos[2] - camera->pos[2]; + temp_f0 = gObjectList[objectIndex].pos[0] - camera->pos[0]; + temp_f2 = gObjectList[objectIndex].pos[1] - camera->pos[1]; + temp_f12 = gObjectList[objectIndex].pos[2] - camera->pos[2]; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f12 * temp_f12)) <= (arg2 * arg2)) { var_v1 = 1; } @@ -719,9 +719,9 @@ s32 func_80088D18(s32 objectIndex, Player *player) { s32 var_v1; var_v1 = 0; - temp_f0 = D_80165C18[objectIndex].pos[0] - player->pos[0]; - temp_f2 = D_80165C18[objectIndex].pos[2] - player->pos[2]; - temp_f12 = D_80165C18[objectIndex].unk_0C8 + player->boundingBoxSize; + temp_f0 = gObjectList[objectIndex].pos[0] - player->pos[0]; + temp_f2 = gObjectList[objectIndex].pos[2] - player->pos[2]; + temp_f12 = gObjectList[objectIndex].unk_0C8 + player->boundingBoxSize; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= (temp_f12 * temp_f12)) { var_v1 = 1; } @@ -736,10 +736,10 @@ s32 func_80088DA4(s32 objectIndex, Player *player) { s32 var_v1; var_v1 = 0; - temp_f0 = D_80165C18[objectIndex].pos[0] - player->pos[0]; - temp_f2 = D_80165C18[objectIndex].pos[1] - player->pos[1]; - temp_f12 = D_80165C18[objectIndex].pos[2] - player->pos[2]; - temp_f14 = D_80165C18[objectIndex].unk_0C8 + player->boundingBoxSize; + temp_f0 = gObjectList[objectIndex].pos[0] - player->pos[0]; + temp_f2 = gObjectList[objectIndex].pos[1] - player->pos[1]; + temp_f12 = gObjectList[objectIndex].pos[2] - player->pos[2]; + temp_f14 = gObjectList[objectIndex].unk_0C8 + player->boundingBoxSize; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f12 * temp_f12)) <= (temp_f14 * temp_f14)) { var_v1 = 1; } @@ -751,7 +751,7 @@ UNUSED s32 func_80088E48(s32 objectIndex, Player *player, f32 arg2) { s32 var_v1; var_v1 = 0; - temp_f0 = D_80165C18[objectIndex].pos[1] - player->pos[1]; + temp_f0 = gObjectList[objectIndex].pos[1] - player->pos[1]; if ((temp_f0 * temp_f0) <= (arg2 * arg2)) { var_v1 = 1; } @@ -766,10 +766,10 @@ s32 func_80088E98(s32 objectIndex, Player *player, f32 arg2) { s32 var_v1; var_v1 = 0; - temp_f0 = D_80165C18[objectIndex].pos[0] - player->pos[0]; - var_f2 = D_80165C18[objectIndex].pos[1] - player->pos[1]; - temp_f12 = D_80165C18[objectIndex].pos[2] - player->pos[2]; - temp_f14 = D_80165C18[objectIndex].unk_0C8 + player->boundingBoxSize; + temp_f0 = gObjectList[objectIndex].pos[0] - player->pos[0]; + var_f2 = gObjectList[objectIndex].pos[1] - player->pos[1]; + temp_f12 = gObjectList[objectIndex].pos[2] - player->pos[2]; + temp_f14 = gObjectList[objectIndex].unk_0C8 + player->boundingBoxSize; if (var_f2 < 0.0f) { var_f2 = -var_f2; } @@ -782,7 +782,7 @@ s32 func_80088E98(s32 objectIndex, Player *player, f32 arg2) { f32 func_80088F54(s32 objectIndex, Player *player) { f32 var_f2; - var_f2 = D_80165C18[objectIndex].pos[1] - player->unk_074; + var_f2 = gObjectList[objectIndex].pos[1] - player->unk_074; if (var_f2 < 0.0f) { var_f2 = -var_f2; } @@ -793,7 +793,7 @@ UNUSED s32 func_80088F94(s32 objectIndex, Player *player, f32 arg2) { f32 var_f0; s32 var_v1; - var_f0 = D_80165C18[objectIndex].pos[1] - player->unk_074; + var_f0 = gObjectList[objectIndex].pos[1] - player->unk_074; var_v1 = 0; if (var_f0 < 0.0f) { var_f0 = -var_f0; @@ -806,14 +806,14 @@ UNUSED s32 func_80088F94(s32 objectIndex, Player *player, f32 arg2) { void func_80088FF0(Player *player) { player->unk_08C = 0.0f; - player->unk_09C = 0.0f; - player->unk_034[0] = 0.0f; - player->unk_034[2] = 0.0f; + player->currentSpeed = 0.0f; + player->velocity[0] = 0.0f; + player->velocity[2] = 0.0f; } UNUSED void func_8008900C(Player *player) { player->unk_08C = 0.0f; - player->unk_09C = 0.0f; + player->currentSpeed = 0.0f; } void func_80089020(s32 playerId, f32 *arg1) { @@ -826,7 +826,7 @@ void func_80089020(s32 playerId, f32 *arg1) { } else { var_f2 = -*arg1; } - if (player->unk_0BC & 0xC0) { + if (player->effects & 0xC0) { if (gCurrentCourseId == COURSE_SHERBET_LAND) { if (var_f2 <= 0.5) { var_f0 = 0.025f; @@ -884,28 +884,28 @@ f32 func_8008933C(Player *player, s32 objectIndex, f32 arg2, f32 arg3) { f32 var_f2; f32 something; s32 playerId; - struct_80165C18_entry *temp_v0; + Objects *temp_v0; struct_D_8018CE10 *temp_v1; playerId = player - gPlayerOne; temp_v1 = &D_8018CE10[playerId]; var_f2 = 0.0f; if (temp_v1->unk_18[6] == 0) { - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; player->unk_046 |= 2; - player->unk_0BC |= 0x8000; + player->effects |= 0x8000; temp_v1->unk_18[6] = 4; something = (player->pos[0] - temp_v0->pos[0]) * temp_v0->unk_038[0]; if (something >= 0.0f) { - temp_v1->unk_04[0] = (-player->unk_034[0] * arg2) + (temp_v0->unk_038[0] * arg3); + temp_v1->unk_04[0] = (-player->velocity[0] * arg2) + (temp_v0->unk_038[0] * arg3); } else { - temp_v1->unk_04[0] = -player->unk_034[0] * arg2; + temp_v1->unk_04[0] = -player->velocity[0] * arg2; } something = (player->pos[2] - temp_v0->pos[2]) * temp_v0->unk_038[2]; if (something >= 0.0f) { - temp_v1->unk_04[2] = (-player->unk_034[2] * arg2) + (temp_v0->unk_038[2] * arg3); + temp_v1->unk_04[2] = (-player->velocity[2] * arg2) + (temp_v0->unk_038[2] * arg3); } else { - temp_v1->unk_04[2] = -player->unk_034[2] * arg2; + temp_v1->unk_04[2] = -player->velocity[2] * arg2; } var_f2 = (temp_v1->unk_04[0] * temp_v1->unk_04[0]) + (temp_v1->unk_04[2] * temp_v1->unk_04[2]); } @@ -917,10 +917,10 @@ void func_80089474(s32 objectIndex, s32 playerId, f32 arg2, f32 arg3, u32 arg4) Player *player; player = &gPlayerOne[playerId]; - if (func_8007223C(objectIndex, 0x04000000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) { func_80072180(); } - if ((func_8008933C(player, objectIndex, arg2, arg3) >= 4.0) && ((player->unk_000 & 0x1000) != 0x1000)) { + if ((func_8008933C(player, objectIndex, arg2, arg3) >= 4.0) && ((player->type & PLAYER_CPU) != PLAYER_CPU)) { func_800C9060(playerId, arg4); } } @@ -930,7 +930,7 @@ void func_80089538(s32 objectIndex, s32 playerId, f32 arg2, f32 arg3, u32 arg4) Player *player; player = &gPlayerOne[playerId]; - if ((func_8008933C(player, objectIndex, arg2, arg3) >= 4.0) && ((player->unk_000 & 0x1000) != 0x1000)) { + if ((func_8008933C(player, objectIndex, arg2, arg3) >= 4.0) && ((player->type & PLAYER_CPU) != PLAYER_CPU)) { func_800C9060((u8) playerId, arg4); } } @@ -942,10 +942,10 @@ s32 func_800895E4(s32 objectIndex) { var_s6 = 0; player = gPlayerOne; - if (func_8007223C(objectIndex, 0x00000200) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) { for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) { - if ((D_80165C18[objectIndex].unk_0A6 != 0) && (func_80088D18(objectIndex, player) != 0)) { - if (func_8007223C(objectIndex, 0x04000000) != 0) { + if ((gObjectList[objectIndex].state != 0) && (func_80088D18(objectIndex, player) != 0)) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) { func_80072180(); } var_s6 = 1; @@ -960,11 +960,11 @@ void func_800896D4(s32 objectIndex, f32 arg1, f32 arg2) { s32 var_s1; player = gPlayerOne; - if (func_8007223C(objectIndex, 0x00000200) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) { for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) { - if ((D_80165C18[objectIndex].unk_0A6 != 0) && !(player->unk_0BC & 0x80000200) && (func_80088D18(objectIndex, player) != 0)) { + if ((gObjectList[objectIndex].state != 0) && !(player->effects & 0x80000200) && (func_80088D18(objectIndex, player) != 0)) { func_8008933C(player, objectIndex, arg1, arg2 * 1.1); - if (func_8007223C(objectIndex, 0x04000000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) { func_80072180(); } } @@ -977,18 +977,18 @@ void func_80089820(s32 objectIndex, f32 arg1, f32 arg2, u32 arg3) { s32 var_s1; player = gPlayerOne; - func_800721E8(objectIndex, 0x02000000); - if (func_8007223C(objectIndex, 0x00000200) != 0) { + set_object_flag_unk_054_false(objectIndex, 0x02000000); + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) { for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) { - if ((D_80165C18[objectIndex].unk_0A6 != 0) && !(player->unk_0BC & 0x80000000)) { - if ((player->unk_000 & 0x8000) && !(player->unk_000 & 0x100) && (func_80088D18(objectIndex, player) != 0)) { - if (player->unk_0BC & 0x200) { - func_800721C0(objectIndex, 0x02000000); + if ((gObjectList[objectIndex].state != 0) && !(player->effects & 0x80000000)) { + if ((player->type & PLAYER_EXISTS) && !(player->type & PLAYER_INVISIBLE_OR_BOMB) && (func_80088D18(objectIndex, player) != 0)) { + if (player->effects & 0x200) { + set_object_flag_unk_054_true(objectIndex, 0x02000000); } else { - if (func_8007223C(objectIndex, 0x04000000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) { func_80072180(); } - if ((func_8008933C(player, objectIndex, arg1, arg2 * 1.1) >= 4.0) && ((player->unk_000 & 0x1000) != 0x1000)) { + if ((func_8008933C(player, objectIndex, arg1, arg2 * 1.1) >= 4.0) && ((player->type & PLAYER_CPU) != PLAYER_CPU)) { func_800C9060(var_s1, arg3); } } @@ -1003,11 +1003,11 @@ void func_80089A04(s32 objectIndex, f32 arg1, f32 arg2) { s32 var_s1; player = gPlayerOne; - if (func_8007223C(objectIndex, 0x00000200) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) { for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) { - if ((D_80165C18[objectIndex].unk_0A6 != 0) && !(player->unk_0BC & 0x80000200) && (func_80088DA4(objectIndex, player) != 0)) { + if ((gObjectList[objectIndex].state != 0) && !(player->effects & 0x80000200) && (func_80088DA4(objectIndex, player) != 0)) { func_8008933C(player, objectIndex, arg1, arg2 * 1.1); - if (func_8007223C(objectIndex, 0x04000000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) { func_80072180(); } } @@ -1024,12 +1024,12 @@ s32 func_80089B50(s32 objectIndex) { test = 0; sp40 = 0; player = gPlayerOne; - if (func_8007223C(objectIndex, 0x00000200) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) { for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++, test++) { - if ((D_80165C18[objectIndex].unk_0A6 != 0) && !(player->unk_0BC & 0x81000000) && (player->unk_000 & 0x8000) && !(player->unk_000 & 0x100) && (func_80088D18(objectIndex, player) != 0)) { - if (!(player->unk_0BC & 0x200)) { - player->statusEffects |= 0x400000; - if (func_8007223C(objectIndex, 0x04000000) != 0) { + if ((gObjectList[objectIndex].state != 0) && !(player->effects & 0x81000000) && (player->type & PLAYER_EXISTS) && !(player->type & PLAYER_INVISIBLE_OR_BOMB) && (func_80088D18(objectIndex, player) != 0)) { + if (!(player->effects & 0x200)) { + player->statusEffects |= REVERSE_EFFECT; + if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) { func_80072180(); } } else { @@ -1049,13 +1049,13 @@ s32 func_80089CBC(s32 objectIndex, f32 arg1) { var_s7 = 0; player = gPlayerOne; - if (func_8007223C(objectIndex, 0x00000200) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) { for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) { - if ((D_80165C18[objectIndex].unk_0A6 != 0) && !(player->unk_0BC & 0x81000000)) { - if ((player->unk_000 & 0x8000) && !(player->unk_000 & 0x100) && (func_80088E98(objectIndex, player, arg1) != 0)) { - if (!(player->unk_0BC & 0x200)) { - player->statusEffects |= 0x400000; - if (func_8007223C(objectIndex, 0x04000000) != 0) { + if ((gObjectList[objectIndex].state != 0) && !(player->effects & 0x81000000)) { + if ((player->type & PLAYER_EXISTS) && !(player->type & 0x100) && (func_80088E98(objectIndex, player, arg1) != 0)) { + if (!(player->effects & 0x200)) { + player->statusEffects |= REVERSE_EFFECT; + if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) { func_80072180(); } } @@ -1074,10 +1074,10 @@ s32 func_80089E18(s32 objectIndex) { var_s6 = 0; player = gPlayerOne; - if (func_8007223C(objectIndex, 0x00000200) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) { for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) { - if ((D_80165C18[objectIndex].unk_0A6 != 0) && !(player->unk_0BC & 0x800000C0) && (func_80088D18(objectIndex, player) != 0)) { - if (player->unk_0BC & 0x200) { + if ((gObjectList[objectIndex].state != 0) && !(player->effects & 0x800000C0) && (func_80088D18(objectIndex, player) != 0)) { + if (player->effects & 0x200) { var_s6 = 1; } else { player->statusEffects |= 1; @@ -1095,12 +1095,12 @@ s32 func_80089F24(s32 objectIndex) { var_s7 = 0; player = gPlayerOne; - if (func_8007223C(objectIndex, 0x00000200) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000200) != 0) { for (var_s1 = 0; var_s1 < D_8018D158; var_s1++, player++) { - if ((D_80165C18[objectIndex].unk_0A6 != 0) && !(player->unk_0BC & 0x800002C0)) { - if ((player->unk_000 & 0x8000) && !(player->unk_000 & 0x100) && (func_80088D18(objectIndex, player) != 0)) { + if ((gObjectList[objectIndex].state != 0) && !(player->effects & 0x800002C0)) { + if ((player->type & PLAYER_EXISTS) && !(player->type & PLAYER_INVISIBLE_OR_BOMB) && (func_80088D18(objectIndex, player) != 0)) { var_s7 = 1; - if (func_8007223C(objectIndex, 0x04000000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x04000000) != 0) { func_80072180(); } player->statusEffects |= 0x200000; @@ -1116,7 +1116,7 @@ s32 func_8008A060(s32 objectIndex, Camera *camera, u16 arg2) { s32 var_v1; var_v1 = 0; - temp_t3 = (((u16)camera->rot[1] - D_80165C18[objectIndex].unk_0BE[1]) + (arg2 >> 1)); + temp_t3 = (((u16)camera->rot[1] - gObjectList[objectIndex].unk_0BE[1]) + (arg2 >> 1)); // @warning Always true if ((temp_t3 >= 0) && (arg2 >= temp_t3)) { @@ -1132,8 +1132,8 @@ s32 func_8008A0B4(s32 objectIndex, Player *player, Camera *camera, u16 arg3) { s32 var_t0; var_t0 = 0; - x_diff = D_80165C18[objectIndex].pos[0] - player->pos[0]; - z_diff = D_80165C18[objectIndex].pos[2] - player->pos[2]; + x_diff = gObjectList[objectIndex].pos[0] - player->pos[0]; + z_diff = gObjectList[objectIndex].pos[2] - player->pos[2]; temp_t3 = ((u16) camera->rot[1] - atan2s(x_diff, z_diff)) + (arg3 >> 1); if ((temp_t3 >= 0) && (arg3 >= temp_t3)) { var_t0 = 1; @@ -1146,7 +1146,7 @@ s32 func_8008A140(s32 objectIndex, Camera *camera, u16 arg2) { s32 var_t0; var_t0 = 0; - temp_t2 = (func_80041770(camera->pos[0], D_80165C18[objectIndex].pos[0], camera->pos[2], D_80165C18[objectIndex].pos[2]) + ((s32) arg2 / 2)) - camera->rot[1]; + temp_t2 = (func_80041770(camera->pos[0], gObjectList[objectIndex].pos[0], camera->pos[2], gObjectList[objectIndex].pos[2]) + ((s32) arg2 / 2)) - camera->rot[1]; if ((temp_t2 >= 0) && (arg2 >= temp_t2)) { var_t0 = 1; } @@ -1159,7 +1159,7 @@ void func_8008A1D0(s32 objectIndex, s32 cameraId, s32 arg2, s32 arg3) { Camera *camera; camera = &camera1[cameraId]; - func_800721E8(objectIndex, 0x00140000); + set_object_flag_unk_054_false(objectIndex, 0x00140000); temp_v0 = func_8008896C(objectIndex, camera); if (temp_v0 < 0x2711U) { var_a2 = 0x5555; @@ -1169,9 +1169,9 @@ void func_8008A1D0(s32 objectIndex, s32 cameraId, s32 arg2, s32 arg3) { var_a2 = 0x2AAB; } if ((func_8008A140(objectIndex, camera, var_a2) != 0) && ((u32) (arg3 * arg3) >= temp_v0)) { - func_800721C0(objectIndex, 0x00040000); + set_object_flag_unk_054_true(objectIndex, 0x00040000); if (temp_v0 >= (u32) (arg2 * arg2)) { - func_800721C0(objectIndex, 0x00100000); + set_object_flag_unk_054_true(objectIndex, 0x00100000); } } } @@ -1183,7 +1183,7 @@ UNUSED void func_8008A2CC(s32 objectIndex, s32 cameraId, u16 arg2) { u16 var_a2; camera = &camera1[cameraId]; - func_800721E8(objectIndex, 0x00040000); + set_object_flag_unk_054_false(objectIndex, 0x00040000); if (no_init < 0x2711U) { var_a2 = 0x5555; } else if (no_init < 0x9C41U) { @@ -1192,7 +1192,7 @@ UNUSED void func_8008A2CC(s32 objectIndex, s32 cameraId, u16 arg2) { var_a2 = arg2; } if (func_8008A140(objectIndex, camera, var_a2) != 0) { - func_800721C0(objectIndex, 0x00040000); + set_object_flag_unk_054_true(objectIndex, 0x00040000); } } @@ -1202,10 +1202,10 @@ s32 func_8008A364(s32 objectIndex, s32 cameraId, u16 arg2, s32 arg3) { u16 var_a2; camera = &camera1[cameraId]; - func_800721E8(objectIndex, 0x00060000); + set_object_flag_unk_054_false(objectIndex, 0x00060000); var_v1 = func_8008896C(objectIndex, camera); if (var_v1 < (arg3 * arg3)) { - func_800721C0(objectIndex, 0x00020000); + set_object_flag_unk_054_true(objectIndex, 0x00020000); if (var_v1 < 0x2711U) { var_a2 = 0x5555; } else if (var_v1 < 0x9C41U) { @@ -1214,7 +1214,7 @@ s32 func_8008A364(s32 objectIndex, s32 cameraId, u16 arg2, s32 arg3) { var_a2 = arg2; } if (func_8008A140(objectIndex, camera, var_a2) != 0) { - func_800721C0(objectIndex, 0x00040000); + set_object_flag_unk_054_true(objectIndex, 0x00040000); } } return var_v1; @@ -1222,9 +1222,9 @@ s32 func_8008A364(s32 objectIndex, s32 cameraId, u16 arg2, s32 arg3) { void func_8008A454(s32 objectIndex, s32 cameraId, s32 arg2) { if (func_8008896C(objectIndex, &camera1[cameraId]) < (u32) (arg2 * arg2)) { - func_800721C0(objectIndex, 0x00000020); + set_object_flag_unk_054_true(objectIndex, 0x00000020); } else { - func_800721E8(objectIndex, 0x00000020); + set_object_flag_unk_054_false(objectIndex, 0x00000020); } } @@ -1232,16 +1232,16 @@ void func_8008A4CC(s32 objectIndex) { s32 loopIndex; Camera *camera; - func_800721E8(objectIndex, 0x00070000); + set_object_flag_unk_054_false(objectIndex, 0x00070000); for (loopIndex = 0, camera = camera1; loopIndex < gPlayerCountSelection1; loopIndex++, camera++) { - if (D_80165C18[objectIndex].unk_0A6 != 0) { - if ((D_8018CF68[loopIndex] >= (D_80165C18[objectIndex].unk_0DF - 1)) && ((D_80165C18[objectIndex].unk_0DF + 1) >= D_8018CF68[loopIndex])) { - func_800721C0(objectIndex, 0x00010000); - if (D_8018CF68[loopIndex] == D_80165C18[objectIndex].unk_0DF) { - func_800721C0(objectIndex, 0x00020000); + if (gObjectList[objectIndex].state != 0) { + if ((D_8018CF68[loopIndex] >= (gObjectList[objectIndex].unk_0DF - 1)) && ((gObjectList[objectIndex].unk_0DF + 1) >= D_8018CF68[loopIndex])) { + set_object_flag_unk_054_true(objectIndex, 0x00010000); + if (D_8018CF68[loopIndex] == gObjectList[objectIndex].unk_0DF) { + set_object_flag_unk_054_true(objectIndex, 0x00020000); } if (func_8008A140(objectIndex, camera, 0x2AABU) != 0) { - func_800721C0(objectIndex, 0x00040000); + set_object_flag_unk_054_true(objectIndex, 0x00040000); } } } @@ -1252,10 +1252,10 @@ UNUSED void func_8008A610(s32 objectIndex) { s32 loopIndex; Camera *camera; - func_800721E8(objectIndex, 0x00040000); + set_object_flag_unk_054_false(objectIndex, 0x00040000); for (camera = camera1, loopIndex = 0; loopIndex < gPlayerCountSelection1; loopIndex++, camera++) { - if ((D_80165C18[objectIndex].unk_0A6 != 0) && (func_8008A140(objectIndex, camera, 0x2AABU) != 0)) { - func_800721C0(objectIndex, 0x00040000); + if ((gObjectList[objectIndex].state != 0) && (func_8008A140(objectIndex, camera, 0x2AABU) != 0)) { + set_object_flag_unk_054_true(objectIndex, 0x00040000); } } } @@ -1265,17 +1265,17 @@ void func_8008A6DC(s32 objectIndex, f32 arg1) { s32 loopIndex; Camera *camera; - func_800721E8(objectIndex, 0x00060000); + set_object_flag_unk_054_false(objectIndex, 0x00060000); for (camera = camera1, loopIndex = 0; loopIndex < gPlayerCountSelection1; loopIndex++, camera++) { - if ((D_80165C18[objectIndex].unk_0A6 != 0) && (func_80088BB8(objectIndex, camera, arg1) != 0)) { - func_800721C0(objectIndex, 0x00020000); + if ((gObjectList[objectIndex].state != 0) && (func_80088BB8(objectIndex, camera, arg1) != 0)) { + set_object_flag_unk_054_true(objectIndex, 0x00020000); if (arg1 <= 500.0) { var_a2 = 0x4000; } else { var_a2 = 0x2AAB; } if (func_8008A140(objectIndex, camera, var_a2) != 0) { - func_800721C0(objectIndex, 0x00040000); + set_object_flag_unk_054_true(objectIndex, 0x00040000); } } } @@ -1318,52 +1318,52 @@ s32 func_8008A8B0(s16 arg0, s16 arg1) { void func_8008A920(s32 objectIndex) { Vec4s *temp_v0; - temp_v0 = D_80165C18[objectIndex].unk_07C; - D_80165C18[objectIndex].unk_038[0] = (f32) (temp_v0[1][0] - temp_v0[0][0]) / (f32) temp_v0[0][3]; - D_80165C18[objectIndex].unk_038[1] = (f32) (temp_v0[1][1] - temp_v0[0][1]) / (f32) temp_v0[0][3]; - D_80165C18[objectIndex].unk_038[2] = (f32) (temp_v0[1][2] - temp_v0[0][2]) / (f32) temp_v0[0][3]; + temp_v0 = gObjectList[objectIndex].unk_07C; + gObjectList[objectIndex].unk_038[0] = (f32) (temp_v0[1][0] - temp_v0[0][0]) / (f32) temp_v0[0][3]; + gObjectList[objectIndex].unk_038[1] = (f32) (temp_v0[1][1] - temp_v0[0][1]) / (f32) temp_v0[0][3]; + gObjectList[objectIndex].unk_038[2] = (f32) (temp_v0[1][2] - temp_v0[0][2]) / (f32) temp_v0[0][3]; } void func_8008A9B8(s32 objectIndex) { s32 temp_t9; - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_07C++; temp_v0->unk_09A = (s16) (0x2710 / (s16) (*temp_v0->unk_07C)[3]); - temp_v0->unk_098 = 0; + temp_v0->timer = 0; func_8008A920(objectIndex); } void func_8008AA3C(s32 objectIndex) { s16* temp_v1; - struct_80165C18_entry* temp_v0; + Objects* temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v1 = temp_v0->unk_080[0]; temp_v1 = &temp_v0->unk_080[0][1]; - (&D_80165C18[objectIndex])->unk_07C = (s16 (*)[4]) temp_v1; - (&D_80165C18[objectIndex])->unk_084[9] = 0; - (&D_80165C18[objectIndex])->unk_098 = 0; - (&D_80165C18[objectIndex])->unk_084[8] = temp_v1[-1]; - (&D_80165C18[objectIndex])->unk_028[0] = (f32) temp_v1[0]; - (&D_80165C18[objectIndex])->unk_028[1] = (f32) temp_v1[1]; - (&D_80165C18[objectIndex])->unk_028[2] = (f32) temp_v1[2]; - (&D_80165C18[objectIndex])->unk_09A = (s16) (0x2710 / (s16) temp_v1[3]); + (&gObjectList[objectIndex])->unk_07C = (s16 (*)[4]) temp_v1; + (&gObjectList[objectIndex])->unk_084[9] = 0; + (&gObjectList[objectIndex])->timer = 0; + (&gObjectList[objectIndex])->unk_084[8] = temp_v1[-1]; + (&gObjectList[objectIndex])->unk_028[0] = (f32) temp_v1[0]; + (&gObjectList[objectIndex])->unk_028[1] = (f32) temp_v1[1]; + (&gObjectList[objectIndex])->unk_028[2] = (f32) temp_v1[2]; + (&gObjectList[objectIndex])->unk_09A = (s16) (0x2710 / (s16) temp_v1[3]); func_8008A920(objectIndex); func_80086FD4(objectIndex); } void func_8008AB10(s32 objectIndex) { s16 temp_t3; - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_028[0] += temp_v0->unk_038[0]; temp_v0->unk_028[1] += temp_v0->unk_038[1]; temp_v0->unk_028[2] += temp_v0->unk_038[2]; - temp_v0->unk_098 += (u16)temp_v0->unk_09A; - if (temp_v0->unk_098 >= 0x2710) { + temp_v0->timer += (u16)temp_v0->unk_09A; + if (temp_v0->timer >= 0x2710) { temp_v0->unk_084[9] = (u16)temp_v0->unk_084[9] + 1; if (((u16)temp_v0->unk_084[9] + 1) == (u16) temp_v0->unk_084[8]) { temp_v0->unk_0AE += 1; @@ -1374,7 +1374,7 @@ void func_8008AB10(s32 objectIndex) { } UNUSED void func_8008ABC0(s32 arg0) { - switch (D_80165C18[arg0].unk_0AE) { + switch (gObjectList[arg0].unk_0AE) { case 1: func_8008AA3C(arg0); break; @@ -1390,7 +1390,7 @@ UNUSED void func_8008ABC0(s32 arg0) { } UNUSED void func_8008AC40(s32 arg0) { - switch (D_80165C18[arg0].unk_0AE) { + switch (gObjectList[arg0].unk_0AE) { case 1: func_8008AA3C(arg0); break; @@ -1452,9 +1452,9 @@ UNUSED void func_8008AE94(void) { } void func_8008AE9C(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_038[0] = (D_80183DC8[0] * D_80165760[0]) + (D_80183DC8[1] * D_80165760[1]) + (D_80183DC8[2] * D_80165760[2]) + (D_80183DC8[3] * D_80165760[3]); temp_v0->unk_038[1] = (D_80183DC8[0] * D_80165770[0]) + (D_80183DC8[1] * D_80165770[1]) + (D_80183DC8[2] * D_80165770[2]) + (D_80183DC8[3] * D_80165770[3]); temp_v0->unk_038[2] = (D_80183DC8[0] * D_80165780[0]) + (D_80183DC8[1] * D_80165780[1]) + (D_80183DC8[2] * D_80165780[2]) + (D_80183DC8[3] * D_80165780[3]); @@ -1482,9 +1482,9 @@ UNUSED void func_8008B030(void) { } void func_8008B038(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_028[0] = (D_80183DA8[0] * D_80165760[0]) + (D_80183DA8[1] * D_80165760[1]) + (D_80183DA8[2] * D_80165760[2]) + (D_80183DA8[3] * D_80165760[3]); temp_v0->unk_028[1] = (D_80183DA8[0] * D_80165770[0]) + (D_80183DA8[1] * D_80165770[1]) + (D_80183DA8[2] * D_80165770[2]) + (D_80183DA8[3] * D_80165770[3]); temp_v0->unk_028[2] = (D_80183DA8[0] * D_80165780[0]) + (D_80183DA8[1] * D_80165780[1]) + (D_80183DA8[2] * D_80165780[2]) + (D_80183DA8[3] * D_80165780[3]); @@ -1515,7 +1515,7 @@ void func_8008B1D4(s32 objectIndex) { s32 someIndex; Vec4s *test; - test = D_80165C18[objectIndex].unk_07C; + test = gObjectList[objectIndex].unk_07C; for (someIndex = 0; someIndex < 4; someIndex++) { D_80165760[someIndex] = (*test)[0]; D_80165770[someIndex] = (*test)[1]; @@ -1531,9 +1531,9 @@ void func_8008B284(s32 objectIndex) { s32 temp_a2; Vec4s *test; - test = D_80165C18[objectIndex].unk_07C; - temp_a1 = D_80165C18[objectIndex].unk_084[9]; - temp_a2 = (u16) D_80165C18[objectIndex].unk_084[8]; + test = gObjectList[objectIndex].unk_07C; + temp_a1 = gObjectList[objectIndex].unk_084[9]; + temp_a2 = (u16) gObjectList[objectIndex].unk_084[8]; if ((temp_a2 - 4) >= temp_a1) { sp0 = 0x00002710; } else if ((temp_a1 + 3) == temp_a2) { @@ -1549,7 +1549,7 @@ void func_8008B284(s32 objectIndex) { D_80165780[someIndex] = (*test)[2]; if (sp0 == someIndex) { // Huh???????? This makes no sense - test = &D_80165C18[objectIndex].unk_080[0][1]; + test = &gObjectList[objectIndex].unk_080[0][1]; } else { test++; } @@ -1558,23 +1558,23 @@ void func_8008B284(s32 objectIndex) { void func_8008B3E4(s32 objectIndex) { Vec4s *test; - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - if (func_80072270(objectIndex, 8) != 0) { - temp_v0 = &D_80165C18[objectIndex]; + if (is_obj_index_flag_unk_054_inactive(objectIndex, 8) != 0) { + temp_v0 = &gObjectList[objectIndex]; temp_v0->unk_084[9] = 0; - temp_v0->unk_098 = 0; - temp_v0->unk_07C = &D_80165C18[objectIndex].unk_080[0][1]; + temp_v0->timer = 0; + temp_v0->unk_07C = &gObjectList[objectIndex].unk_080[0][1]; // Huh????????? Negative array indexing is a near certain sign // that something has gone wrong on our end. temp_v0->unk_084[8] = temp_v0->unk_07C[0][-1]; - func_800721C0(objectIndex, 8); + set_object_flag_unk_054_true(objectIndex, 8); } } -void func_8008B44C(s32 arg0) { - D_80165C18[arg0].unk_098 = 0; - D_80165C18[arg0].unk_07C++; +void func_8008B44C(s32 objectIndex) { + gObjectList[objectIndex].timer = 0; + gObjectList[objectIndex].unk_07C++; } void func_8008B478(s32 objectIndex, s32 arg1) { @@ -1590,26 +1590,26 @@ void func_8008B478(s32 objectIndex, s32 arg1) { func_8008B1D4(objectIndex); } - sp34 = ((f32)D_80165C18[objectIndex].unk_098 / 10000.0); + sp34 = ((f32)gObjectList[objectIndex].timer / 10000.0); func_8008B17C(objectIndex, sp34); - if (func_8007223C(objectIndex, 0x800) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x800) != 0) { func_8008AFE0(objectIndex, sp34); } - var_f6 = D_80165C18[objectIndex].unk_07C[0][3]; - temp = D_80165C18[objectIndex].unk_07C[0][7]; + var_f6 = gObjectList[objectIndex].unk_07C[0][3]; + temp = gObjectList[objectIndex].unk_07C[0][7]; - D_80165C18[objectIndex].unk_09A = 10000.0 / (((temp - var_f6) * sp34) + var_f6); - D_80165C18[objectIndex].unk_098 += D_80165C18[objectIndex].unk_09A; + gObjectList[objectIndex].unk_09A = 10000.0 / (((temp - var_f6) * sp34) + var_f6); + gObjectList[objectIndex].timer += gObjectList[objectIndex].unk_09A; } void func_8008B620(s32 objectIndex) { s16 temp_t0; - struct_80165C18_entry *temp_v0; + Objects *temp_v0; func_8008B478(objectIndex, 0); - temp_v0 = &D_80165C18[objectIndex]; - if (temp_v0->unk_098 >= 0x2710) { + temp_v0 = &gObjectList[objectIndex]; + if (temp_v0->timer >= 0x2710) { // Have to do it this way due to the u16 cast temp_v0->unk_084[9] = (u16) temp_v0->unk_084[9] + 1; if (((u16) temp_v0->unk_084[9] + 3) == (u16) temp_v0->unk_084[8]) { @@ -1621,15 +1621,15 @@ void func_8008B620(s32 objectIndex) { } void func_8008B6A4(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; func_8008B478(objectIndex, 1); - temp_v0 = &D_80165C18[objectIndex]; - if (temp_v0->unk_098 >= 0x2710) { + temp_v0 = &gObjectList[objectIndex]; + if (temp_v0->timer >= 0x2710) { // Have to do it this way due to the u16 cast temp_v0->unk_084[9] = (u16) temp_v0->unk_084[9] + 1; if ((u16)temp_v0->unk_084[9] == (u16)temp_v0->unk_084[8]) { - func_800721E8(objectIndex, 8); + set_object_flag_unk_054_false(objectIndex, 8); } else { func_8008B44C(objectIndex); } @@ -1637,7 +1637,7 @@ void func_8008B6A4(s32 objectIndex) { } void func_8008B724(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 0: break; case 1: @@ -1650,7 +1650,7 @@ void func_8008B724(s32 objectIndex) { } void func_8008B78C(s32 objectIndex) { - switch (D_80165C18[objectIndex].unk_0AE) { + switch (gObjectList[objectIndex].unk_0AE) { case 0: break; case 1: @@ -1659,48 +1659,48 @@ void func_8008B78C(s32 objectIndex) { } } -void func_8008B7D4(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { - D_80165C18[arg0].unk_010[0] = arg1; - D_80165C18[arg0].unk_010[1] = arg2; - D_80165C18[arg0].unk_010[2] = arg3; +void func_8008B7D4(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) { + gObjectList[objectIndex].unk_010[0] = arg1; + gObjectList[objectIndex].unk_010[1] = arg2; + gObjectList[objectIndex].unk_010[2] = arg3; } -void func_8008B80C(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { - D_80165C18[arg0].unk_028[0] = arg1; - D_80165C18[arg0].unk_028[1] = arg2; - D_80165C18[arg0].unk_028[2] = arg3; +void func_8008B80C(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) { + gObjectList[objectIndex].unk_028[0] = arg1; + gObjectList[objectIndex].unk_028[1] = arg2; + gObjectList[objectIndex].unk_028[2] = arg3; } -void func_8008B844(s32 arg0) { - f32 temp_f0 = D_80165C18[arg0].unk_010[0]; +void func_8008B844(s32 objectIndex) { + f32 temp_f0 = gObjectList[objectIndex].unk_010[0]; - D_80165C18[arg0].pos[0] = D_80165C18[arg0].unk_028[0] + temp_f0; - D_80165C18[arg0].pos[1] = D_80165C18[arg0].unk_028[1] + temp_f0; - D_80165C18[arg0].pos[2] = D_80165C18[arg0].unk_028[2] + temp_f0; + gObjectList[objectIndex].pos[0] = gObjectList[objectIndex].unk_028[0] + temp_f0; + gObjectList[objectIndex].pos[1] = gObjectList[objectIndex].unk_028[1] + temp_f0; + gObjectList[objectIndex].pos[2] = gObjectList[objectIndex].unk_028[2] + temp_f0; } -void func_8008B888(s32 arg0, u16 arg1, u16 arg2, u16 arg3) { - D_80165C18[arg0].unk_0BE[0] = arg1; - D_80165C18[arg0].unk_0BE[1] = arg2; - D_80165C18[arg0].unk_0BE[2] = arg3; +void func_8008B888(s32 objectIndex, u16 arg1, u16 arg2, u16 arg3) { + gObjectList[objectIndex].unk_0BE[0] = arg1; + gObjectList[objectIndex].unk_0BE[1] = arg2; + gObjectList[objectIndex].unk_0BE[2] = arg3; } -void func_8008B8BC(s32 arg0, u16 arg1, u16 arg2, u16 arg3) { - D_80165C18[arg0].unk_0B2[0] = arg1; - D_80165C18[arg0].unk_0B2[1] = arg2; - D_80165C18[arg0].unk_0B2[2] = arg3; +void func_8008B8BC(s32 objectIndex, u16 arg1, u16 arg2, u16 arg3) { + gObjectList[objectIndex].unk_0B2[0] = arg1; + gObjectList[objectIndex].unk_0B2[1] = arg2; + gObjectList[objectIndex].unk_0B2[2] = arg3; } -void func_8008B8F0(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { - D_80165C18[arg0].unk_038[0] = arg1; - D_80165C18[arg0].unk_038[1] = arg2; - D_80165C18[arg0].unk_038[2] = arg3; +void func_8008B8F0(s32 objectIndex, f32 arg1, f32 arg2, f32 arg3) { + gObjectList[objectIndex].unk_038[0] = arg1; + gObjectList[objectIndex].unk_038[1] = arg2; + gObjectList[objectIndex].unk_038[2] = arg3; } void func_8008B928(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, s16 arg4[][4]) { - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; temp_s0->unk_010[0] = (f32) arg1; temp_s0->unk_010[1] = (f32) arg2; temp_s0->unk_080 = arg4; @@ -1717,21 +1717,21 @@ UNUSED void func_8008BA40(s32 objectIndex, s16 arg1, u16 arg2) { s16 test; test = random_int(arg2) - (arg2 / 2); - D_80165C18[objectIndex].unk_010[0] = arg1 + test; + gObjectList[objectIndex].unk_010[0] = arg1 + test; } void func_8008BAB4(s32 objectIndex, s16 arg1, u16 arg2) { s16 test; test = random_int(arg2) - (arg2 / 2); - D_80165C18[objectIndex].unk_010[1] = arg1 + test; + gObjectList[objectIndex].unk_010[1] = arg1 + test; } UNUSED void func_8008BB28(s32 objectIndex, s16 arg1, u16 arg2) { s16 test; test = random_int(arg2) - (arg2 / 2); - D_80165C18[objectIndex].unk_010[2] = arg1 + test; + gObjectList[objectIndex].unk_010[2] = arg1 + test; } UNUSED void func_8008BB9C(s32 objectIndex, s16 arg1, s16 arg2, u16 arg3, u16 arg4) { @@ -1740,8 +1740,8 @@ UNUSED void func_8008BB9C(s32 objectIndex, s16 arg1, s16 arg2, u16 arg3, u16 arg sp1E = random_int(arg3) - ((s32) arg3 / 2); temp_v0 = random_int(arg4) - ((s32) arg4 / 2); - D_80165C18[objectIndex].unk_010[0] = arg1 + sp1E; - D_80165C18[objectIndex].unk_010[1] = arg2 + temp_v0; + gObjectList[objectIndex].unk_010[0] = arg1 + sp1E; + gObjectList[objectIndex].unk_010[1] = arg2 + temp_v0; } UNUSED void func_8008BC58(s32 objectIndex, s16 arg1, s16 arg2, u16 arg3, u16 arg4) { @@ -1750,8 +1750,8 @@ UNUSED void func_8008BC58(s32 objectIndex, s16 arg1, s16 arg2, u16 arg3, u16 arg sp1E = random_int(arg3) - ((s32) arg3 / 2); temp_v0 = random_int(arg4) - ((s32) arg4 / 2); - D_80165C18[objectIndex].unk_010[0] = arg1 + sp1E; - D_80165C18[objectIndex].unk_010[2] = arg2 + temp_v0; + gObjectList[objectIndex].unk_010[0] = arg1 + sp1E; + gObjectList[objectIndex].unk_010[2] = arg2 + temp_v0; } void func_8008BD14(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, u16 arg4, u16 arg5, u16 arg6) { @@ -1762,14 +1762,14 @@ void func_8008BD14(s32 objectIndex, s16 arg1, s16 arg2, s16 arg3, u16 arg4, u16 sp1E = random_int(arg4) - ((s32) arg4 / 2); sp1C = random_int(arg5) - ((s32) arg5 / 2); temp_v0 = random_int(arg6) - ((s32) arg6 / 2); - D_80165C18[objectIndex].unk_010[0] = arg1 + sp1E; - D_80165C18[objectIndex].unk_010[1] = arg2 + sp1C; - D_80165C18[objectIndex].unk_010[2] = arg3 + temp_v0; + gObjectList[objectIndex].unk_010[0] = arg1 + sp1E; + gObjectList[objectIndex].unk_010[1] = arg2 + sp1C; + gObjectList[objectIndex].unk_010[2] = arg3 + temp_v0; } void func_8008BE0C(s32 objectIndex, s16 arg1, u16 arg2) { - D_80165C18[objectIndex].unk_010[0] = gPlayerOneCopy->pos[0] + (sins(arg2) * arg1); - D_80165C18[objectIndex].unk_010[2] = gPlayerOneCopy->pos[2] + (coss(arg2) * arg1); + gObjectList[objectIndex].unk_010[0] = gPlayerOneCopy->pos[0] + (sins(arg2) * arg1); + gObjectList[objectIndex].unk_010[2] = gPlayerOneCopy->pos[2] + (coss(arg2) * arg1); } void func_8008BEA4(s32 objectIndex, u16 arg1, u16 arg2) { @@ -1782,15 +1782,15 @@ void func_8008BEA4(s32 objectIndex, u16 arg1, u16 arg2) { } void func_8008BF18(s32 objectIndex) { - D_80165C18[objectIndex].pos[0] = D_80165C18[objectIndex].unk_010[0] + D_80165C18[objectIndex].unk_028[0]; - D_80165C18[objectIndex].pos[1] = D_80165C18[objectIndex].unk_010[1] + D_80165C18[objectIndex].unk_028[1]; - D_80165C18[objectIndex].pos[2] = D_80165C18[objectIndex].unk_010[2] + D_80165C18[objectIndex].unk_028[2]; + gObjectList[objectIndex].pos[0] = gObjectList[objectIndex].unk_010[0] + gObjectList[objectIndex].unk_028[0]; + gObjectList[objectIndex].pos[1] = gObjectList[objectIndex].unk_010[1] + gObjectList[objectIndex].unk_028[1]; + gObjectList[objectIndex].pos[2] = gObjectList[objectIndex].unk_010[2] + gObjectList[objectIndex].unk_028[2]; } void func_8008BF64(s32 objectIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; D_80183E40[0] = temp_v0->pos[0]; D_80183E40[1] = temp_v0->pos[1]; D_80183E40[2] = temp_v0->pos[2]; @@ -1800,14 +1800,14 @@ void func_8008BF64(s32 objectIndex) { } void func_8008BFC0(s32 objectIndex) { - D_80165C18[objectIndex].unk_09C = D_80165C18[objectIndex].pos[0]; - D_80165C18[objectIndex].unk_09E = D_80165C18[objectIndex].pos[1]; + gObjectList[objectIndex].unk_09C = gObjectList[objectIndex].pos[0]; + gObjectList[objectIndex].unk_09E = gObjectList[objectIndex].pos[1]; } void func_8008BFFC(s32 objectIndex) { - struct_80165C18_entry *temp_v1; + Objects *temp_v1; - temp_v1 = &D_80165C18[objectIndex]; + temp_v1 = &gObjectList[objectIndex]; switch (temp_v1->unk_0DE) { case 1: if (temp_v1->unk_0AE == 1) { diff --git a/src/code_80086E70.h b/src/code_80086E70.h index 55a391896..9f6863596 100644 --- a/src/code_80086E70.h +++ b/src/code_80086E70.h @@ -17,7 +17,7 @@ s32 func_80087104(s32, u16); s32 func_800871AC(s32, s32); void func_80087258(s32, s32, f32); s32 func_80087294(s32, Player*); -s32 func_800872D8(s32, Camera*); +s32 angle_between_object_camera(s32, Camera*); u16 func_80087324(s32); s32 func_80087368(s32); void func_800873A4(s32); diff --git a/src/code_8008C1D0.c b/src/code_8008C1D0.c index 48d54cdf6..183a92966 100644 --- a/src/code_8008C1D0.c +++ b/src/code_8008C1D0.c @@ -164,7 +164,7 @@ UNUSED void func_unnamed33(void) { void func_8008C310(Player *player) { - if ((player->statusEffects & 2) || (player->statusEffects & 4) || ((player->statusEffects << 9) < 0) || (player->statusEffects & 0x1000000)) { + if ((player->statusEffects & 2) || (player->statusEffects & 4) || ((player->statusEffects << 9) < 0) || (player->statusEffects & HIT_BY_ITEM_EFFECT)) { player->unk_0B6 = ((u16)player->unk_0B6 | 0x1000); } } @@ -175,51 +175,51 @@ UNUSED void func_unnamed34(void) { void func_8008C354(Player *player, s8 arg1) { - if ((player->unk_0BC & 0x400) == 0x400) { + if ((player->effects & 0x400) == 0x400) { func_8008C6D0(player, arg1); } - if (((player->unk_0BC & 0x80) == 0x80) || (player->unk_0BC & 0x40) == 0x40) { + if (((player->effects & 0x80) == 0x80) || (player->effects & 0x40) == 0x40) { func_8008C8C4(player, arg1); } - if ((player->unk_0BC & 0x800) == 0x800) { + if ((player->effects & 0x800) == 0x800) { func_8008D0E4(player, arg1); } if ((player->unk_044 & 0x4000) != 0) { func_8008D3B0(player, arg1); } - if ((player->unk_0BC & 0x2000) == 0x2000) { + if ((player->effects & 0x2000) == 0x2000) { func_8008D554(player); } - if ((player->unk_0BC & 0x80000) == 0x80000) { + if ((player->effects & 0x80000) == 0x80000) { func_8008D760(player); } - if ((player->unk_0BC & 0x800000) == 0x800000) { + if ((player->effects & 0x800000) == 0x800000) { func_8008D97C(player); } - if ((player->unk_0BC & 0x1000000) == 0x1000000) { + if ((player->effects & 0x1000000) == 0x1000000) { func_8008E884(player, arg1); } - if ((player->unk_0BC & 0x2000000) == 0x2000000) { + if ((player->effects & 0x2000000) == 0x2000000) { func_8008EC34(player, arg1); } - if ((player->unk_0BC & 0x100000) == 0x100000) { + if ((player->effects & 0x100000) == 0x100000) { func_8008EEC4(player); } - if ((player->unk_0BC & 4) == 4) { + if ((player->effects & 4) == 4) { func_8008F0E8(player); } - if ((player->unk_0BC & 0x4000) == 0x4000) { + if ((player->effects & 0x4000) == 0x4000) { func_8008F3E0(player); } - if ((player->unk_0BC & 0x10000) == 0x10000) { + if ((player->effects & 0x10000) == 0x10000) { func_8008F5A4(player, arg1); } - if ((player->unk_0BC & 0x10000000) == 0x10000000) { + if ((player->effects & 0x10000000) == 0x10000000) { func_8008FEDC(player, arg1); } player->unk_044 = (s16) (player->unk_044 & 0xFFFE); - player->unk_0BC = (s32) (player->unk_0BC & ~0x20); + player->effects = (s32) (player->effects & ~0x20); } void func_8008C528(Player *player, s8 arg1) { @@ -234,12 +234,12 @@ void func_8008C528(Player *player, s8 arg1) { player->kartHopVelocity = D_800E3790[temp_v1]; player->unk_0A8 = 0; - player->unk_0BC = player->unk_0BC | 0x400; - player->unk_0BC = player->unk_0BC & ~0x10; + player->effects = player->effects | 0x400; + player->effects = player->effects & ~0x10; player->unk_0C0 = 0; player->unk_236 = 2; player->unk_042 = 0; - if (((player->unk_000 & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->unk_000 & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { + if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800C90F4(arg1, (temp_v1 * 0x10) + 0x29008005); func_800C9060(arg1, SOUND_ACTION_EXPLOSION); } else { @@ -269,14 +269,14 @@ void func_8008C62C(Player *player, s8 arg1) { void func_8008C6D0(Player *player, s8 arg1) { player->unk_206 = 0; - player->unk_0C4 = 0; - player->unk_0BC = (s32) (player->unk_0BC & ~0x400); + player->slopeAccel = 0; + player->effects = (s32) (player->effects & ~0x400); player->unk_0A8 = 0; player->unk_0C0 = 0; player->unk_07C = 0; player->unk_236 = 0; player->unk_078 = 0; - player->unk_09C = 0.0f; + player->currentSpeed = 0.0f; D_80165190[0][arg1] = 1; D_80165190[1][arg1] = 1; D_80165190[2][arg1] = 1; @@ -286,13 +286,13 @@ void func_8008C6D0(Player *player, s8 arg1) { void func_8008C73C(Player *player, s8 arg1) { func_8008C354(player, arg1); - if (((player->unk_0BC & 0x80) != 0x80) && ((player->unk_0BC & 0x40) != 0x40)) { - player->unk_0BC &= ~0x10; + if (((player->effects & 0x80) != 0x80) && ((player->effects & 0x40) != 0x40)) { + player->effects &= ~0x10; if ((player->unk_0C0 / 182) >= 0) { - player->unk_0BC |= 0x40; + player->effects |= 0x40; } else { - player->unk_0BC |= 0x80; + player->effects |= 0x80; } player->unk_0B6 |= 0x80; @@ -301,14 +301,14 @@ void func_8008C73C(Player *player, s8 arg1) { D_80165190[1][arg1] = 1; D_80165190[2][arg1] = 1; D_80165190[3][arg1] = 1; - D_80165280[arg1] = player->unk_09C; + D_80165280[arg1] = player->currentSpeed; D_80165480[arg1] = 0; - D_80165460[arg1] = 0; + gIsPlayerTripleAButtonCombo[arg1] = FALSE; D_80165440[arg1] = 0; D_80165420[arg1] = 0; D_8018D920[arg1] = 0; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008003); } else { func_800098FC(arg1, player); @@ -316,27 +316,27 @@ void func_8008C73C(Player *player, s8 arg1) { } } -void func_8008C8C4(Player* player, s8 arg1) { - player->unk_0BC &= ~0x80; - player->unk_0BC &= ~0x40; +void func_8008C8C4(Player* player, s8 playerId) { + player->effects &= ~0x80; + player->effects &= ~0x40; player->unk_0A8 = 0; player->unk_02C[1] = player->unk_0AE; player->unk_07C = 0; player->unk_0C0 = 0; - player->unk_0BC &= ~0x800; + player->effects &= ~0x800; - D_80165190[0][arg1] = 1; - D_80165190[1][arg1] = 1; - D_80165190[2][arg1] = 1; - D_80165190[3][arg1] = 1; + D_80165190[0][playerId] = 1; + D_80165190[1][playerId] = 1; + D_80165190[2][playerId] = 1; + D_80165190[3][playerId] = 1; player->unk_046 &= 0xFFBF; - if ((D_80165460[arg1] == 1) && ((player->unk_000 & 0x4000) == 0x4000)) { - player->unk_09C = (f32) (player->unk_09C + 100.0f); + if ((gIsPlayerTripleAButtonCombo[playerId] == TRUE) && ((player->type & 0x4000) == 0x4000)) { + player->currentSpeed = (f32) (player->currentSpeed + 100.0f); } - if ((gModeSelection == VERSUS) && ((player->unk_000 & 0x1000) == 0x1000) && (!gDemoMode) && ((player->unk_0CA & 2) == 0) && (gGPCurrentRaceRankByPlayerId[arg1] != 0)) { - player->statusEffects = (s32) (player->statusEffects | 0x400000); + if ((gModeSelection == VERSUS) && ((player->type & PLAYER_CPU) == PLAYER_CPU) && (!gDemoMode) && ((player->unk_0CA & 2) == 0) && (gGPCurrentRaceRankByPlayerId[playerId] != 0)) { + player->statusEffects = (s32) (player->statusEffects | REVERSE_EFFECT); } } @@ -346,20 +346,20 @@ void func_8008C9EC(Player *player, s8 arg1) { s16 sp30[5] = { 1092, 1092, 2184, 1638, 1820 }; player->unk_206 = 0; - player->unk_0C4 = 0; + player->slopeAccel = 0; if ((player->unk_046 & 0x40) == 0x40) { func_80031F48(player, 100.0f); } else { - if ((player->unk_000 & 0x4000) == 0x4000) { + if ((player->type & 0x4000) == 0x4000) { func_80031F48(player, 1.0f); } else { func_80031F48(player, 4.0f); } - if (!(player->unk_000 & 0x4000)) { + if (!(player->type & 0x4000)) { func_80031F48(player, 30.0f); } } - if ((player->unk_0BC & 0x80) == 0x80) { + if ((player->effects & 0x80) == 0x80) { player->unk_02C[1] -= sp30[player->unk_0B2]; D_8018D920[arg1] -= sp30[player->unk_0B2]; stackPadding1 = (u16)D_8018D920[arg1] / (0x10000 / (0x168 / (sp30[player->unk_0B2] / 182))); @@ -386,10 +386,10 @@ void func_8008C9EC(Player *player, s8 arg1) { } } } - if ((D_80165460[arg1] == 1) && ((player->unk_000 & 0x4000) == 0x4000)) { + if ((gIsPlayerTripleAButtonCombo[arg1] == TRUE) && ((player->type & 0x4000) == 0x4000)) { D_80165480[arg1] = 0x00000078; - if (player->unk_09C <= 90.0f) { - player->unk_09C = 90.0f; + if (player->currentSpeed <= 90.0f) { + player->currentSpeed = 90.0f; } } } @@ -401,13 +401,13 @@ void func_8008CDC0(Player* player, s8 arg1) { player->unk_0B4 = 0; player->unk_0B8 = 3.0f; player->unk_0AC = 1; - player->unk_0BC &= ~0x10; + player->effects &= ~0x10; - if (((player->unk_07C >> 0x10) >= 0x14) || ((player->unk_07C >> 0x10) < -0x13) || (((player->unk_094 / 18.0f) * 216.0f) <= 30.0f) || ((player->unk_0BC & 8) != 0) || (((player->unk_000 & 0x4000) == 0) && ((player->unk_0BC & 0x1000) == 0))) { + if (((player->unk_07C >> 0x10) >= 0x14) || ((player->unk_07C >> 0x10) < -0x13) || (((player->unk_094 / 18.0f) * 216.0f) <= 30.0f) || ((player->effects & 8) != 0) || (((player->type & 0x4000) == 0) && ((player->effects & 0x1000) == 0))) { func_8008C73C(player, arg1); } else { - player->unk_0BC |= 0x800; + player->effects |= 0x800; } } @@ -426,18 +426,18 @@ void func_8008CEB0(Player *player, s8 arg1) { var_v1 = 0; var_a3 = -var_a3; var_f0 *= 0.8; - if ((player->unk_0BC & 1) == 1) { - player->unk_0BC |= 0x40000; + if ((player->effects & 1) == 1) { + player->effects |= 0x40000; } if (var_f0 <= 1.0f) { - player->unk_0BC &= ~0x800; - if ((player->unk_0BC & 0x40000) != 0x40000) { + player->effects &= ~0x800; + if ((player->effects & 0x40000) != 0x40000) { func_8008C73C(player, arg1); var_v1 = 0; } else { player->unk_0B6 |= 0x20; - player->unk_0BC &= ~0x40000; - if ((player->unk_000 & 0x4000) == 0x4000) + player->effects &= ~0x40000; + if ((player->type & 0x4000) == 0x4000) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008008); var_v1 = 0; @@ -456,14 +456,14 @@ void func_8008CEB0(Player *player, s8 arg1) { player->unk_0B8 = var_f0; player->unk_0B4 = var_v1; player->unk_0AC = var_a3; - if (player->unk_0BC & 8) { + if (player->effects & 8) { func_8008C73C(player, arg1); - player->unk_0BC &= ~0x800; + player->effects &= ~0x800; } } void func_8008D0E4(Player* player, UNUSED s8 arg1) { - player->unk_0BC &= ~0x800; + player->effects &= ~0x800; } void func_8008D0FC(Player *player, s8 arg1) { @@ -473,7 +473,7 @@ void func_8008D0FC(Player *player, s8 arg1) { player->unk_0B4 = 0; player->unk_0B8 = 2.0f; player->unk_0AC = 1; - player->unk_0BC &= ~0x10; + player->effects &= ~0x10; player->unk_044 |= 0x4000; } @@ -492,18 +492,18 @@ void func_8008D170(Player *player, s8 arg1) { var_v1 = 0; var_a3 = -var_a3; var_f0 *= 0.9; - if (((player->unk_0BC & 1) == 1) || !(player->unk_044 & 0x20)) { - player->unk_0BC |= 0x40000; + if (((player->effects & 1) == 1) || !(player->unk_044 & 0x20)) { + player->effects |= 0x40000; } if (var_f0 <= 1.3) { player->unk_044 &= ~0x4000; - if ((player->unk_0BC & 0x40000) != 0x40000) { + if ((player->effects & 0x40000) != 0x40000) { func_8008C73C(player, arg1); var_v1 = 0; } else { player->unk_0B6 |= 0x20; - player->unk_0BC &= ~0x40000; - if ((player->unk_000 & 0x4000) == 0x4000) + player->effects &= ~0x40000; + if ((player->type & 0x4000) == 0x4000) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008008); var_v1 = 0; @@ -522,7 +522,7 @@ void func_8008D170(Player *player, s8 arg1) { player->unk_0B8 = var_f0; player->unk_0B4 = var_v1; player->unk_0AC = var_a3; - if (player->unk_0BC & 8) { + if (player->effects & 8) { func_8008C73C(player, arg1); player->unk_044 &= ~0x4000; } @@ -536,13 +536,13 @@ void func_8008D3C4(Player* player, s8 arg1) { func_8008C354(player, arg1); - player->unk_0BC |= 0x2000; + player->effects |= 0x2000; player->statusEffects &= ~0x200; player->unk_DB4.unk0 = 0; player->unk_DB4.unk8 = 8.0f; if (D_8015F890 != 1) { - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800C9250(arg1); func_800C9060(arg1, 0x1900A40B); } @@ -557,7 +557,7 @@ void func_8008D3C4(Player* player, s8 arg1) { } void func_8008D4B4(Player* player) { - player->unk_09C = (f32) player->unk_214; + player->currentSpeed = (f32) player->topSpeed; if ( player->boostTimer > 0) { --player->boostTimer; } @@ -569,12 +569,12 @@ void func_8008D4B4(Player* player) { } if (player->boostPower <= 1.0f) { - player->unk_0BC &= ~0x2000; + player->effects &= ~0x2000; } } void func_8008D554(Player* player) { - player->unk_0BC &= ~0x2000; + player->effects &= ~0x2000; player->boostPower = 0.0f; } @@ -582,8 +582,8 @@ void func_8008D570(Player *player, s8 arg1) { func_8008C354(player, arg1); player->unk_0AE = player->unk_02C[1]; - player->unk_0BC |= 0x80000; - player->unk_0BC &= ~0x10; + player->effects |= 0x80000; + player->effects &= ~0x10; player->statusEffects &= ~0x1000; player->kartHopJerk = D_800E3730[player->characterId]; player->kartHopAcceleration = 0.0f; @@ -594,11 +594,11 @@ void func_8008D570(Player *player, s8 arg1) { player->unk_078 = 0; D_8018D920[arg1] = 0; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800C9060(arg1, 0x19008002); } - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x2900800C); } } @@ -619,7 +619,7 @@ void func_8008D698(Player* player, s8 arg1) { if (player->unk_0B2 <= 0) { player->unk_0B2 = 0; } - if ((player->unk_0B2 == 0) && ((player->unk_0BC & 8) != 8)) { + if ((player->unk_0B2 == 0) && ((player->effects & 8) != 8)) { func_8008D760(player); } } @@ -630,17 +630,17 @@ void func_8008D760(Player* player) { player->unk_07C = 0; player->unk_0C0 = 0; player->unk_02C[1] = player->unk_0AE; - player->unk_0BC &= 0xFFF7FFFF; + player->effects &= 0xFFF7FFFF; player->kartGravity = gKartGravityTable[player->characterId]; - player->unk_000 &= 0xFF7F; + player->type &= 0xFF7F; } void func_8008D7B0(Player* player, s8 arg1) { func_8008C354(player, arg1); player->unk_0AE = player->unk_02C[1]; - player->unk_0BC |= 0x800000; - player->unk_0BC &= ~0x10; + player->effects |= 0x800000; + player->effects &= ~0x10; player->statusEffects &= 0xFFFDFFFF; player->kartHopJerk = D_800E3770[player->characterId]; player->kartHopAcceleration = 0.0f; @@ -651,7 +651,7 @@ void func_8008D7B0(Player* player, s8 arg1) { player->unk_07C = 0; player->unk_078 = 0; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008003); } } @@ -672,7 +672,7 @@ void func_8008D8B4(Player* player, s8 arg1) { if (player->unk_0B2 <= 0) { player->unk_0B2 = 0; } - if ((player->unk_0B2 == 0) && ((player->unk_0BC & 8) != 8)) { + if ((player->unk_0B2 == 0) && ((player->effects & 8) != 8)) { func_8008D97C(player); } } @@ -683,7 +683,7 @@ void func_8008D97C(Player *player) { player->unk_07C = 0; player->unk_0C0 = 0; player->unk_02C[1] = player->unk_0AE; - player->unk_0BC &= 0xFF7FFFFF; + player->effects &= 0xFF7FFFFF; player->kartGravity = gKartGravityTable[player->characterId]; } @@ -712,12 +712,12 @@ void func_8008D9C0(Player* player) { void func_8008DABC(Player *player, s8 arg1) { func_8008C354(player, arg1); - if ((player->unk_0BC & 0x4000000) == 0) { + if ((player->effects & 0x4000000) == 0) { player->unk_DB4.unk2 = 0; player->unk_238 = 0; player->unk_DB4.unk10 = 4.5f; D_8018D990[arg1] = 0; - player->unk_0BC &= ~0x08000010; + player->effects &= ~0x08000010; D_80165190[0][arg1] = 1; D_80165190[1][arg1] = 1; D_80165190[2][arg1] = 1; @@ -730,12 +730,12 @@ void func_8008DABC(Player *player, s8 arg1) { player->unk_046 |= 0x80; } - if (((player->unk_000 & 0x4000) != 0) && ((player->unk_0BC & 0x04000000) == 0)) { + if (((player->type & 0x4000) != 0) && ((player->effects & 0x04000000) == 0)) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008005); } - player->unk_0BC |= 0x04000000; - if (((player->unk_000) & 0x1000) != 0) { + player->effects |= 0x04000000; + if (((player->type) & 0x1000) != 0) { func_800098FC(arg1, player); } } @@ -747,8 +747,8 @@ void func_8008DC08(Player* player, s8 arg1) { player->unk_07C = 0; player->unk_0C0 = 0; player->unk_08C = 0.0f; - player->unk_09C = 0.0f; - if ((player->unk_110.unk3C[2] >= 600.0f) || ((player->unk_0BC & 0x1000) != 0)) { D_8018D990[arg1] = 3; } // placed block on same line to match + player->currentSpeed = 0.0f; + if ((player->unk_110.unk3C[2] >= 600.0f) || ((player->effects & 0x1000) != 0)) { D_8018D990[arg1] = 3; } // placed block on same line to match switch (D_8018D990[arg1]) { case 0: @@ -761,7 +761,7 @@ void func_8008DC08(Player* player, s8 arg1) { if ((player->statusEffects & 0x100) == 0) { D_8018D990[arg1] = 1; player->unk_238 = 0; - if ((player->unk_000 & 0x4000) != 0) { + if ((player->type & 0x4000) != 0) { func_800C9060(arg1, 0x1901904B); break; } @@ -771,7 +771,7 @@ void func_8008DC08(Player* player, s8 arg1) { if (player->unk_238 >= 0x1E) { D_8018D990[arg1] = 1; player->unk_238 = 0; - if ((player->unk_000 & 0x4000) != 0) { + if ((player->type & 0x4000) != 0) { func_800C9060(arg1, 0x1901904B); break; } @@ -821,7 +821,7 @@ void func_8008DC08(Player* player, s8 arg1) { player->unk_DB4.unk10 = 4.5f; player->pos[1] -= 0.085; - if ((player->unk_0BC & 8) != 8) { + if ((player->effects & 8) != 8) { D_8018D990[arg1] = 3; player->unk_238 = 0; } @@ -830,17 +830,17 @@ void func_8008DC08(Player* player, s8 arg1) { break; case 3: player->unk_DB4.unk10 = 3.0f; - player->unk_0BC &= ~0x04000000; + player->effects &= ~0x04000000; player->unk_DB4.unk2 = 0; - player->unk_0BC |= 0x08000000; - player->unk_224 = 1.0f; + player->effects |= 0x08000000; + player->size = 1.0f; player->boundingBoxSize = gKartBoundingBoxSizeTable[player->characterId]; D_80165190[0][arg1] = 1; D_80165190[1][arg1] = 1; D_80165190[2][arg1] = 1; D_80165190[3][arg1] = 1; - if ((player->unk_000 & 0x4000) != 0) { + if ((player->type & 0x4000) != 0) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008008); } break; @@ -850,12 +850,12 @@ void func_8008DC08(Player* player, s8 arg1) { void func_8008DF98(Player* player, s8 arg1) { func_8008C354(player, arg1); - player->statusEffects &= ~0x4000; - player->unk_0BC |= 0x40020000; - player->unk_0BC &= ~0x10; + player->statusEffects &= ~HIT_ROTATING_EFFECT; + player->effects |= 0x40020000; + player->effects &= ~0x10; player->unk_08C *= 0.6; player->unk_0B0 = 0; - player->unk_224 = 1.0f; + player->size = 1.0f; D_8018D930[arg1] = gCourseTimer; player->unk_0AE = player->unk_02C[1]; player->unk_0B2 = 2; @@ -870,7 +870,7 @@ void func_8008DF98(Player* player, s8 arg1) { D_8018D920[arg1] = 0; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008003); } else { func_800098FC(arg1, player); @@ -882,8 +882,8 @@ void func_8008DF98(Player* player, s8 arg1) { void func_8008E118(Player *player, s8 arg1) { s16 test; - if (((player->unk_0BC & 0x8000) == 0x8000) && ((player->unk_0BC & 0x04000000) != 0x04000000)) { - player->unk_0BC &= ~0x20000; + if (((player->effects & 0x8000) == 0x8000) && ((player->effects & 0x04000000) != 0x04000000)) { + player->effects &= ~0x20000; player->unk_0A8 = 0; player->unk_07C = 0; player->unk_0C0 = 0; @@ -894,7 +894,7 @@ void func_8008E118(Player *player, s8 arg1) { D_80165190[2][arg1] = 1; D_80165190[3][arg1] = 1; func_8008DABC(player, arg1); - } else if ((player->unk_0BC & 0x20000) == 0x20000) { + } else if ((player->effects & 0x20000) == 0x20000) { player->unk_02C[1] -= 0x5B0; D_8018D920[arg1] -= 0x5B0; test = (u16)D_8018D920[arg1] / 1456; @@ -902,7 +902,7 @@ void func_8008E118(Player *player, s8 arg1) { player->unk_0B2--; if (player->unk_0B2 <= 0) { player->unk_0A8 = 0; - player->unk_0BC &= ~0x20000; + player->effects &= ~0x20000; player->unk_07C = 0; player->unk_0C0 = 0; player->unk_02C[1] = player->unk_0AE; @@ -916,15 +916,15 @@ void func_8008E118(Player *player, s8 arg1) { } else { player->unk_0B0 += 1; player->unk_08C = (f32) ((f64) player->unk_08C * 0.6); - if ((player->unk_0B0 == 1) && (player->unk_000 & 0x4000)) { + if ((player->unk_0B0 == 1) && (player->type & 0x4000)) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008005); } if ((player->unk_0B0 >= 0) && (player->unk_0B0 < 0x1CC)) { - move_f32_towards(&player->unk_224, 0.7f, 0.1f); + move_f32_towards(&player->size, 0.7f, 0.1f); move_f32_towards(&player->boundingBoxSize, (f32) ((f64) gKartBoundingBoxSizeTable[player->characterId] * 0.9), 0.1f); } else { func_8008E3C0(player, arg1); - if (player->unk_000 & 0x4000) { + if (player->type & 0x4000) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008008); } } @@ -932,42 +932,42 @@ void func_8008E118(Player *player, s8 arg1) { } void func_8008E3C0(Player* player, UNUSED s8 arg1) { - move_f32_towards(&player->unk_224, 1.0f, 0.1f); + move_f32_towards(&player->size, 1.0f, 0.1f); move_f32_towards(&player->boundingBoxSize, gKartBoundingBoxSizeTable[player->characterId], 0.1f); - player->unk_0BC &= ~0x40000000; - player->unk_224 = 1.0f; + player->effects &= ~LIGHTNING_EFFECT; + player->size = 1.0f; player->boundingBoxSize = gKartBoundingBoxSizeTable[player->characterId]; player->unk_DB4.unk10 = 3.0f; player->unk_DB4.unk2 = 0; - player->unk_0BC |= 0x08000000; + player->effects |= 0x08000000; - if ((player->unk_0BC & 0x20000) == 0x20000) { + if ((player->effects & 0x20000) == 0x20000) { player->unk_02C[1] = player->unk_0AE; } - player->unk_0BC &= ~0x20000; + player->effects &= ~0x20000; } void func_8008E4A4(Player* player, s8 arg1) { player->unk_206 = 0; - player->unk_0C4 = 0; + player->slopeAccel = 0; player->unk_0C0 = 0; player->unk_07C = 0; player->unk_0C2 = 0xF; player->unk_042 += 0xAAA; player->unk_08C = 0.0f; - player->unk_09C = 0.0f; - player->unk_034[0] = 0.0f; - player->unk_034[2] = 0.0f; - player->unk_0BC &= ~0xC0; + player->currentSpeed = 0.0f; + player->velocity[0] = 0.0f; + player->velocity[2] = 0.0f; + player->effects &= ~0xC0; - if ((player->unk_0BC & 8) != 8) { + if ((player->effects & 8) != 8) { ++player->unk_0E0; } if (player->unk_0E0 == 3) { - player->unk_0BC &= ~0x01000000; + player->effects &= ~0x01000000; player->unk_0A8 = 0; player->unk_236 = 0; D_80165190[0][arg1] = 1; @@ -975,10 +975,10 @@ void func_8008E4A4(Player* player, s8 arg1) { D_80165190[2][arg1] = 1; D_80165190[3][arg1] = 1; player->unk_042 = 0; - player->unk_000 &= ~0x80; + player->type &= ~0x80; - if ((D_80165460[arg1] == 1) && ((player->unk_000 & 0x4000) == 0x4000)) { - player->unk_09C += 100.0f; + if ((gIsPlayerTripleAButtonCombo[arg1] == TRUE) && ((player->type & 0x4000) == 0x4000)) { + player->currentSpeed += 100.0f; } if (gModeSelection == BATTLE) { func_8006B8B4(player, arg1); @@ -989,7 +989,7 @@ void func_8008E4A4(Player* player, s8 arg1) { player->unk_0A8 = 0; --player->unk_236; if (player->unk_236 == 0) { - player->unk_0BC &= ~0x01000000; + player->effects &= ~0x01000000; player->unk_236 = 0; D_80165190[0][arg1] = 1; D_80165190[1][arg1] = 1; @@ -1000,11 +1000,11 @@ void func_8008E4A4(Player* player, s8 arg1) { if (gModeSelection == BATTLE) { func_8006B8B4(player, arg1); } - if ((D_80165460[arg1] == 1) && ((player->unk_000 & 0x4000) == 0x4000)) { - player->unk_09C += 100.0f; + if ((gIsPlayerTripleAButtonCombo[arg1] == TRUE) && ((player->type & 0x4000) == 0x4000)) { + player->currentSpeed += 100.0f; } - player->unk_000 &= ~0x80; + player->type &= ~0x80; } } } @@ -1016,8 +1016,8 @@ void func_8008E6C0(Player *player, s8 arg1) func_8008C310(player); player->unk_0A8 = 0; - player->unk_0BC |= 0x01000000; - player->unk_0BC &= ~0x10; + player->effects |= 0x01000000; + player->effects &= ~0x10; player->kartHopJerk = 0.0f; player->kartHopAcceleration = 0.0f; player->kartHopVelocity = 0.0f; @@ -1027,8 +1027,8 @@ void func_8008E6C0(Player *player, s8 arg1) player->unk_042 = 0; player->unk_0E0 = 0; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { - if (((gModeSelection == VERSUS) && ((player->unk_000 & 0x1000) != 0)) && (!gDemoMode)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { + if (((gModeSelection == VERSUS) && ((player->type & PLAYER_CPU) != 0)) && (!gDemoMode)) { func_800CA24C(arg1); } @@ -1036,7 +1036,7 @@ void func_8008E6C0(Player *player, s8 arg1) } func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008005); - if (((gModeSelection == VERSUS) && ((player->unk_000 & 0x1000) != 0)) && (!gDemoMode)) { + if (((gModeSelection == VERSUS) && ((player->type & PLAYER_CPU) != 0)) && (!gDemoMode)) { func_800CA24C(arg1); } func_800C9060(arg1, SOUND_ACTION_EXPLOSION); @@ -1047,13 +1047,13 @@ void func_8008E6C0(Player *player, s8 arg1) player->statusEffects &= ~0x00480000; player->unk_0B6 |= 0x40; D_80165480[arg1] = 0; - D_80165460[arg1] = 0; + gIsPlayerTripleAButtonCombo[arg1] = FALSE; D_80165440[arg1] = 0; D_80165420[arg1] = 0; } void func_8008E884(Player* player, s8 arg1) { - player->unk_0BC &= ~0x01000000; + player->effects &= ~0x01000000; player->unk_0A8 = 0; player->unk_236 = 0; D_80165190[0][arg1] = 1; @@ -1065,21 +1065,21 @@ void func_8008E884(Player* player, s8 arg1) { void func_8008E8D8(Player *player, s8 arg1) { player->unk_206 = 0; - player->unk_0C4 = 0; + player->slopeAccel = 0; player->unk_0C0 = 0; player->unk_07C = 0; player->unk_0C2 = 0xF; player->unk_042 += 0xAAA; player->unk_08C /= 2; - player->unk_09C = 0.0f; - player->unk_0BC &= ~0xC0; + player->currentSpeed = 0.0f; + player->effects &= ~0xC0; - if ((player->unk_0BC & 8) != 8) { + if ((player->effects & 8) != 8) { ++player->unk_0E0; } if (player->unk_0E0 == 4) { - player->unk_0BC &= ~0x02000000; + player->effects &= ~0x02000000; player->unk_0A8 = 0; player->unk_236 = 0; D_80165190[3][arg1] = 1; @@ -1088,8 +1088,8 @@ void func_8008E8D8(Player *player, s8 arg1) { D_80165190[2][arg1] = 1; player->unk_042 = 0; - if ((D_80165460[arg1] == 1) && ((player->unk_000 & 0x4000) == 0x4000)) { - player->unk_09C += 100.0f; + if ((gIsPlayerTripleAButtonCombo[arg1] == TRUE) && ((player->type & 0x4000) == 0x4000)) { + player->currentSpeed += 100.0f; } if (gModeSelection == BATTLE) { @@ -1101,15 +1101,15 @@ void func_8008E8D8(Player *player, s8 arg1) { player->unk_0A8 = 0; --player->unk_236; if (player->unk_236 == 0) { - player->unk_0BC &= ~0x02000000; + player->effects &= ~0x02000000; player->unk_236 = 0; D_80165190[0][arg1] = 1; D_80165190[1][arg1] = 1; D_80165190[2][arg1] = 1; D_80165190[3][arg1] = 1; player->unk_042 = 0; - if ((D_80165460[arg1] == 1) && ((player->unk_000 & 0x4000) == 0x4000)) { - player->unk_09C += 100.0f; + if ((gIsPlayerTripleAButtonCombo[arg1] == TRUE) && ((player->type & 0x4000) == 0x4000)) { + player->currentSpeed += 100.0f; } if (gModeSelection == BATTLE) { @@ -1125,7 +1125,7 @@ void func_8008EAE0(Player* player, s8 arg1) { func_8008C310(player); player->unk_0A8 = 0; - player->unk_0BC &= ~0x10; + player->effects &= ~0x10; player->kartHopJerk = 0.0f; player->kartHopAcceleration = 0.0f; player->kartHopVelocity = 0.0f; @@ -1135,25 +1135,25 @@ void func_8008EAE0(Player* player, s8 arg1) { player->unk_042 = 0; player->unk_0E0 = 0; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008005); func_800C9060(arg1, SOUND_ACTION_EXPLOSION); } else { func_800098FC(arg1, player); } - player->unk_0BC |= 0x02000000; + player->effects |= 0x02000000; player->unk_0B6 |= 0x40; player->statusEffects &= ~0x01000002; D_80165480[arg1] = 0; - D_80165460[arg1] = 0; + gIsPlayerTripleAButtonCombo[arg1] = FALSE; D_80165440[arg1] = 0; D_80165420[arg1] = 0; } void func_8008EC34(Player* player, s8 arg1) { - player->unk_0BC &= ~0x02000000; + player->effects &= ~0x02000000; player->unk_0A8 = 0; player->unk_236 = 0; D_80165190[0][arg1] = 1; @@ -1166,12 +1166,12 @@ void func_8008EC34(Player* player, s8 arg1) { void func_8008EC88(Player* player, s8 arg1) { func_8008C354(player, arg1); - player->unk_0BC |= 0x100000; + player->effects |= 0x100000; player->statusEffects &= ~0x00800000; player->unk_DB4.unk0 = 0; player->unk_DB4.unk8 = 8.0f; if (D_8015F890 != 1) { - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) == 0)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) == 0)) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008001); func_800C9060(arg1, 0x1900A40B); } @@ -1180,45 +1180,45 @@ void func_8008EC88(Player* player, s8 arg1) { func_800C9060(arg1, 0x1900A40B); } player->unk_044 &= ~0x1; - player->unk_0BC &= ~0x20; + player->effects &= ~0x20; } void func_8008EDC0(Player* player) { f64 temp_f0; - player->unk_09C = player->unk_214; + player->currentSpeed = player->topSpeed; if ((u16) player->unk_256 > 0) { - player->unk_09C = 0.0f; + player->currentSpeed = 0.0f; } - if ((player->unk_0F8 != 0xFE) && ((player->unk_0BC & 8) != 8)) { + if ((player->unk_0F8 != 0xFE) && ((player->effects & 8) != 8)) { move_f32_towards(&player->boostPower, 0, 1.0f); } else { move_f32_towards(&player->boostPower, 400.0f, 0.01f); } if (player->boostPower <= 1.0f) { - player->unk_0BC &= ~0x00100000; + player->effects &= ~0x00100000; player->boostPower = 0.0f; if (player->unk_0C2 >= 0x33) { temp_f0 = 0.7; - player->unk_09C = (player->unk_09C * temp_f0); + player->currentSpeed = (player->currentSpeed * temp_f0); player->unk_08C = (player->unk_08C * temp_f0); } } } void func_8008EEC4(Player* player) { - player->unk_0BC &= ~0x00100000; + player->effects &= ~0x00100000; player->boostPower = 0.0f; } void func_8008EEE4(Player* player, s8 arg1) { func_8008C354(player, arg1); - player->unk_0BC |= 0x4; + player->effects |= 0x4; player->statusEffects &= ~0x8000; if (D_8015F890 != 1) { - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) == 0)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & 0x100) == 0)) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008001); func_800C9060(arg1, 0x1900A40B); } @@ -1228,28 +1228,28 @@ void func_8008EEE4(Player* player, s8 arg1) { } player->unk_044 &= ~0x1; - player->unk_0BC &= ~0x20; + player->effects &= ~0x20; } void func_8008F008(Player* player) { - player->unk_09C = D_800E261C[0][player->characterId]; + player->currentSpeed = gTopSpeedTable[0][player->characterId]; - if ((player->unk_0F8 != 0xFC) && ((player->unk_0BC & 8) != 8)) { + if ((player->unk_0F8 != 0xFC) && ((player->effects & 8) != 8)) { move_f32_towards(&player->boostPower, 0, 1.0f); } else { move_f32_towards(&player->boostPower, 300.0f, 0.1f); } if (player->boostPower <= 1.0f) { - player->unk_0BC &= ~0x4; + player->effects &= ~0x4; player->boostPower = 0.0f; - player->unk_09C /= 2; + player->currentSpeed /= 2; player->unk_08C /= 2; } } void func_8008F0E8(Player* player) { - player->unk_0BC &= ~4; + player->effects &= ~4; player->boostPower = 0.0f; } @@ -1260,11 +1260,11 @@ void func_8008F104(Player* player, s8 arg1) { player->unk_0B2 = 2; player->unk_0C0 = 0; player->unk_07C = 0; - player->unk_0BC |= 0x4000; + player->effects |= 0x4000; player->unk_078 = 0; D_8018D920[arg1] = -0x8000; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008003); } } @@ -1280,9 +1280,9 @@ void func_8008F1B8(Player* player, s8 arg1) { temp = ((u16) D_8018D920[arg1] / 182); if (temp == 180) { - player->unk_0BC &= ~0x4000; - player->unk_000 &= ~0x80; - player->unk_09C /= 3.0f; + player->effects &= ~0x4000; + player->type &= ~0x80; + player->currentSpeed /= 3.0f; } } else { @@ -1290,9 +1290,9 @@ void func_8008F1B8(Player* player, s8 arg1) { D_8018D920[arg1] -= 182; temp = ((u16) D_8018D920[arg1] / 182); if (temp == 180) { - player->unk_0BC &= ~0x4000; - player->unk_000 &= ~0x80; - player->unk_09C /= 3.0f; + player->effects &= ~0x4000; + player->type &= ~0x80; + player->currentSpeed /= 3.0f; } } } else { @@ -1319,20 +1319,20 @@ void func_8008F1B8(Player* player, s8 arg1) { } void func_8008F3E0(Player* player) { - player->unk_0BC &= ~0x4000; + player->effects &= ~0x4000; } void func_8008F3F4(Player* player, UNUSED s8 arg1) { player->unk_0A8 += 0x80; player->unk_042 += 0x71C; player->unk_07C = 0; - player->unk_09C = 0.0f; + player->currentSpeed = 0.0f; player->unk_08C /= 2; if (player->unk_0A8 >= 0x2000) { player->unk_0A8 = 0; --player->unk_236; if (player->unk_236 == 0) { - player->unk_0BC &= ~0x00010000; + player->effects &= ~0x00010000; func_80090778(player); func_80090868(player); } @@ -1340,11 +1340,11 @@ void func_8008F3F4(Player* player, UNUSED s8 arg1) { } void func_8008F494(Player* player, s8 arg1) { - if ((((player->unk_0BC & 0x80) != 0) || - ((player->unk_0BC & 0x40) != 0) || - ((player->unk_0BC & 0x01000000)) || - ((player->unk_0BC & 0x02000000)) || - ((player->unk_0BC & 0x400) != 0)) && (gModeSelection == BATTLE)) { + if ((((player->effects & 0x80) != 0) || + ((player->effects & 0x40) != 0) || + ((player->effects & 0x01000000)) || + ((player->effects & 0x02000000)) || + ((player->effects & 0x400) != 0)) && (gModeSelection == BATTLE)) { player->unk_044 |= 0x8000; } @@ -1352,13 +1352,13 @@ void func_8008F494(Player* player, s8 arg1) { func_8008F86C(player, arg1); player->unk_0A8 = 0; - player->unk_0BC |= 0x10000; - player->unk_0BC &= ~0x10; + player->effects |= 0x10000; + player->effects &= ~0x10; player->unk_236 = 0x1E; player->unk_042 = 0; - if (((player->unk_000 & 0x4000) != 0) && - ((player->unk_000 & 0x100) == 0) && + if (((player->type & 0x4000) != 0) && + ((player->type & PLAYER_INVISIBLE_OR_BOMB) == 0) && ((player->unk_0CA & 2) == 0) && ((player->unk_0DE & 1) == 0) && ((player->unk_0DE & 2) == 0)) { @@ -1374,14 +1374,14 @@ void func_8008F5A4(Player* player, s8 arg1) { } player->unk_206 = 0; - player->unk_0C4 = 0; - player->unk_0BC &= ~0x10000; + player->slopeAccel = 0; + player->effects &= ~0x10000; player->unk_0A8 = 0; player->unk_0C0 = 0; player->unk_07C = 0; player->unk_236 = 0; player->unk_078 = 0; - player->unk_09C = 0.0f; + player->currentSpeed = 0.0f; D_80165190[0][arg1] = 1; D_80165190[1][arg1] = 1; @@ -1394,7 +1394,7 @@ void func_8008F650(Player* player, s8 arg1) { if (((s32) gCourseTimer - D_8018D930[arg1]) >= 9) { D_8018D900[arg1] = 1; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { if (D_8018D900[arg1] == 1) { func_800CA730(arg1); D_8018D900[arg1] = 0; @@ -1406,7 +1406,7 @@ void func_8008F650(Player* player, s8 arg1) { } if (((s32) gCourseTimer - D_8018D930[arg1]) >= 0xA) { - player->unk_0BC &= ~0x200; + player->effects &= ~0x200; } } @@ -1414,12 +1414,12 @@ void func_8008F650(Player* player, s8 arg1) { void func_8008F778(Player* player, s8 arg1) { func_8008C354(player, arg1); - player->unk_0BC |= 0x200; + player->effects |= 0x200; player->statusEffects &= ~0x2000; D_8018D930[arg1] = gCourseTimer; D_8018D900[arg1] = 1; - if (((player->unk_000 & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->unk_000 & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { + if (((player->type & PLAYER_HUMAN) == PLAYER_HUMAN) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { if (D_8018D900[arg1] == 1) { func_800CA59C(arg1); D_8018D900[arg1] = 2; @@ -1432,8 +1432,8 @@ void func_8008F778(Player* player, s8 arg1) { } void func_8008F86C(Player* player, s8 arg1) { - player->unk_0BC &= ~0x200; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + player->effects &= ~0x200; + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800CA730(arg1); return; } @@ -1458,8 +1458,8 @@ void func_8008F8DC(Player* arg0, s8 arg1) { if (arg0->unk_0C6 >= 0xF0) { arg0->unk_0C6 = 0xFF; D_8018D970[arg1] = 0xFF; - arg0->unk_0BC &= ~0x80000000; - if ((arg0->unk_000 & 0x4000) != 0) { + arg0->effects &= ~0x80000000; + if ((arg0->type & 0x4000) != 0) { func_800CB064(arg1); } } @@ -1468,8 +1468,8 @@ void func_8008F8DC(Player* arg0, s8 arg1) { if (D_8018D970[arg1] >= 0xF0) { D_8018D970[arg1] = 0xFF; arg0->unk_0C6 = 0xFF; - arg0->unk_0BC &= ~0x80000000; - if ((arg0->unk_000 & 0x4000) != 0) { + arg0->effects &= ~0x80000000; + if ((arg0->type & 0x4000) != 0) { func_800CB064(arg1); } } @@ -1479,7 +1479,7 @@ void func_8008F8DC(Player* arg0, s8 arg1) { void func_8008FA38(Player* player, s8 arg1) { s16 temp_v1; - if ((player->unk_000 & 0x4000) != 0) { + if ((player->type & 0x4000) != 0) { player->unk_044 |= 0x200; for (temp_v1 = 0; temp_v1 < 10; ++temp_v1) { @@ -1491,12 +1491,12 @@ void func_8008FA38(Player* player, s8 arg1) { func_8008C354(player, arg1); - player->unk_0BC |= 0x80000000; + player->effects |= 0x80000000; player->statusEffects &= ~0x800; D_8018D950[arg1] = gCourseTimer; D_8018D970[arg1] = 0xFF; - if ((player->unk_000 & 0x4000) != 0) { + if ((player->type & 0x4000) != 0) { func_800CAFC0(arg1); } } @@ -1507,8 +1507,8 @@ void func_8008FB30(Player* arg0, s8 arg1) { arg0->unk_0C6 = 0xFF; D_8018D970[arg1] = 0xFF; - arg0->unk_0BC &= ~0x80000000; - if ((arg0->unk_000 & 0x4000) != 0) { + arg0->effects &= ~0x80000000; + if ((arg0->type & 0x4000) != 0) { func_800CB064(arg1); } } @@ -1517,8 +1517,8 @@ void func_8008FB30(Player* arg0, s8 arg1) { if (D_8018D970[arg1] >= 0xE0) { D_8018D970[arg1] = 0xFF; arg0->unk_0C6 = 0xFF; - arg0->unk_0BC &= ~0x80000000; - if ((arg0->unk_000 & 0x4000) != 0) { + arg0->effects &= ~0x80000000; + if ((arg0->type & 0x4000) != 0) { func_800CB064(arg1); } } @@ -1527,9 +1527,9 @@ void func_8008FB30(Player* arg0, s8 arg1) { void func_8008FC1C(Player* player) { s32 playerIndex; - if ((player->unk_000 & 0x40) != 0) { + if ((player->type & 0x40) != 0) { playerIndex = get_player_index_for_player(player); - player->unk_000 = 0x7000; + player->type = 0x7000; func_80056A94(playerIndex); } } @@ -1540,7 +1540,7 @@ void func_8008FC64(Player* player, s8 arg1) { player->unk_0C6 = 0; player->statusEffects &= 0xFBFFFFFF; player->statusEffects |= 0x08000000; - player->unk_000 |= 0x40; + player->type |= 0x40; func_8008FDA8(player, arg1); func_800569F4(arg1); @@ -1583,25 +1583,25 @@ void func_8008FDA8(Player* player, UNUSED s8 arg1) { void func_8008FDF4(Player* player, UNUSED s8 arg1) { func_8008C354(player, arg1); - player->unk_0BC &= ~0x10; + player->effects &= ~0x10; player->kartHopJerk = D_800E37F0[player->characterId]; player->kartHopAcceleration = 0.0f; player->kartHopVelocity = D_800E37D0[player->characterId]; player->statusEffects &= ~0x00100000; - player->unk_0BC |= 0x10000000; + player->effects |= 0x10000000; } void func_8008FE84(Player* player, UNUSED s8 arg1) { - player->unk_0BC &= ~0x10; - if ((player->unk_0BC & 8) != 8) { - player->unk_0BC &= ~0x10000000; - player->unk_09C /= 2; + player->effects &= ~0x10; + if ((player->effects & 8) != 8) { + player->effects &= ~0x10000000; + player->currentSpeed /= 2; player->unk_08C /= 2; } } void func_8008FEDC(Player* player, UNUSED s8 arg1) { - player->unk_0BC &= ~0x10000000; + player->effects &= ~0x10000000; player->kartHopJerk = 0.0f; player->kartHopVelocity = 0.0f; player->kartHopAcceleration = 0.0f; @@ -1766,7 +1766,7 @@ void func_80090778(Player* player) { player->unk_07C = 0; player->unk_0C0 = 0; player->unk_0CA |= 8; - player->unk_0BC &= ~0x10; + player->effects &= ~0x10; player->unk_222 = 0; player->unk_08C = 0.0f; @@ -1776,9 +1776,9 @@ void func_80090778(Player* player) { player->unk_DB4.unk0 = 0; player->unk_0C2 = 0; player->unk_DB4.unk8 = 0.0f; - if ((player->unk_0BC & 0x40000000) == 0x40000000) { - if ((player->unk_0BC & 0x20000) == 0x20000) { - player->unk_0BC &= ~0x20000; + if ((player->effects & LIGHTNING_EFFECT) == LIGHTNING_EFFECT) { + if ((player->effects & 0x20000) == 0x20000) { + player->effects &= ~0x20000; player->unk_0A8 = 0; player->unk_07C = 0; player->unk_0C0 = 0; @@ -1786,7 +1786,7 @@ void func_80090778(Player* player) { } func_8008E3C0(player, playerIndex); } - player->unk_0BC &= ~0x20; + player->effects &= ~0x20; } void func_80090868(Player* player) { @@ -1861,12 +1861,12 @@ void func_80090970(Player *player, s8 arg1, s8 arg2) { player->unk_0C6 = 0x00FF; } } - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + if ((player->effects & 0x80000000) == 0x80000000) { func_8008FB30(player, arg1); } break; case 1: - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x1000) == 0)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_CPU) == 0)) { func_8009E088(arg1, 0xA); } if ((player->unk_0CA & 1) == 1) { @@ -1898,7 +1898,7 @@ void func_80090970(Player *player, s8 arg1, s8 arg2) { break; case 3: D_80165330[arg1] = 0; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x1000) == 0)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_CPU) == 0)) { func_8009E020(arg1, 0x14); } func_80090178(player, arg1, sp44, sp38); @@ -1928,10 +1928,10 @@ void func_80090970(Player *player, s8 arg1, s8 arg2) { } move_f32_towards(&player->pos[1], (player->unk_074 + player->boundingBoxSize) - 2.0f, 0.04f); player->unk_0C8++; - if (((player->unk_0BC & 8) != 8) || (player->unk_0BC & 0x8000)) { + if (((player->effects & 8) != 8) || (player->effects & 0x8000)) { player->unk_0CA &= ~0x1000; if (player->unk_0C8 >= 0x5B) { - if (player->unk_000 & 0x4000) { + if (player->type & 0x4000) { func_800C9018(arg1, 0x0100FA28); } if (gModeSelection == BATTLE) { @@ -1941,7 +1941,7 @@ void func_80090970(Player *player, s8 arg1, s8 arg2) { player->unk_0DE &= ~0x0004; if ((player->unk_0CA & 0x80) != 0x80) { player->unk_0CA &= ~0x0008; - if ((player->unk_214 * 0.9) <= player->unk_09C) { + if ((player->topSpeed * 0.9) <= player->currentSpeed) { func_8008F104(player, arg1); } } @@ -1969,29 +1969,29 @@ void func_80090970(Player *player, s8 arg1, s8 arg2) { } } -s32 func_800910E4(Player *arg0) { +s32 func_800910E4(Player *player) { s32 phi_v0 = 0; - if ((((((arg0->unk_0CA & 2) == 2) || ((arg0->unk_0CA & 8) == 8)) || ((arg0->unk_000 & 0x40) != 0)) || ((arg0->unk_000 & 0x800) != 0)) || ((arg0->unk_000 & 0x8000) == 0)) { + if ((((((player->unk_0CA & 2) == 2) || ((player->unk_0CA & 8) == 8)) || ((player->type & 0x40) != 0)) || ((player->type & PLAYER_CINEMATIC_MODE) != 0)) || ((player->type & PLAYER_EXISTS) == 0)) { return 1; } - switch (arg0->unk_010) { - case 12: - case 13: - case 14: - case 15: - if ((arg0->unk_0BC & 8) != 0) { + switch (player->currentItemCopy) { + case ITEM_MUSHROOM: + case ITEM_DOUBLE_MUSHROOM: + case ITEM_TRIPLE_MUSHROOM: + case ITEM_SUPER_MUSHROOM: + if ((player->effects & 8) != 0) { return 1; } phi_v0 = 0x5F934EC4; goto func_800910E4_label; - case 10: + case ITEM_STAR: phi_v0 = 0xDF934EC4; - case 11: + case ITEM_BOO: phi_v0 = phi_v0 | 0xDF934EC4; func_800910E4_label: default: - if ((arg0->unk_0BC & phi_v0) != 0) { + if ((player->effects & phi_v0) != 0) { return 1; } return 0; @@ -2068,10 +2068,10 @@ void func_80091298(Player *player, s8 arg1) { player->unk_044 &= ~0x800; player->kartGravity = gKartGravityTable[player->characterId]; player->unk_0D4[0] = 0; - player->unk_000 |= 0x2000; + player->type |= PLAYER_START_SEQUENCE; player->unk_094 = 0.0f; player->unk_08C = 0.0f; - player->unk_09C = 0.0f; + player->currentSpeed = 0.0f; if (arg1 == 0) { D_801658BC = 1; } diff --git a/src/code_8008C1D0.h b/src/code_8008C1D0.h index f2f71bef3..a09aae040 100644 --- a/src/code_8008C1D0.h +++ b/src/code_8008C1D0.h @@ -139,7 +139,7 @@ extern s16 D_80165190[4][8]; extern f32 D_80165280[]; extern s32 D_80165420[]; extern s32 D_80165440[]; -extern s32 D_80165460[]; +extern s32 gIsPlayerTripleAButtonCombo[]; extern s32 D_80165480[]; extern s8 D_801658BC; extern s32 D_8018D900[]; diff --git a/src/code_80091440.c b/src/code_80091440.c index 150aa5185..df46a343f 100644 --- a/src/code_80091440.c +++ b/src/code_80091440.c @@ -10,7 +10,7 @@ void func_80091440(s8 arg0) { if ((gPlayers[arg0].unk_044 & 0x800) == 0) { gPlayers[arg0].unk_044 |= 0x2400; - gPlayers[arg0].unk_000 &= ~0x2000; + gPlayers[arg0].type &= ~0x2000; } } diff --git a/src/code_80091750.c b/src/code_80091750.c index 6dd297577..296b05b42 100644 --- a/src/code_80091750.c +++ b/src/code_80091750.c @@ -2401,7 +2401,7 @@ void func_80093A5C(u32 arg0) { gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2); } -void func_80093B70(u32 arg0) { +UNUSED void func_80093B70(u32 arg0) { if ((arg0 == 0) || (arg0 == 2) || (arg0 == 3) || (arg0 == 8)) { func_8009C918(); } @@ -2600,8 +2600,8 @@ void func_800947B4(struct GfxPool *arg0, UNUSED s32 arg1) { guRotate(&arg0->mtxObject[2], D_8018EDD0, 0, 0, 1.0f); guScale(&arg0->mtxObject[3], D_8018EDC4, D_8018EDC4, D_8018EDC4); guTranslate(&arg0->mtxObject[4], D_8018EDD4, D_8018EDD8, D_8018EDDC); - gSPMatrix(gDisplayListHead++, &arg0->mtxPersp[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); - gSPMatrix(gDisplayListHead++, &arg0->mtxLookAt[1], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(gDisplayListHead++, &arg0->mtxPersp[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); + gSPMatrix(gDisplayListHead++, &arg0->mtxLookAt[1], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(gDisplayListHead++, &arg0->mtxObject[0], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gSPMatrix(gDisplayListHead++, &arg0->mtxObject[1], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gSPMatrix(gDisplayListHead++, &arg0->mtxObject[2], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); @@ -2643,7 +2643,7 @@ void func_80094A64(struct GfxPool *pool) { break; } func_8009CA2C(); - D_8018E7A8 += 1; + gCycleFlashMenu += 1; gDPPipeSync(gDisplayListHead++); gSPDisplayList(gDisplayListHead++, D_020076B0); } @@ -2878,32 +2878,34 @@ void func_80095574(void) { // While this matches, its a little screwy // This function seemingly needs to return a Gfx*, but doing that explicity doesn't match -// Instead we depend on the fact that the result of func_80098C18 is left +// Instead we depend on the fact that the result of draw_box_fill is left // in v0 which means it is returned, sort of. // Its also weird that the displayListHead argument goes entirely unused. What's up with that? -Gfx *func_800958D4(UNUSED Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 arg5) { - s32 phi_v0; +Gfx *draw_flash_select_case(UNUSED Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 speed) { + s32 greyscale; - phi_v0 = ((D_8018E7A8 % arg5) << 9) / arg5; - if (phi_v0 > 0x100) { - phi_v0 = 0x200 - phi_v0; + greyscale = ((gCycleFlashMenu % speed) << 9) / speed; + if (greyscale > 0x100) { + greyscale = 0x200 - greyscale; } - if (phi_v0 > 0xFF) { - phi_v0 = 0xFF; + + if (greyscale > 0xFF) { // set max greyscale to 0xFF + greyscale = 0xFF; } + #if AVOID_UB - return gDisplayListHead = func_80098C18(gDisplayListHead, ulx, uly, lrx, lry, phi_v0, phi_v0, phi_v0, 0xFF); + return gDisplayListHead = draw_box_fill(gDisplayListHead, ulx, uly, lrx, lry, greyscale, greyscale, greyscale, 0xFF); #else - gDisplayListHead = func_80098C18(gDisplayListHead, ulx, uly, lrx, lry, phi_v0, phi_v0, phi_v0, 0xFF); + gDisplayListHead = draw_box_fill(gDisplayListHead, ulx, uly, lrx, lry, greyscale, greyscale, greyscale, 0xFF); #endif } -Gfx *func_800959A0(Gfx *displayListHead, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { - return func_800958D4(displayListHead, arg1, arg2, arg3, arg4, 64); +Gfx *draw_flash_select_case_slow(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry) { + return draw_flash_select_case(displayListHead, ulx, uly, lrx, lry, 64); } -Gfx *func_800959CC(Gfx *displayListHead, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { - return func_800958D4(displayListHead, arg1, arg2, arg3, arg4, 4); +Gfx *draw_flash_select_case_fast(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry) { + return draw_flash_select_case(displayListHead, ulx, uly, lrx, lry, 4); } Gfx *func_800959F8(Gfx *displayListHead, Vtx *arg1) { @@ -4594,7 +4596,8 @@ Gfx *func_800987D0(Gfx *displayListHead, u32 arg1, u32 arg2, u32 arg3, u32 arg4, GLOBAL_ASM("asm/non_matchings/code_80091750/func_800987D0.s") #endif -Gfx *func_80098C18(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 red, s32 green, s32 blue, s32 alpha) { +// draw a box filled with a solid color +Gfx *draw_box_fill(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 red, s32 green, s32 blue, s32 alpha) { red &= 0xFF; green &= 0xFF; blue &= 0xFF; @@ -4630,6 +4633,7 @@ Gfx *func_80098C18(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 return displayListHead; } +// draw a box with a solid outline Gfx *draw_box(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 red, s32 green, s32 blue, s32 alpha) { red &= 0xFF; green &= 0xFF; @@ -4667,7 +4671,7 @@ Gfx *draw_box(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry, s32 red, } Gfx *func_80098FC8(Gfx *displayListHead, s32 ulx, s32 uly, s32 lrx, s32 lry) { - return func_80098C18(displayListHead, ulx, uly, lrx, lry, 0, 0, 0, 0xFF); + return draw_box_fill(displayListHead, ulx, uly, lrx, lry, 0, 0, 0, 0xFF); } void dma_copy_base_729a30(u64 *arg0, size_t nbytes, void *vaddr) { @@ -5694,7 +5698,7 @@ void func_8009B998(void) { Gfx *func_8009B9D0(Gfx *displayListHead, MkTexture *textures) { Gfx *displayList; UNUSED s32 pad; - s32 found; + bool found; s32 index; found = FALSE; @@ -6586,7 +6590,7 @@ block_74: gCurrentCourseId = 0; gScreenModeSelection = 0; gPlayerCountSelection1 = (s32) 1; - D_8018EDF3 = 1; + gPlayerCount = 1; gCharacterSelections->unk0 = 0; gModeSelection = 0; break; @@ -6594,7 +6598,7 @@ block_74: gCurrentCourseId = (s16) 1; gScreenModeSelection = (s32) 1; gPlayerCountSelection1 = 2; - D_8018EDF3 = (s8) 2; + gPlayerCount = (s8) 2; gCharacterSelections->unk0 = (s8) 2; gCharacterSelections->unk1 = (s8) 4; gModeSelection = 2; @@ -6603,7 +6607,7 @@ block_74: gCurrentCourseId = 0x000B; gScreenModeSelection = 0; gPlayerCountSelection1 = (s32) 1; - D_8018EDF3 = 1; + gPlayerCount = 1; gCharacterSelections->unk0 = 1; gModeSelection = 0; break; @@ -6611,7 +6615,7 @@ block_74: gCurrentCourseId = 0x000E; gScreenModeSelection = 3; gPlayerCountSelection1 = 3; - D_8018EDF3 = (s8) 3; + gPlayerCount = (s8) 3; gCharacterSelections->unk0 = 5; gCharacterSelections->unk1 = 2; gCharacterSelections->unk2 = 7; @@ -6621,7 +6625,7 @@ block_74: gCurrentCourseId = 2; gScreenModeSelection = 0; gPlayerCountSelection1 = (s32) 1; - D_8018EDF3 = 1; + gPlayerCount = 1; gCharacterSelections->unk0 = 7; gModeSelection = 0; break; @@ -6629,7 +6633,7 @@ block_74: gCurrentCourseId = 0x000C; gScreenModeSelection = 3; gPlayerCountSelection1 = 4; - D_8018EDF3 = (s8) 4; + gPlayerCount = (s8) 4; gCharacterSelections->unk0 = 0; gCharacterSelections->unk1 = 1; gCharacterSelections->unk2 = 6; @@ -6710,9 +6714,9 @@ block_74: } else { gModeSelection = 3; if (gPlayerCountSelection1 == 1) { - D_8018EDF3 = (s8) 2; + gPlayerCount = (s8) 2; gScreenModeSelection = 1; - gPlayerCountSelection1 = (s32) D_8018EDF3; + gPlayerCountSelection1 = (s32) gPlayerCount; } } gCupSelection = (s8) gCupSelectionByCourseId[gCurrentCourseId]; @@ -7771,7 +7775,7 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/add_8018D9E0_entry.s") #ifdef MIPS_TO_C //generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-03-2023 -Gfx *func_800959CC(Gfx *, s32, s32, s32, s32); /* extern */ +Gfx *draw_flash_select_case_fast(Gfx *, s32, s32, s32, s32); /* extern */ Gfx *func_80096CD8(Gfx *, ?, ?, ?, s32); /* extern */ ? func_800A0B80(struct_8018D9E0_entry *); /* extern */ ? func_800A1780(struct_8018D9E0_entry *); /* extern */ @@ -7972,11 +7976,11 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { if ((var_t0 - 0xF) == gMainMenuSelectionDepth) { temp_v0_5 = arg0->column; temp_v1_5 = arg0->row; - gDisplayListHead = func_800959CC(gDisplayListHead, temp_v0_5 + temp_t9, temp_v1_5, (temp_v0_5 - temp_t9) + 0x39, temp_v1_5 + 0x12); + gDisplayListHead = draw_flash_select_case_fast(gDisplayListHead, temp_v0_5 + temp_t9, temp_v1_5, (temp_v0_5 - temp_t9) + 0x39, temp_v1_5 + 0x12); } else { temp_v0_6 = arg0->column; temp_a2 = arg0->row; - gDisplayListHead = func_80098C18(gDisplayListHead, temp_v0_6 + temp_t9, temp_a2, (temp_v0_6 - temp_t9) + 0x39, temp_a2 + 0x12, 1, 1, 1, 0x000000FF); + gDisplayListHead = draw_box_fill(gDisplayListHead, temp_v0_6 + temp_t9, temp_a2, (temp_v0_6 - temp_t9) + 0x39, temp_a2 + 0x12, 1, 1, 1, 0x000000FF); } var_t0 = arg0->type; } @@ -7992,9 +7996,9 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { case 0x17: /* switch 6 */ case 0x18: /* switch 6 */ case 0x19: /* switch 6 */ - temp_v1_6 = (D_800E86AC - 1)[D_8018EDF3]; - var_a2 = (*(D_800E86B0 - 3))[(D_8018EDF3 * 3) + temp_v1_6]; - var_a1 = *(gGameModeFromNumPlayersAndRowSelection + ((D_8018EDF3 * 0xC) + (temp_v1_6 * 4))); + temp_v1_6 = (D_800E86AC - 1)[gPlayerCount]; + var_a2 = (*(D_800E86B0 - 3))[(gPlayerCount * 3) + temp_v1_6]; + var_a1 = *(gGameModeFromNumPlayersAndRowSelection + ((gPlayerCount * 0xC) + (temp_v1_6 * 4))); switch (var_t0) { /* switch 5 */ case 18: /* switch 5 */ case 19: /* switch 5 */ @@ -8037,16 +8041,16 @@ block_58: if (gMainMenuSelectionDepth >= 6) { temp_a1 = arg0->column; temp_a2_2 = arg0->row; - var_v0_2 = func_80098C18(gDisplayListHead, temp_a1, temp_a2_2, temp_a1 + 0x3F, temp_a2_2 + 0x11, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); + var_v0_2 = draw_box_fill(gDisplayListHead, temp_a1, temp_a2_2, temp_a1 + 0x3F, temp_a2_2 + 0x11, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); } else { temp_v1_7 = arg0->row; temp_v0_7 = arg0->column; - var_v0_2 = func_800959A0(gDisplayListHead, temp_v0_7, temp_v1_7, temp_v0_7 + 0x3F, temp_v1_7 + 0x11); + var_v0_2 = draw_flash_select_case_slow(gDisplayListHead, temp_v0_7, temp_v1_7, temp_v0_7 + 0x3F, temp_v1_7 + 0x11); } } else { temp_a1_2 = arg0->column; temp_a2_3 = arg0->row; - var_v0_2 = func_80098C18(gDisplayListHead, temp_a1_2, temp_a2_3, temp_a1_2 + 0x3F, temp_a2_3 + 0x11, 1, 1, 1, 0x000000FF); + var_v0_2 = draw_box_fill(gDisplayListHead, temp_a1_2, temp_a2_3, temp_a1_2 + 0x3F, temp_a2_3 + 0x11, 1, 1, 1, 0x000000FF); } gDisplayListHead = var_v0_2; gDisplayListHead = func_8009BA74(gDisplayListHead, sp9C, arg0->column, arg0->row); @@ -8150,7 +8154,7 @@ block_58: case 0x68: /* switch 6 */ temp_a1_3 = arg0->column; temp_a2_4 = arg0->row; - gDisplayListHead = func_80098C18(gDisplayListHead, temp_a1_3, temp_a2_4, temp_a1_3 + 0x3F, temp_a2_4 + 0x11, 1, 1, 1, 0x000000FF); + gDisplayListHead = draw_box_fill(gDisplayListHead, temp_a1_3, temp_a2_4, temp_a1_3 + 0x3F, temp_a2_4 + 0x11, 1, 1, 1, 0x000000FF); gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual_dupe(D_800E8294[gCCSelection]), arg0->column, arg0->row); return; case 0x69: /* switch 6 */ @@ -8170,16 +8174,16 @@ block_58: if (gMainMenuSelectionDepth >= 6) { temp_a1_4 = arg0->column; temp_a2_5 = arg0->row; - var_v0_3 = func_80098C18(gDisplayListHead, temp_a1_4, temp_a2_5, temp_a1_4 + 0x3F, temp_a2_5 + 0x11, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); + var_v0_3 = draw_box_fill(gDisplayListHead, temp_a1_4, temp_a2_5, temp_a1_4 + 0x3F, temp_a2_5 + 0x11, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); } else { temp_v1_8 = arg0->row; temp_v0_8 = arg0->column; - var_v0_3 = func_800959A0(gDisplayListHead, temp_v0_8, temp_v1_8, temp_v0_8 + 0x3F, temp_v1_8 + 0x11); + var_v0_3 = draw_flash_select_case_slow(gDisplayListHead, temp_v0_8, temp_v1_8, temp_v0_8 + 0x3F, temp_v1_8 + 0x11); } } else { temp_a1_5 = arg0->column; temp_a2_6 = arg0->row; - var_v0_3 = func_80098C18(gDisplayListHead, temp_a1_5, temp_a2_6, temp_a1_5 + 0x3F, temp_a2_6 + 0x11, 1, 1, 1, 0x000000FF); + var_v0_3 = draw_box_fill(gDisplayListHead, temp_a1_5, temp_a2_6, temp_a1_5 + 0x3F, temp_a2_6 + 0x11, 1, 1, 1, 0x000000FF); } gDisplayListHead = var_v0_3; gDisplayListHead = func_8009BA74(gDisplayListHead, D_02004A34, arg0->column, arg0->row); @@ -8586,7 +8590,7 @@ void func_800A10CC(struct_8018D9E0_entry *arg0) { case 3: case 4: case 5: - gDisplayListHead = func_80098C18(gDisplayListHead, 0x0000001E, 0x00000032, 0x00000122, 0x0000006E, 0, 0, 0, 0x000000FF); + gDisplayListHead = draw_box_fill(gDisplayListHead, 0x0000001E, 0x00000032, 0x00000122, 0x0000006E, 0, 0, 0, 0x000000FF); index = arg0->unk4 - 2; set_text_color(3); for (var_s1 = 0; var_s1 < 4; var_s1++) { @@ -8694,7 +8698,7 @@ void func_800A15EC(struct_8018D9E0_entry *arg0) { gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual_dupe(D_800E7DC4[courseId]), arg0->column, arg0->row + 0x27, 3); if (func_800B639C(arg0->type - 0x7C) >= 0) { // The "^ 0" is required to force the use of v1 instead of a 4th s* register - gDisplayListHead = func_800959A0(gDisplayListHead, arg0->column + 0x20, arg0->row ^ 0, arg0->column + 0x3F, arg0->row + 9); + gDisplayListHead = draw_flash_select_case_slow(gDisplayListHead, arg0->column + 0x20, arg0->row ^ 0, arg0->column + 0x3F, arg0->row + 9); gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual_dupe(&D_02004A0C), arg0->column + 0x20, arg0->row, 2); } } @@ -8727,7 +8731,7 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A1780.s") void func_800A1924(struct_8018D9E0_entry *arg0) { func_8009A76C(arg0->D_8018DEE0_index, 0x17, 0x84, -1); if (func_800B639C(gTimeTrialDataCourseIndex) >= TIME_TRIAL_DATA_LUIGI_RACEWAY) { - gDisplayListHead = func_800959A0(gDisplayListHead, 0x57, 0x84, 0x96, 0x95); + gDisplayListHead = draw_flash_select_case_slow(gDisplayListHead, 0x57, 0x84, 0x96, 0x95); gDisplayListHead = func_8009BA74(gDisplayListHead, D_02004A0C, 0x57, 0x84); } func_8004EF9C(gCupCourseOrder[gTimeTrialDataCourseIndex / 4][gTimeTrialDataCourseIndex % 4]); @@ -9219,7 +9223,7 @@ void func_800A2EB8(struct_8018D9E0_entry *arg0) { convert_number_to_ascii(gCupCourseSelection + 1, sp68); func_80093324(arg0->column + 0x57, arg0->row + 0x28, &sp68[1], 0, 0.7f, 0.7f); for (var_s2 = 0; var_s2 < 4; var_s2++) { - if (gGPCurrentRacePlayerIdByRank[var_s2] < D_8018EDF3) { + if (gGPCurrentRacePlayerIdByRank[var_s2] < gPlayerCount) { var_a0 = (s32) gGlobalTimer % 3; } else { var_a0 = TEXT_YELLOW; @@ -9228,7 +9232,7 @@ void func_800A2EB8(struct_8018D9E0_entry *arg0) { func_800A32B4(arg0->column + 7, arg0->row + (0x10 * var_s2) + 0x38, (s32) sp70[var_s2], var_s2); } for (var_s2 = 4; var_s2 < 8; var_s2++) { - if (gGPCurrentRacePlayerIdByRank[var_s2] < D_8018EDF3) { + if (gGPCurrentRacePlayerIdByRank[var_s2] < gPlayerCount) { var_a0 = (s32) gGlobalTimer % 3; } else { var_a0 = TEXT_YELLOW; @@ -9239,7 +9243,7 @@ void func_800A2EB8(struct_8018D9E0_entry *arg0) { set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); temp_s0 = (s32) (((f32) (get_string_width(D_800E7500[gCupSelection]) + 8) * 0.6f) / 2); draw_text((-(s32) (((f32) (get_string_width(D_800E76CC[gCCSelection]) + 8) * 0.6f) / 2) - arg0->column) + 0xF5, arg0->row + 0xE1, D_800E7500[D_800DC540], 0, 0.6f, 0.6f); - draw_text((temp_s0 - arg0->column) + 0xF5, arg0->row + 0xE1, D_800E76CC[D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]]], 0, 0.6f, 0.6f); + draw_text((temp_s0 - arg0->column) + 0xF5, arg0->row + 0xE1, D_800E76CC[D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]], 0, 0.6f, 0.6f); } void func_800A32B4(s32 arg0, s32 arg1, s32 characterId, s32 rank) { @@ -9314,7 +9318,7 @@ void func_800A34A8(struct_8018D9E0_entry *arg0) { var_v1 = 0x0000000D; var_v0 = D_80164478[sp80[rank]]; } - if (var_v0 < D_8018EDF3) { + if (var_v0 < gPlayerCount) { var_a0 = (s32) gGlobalTimer % 3; } else { var_a0 = 3; @@ -9340,7 +9344,7 @@ void func_800A34A8(struct_8018D9E0_entry *arg0) { } else { var_v0 = D_80164478[sp80[rank]]; } - if (var_v0 < D_8018EDF3) { + if (var_v0 < gPlayerCount) { var_a0 = (s32) gGlobalTimer % 3; } else { var_a0 = 3; @@ -9352,7 +9356,7 @@ void func_800A34A8(struct_8018D9E0_entry *arg0) { set_text_color(5); temp_s0_3 = ((get_string_width(D_800E7500[gCupSelection]) + 8) * 0.6f) / 2; draw_text((-(s32) (((get_string_width(D_800E76CC[gCCSelection]) + 8) * 0.6f) / 2) - arg0->column) + 0xE6, arg0->row + 0xE1, D_800E7500[D_800DC540], 0, 0.6f, 0.6f); - draw_text((temp_s0_3 - arg0->column) + 0xE6, arg0->row + 0xE1, D_800E76CC[D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]]], 0, 0.6f, 0.6f); + draw_text((temp_s0_3 - arg0->column) + 0xE6, arg0->row + 0xE1, D_800E76CC[D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]], 0, 0.6f, 0.6f); } } @@ -9375,7 +9379,7 @@ void func_800A3A10(s8 *arg0) { arg0[var_a1] = temp_a3; arg0[var_a1 - 1] = temp_t1; } else if (gGPPointsByCharacterId[temp_t1] == gGPPointsByCharacterId[temp_a3]) { - if ((D_80164478[temp_t1] < D_8018EDF3) && (D_80164478[temp_t1] < D_80164478[temp_a3])) { + if ((D_80164478[temp_t1] < gPlayerCount) && (D_80164478[temp_t1] < D_80164478[temp_a3])) { arg0[var_a1] = temp_a3; arg0[var_a1 - 1] = temp_t1; } else { @@ -10115,7 +10119,7 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A5738.s") void func_800A6034(struct_8018D9E0_entry *arg0) { char *text; - if (D_801657E8 != 1) { + if (D_801657E8 != TRUE) { gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, arg0->unk1C); text = D_800E7500[D_800DC540]; set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); @@ -10190,7 +10194,7 @@ void func_800A638C(struct_8018D9E0_entry *arg0) { break; } gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, var_a1); - switch (D_8018EDF3) { + switch (gPlayerCount) { case 2: func_800A69C8(arg0); break; @@ -10297,7 +10301,7 @@ void func_800A69C8(struct_8018D9E0_entry *arg0) { s8 *temp_s3; u8 *var_s4; - for (var_s0 = 0; var_s0 < D_8018EDF3; var_s0++) { + for (var_s0 = 0; var_s0 < gPlayerCount; var_s0++) { var_v1 = 0; thing = &D_800E7300[0][var_s0]; switch (gModeSelection) { /* irregular */ @@ -10332,7 +10336,7 @@ void func_800A69C8(struct_8018D9E0_entry *arg0) { void func_800A6BEC(struct_8018D9E0_entry *arg0) { s32 var_s0; - for (var_s0 = 0; var_s0 < D_8018EDF3; var_s0++) { + for (var_s0 = 0; var_s0 < gPlayerCount; var_s0++) { switch (gModeSelection) { /* irregular */ case 2: func_800A6E94(3, var_s0, gNmiUnknown2); @@ -10347,7 +10351,7 @@ void func_800A6BEC(struct_8018D9E0_entry *arg0) { void func_800A6CC0(struct_8018D9E0_entry *arg0) { s32 var_s0; - for (var_s0 = 0; var_s0 < D_8018EDF3; var_s0++) { + for (var_s0 = 0; var_s0 < gPlayerCount; var_s0++) { switch (gModeSelection) { /* irregular */ case 2: func_800A6E94(4, var_s0, gNmiUnknown3); @@ -11047,24 +11051,24 @@ void func_800A8270(s32 arg0, struct_8018D9E0_entry *arg1) { gDPPipeSync(gDisplayListHead++); gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2); gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_DECALRGBA); - if ((arg0 + 1) == D_8018EDF3) { + if ((arg0 + 1) == gPlayerCount) { if ((gMainMenuSelectionDepth == 1) || (gMainMenuSelectionDepth == 2) || (gMainMenuSelectionDepth == 3)) { - gDisplayListHead = func_800959A0(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x35); + gDisplayListHead = draw_flash_select_case_slow(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x35); } else { - gDisplayListHead = func_80098C18(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x35, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); + gDisplayListHead = draw_box_fill(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x35, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); } } else { gDisplayListHead = func_80098FC8(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x35); } for (var_s0 += 0x41, var_s2 = 0; var_s2 <= D_800F2B60[0][arg0]; var_s2++, var_s0 += 0x12) { - if ((var_s2 == D_800E86AC[arg0]) && ((arg0 + 1) == D_8018EDF3) && (gMainMenuSelectionDepth >= 4)) { + if ((var_s2 == D_800E86AC[arg0]) && ((arg0 + 1) == gPlayerCount) && (gMainMenuSelectionDepth >= 4)) { if (gMainMenuSelectionDepth == 4) { - gDisplayListHead = func_800959A0(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x11); + gDisplayListHead = draw_flash_select_case_slow(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x11); } else { - gDisplayListHead = func_80098C18(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x11, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); + gDisplayListHead = draw_box_fill(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x11, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); } } else { - gDisplayListHead = func_80098C18(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x11, 1, 1, 1, 0x000000FF); + gDisplayListHead = draw_box_fill(gDisplayListHead, var_s3, var_s0, var_s4, var_s0 + 0x11, 1, 1, 1, 0x000000FF); } } } @@ -11110,9 +11114,9 @@ void func_800A8564(struct_8018D9E0_entry *arg0) { temp_t0 = arg0->column + var_a0->dX; temp_a2 = arg0->row + var_a0->dY; if (var_a1 != 0) { - gDisplayListHead = func_800959A0(gDisplayListHead, temp_t0 + sp34, temp_a2, (temp_t0 - sp34) + 0x1E, temp_a2 + 0x12); + gDisplayListHead = draw_flash_select_case_slow(gDisplayListHead, temp_t0 + sp34, temp_a2, (temp_t0 - sp34) + 0x1E, temp_a2 + 0x12); } else { - gDisplayListHead = func_80098C18(gDisplayListHead, temp_t0 + sp34, temp_a2, (temp_t0 - sp34) + 0x1E, temp_a2 + 0x12, 1, 1, 1, 0x000000FF); + gDisplayListHead = draw_box_fill(gDisplayListHead, temp_t0 + sp34, temp_a2, (temp_t0 - sp34) + 0x1E, temp_a2 + 0x12, 1, 1, 1, 0x000000FF); } } } @@ -11121,7 +11125,7 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A8564.s") #endif void func_800A86E8(struct_8018D9E0_entry *arg0) { - gDisplayListHead = func_80098C18(gDisplayListHead, arg0->column, arg0->row, arg0->column + 0x64, arg0->row + 0x27, 1, 1, 1, 0xFF); + gDisplayListHead = draw_box_fill(gDisplayListHead, arg0->column, arg0->row, arg0->column + 0x64, arg0->row + 0x27, 1, 1, 1, 0xFF); } #ifdef NON_MATCHING @@ -11178,12 +11182,12 @@ void func_800A890C(s32 arg0, struct_8018D9E0_entry *arg1) { gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_DECALRGBA); if (arg0 == gCupSelection) { if (D_8018EDEC == 1) { - gDisplayListHead = func_800959A0(gDisplayListHead, temp_t1 + temp_t7, temp_a2, (temp_t1 - temp_t7) + 64, temp_a2 + 39); + gDisplayListHead = draw_flash_select_case_slow(gDisplayListHead, temp_t1 + temp_t7, temp_a2, (temp_t1 - temp_t7) + 64, temp_a2 + 39); } else { - gDisplayListHead = func_80098C18(gDisplayListHead, temp_t1 + temp_t7, temp_a2, (temp_t1 - temp_t7) + 64, temp_a2 + 39, 255, 249, 220, 255); + gDisplayListHead = draw_box_fill(gDisplayListHead, temp_t1 + temp_t7, temp_a2, (temp_t1 - temp_t7) + 64, temp_a2 + 39, 255, 249, 220, 255); } } else { - gDisplayListHead = func_80098C18(gDisplayListHead, temp_t1 + temp_t7, temp_a2, (temp_t1 - temp_t7) + 64, temp_a2 + 39, 1, 1, 1, 255); + gDisplayListHead = draw_box_fill(gDisplayListHead, temp_t1 + temp_t7, temp_a2, (temp_t1 - temp_t7) + 64, temp_a2 + 39, 1, 1, 1, 255); } } } @@ -11201,12 +11205,12 @@ void func_800A8A98(struct_8018D9E0_entry *arg0) { for (someIndex = 0; someIndex < 4; someIndex++) { if ((someIndex == gCupCourseSelection) && (D_8018EDEC >= 2) && (gModeSelection != 0)) { if ((D_8018EDEC == 2) || (D_8018EDEC == 4)) { - gDisplayListHead = func_800959A0(gDisplayListHead, D_800E7208[someIndex][0].column + temp_s2, D_800E7208[someIndex][0].row + temp_s3, D_800E7208[someIndex][1].column + temp_s2, D_800E7208[someIndex][1].row + temp_s3); + gDisplayListHead = draw_flash_select_case_slow(gDisplayListHead, D_800E7208[someIndex][0].column + temp_s2, D_800E7208[someIndex][0].row + temp_s3, D_800E7208[someIndex][1].column + temp_s2, D_800E7208[someIndex][1].row + temp_s3); } else { - gDisplayListHead = func_80098C18(gDisplayListHead, D_800E7208[someIndex][0].column + temp_s2, D_800E7208[someIndex][0].row + temp_s3, D_800E7208[someIndex][1].column + temp_s2, D_800E7208[someIndex][1].row + temp_s3, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); + gDisplayListHead = draw_box_fill(gDisplayListHead, D_800E7208[someIndex][0].column + temp_s2, D_800E7208[someIndex][0].row + temp_s3, D_800E7208[someIndex][1].column + temp_s2, D_800E7208[someIndex][1].row + temp_s3, 0x000000FF, 0x000000F9, 0x000000DC, 0x000000FF); } } else { - gDisplayListHead = func_80098C18(gDisplayListHead, D_800E7208[someIndex][0].column + temp_s2, D_800E7208[someIndex][0].row + temp_s3, D_800E7208[someIndex][1].column + temp_s2, D_800E7208[someIndex][1].row + temp_s3, 1, 1, 1, 0x000000FF); + gDisplayListHead = draw_box_fill(gDisplayListHead, D_800E7208[someIndex][0].column + temp_s2, D_800E7208[someIndex][0].row + temp_s3, D_800E7208[someIndex][1].column + temp_s2, D_800E7208[someIndex][1].row + temp_s3, 1, 1, 1, 0x000000FF); } } } @@ -11294,7 +11298,7 @@ void func_800A90D4(UNUSED s32 arg0, struct_8018D9E0_entry *arg1) { gDPPipeSync(gDisplayListHead++); gDPSetRenderMode(gDisplayListHead++, G_RM_OPA_SURF, G_RM_OPA_SURF2); gDPSetCombineMode(gDisplayListHead++, G_CC_DECALRGBA, G_CC_DECALRGBA); - gDisplayListHead = func_80098C18(gDisplayListHead, temp_t1 + temp_t7, temp_a2, (temp_t1 - temp_t7) + 0x40, temp_a2 + 0x27, 1, 1, 1, 0xFF); + gDisplayListHead = draw_box_fill(gDisplayListHead, temp_t1 + temp_t7, temp_a2, (temp_t1 - temp_t7) + 0x40, temp_a2 + 0x27, 1, 1, 1, 0xFF); } } @@ -11715,14 +11719,14 @@ void func_800A9C40(struct_8018D9E0_entry *arg0) { switch (arg0->unk4) { case 0: func_800AA280(arg0); - if ((D_8018EDF3 + 0xA) == arg0->type) { + if ((gPlayerCount + 0xA) == arg0->type) { arg0->unk4 = 2; } else { arg0->unk4 = 1; } break; case 4: - if ((D_8018EDF3 + 0xA) == arg0->type) { + if ((gPlayerCount + 0xA) == arg0->type) { arg0->unk4 = 2; arg0->unk1C = 0; break; @@ -11742,7 +11746,7 @@ void func_800A9C40(struct_8018D9E0_entry *arg0) { } break; case 3: - if ((D_8018EDF3 + 0xA) == arg0->type) { + if ((gPlayerCount + 0xA) == arg0->type) { arg0->unk4 = 2; } break; @@ -11755,7 +11759,7 @@ void func_800A9C40(struct_8018D9E0_entry *arg0) { void func_800A9D5C(struct_8018D9E0_entry *arg0) { Unk_D_800E70A0 *temp_v0; - if ((D_8018EDF3 + 0xA) == arg0->type) { + if ((gPlayerCount + 0xA) == arg0->type) { arg0->priority = 0x0A; } else { arg0->priority = 6; @@ -11816,13 +11820,13 @@ void func_800A9E58(struct_8018D9E0_entry *arg0) { break; } - temp_a1 = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + temp_a1 = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; switch (arg0->unk4) { /* switch 5; irregular */ case 0: /* switch 5 */ if ((temp_a1 != sp20) && (temp_a1 != sp1C)) { arg0->visible = 0; } else { - arg0->unk20 = D_800E86AC[D_8018EDF3 - 1]; + arg0->unk20 = D_800E86AC[gPlayerCount - 1]; switch (gMainMenuSelectionDepth) { /* switch 2 */ case GAME_MODE_SELECTION: /* switch 2 */ case GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION: /* switch 2 */ @@ -11830,7 +11834,7 @@ void func_800A9E58(struct_8018D9E0_entry *arg0) { arg0->visible = 1; temp_v0 = func_800AAE68(); arg0->column = temp_v0->column; - arg0->row = (D_800E86AC[D_8018EDF3 - 1] * 0x12) + temp_v0->row + 0x41; + arg0->row = (D_800E86AC[gPlayerCount - 1] * 0x12) + temp_v0->row + 0x41; arg0->unk1C = 0; arg0->unk4 = 1; break; @@ -11839,7 +11843,7 @@ void func_800A9E58(struct_8018D9E0_entry *arg0) { temp_v0 = func_800AAE68(); temp_v1_2 = &D_800E70E8[arg0->type - sp24]; arg0->column = temp_v0->column + temp_v1_2->column; - arg0->row = (D_800E86AC[D_8018EDF3 - 1] * 0x12) + temp_v0->row + temp_v1_2->row; + arg0->row = (D_800E86AC[gPlayerCount - 1] * 0x12) + temp_v0->row + temp_v1_2->row; arg0->unk1C = arg0->row - temp_v0->row; arg0->visible = 1; arg0->unk4 = 2; @@ -11861,7 +11865,7 @@ void func_800A9E58(struct_8018D9E0_entry *arg0) { arg0->visible = 0; arg0->unk4 = 0; } else { - if (arg0->unk20 != D_800E86AC[D_8018EDF3 - 1]) { + if (arg0->unk20 != D_800E86AC[gPlayerCount - 1]) { arg0->unk4 = 0; } temp_v0 = func_800AAE68(); @@ -11892,14 +11896,14 @@ void func_800A9E58(struct_8018D9E0_entry *arg0) { arg0->visible = 0; arg0->unk4 = 0; } else { - if (arg0->unk20 != D_800E86AC[D_8018EDF3 - 1]) { + if (arg0->unk20 != D_800E86AC[gPlayerCount - 1]) { arg0->unk4 = 0; } temp_v0 = func_800AAE68(); temp_v1_2 = &D_800E70E8[arg0->type - sp24]; arg0->column = temp_v0->column + temp_v1_2->column; arg0->row = temp_v0->row + arg0->unk1C; - func_800A91D8(arg0, arg0->column, (D_800E86AC[D_8018EDF3 - 1] * 0x12) + temp_v0->row + temp_v1_2->row); + func_800A91D8(arg0, arg0->column, (D_800E86AC[gPlayerCount - 1] * 0x12) + temp_v0->row + temp_v1_2->row); arg0->unk1C = arg0->row - temp_v0->row; } break; @@ -11941,8 +11945,8 @@ void func_800AA2EC(struct_8018D9E0_entry *arg0) { case CONFIRM_OK_SELECTION_FROM_BACK_OUT: case TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT: if (arg0->unk4 != 0) break; - if (D_8018EDF3 != 1) break; - if (D_800E86AC[D_8018EDF3 - 1] != 1) break; + if (gPlayerCount != 1) break; + if (D_800E86AC[gPlayerCount - 1] != 1) break; if (gControllerPak1State != 0) { var_t1 = 0; @@ -12263,7 +12267,7 @@ void func_800AAE18(struct_8018D9E0_entry *arg0) { **/ struct_8018D9E0_entry *func_800AAE68(void) { struct_8018D9E0_entry *entry = D_8018D9E0; - s32 thing = D_8018EDF3 - 1; + s32 thing = gPlayerCount - 1; for(; !(entry > &D_8018D9E0[D_8018D9E0_SIZE]); entry++) { if ((thing + 0xB) == entry->type) { @@ -13005,7 +13009,7 @@ void func_800AC458(struct_8018D9E0_entry *arg0) { arg0->unk1C = 0; if (gCupCourseSelection == 3) { for (var_a1 = 0; var_a1 < 8; var_a1++) { - if (D_80164478[gCharacterIdByGPOverallRank[var_a1]] < D_8018EDF3) { + if (D_80164478[gCharacterIdByGPOverallRank[var_a1]] < gPlayerCount) { func_800B536C(var_a1); break; } @@ -13137,7 +13141,7 @@ void func_800ACC50(struct_8018D9E0_entry *arg0) { if (arg0->unk1C >= 0x65) { arg0->unk4 = 1; arg0->unk1C = 0; - for (var_s0 = 0; var_s0 < D_8018EDF3; var_s0++) { + for (var_s0 = 0; var_s0 < gPlayerCount; var_s0++) { add_8018D9E0_entry(var_s0 + 0xB1, 0, 0, (s8) (5 - var_s0)); } } @@ -13224,7 +13228,7 @@ void func_800ACF40(struct_8018D9E0_entry *arg0) { arg0->unk4 = 1; break; case 1: - temp_v0_2 = &D_800E7300[D_8018EDF3 - 2][temp_a2]; + temp_v0_2 = &D_800E7300[gPlayerCount - 2][temp_a2]; func_800A9208(arg0, temp_v0_2->column); func_800A9278(arg0, temp_v0_2->row); if (temp_v0_2->column == arg0->column) { @@ -13703,7 +13707,7 @@ void func_800ADF48(struct_8018D9E0_entry *arg0) { arg0->unk8 = 1; } } - if (controller->buttonPressed & 0x4000) { + if (controller->buttonPressed & B_BUTTON) { if (arg0->unk4 != D_800F0B50[gModeSelection]) { arg0->unk4 = D_800F0B50[gModeSelection]; play_sound2(0x49008002); diff --git a/src/code_80091750.h b/src/code_80091750.h index 0fc935208..a66322a01 100644 --- a/src/code_80091750.h +++ b/src/code_80091750.h @@ -117,10 +117,10 @@ void func_800947B4(struct GfxPool*, s32); void func_80094A64(struct GfxPool*); void func_80094C60(void); void func_80095574(void); -Gfx *func_800958D4(Gfx*, s32, s32, s32, s32, s32); -Gfx *func_800959A0(Gfx*, s32, s32, s32, s32); +Gfx *draw_flash_select_case(Gfx*, s32, s32, s32, s32, s32); +Gfx *draw_flash_select_case_slow(Gfx*, s32, s32, s32, s32); Gfx *func_800959F8(Gfx*, Vtx*); -Gfx *func_80098C18(Gfx*, s32, s32, s32, s32, s32, s32, s32, s32); +Gfx *draw_box_fill(Gfx*, s32, s32, s32, s32, s32, s32, s32, s32); Gfx *draw_box(Gfx*, s32, s32, s32, s32, s32, s32, s32, s32); Gfx *func_80098FC8(Gfx*, s32, s32, s32, s32); void dma_copy_base_729a30(u64*, size_t, void*); @@ -378,7 +378,7 @@ extern s32 D_8018CA78; extern u8 _textures_0aSegmentRomStart[]; extern u8 _textures_0bSegmentRomStart[]; -extern s32 D_8018E7A8; // maybe? +extern s32 gCycleFlashMenu; // maybe? extern s8 D_8018E7B0; // maybe? // This is tracking which credit "state" we're in, decides which credits are shown (and probably other stuff) diff --git a/src/code_800B45E0.c b/src/code_800B45E0.c index 55af0d64b..d238f18db 100644 --- a/src/code_800B45E0.c +++ b/src/code_800B45E0.c @@ -37,7 +37,7 @@ void func_800B45E0(s32 arg0) { .cupRecords[arg0 / 4] \ .courseRecords[arg0 % 4]; - courseTimeTrialRecordsPtr->unknownBytes[5] = func_800B4874(arg0); + courseTimeTrialRecordsPtr->checksum = checksum_time_trial_records(arg0); osEepromLongWrite(&gSIEventMesgQueue, EEPROM_ADDR(courseTimeTrialRecordsPtr), (u8 *)courseTimeTrialRecordsPtr, sizeof(CourseTimeTrialRecords)); } @@ -82,7 +82,7 @@ void func_800B4728(s32 arg0) { } courseTimeTrialRecords->unknownBytes[0] = 0; - courseTimeTrialRecords->unknownBytes[5] = func_800B4874(arg0); + courseTimeTrialRecords->checksum = checksum_time_trial_records(arg0); func_800B45E0(arg0); } @@ -98,8 +98,8 @@ void reset_save_data_grand_prix_points_and_sound_mode(void) { write_save_data_grand_prix_points_and_sound_mode(); } -// checksum_timetrial_records -u8 func_800B4874(s32 courseIdx) { +// create a magic number based on the time trial records +u8 checksum_time_trial_records(s32 courseIdx) { s32 j; s32 i; s32 ret; @@ -169,7 +169,7 @@ void func_800B4A9C(s32 course) { func_800B4FB0(course); if(sp24) {} - if (sp24->unknownBytes[5] != func_800B4874(course)) { + if (sp24->checksum != checksum_time_trial_records(course)) { func_800B4728(course); if (func_800B58C4(course) == 0) { s32 a3 = 0; @@ -502,7 +502,7 @@ void func_800B559C(s32 course) { var_a0 = D_800F2E60; temp_a2 = &gSaveData.allCourseTimeTrialRecords.cupRecords[var_s1 / 4].courseRecords[var_s1 % 4]; var_v0 = 0; - if (temp_a2->unknownBytes[5] != func_800B4874(var_s1)) { + if (temp_a2->checksum != checksum_time_trial_records(var_s1)) { do { temp_v1 = temp_s2 + ((var_s1 % 8) * 3) + var_v0; var_v0 += 1; diff --git a/src/code_800B45E0.h b/src/code_800B45E0.h index c920fc789..a16e872ef 100644 --- a/src/code_800B45E0.h +++ b/src/code_800B45E0.h @@ -33,7 +33,7 @@ void write_save_data_grand_prix_points_and_sound_mode(void); void func_800B46D0(void); void func_800B4728(s32); void reset_save_data_grand_prix_points_and_sound_mode(void); -u8 func_800B4874(s32); +u8 checksum_time_trial_records(s32); s32 func_800B6348(s32); s32 func_800B639C(s32); s32 func_800B63F0(s32); diff --git a/src/common_textures.h b/src/common_textures.h index d8af4885a..e21a5fcb5 100644 --- a/src/common_textures.h +++ b/src/common_textures.h @@ -89,7 +89,7 @@ extern Gfx D_toads_turnpike_0D005418[]; extern Vtx D_0D005430[]; extern Vtx D_0D005470[]; extern Vtx D_0D0054B0[]; -extern Vtx D_0D005770[]; +extern Vtx common_vtx_rectangle[]; extern Vtx D_0D0057B0[]; extern Vtx D_0D0057F0[]; extern Vtx D_0D0058E0[]; @@ -127,7 +127,7 @@ extern Vtx D_0D006730[]; extern Vtx D_0D0068C0[]; extern Vtx D_0D0068F0[]; extern Gfx D_0D006930[]; -extern Gfx D_0D006940[]; +extern Gfx common_rectangle_display[]; extern Gfx D_0D006950[]; extern Gfx D_0D006968[]; extern Gfx D_0D006980[]; @@ -217,9 +217,9 @@ extern Vtx D_0D008B78[]; extern Vtx D_0D008BB8[]; extern Vtx D_0D008BF8[]; extern Vtx D_0D008C38[]; -extern Gfx D_0D008C78[]; +extern Gfx common_square_plain_render[]; extern Gfx D_0D008C90[]; -extern Gfx D_0D008CD8[]; +extern Gfx common_setting_render_character[]; extern Gfx D_0D008D10[]; extern Gfx D_0D008D58[]; extern Gfx D_0D008DA0[]; diff --git a/src/common_textures.inc.c b/src/common_textures.inc.c index 321d17a6a..81e82245a 100644 --- a/src/common_textures.inc.c +++ b/src/common_textures.inc.c @@ -797,7 +797,7 @@ Vtx D_0D0054B0[] = { {{{ -6, 95, 0}, 0, {0, 12224}, {0xff, 0x80, 0x00, 0xff}}}, }; -Vtx D_0D005770[] = { +Vtx common_vtx_rectangle[] = { {{{ -8, -8, 0}, 0, {0, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 7, -8, 0}, 0, {960, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 7, 7, 0}, 0, {960, 960}, {0xff, 0xff, 0xff, 0xff}}}, @@ -1194,74 +1194,74 @@ Gfx D_0D006930[] = { gsSPEndDisplayList(), }; -Gfx D_0D006940[] = { +Gfx common_rectangle_display[] = { gsSP2Triangles(0, 2, 1, 0, 0, 3, 2, 0), gsSPEndDisplayList(), }; Gfx D_0D006950[] = { gsSPVertex(D_0D005470, 4, 0), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_0D006968[] = { gsSPVertex(D_0D0054B0, 4, 0), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_0D006980[] = { - gsSPVertex(D_0D005770, 4, 0), - gsSPDisplayList(D_0D006940), + gsSPVertex(common_vtx_rectangle, 4, 0), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_0D006998[] = { gsSPVertex(D_0D0057B0, 4, 0), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_0D0069B0[] = { gsSPVertex(D_0D0057F0, 4, 0), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_0D0069C8[] = { gsSPVertex(D_0D005AA0, 4, 0), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_0D0069E0[] = { gsSPVertex(D_0D005AE0, 4, 0), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_0D0069F8[] = { gsSPVertex(D_0D005B20, 4, 0), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_0D006A10[] = { gsSPVertex(D_0D005B60, 4, 0), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_0D006A28[] = { gsSPVertex(D_0D0058E0, 4, 0), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_0D006A40[] = { gsSPVertex(D_0D005920, 4, 0), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; @@ -1785,7 +1785,7 @@ Gfx D_0D008138[] = { // Curve graphs for generating a random item based on player race position. u8 gGrandPrixHumanItemCurve[8][100] = { - { + { // 1st ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, ITEM_BANANA, @@ -1797,7 +1797,7 @@ u8 gGrandPrixHumanItemCurve[8][100] = { ITEM_FAKE_ITEM_BOX, ITEM_FAKE_ITEM_BOX, ITEM_FAKE_ITEM_BOX, ITEM_FAKE_ITEM_BOX, ITEM_FAKE_ITEM_BOX, ITEM_BOO, ITEM_BOO, ITEM_BOO, ITEM_BOO, ITEM_BOO, ITEM_MUSHROOM, ITEM_MUSHROOM, ITEM_MUSHROOM, ITEM_MUSHROOM, ITEM_MUSHROOM, ITEM_MUSHROOM, ITEM_MUSHROOM, ITEM_MUSHROOM, ITEM_MUSHROOM, ITEM_MUSHROOM, }, - { + { // 2nd ITEM_BANANA_BUNCH, ITEM_BANANA_BUNCH, ITEM_BANANA_BUNCH, ITEM_BANANA_BUNCH, ITEM_BANANA_BUNCH, ITEM_GREEN_SHELL, ITEM_GREEN_SHELL, ITEM_GREEN_SHELL, ITEM_GREEN_SHELL, ITEM_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, @@ -1809,7 +1809,7 @@ u8 gGrandPrixHumanItemCurve[8][100] = { ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, }, - { + { // 3rd ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_TRIPLE_GREEN_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, @@ -1821,7 +1821,7 @@ u8 gGrandPrixHumanItemCurve[8][100] = { ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, }, - { + { // 4th ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, @@ -1833,7 +1833,7 @@ u8 gGrandPrixHumanItemCurve[8][100] = { ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, }, - { + { // 5th ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, @@ -1845,7 +1845,7 @@ u8 gGrandPrixHumanItemCurve[8][100] = { ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, }, - { + { // 6th ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, @@ -1857,7 +1857,7 @@ u8 gGrandPrixHumanItemCurve[8][100] = { ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, }, - { + { // 7th ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, @@ -1869,7 +1869,7 @@ u8 gGrandPrixHumanItemCurve[8][100] = { ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_TRIPLE_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, ITEM_SUPER_MUSHROOM, }, - { + { // 8th ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_TRIPLE_RED_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, ITEM_BLUE_SPINY_SHELL, @@ -2142,7 +2142,7 @@ Vtx D_0D008C38[] = { {{{ -2, 2, 0}, 0, {0, 0}, {0xff, 0xff, 0xff, 0xff}}}, }; -Gfx D_0D008C78[] = { +Gfx common_square_plain_render[] = { gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(0, 2, 3, 0), gsSPEndDisplayList(), @@ -2160,7 +2160,7 @@ Gfx D_0D008C90[] = { gsSPEndDisplayList(), }; -Gfx D_0D008CD8[] = { +Gfx common_setting_render_character[] = { gsDPPipeSync(), gsDPSetAlphaCompare(G_AC_NONE), gsSPClearGeometryMode(G_LIGHTING), @@ -2195,7 +2195,7 @@ Gfx D_0D008D58[] = { }; Gfx D_0D008DA0[] = { - gsSPDisplayList(D_0D008C78), + gsSPDisplayList(common_square_plain_render), gsSPTexture(1, 1, 0, G_TX_RENDERTILE, G_OFF), gsSPEndDisplayList(), }; diff --git a/src/data_segment2.h b/src/data_segment2.h index b7159be29..fb911e2f7 100644 --- a/src/data_segment2.h +++ b/src/data_segment2.h @@ -49,7 +49,7 @@ extern Gfx D_02008008[]; extern Gfx D_02008030[]; extern Gfx D_02008058[]; extern Gfx D_060093F8[]; -extern Gfx D_0D006940[]; +extern Gfx common_rectangle_display[]; extern Vtx D_02007BB8[]; extern Vtx D_02007BD8[]; diff --git a/src/data_segment2.inc.c b/src/data_segment2.inc.c index 44e29e7f3..6b2799bb2 100644 --- a/src/data_segment2.inc.c +++ b/src/data_segment2.inc.c @@ -104,168 +104,168 @@ Gfx D_02007818[] = { Gfx D_02007838[] = { gsSPVertex(D_02007BB8, 2, 0), gsSPVertex(D_02007BD8, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007858[] = { gsSPVertex(D_02007BB8, 2, 0), gsSPVertex(D_02007BF8, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007878[] = { gsSPVertex(D_02007BB8, 2, 0), gsSPVertex(D_02007C18, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007898[] = { gsSPVertex(D_02007BB8, 2, 0), gsSPVertex(D_02007C38, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_020078B8[] = { gsSPVertex(D_02007BB8, 2, 0), gsSPVertex(D_02007C58, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_020078D8[] = { gsSPVertex(D_02007BB8, 2, 0), gsSPVertex(D_02007C78, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_020078F8[] = { gsSPVertex(D_02007BB8, 2, 0), gsSPVertex(D_02007C98, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007918[] = { gsSPVertex(D_02007BB8, 2, 0), gsSPVertex(D_02007CB8, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007938[] = { gsSPVertex(D_02007CD8, 2, 0), gsSPVertex(D_02007CF8, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007958[] = { gsSPVertex(D_02007CD8, 2, 0), gsSPVertex(D_02007D18, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007978[] = { gsSPVertex(D_02007CD8, 2, 0), gsSPVertex(D_02007D38, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007998[] = { gsSPVertex(D_02007CD8, 2, 0), gsSPVertex(D_02007D58, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_020079B8[] = { gsSPVertex(D_02007CD8, 2, 0), gsSPVertex(D_02007D78, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_020079D8[] = { gsSPVertex(D_02007CD8, 2, 0), gsSPVertex(D_02007D98, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_020079F8[] = { gsSPVertex(D_02007CD8, 2, 0), gsSPVertex(D_02007DB8, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007A18[] = { gsSPVertex(D_02007CD8, 2, 0), gsSPVertex(D_02007DD8, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007A38[] = { gsSPVertex(D_02007DF8, 2, 0), gsSPVertex(D_02007E18, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007A58[] = { gsSPVertex(D_02007DF8, 2, 0), gsSPVertex(D_02007E38, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007A78[] = { gsSPVertex(D_02007DF8, 2, 0), gsSPVertex(D_02007E58, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007A98[] = { gsSPVertex(D_02007DF8, 2, 0), gsSPVertex(D_02007E78, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007AB8[] = { gsSPVertex(D_02007DF8, 2, 0), gsSPVertex(D_02007E98, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007AD8[] = { gsSPVertex(D_02007DF8, 2, 0), gsSPVertex(D_02007EB8, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007AF8[] = { gsSPVertex(D_02007DF8, 2, 0), gsSPVertex(D_02007ED8, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; Gfx D_02007B18[] = { gsSPVertex(D_02007DF8, 2, 0), gsSPVertex(D_02007EF8, 2, 2), - gsSPDisplayList(D_0D006940), + gsSPDisplayList(common_rectangle_display), gsSPEndDisplayList(), }; diff --git a/src/debug/debug.inc.c b/src/debug/debug.inc.c index 84c903dd6..758bf3600 100644 --- a/src/debug/debug.inc.c +++ b/src/debug/debug.inc.c @@ -27,8 +27,8 @@ variableWatchAttributes gMainVariableWatchList[] = { }, { "Player Type: ", - &gPlayers[0].unk_000, - sizeof(gPlayerOne->unk_000), + &gPlayers[0].type, + sizeof(gPlayerOne->type), DISPLAY_HEXIDECIMAL_NUMBER, 0, 0 }, @@ -55,22 +55,22 @@ variableWatchAttributes gMainVariableWatchList[] = { }, { "Torque 9C: ", - &gPlayers[0].unk_09C, - sizeof(gPlayerOne->unk_09C), + &gPlayers[0].currentSpeed, + sizeof(gPlayerOne->currentSpeed), DISPLAY_FLOAT_NUMBER, 0, 0 }, { "Top Speed 214: ", - &gPlayers[0].unk_214, - sizeof(gPlayerOne->unk_214), + &gPlayers[0].topSpeed, + sizeof(gPlayerOne->topSpeed), DISPLAY_FLOAT_NUMBER, 0, 0 }, { "Accel Offset C4: ", - &gPlayers[0].unk_0C4, - sizeof(gPlayerOne->unk_0C4), + &gPlayers[0].slopeAccel, + sizeof(gPlayerOne->slopeAccel), DISPLAY_SIGNED_NUMBER, 0, 0 }, diff --git a/src/ending/ceremony_and_credits.c b/src/ending/ceremony_and_credits.c index 308ffc520..3988a8b07 100644 --- a/src/ending/ceremony_and_credits.c +++ b/src/ending/ceremony_and_credits.c @@ -946,7 +946,7 @@ void func_80284154(struct CinematicCamera *camera) { void func_80284184(struct CinematicCamera *camera) { f32 trophy; - trophy = ((D_80165C18[D_80183EA0[3]].pos[1] - camera->lookAt[1]) * 0.9f) + camera->lookAt[1]; + trophy = ((gObjectList[D_80183EA0[3]].pos[1] - camera->lookAt[1]) * 0.9f) + camera->lookAt[1]; f32_lerp(&camera->pos[1], trophy, 0.5); } diff --git a/src/ending/code_80280000.c b/src/ending/code_80280000.c index 0df8c1d88..199ffd645 100644 --- a/src/ending/code_80280000.c +++ b/src/ending/code_80280000.c @@ -164,7 +164,7 @@ void load_credits(void) { camera->up[2] = 0.0f; init_cinematic_camera(); func_80003040(); - func_8006E9C0(); + init_object_list(); func_80093E60(); func_80092688(); if (D_800DC5EC) {} diff --git a/src/ending/code_80281780.c b/src/ending/code_80281780.c index 57aae09e3..39708398b 100644 --- a/src/ending/code_80281780.c +++ b/src/ending/code_80281780.c @@ -71,7 +71,7 @@ void func_802818BC(void) { s32 sp1C; s32 temp_v0_2; - if (D_8018EDF3 != TWO_PLAYERS_SELECTED) { + if (gPlayerCount != TWO_PLAYERS_SELECTED) { D_802874D8.unk1D = func_80281880(0); D_802874D8.unk1E = gCharacterSelections[0]; return; @@ -144,7 +144,7 @@ void load_ceremony_cutscene(void) { debug_switch_character_ceremony_cutscene(); func_802818BC(); func_8003D080(); - func_8006E9C0(); + init_object_list(); func_8001C05C(); balloons_and_fireworks_init(); func_802816B8(); diff --git a/src/ending/podium_ceremony_actors.c b/src/ending/podium_ceremony_actors.c index 090c05936..ced908978 100644 --- a/src/ending/podium_ceremony_actors.c +++ b/src/ending/podium_ceremony_actors.c @@ -223,7 +223,7 @@ Mat4 D_80287500; void func_80280A28(Vec3f arg0, Vec3s arg1, f32 arg2) { Mat4 mtx; - func_80021E10(mtx, arg0, arg1); + mtxf_translate_rotate(mtx, arg0, arg1); mtx[0][0] = D_80287500[0][0] * arg2; mtx[0][1] = D_80287500[1][0] * arg2; mtx[0][2] = D_80287500[2][0] * arg2; @@ -233,7 +233,7 @@ void func_80280A28(Vec3f arg0, Vec3s arg1, f32 arg2) { mtx[2][0] = D_80287500[0][2] * arg2; mtx[2][1] = D_80287500[1][2] * arg2; mtx[2][2] = D_80287500[2][2] * arg2; - func_80022180(&gGfxPool->mtxEffect[gMatrixEffectCount], mtx); + convert_to_fixed_point_matrix(&gGfxPool->mtxEffect[gMatrixEffectCount], mtx); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } diff --git a/src/framebuffers.h b/src/framebuffers.h index 9d6199973..59933d4d6 100644 --- a/src/framebuffers.h +++ b/src/framebuffers.h @@ -62,7 +62,7 @@ extern struct_D_802DFB80 D_802DFB80[][2][8]; /** * SO * It would be nice to define D_802F1F80 as ```struct_D_802F1F80 D_802F1F80[2][4][8]```. - * But due to some register allocation issues in func_80027A20 we have to define it in a different manner + * But due to some register allocation issues in load_kart_palette we have to define it in a different manner **/ extern u32 D_802F1F80[][4][1024]; diff --git a/src/hud_renderer.c b/src/hud_renderer.c index f5bd3aadc..34b7a2706 100644 --- a/src/hud_renderer.c +++ b/src/hud_renderer.c @@ -29,20 +29,20 @@ #include "courses/all_course_data.h" #include -void func_800431B0(Vec3f arg0, Vec3su arg1, f32 arg2, Vtx *vtx) { - func_80042E00(arg0, arg1, arg2); +void func_800431B0(Vec3f pos, Vec3su orientation, f32 scale, Vtx *vtx) { + rsp_set_matrix_transformation(pos, orientation, scale); gSPVertex(gDisplayListHead++, vtx, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); } -void func_80043220(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx) { - func_80042E00(arg0, arg1, arg2); +void func_80043220(Vec3f pos, Vec3su orientation, f32 scale, Gfx *gfx) { + rsp_set_matrix_transformation(pos, orientation, scale); gSPDisplayList(gDisplayListHead++, &D_0D0077A0); gSPDisplayList(gDisplayListHead++, gfx); } -UNUSED void func_80043288(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx) { - func_80042E00(arg0, arg1, arg2); +UNUSED void func_80043288(Vec3f pos, Vec3su orientation, f32 arg2, Gfx *gfx) { + rsp_set_matrix_transformation(pos, orientation, arg2); gSPDisplayList(gDisplayListHead++, D_0D0077A0); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH); gSPDisplayList(gDisplayListHead++, gfx); @@ -50,25 +50,25 @@ UNUSED void func_80043288(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx) { } void func_80043328(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0077D0); gSPDisplayList(gDisplayListHead++, gfx); } UNUSED void func_80043390(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0077F8); gSPDisplayList(gDisplayListHead++, gfx); } UNUSED void func_800433F8(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007828); gSPDisplayList(gDisplayListHead++, gfx); } UNUSED void func_80043460(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007828); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH); gSPDisplayList(gDisplayListHead++, gfx); @@ -76,7 +76,7 @@ UNUSED void func_80043460(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx) { } void func_80043500(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007850); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH); gSPDisplayList(gDisplayListHead++, gfx); @@ -84,7 +84,7 @@ void func_80043500(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx) { } void func_800435A0(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx, s32 arg4) { - func_80042F70(arg0, arg1, arg2); + rsp_set_matrix_transformation_inverted_x_y_orientation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007878); gDPSetPrimColor(gDisplayListHead++, 0, 0, 0xFF, 0xFF, 0xFF, arg4); @@ -94,7 +94,7 @@ void func_800435A0(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx, s32 arg4) { } UNUSED void func_80043668(Vec3f arg0, Vec3su arg1, f32 arg2, Gfx *gfx) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0078A0); gSPDisplayList(gDisplayListHead++, gfx); } @@ -111,7 +111,7 @@ UNUSED void func_80043764(s32 arg0, s32 arg1, u16 arg2, f32 arg3, Vtx *vtx) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D0078A0); gSPVertex(gDisplayListHead++, vtx, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); } UNUSED void func_800437F8(s32 arg0, s32 arg1, u16 arg2, f32 arg3, Vtx *vtx, s32 arg5) { @@ -124,7 +124,7 @@ UNUSED void func_800437F8(s32 arg0, s32 arg1, u16 arg2, f32 arg3, Vtx *vtx, s32 vtx[2].v.cn[3] = arg5; vtx[3].v.cn[3] = arg5; gSPVertex(gDisplayListHead++, vtx, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); } UNUSED void func_800438C4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, Vtx *vtx, s32 arg5) { @@ -134,7 +134,7 @@ UNUSED void func_800438C4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, Vtx *vtx, s32 gSPDisplayList(gDisplayListHead++, D_0D0078A0); gDPSetRenderMode(gDisplayListHead++, G_RM_CLD_SURF, G_RM_CLD_SURF2); gSPVertex(gDisplayListHead++, vtx, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); } UNUSED void func_8004398C(s32 arg0, s32 arg1, u16 arg2, f32 arg3, Vtx *vtx, s32 arg5) { @@ -144,7 +144,7 @@ UNUSED void func_8004398C(s32 arg0, s32 arg1, u16 arg2, f32 arg3, Vtx *vtx, s32 gSPDisplayList(gDisplayListHead++, D_0D0078A0); gDPSetRenderMode(gDisplayListHead++, G_RM_CLD_SURF, G_RM_CLD_SURF2); gSPVertex(gDisplayListHead++, vtx, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); } s32 func_80043A54(s32 arg0) { @@ -442,12 +442,12 @@ void func_800450C8(u8 *image, s32 width, s32 height) { GLOBAL_ASM("asm/non_matchings/hud_renderer/func_800450C8.s") #endif -void func_800452A4(u8 *texture, s32 width, s32 height) { +void rsp_load_texture(u8 *texture, s32 width, s32 height) { gDPLoadTextureBlock(gDisplayListHead++, texture, G_IM_FMT_CI, G_IM_SIZ_8b, width, height, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); } -void func_8004544C(u8 *texture, s32 width, s32 height, s32 someMask) { +void rsp_load_texture_mask(u8 *texture, s32 width, s32 height, s32 someMask) { gDPLoadTextureBlock(gDisplayListHead++, texture, G_IM_FMT_CI, G_IM_SIZ_8b, width, height, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_CLAMP, someMask, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); } @@ -618,7 +618,7 @@ GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80045738.s") void func_80045B2C(Vtx *arg0) { gSPVertex(gDisplayListHead++, arg0, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); } void func_80045B74(Vtx *arg0) { @@ -627,18 +627,18 @@ void func_80045B74(Vtx *arg0) { } UNUSED void func_80045BBC(Vec3f arg0, Vec3su arg1, f32 arg2, Vtx *arg3) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0078A0); gSPVertex(gDisplayListHead++, arg3, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); } UNUSED void func_80045C48(Vec3f arg0, Vec3su arg1, f32 arg2, Vtx *arg3) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0078D0); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH); gSPVertex(gDisplayListHead++, arg3, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); } @@ -766,7 +766,7 @@ void func_800465B8(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, u8 *texture func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D0079E8); - func_8004B2BC(arg4); + set_transparency(arg4); func_80045E10(texture, arg6, arg7, arg8, argA); } @@ -796,25 +796,25 @@ UNUSED void func_80046794(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *texture, V } void func_80046808(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *arg4, s32 arg5, s32 arg6, UNUSED s32 arg7, s32 arg8) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007948); func_80045E10(texture, arg4, arg5, arg6, arg8); } UNUSED void func_80046874(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *arg4, s32 arg5, s32 arg6, UNUSED s32 arg7, s32 arg8) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0079C8); func_80045E10(texture, arg4, arg5, arg6, arg8); } void func_800468E0(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *arg4, s32 arg5, s32 arg6, UNUSED s32 arg7, s32 arg8, s32 arg9) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0079C8); func_80045F18(texture, arg4, arg5, arg6, arg8, arg9); } UNUSED void func_80046954(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *arg4, s32 arg5, s32 arg6, UNUSED s32 arg7, s32 arg8) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0079C8); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH); func_80045E10(texture, arg4, arg5, arg6, arg8); @@ -822,14 +822,14 @@ UNUSED void func_80046954(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *a } void func_80046A00(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *arg4, s32 arg5, s32 arg6) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007948); func_80043D50(texture, arg5, arg6); func_80045B74(arg4); } UNUSED void func_80046A68(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *arg4, s32 arg5, s32 arg6, UNUSED s32 arg7, s32 arg8) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D0079C8); func_800462A8(texture, arg4, arg5, arg6, arg8); } @@ -839,11 +839,11 @@ UNUSED void func_80046AD4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *texture) { } UNUSED void func_80046B38(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *texture) { - func_800464D0(arg0, arg1, arg2, arg3, texture, D_0D005770, 16, 16, 16, 16); + func_800464D0(arg0, arg1, arg2, arg3, texture, common_vtx_rectangle, 16, 16, 16, 16); } UNUSED void func_80046B9C(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture) { - func_80046808(arg0, arg1, arg2, texture, D_0D005770, 16, 16, 16, 16); + func_80046808(arg0, arg1, arg2, texture, common_vtx_rectangle, 16, 16, 16, 16); } UNUSED void func_80046BEC(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *texture, Vtx *arg5) { @@ -874,16 +874,16 @@ UNUSED void func_80046DF4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, u8 * func_800465B8(arg0, arg1, arg2, arg3, arg4, texture, D_0D0060B0, 64, 64, 64, 32); } -void func_80046E60(u8 *tlut, u8 *texture, s32 arg2, s32 arg3) { +void func_80046E60(u8 *tlut, u8 *texture, s32 width, s32 height) { gSPDisplayList(gDisplayListHead++, D_0D007D78); gDPLoadTLUT_pal256(gDisplayListHead++, tlut); - func_800452A4(texture, arg2, arg3); + rsp_load_texture(texture, width, height); } void func_80046F60(u8 *tlut, u8 *arg1, s32 arg2, s32 arg3, s32 arg4) { gSPDisplayList(gDisplayListHead++, D_0D007D78); gDPLoadTLUT_pal256(gDisplayListHead++, tlut); - func_8004544C(arg1, arg2, arg3, arg4); + rsp_load_texture_mask(arg1, arg2, arg3, arg4); } void func_80047068(u8 *tlut, u8 *texture, Vtx *arg2, UNUSED s32 arg3, s32 arg4, s32 width, s32 height) { @@ -893,25 +893,25 @@ void func_80047068(u8 *tlut, u8 *texture, Vtx *arg2, UNUSED s32 arg3, s32 arg4, gDPLoadTLUT_pal256(gDisplayListHead++, tlut); for (heightIndex = 0; heightIndex < arg4 / height; heightIndex++) { - func_800452A4(img, width, height); + rsp_load_texture(img, width, height); gSPVertex(gDisplayListHead++, &arg2[vertexIndex], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); img += width * height; vertexIndex += 4; } gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); } -void func_80047270(u8 *tlut, u8 *texture, Vtx *arg2, UNUSED s32 arg3, s32 arg4, s32 width, s32 height) { +void draw_rectangle_texture_overlap(u8 *tlut, u8 *texture, Vtx *arg2, UNUSED s32 arg3, s32 arg4, s32 width, s32 height) { s32 heightIndex; s32 vertexIndex = 0; u8 *img = texture; gDPLoadTLUT_pal256(gDisplayListHead++, tlut); for (heightIndex = 0; heightIndex < arg4 / height; heightIndex++) { - func_800452A4(img, width, height); + rsp_load_texture(img, width, height); gSPVertex(gDisplayListHead++, &arg2[vertexIndex], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); img += width * (height - 1); vertexIndex += 4; } @@ -925,9 +925,9 @@ void func_8004747C(u8 *tlut, u8 *texture, Vtx *arg2, UNUSED s32 arg3, s32 arg4, gDPLoadTLUT_pal256(gDisplayListHead++, tlut); for (heightIndex = 0; heightIndex < arg4 / height; heightIndex++) { - func_8004544C(img, width, height, someMask); + rsp_load_texture_mask(img, width, height, someMask); gSPVertex(gDisplayListHead++, &arg2[vertexIndex], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); img += width * (height - 1); vertexIndex += 4; } @@ -942,9 +942,9 @@ void func_8004768C(u8 *tlut, u8 *texture, Vtx *arg2, s32 arg3, s32 width, s32 he gDPLoadTLUT_pal256(gDisplayListHead++, tlut); for (heightIndex = 0; heightIndex < arg3 / height; heightIndex++) { // Something seems off about arguments here, but if it matches it matches - func_800452A4(img, height, width); + rsp_load_texture(img, height, width); gSPVertex(gDisplayListHead++, &arg2[vertexIndex], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); img += height * width; vertexIndex += 4; } @@ -957,16 +957,16 @@ void func_8004788C(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *tlut, u8 *texture func_80047068(tlut, texture, arg6, arg7, arg8, arg9, argA); } -void func_80047910(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { - func_80042330(arg0, arg1, arg2, arg3); +void func_80047910(s32 x, s32 y, u16 angle, f32 size, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { + func_80042330(x, y, angle, size); gSPDisplayList(gDisplayListHead++, D_0D007CD8); - func_80047270(tlut, texture, arg6, arg7, arg8, arg9, argA); + draw_rectangle_texture_overlap(tlut, texture, arg6, arg7, arg8, arg9, argA); } void func_80047994(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007CF8); - func_80047270(tlut, texture, arg6, arg7, arg8, arg9, argA); + draw_rectangle_texture_overlap(tlut, texture, arg6, arg7, arg8, arg9, argA); } void func_80047A18(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { @@ -978,7 +978,7 @@ void func_80047A18(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *tlut, u8 *texture void func_80047A9C(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007D38); - func_80047270(tlut, texture, arg6, arg7, arg8, arg9, argA); + draw_rectangle_texture_overlap(tlut, texture, arg6, arg7, arg8, arg9, argA); } UNUSED void func_80047B20(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9) { @@ -990,142 +990,142 @@ UNUSED void func_80047B20(s32 arg0, s32 arg1, u16 arg2, f32 arg3, u8 *tlut, u8 * void func_80047B9C(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, u8 *tlut, u8 *texture, Vtx *arg7, s32 arg8, s32 arg9, s32 argA, s32 argB) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007DB8); - func_8004B2BC(arg4); + set_transparency(arg4); func_80047068(tlut, texture, arg7, arg8, arg9, argA, argB); } UNUSED void func_80047C28(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, u8 *tlut, u8 *texture, Vtx *arg7, s32 arg8, s32 arg9, s32 argA, s32 argB) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007DD8); - func_8004B2BC(arg4); - func_80047270(tlut, texture, arg7, arg8, arg9, argA, argB); + set_transparency(arg4); + draw_rectangle_texture_overlap(tlut, texture, arg7, arg8, arg9, argA, argB); } void func_80047CB4(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, u8 *tlut, u8 *texture, Vtx *arg7, s32 arg8, s32 arg9, s32 argA, s32 argB) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007E38); - func_8004B2BC(arg4); + set_transparency(arg4); func_80047068(tlut, texture, arg7, arg8, arg9, argA, argB); } UNUSED void func_80047D40(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 arg4, u8 *tlut, u8 *texture, Vtx *arg7, s32 arg8, s32 arg9, s32 argA, s32 argB) { func_80042330(arg0, arg1, arg2, arg3); gSPDisplayList(gDisplayListHead++, D_0D007E58); - func_8004B2BC(arg4); - func_80047270(tlut, texture, arg7, arg8, arg9, argA, argB); + set_transparency(arg4); + draw_rectangle_texture_overlap(tlut, texture, arg7, arg8, arg9, argA, argB); } UNUSED void func_80047DCC(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *tlut, u8 *texture, Vtx *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007CB8); func_80047068(tlut, texture, arg5, arg6, arg7, arg8, arg9); } void func_80047E48(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *tlut, u8 *texture, Vtx *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007CD8); - func_80047270(tlut, texture, arg5, arg6, arg7, arg8, arg9); + draw_rectangle_texture_overlap(tlut, texture, arg5, arg6, arg7, arg8, arg9); } UNUSED void func_80047EC4(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *tlut, u8 *texture, Vtx *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007D18); func_80047068(tlut, texture, arg5, arg6, arg7, arg8, arg9); } void func_80047F40(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *tlut, u8 *texture, Vtx *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007D38); - func_80047270(tlut, texture, arg5, arg6, arg7, arg8, arg9); + draw_rectangle_texture_overlap(tlut, texture, arg5, arg6, arg7, arg8, arg9); } UNUSED void func_80047FBC(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *tlut, u8 *texture, Vtx *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007D58); - func_80047270(tlut, texture, arg5, arg6, arg7, arg8, arg9); + draw_rectangle_texture_overlap(tlut, texture, arg5, arg6, arg7, arg8, arg9); } UNUSED void func_80048038(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *tlut, u8 *texture, Vtx *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007D98); func_80047068(tlut, texture, arg5, arg6, arg7, arg8, arg9); } void func_800480B4(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *tlut, u8 *texture, Vtx *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007D78); - func_80047270(tlut, texture, arg5, arg6, arg7, arg8, arg9); + draw_rectangle_texture_overlap(tlut, texture, arg5, arg6, arg7, arg8, arg9); } void func_80048130(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *tlut, u8 *texture, Vtx *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007D78); func_8004747C(tlut, texture, arg5, arg6, arg7, arg8, arg9, argA); } UNUSED void func_800481B4(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *tlut, u8 *texture, Vtx *arg5, s32 arg6, s32 arg7, s32 arg8) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007D78); func_8004768C(tlut, texture, arg5, arg6, arg7, arg8); } UNUSED void func_80048228(Vec3f arg0, Vec3su arg1, f32 arg2, s32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007DB8); - func_8004B2BC(arg3); + set_transparency(arg3); func_80047068(tlut, texture, arg6, arg7, arg8, arg9, argA); } void func_800482AC(Vec3f arg0, Vec3su arg1, f32 arg2, s32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007DD8); - func_8004B2BC(arg3); - func_80047270(tlut, texture, arg6, arg7, arg8, arg9, argA); + set_transparency(arg3); + draw_rectangle_texture_overlap(tlut, texture, arg6, arg7, arg8, arg9, argA); } UNUSED void func_80048330(Vec3f arg0, Vec3su arg1, f32 arg2, s32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007E38); - func_8004B2BC(arg3); + set_transparency(arg3); func_80047068(tlut, texture, arg6, arg7, arg8, arg9, argA); } void func_800483B4(Vec3f arg0, Vec3su arg1, f32 arg2, s32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007E58); - func_8004B2BC(arg3); - func_80047270(tlut, texture, arg6, arg7, arg8, arg9, argA); + set_transparency(arg3); + draw_rectangle_texture_overlap(tlut, texture, arg6, arg7, arg8, arg9, argA); } void func_80048438(Vec3f arg0, Vec3su arg1, f32 arg2, s32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007DF8); - func_8004B2BC(arg3); + set_transparency(arg3); func_80047068(tlut, texture, arg6, arg7, arg8, arg9, argA); } void func_800484BC(Vec3f arg0, Vec3su arg1, f32 arg2, s32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007E18); - func_8004B2BC(arg3); - func_80047270(tlut, texture, arg6, arg7, arg8, arg9, argA); + set_transparency(arg3); + draw_rectangle_texture_overlap(tlut, texture, arg6, arg7, arg8, arg9, argA); } void func_80048540(Vec3f arg0, Vec3su arg1, f32 arg2, s32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007E98); - func_8004B2BC(arg3); - func_80047270(tlut, texture, arg6, arg7, arg8, arg9, argA); + set_transparency(arg3); + draw_rectangle_texture_overlap(tlut, texture, arg6, arg7, arg8, arg9, argA); } void func_800485C4(Vec3f arg0, Vec3su arg1, f32 arg2, s32 arg3, u8 *tlut, u8 *texture, Vtx *arg6, s32 arg7, s32 arg8, s32 arg9, s32 argA) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007E98); gDPSetAlphaCompare(gDisplayListHead++, G_AC_DITHER); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2); - func_8004B2BC(arg3); - func_80047270(tlut, texture, arg6, arg7, arg8, arg9, argA); + set_transparency(arg3); + draw_rectangle_texture_overlap(tlut, texture, arg6, arg7, arg8, arg9, argA); gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE); } @@ -1232,7 +1232,7 @@ void func_80048F8C(u8 *texture, Vtx *arg1, s32 arg2, s32 arg3, s32 width, s32 he for (widthIndex = 0; widthIndex < arg2 / width; widthIndex++) { func_800441E0(img, width, height); gSPVertex(gDisplayListHead++, &arg1[vertexIndex], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); img += width * height * 2; vertexIndex += 4; } @@ -1250,7 +1250,7 @@ void func_80049130(u8 *texture, Vtx *arg1, s32 arg2, s32 arg3, s32 width, s32 he for (widthIndex = 0; widthIndex < arg2 / width; widthIndex++) { func_80044388(img, width, height); gSPVertex(gDisplayListHead++, &arg1[vertexIndex], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); img += width * height * 2; vertexIndex += 4; } @@ -1268,7 +1268,7 @@ void func_800492D4(u8 *texture, Vtx *arg1, s32 arg2, s32 arg3, s32 width, s32 he for (widthIndex = 0; widthIndex < arg2 / width; widthIndex++) { func_800444B0(img, width, height); gSPVertex(gDisplayListHead++, &arg1[vertexIndex], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); img += width * height; vertexIndex += 4; } @@ -1286,7 +1286,7 @@ void func_80049478(u8 *texture, Vtx *arg1, s32 arg2, s32 arg3, s32 width, s32 he for (widthIndex = 0; widthIndex < arg2 / width; widthIndex++) { func_80044658(img, width, height); gSPVertex(gDisplayListHead++, &arg1[vertexIndex], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); img += width * height; vertexIndex += 4; } @@ -1305,7 +1305,7 @@ void func_8004961C(u8 *texture, Vtx *arg1, s32 arg2, s32 arg3, s32 width, s32 he func_80044924(img, width, height); gSPVertex(gDisplayListHead++, &arg1[var_s2], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); img += (width * height) / 2; var_s2 += 4; } @@ -1324,7 +1324,7 @@ void func_800497CC(u8 *texture, Vtx *arg1, s32 arg2, s32 arg3, s32 width, s32 he for (widthIndex = 0; widthIndex < arg2 / width; widthIndex++) { func_80044BF8(img, width, height); gSPVertex(gDisplayListHead++, &arg1[vertexIndex], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); img += width * height; vertexIndex += 4; } @@ -1342,7 +1342,7 @@ void func_80049970(u8 *texture, Vtx *arg1, s32 arg2, s32 arg3, s32 width, s32 he for (j = 0; j < arg2 / width; j++) { func_80044DA0(img, width, height); gSPVertex(gDisplayListHead++, &arg1[var_s2], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); img += (width * height) / 2; var_s2 += 4; } @@ -1460,25 +1460,25 @@ void func_8004A384(s32 arg0, s32 arg1, u16 arg2, f32 arg3, s32 red, s32 green, s } void func_8004A414(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007A40); func_800492D4(texture, arg4, arg5, arg6, arg7, arg8); } UNUSED void func_8004A488(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007A60); func_800492D4(texture, arg4, arg5, arg6, arg7, arg8); } UNUSED void func_8004A4FC(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007AC0); func_800492D4(texture, arg4, arg5, arg6, arg7, arg8); } UNUSED void func_8004A570(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007AE0); func_800492D4(texture, arg4, arg5, arg6, arg7, arg8); } @@ -1492,63 +1492,63 @@ void func_8004A630(Collision *arg0, Vec3f arg1, f32 arg2) { D_80183E50[0] = arg1[0]; D_80183E50[1] = func_802ABE30(arg1[0], 0.0f, arg1[2], arg0->unk3A) + 0.8; D_80183E50[2] = arg1[2]; - func_80043050(D_80183E50, arg0->unk60, arg2); + rsp_set_matrix_transl_rot_scale(D_80183E50, arg0->unk60, arg2); gSPDisplayList(gDisplayListHead++, D_0D007B98); } } -void func_8004A6EC(s32 objectIndex, f32 arg1) { - struct_80165C18_entry *temp_v0; +void func_8004A6EC(s32 objectIndex, f32 scale) { + Objects *temp_v0; - if ((func_8007223C(objectIndex, 0x00000020) != 0) && (func_8007223C(objectIndex, 0x00800000) != 0)) { - temp_v0 = &D_80165C18[objectIndex]; + if ((is_obj_index_flag_unk_054_active(objectIndex, 0x00000020) != 0) && (is_obj_index_flag_unk_054_active(objectIndex, 0x00800000) != 0)) { + temp_v0 = &gObjectList[objectIndex]; D_80183E50[0] = temp_v0->pos[0]; D_80183E50[1] = temp_v0->unk_044 + 0.8; D_80183E50[2] = temp_v0->pos[2]; - func_80042E00(D_80183E50, temp_v0->unk_0B8, arg1); + rsp_set_matrix_transformation(D_80183E50, temp_v0->unk_0B8, scale); gSPDisplayList(gDisplayListHead++, D_0D007B20); } } void func_8004A7AC(s32 objectIndex, f32 arg1) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - if (func_8007223C(objectIndex, 0x00000020) != 0) { - temp_v0 = &D_80165C18[objectIndex]; + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000020) != 0) { + temp_v0 = &gObjectList[objectIndex]; D_80183E50[0] = temp_v0->pos[0]; D_80183E50[1] = temp_v0->unk_044 + 0.8; D_80183E50[2] = temp_v0->pos[2]; D_80183E98[0] = 0x4000; D_80183E98[1] = 0; D_80183E98[2] = 0; - func_80042E00(D_80183E50, D_80183E98, arg1); + rsp_set_matrix_transformation(D_80183E50, D_80183E98, arg1); gSPDisplayList(gDisplayListHead++, D_0D007B20); } } void func_8004A870(s32 objectIndex, f32 arg1) { Mat4 sp30; - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - if ((func_8007223C(objectIndex, 0x00000020) != 0) && (func_8007223C(objectIndex, 0x00800000) != 0)) { - temp_v0 = &D_80165C18[objectIndex]; + if ((is_obj_index_flag_unk_054_active(objectIndex, 0x00000020) != 0) && (is_obj_index_flag_unk_054_active(objectIndex, 0x00800000) != 0)) { + temp_v0 = &gObjectList[objectIndex]; D_80183E50[0] = temp_v0->pos[0]; D_80183E50[1] = temp_v0->unk_044 + 0.8; D_80183E50[2] = temp_v0->pos[2]; - func_80042A20(sp30, temp_v0->unk_01C, D_80183E50, 0U, arg1); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], sp30); + set_transform_matrix(sp30, temp_v0->unk_01C, D_80183E50, 0U, arg1); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], sp30); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, D_0D007B98); } } void func_8004A9B8(f32 arg0) { - func_80043050(D_80183E50, D_80183E70, arg0); + rsp_set_matrix_transl_rot_scale(D_80183E50, D_80183E70, arg0); gSPDisplayList(gDisplayListHead++, D_0D007C10); } UNUSED void func_8004AA10(Vec3f arg0, Vec3su arg1, f32 arg2, u8 *texture, Vtx *arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { - func_80042E00(arg0, arg1, arg2); + rsp_set_matrix_transformation(arg0, arg1, arg2); gSPDisplayList(gDisplayListHead++, D_0D007AE0); func_8004B6C4(D_80165860, D_8016586C, D_80165878); func_800497CC(texture, arg4, arg5, arg6, arg7, arg8); @@ -1642,7 +1642,7 @@ UNUSED void func_8004B254(s32 red, s32 green, s32 blue) { gDPSetPrimColor(gDisplayListHead++, 0, 0, red, green, blue, 0xFF); } -void func_8004B2BC(s32 alpha) { +void set_transparency(s32 alpha) { gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); gDPSetPrimColor(gDisplayListHead++, 0, 0, 0xFF, 0xFF, 0xFF, alpha); } @@ -1704,15 +1704,15 @@ void func_8004B72C(s32 primRed, s32 primGreen, s32 primBlue, s32 envRed, s32 env gDPSetCombineLERP(gDisplayListHead++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); } -void func_8004B7DC(s32 arg0, s32 arg1, s32 width, s32 height, s32 arg4, s32 arg5, s32 arg6) { +void func_8004B7DC(s32 x, s32 y, s32 width, s32 height, s32 arg4, s32 arg5, s32 arg6) { - s32 xh = (((arg0 + width) - 1) << 2); - s32 yh = (((arg1 + height) - 1) << 2); - s32 xl = ((arg0 * 4)); - s32 yl = arg1 * 4; + s32 xh = (((x + width) - 1) << 2); + s32 yh = (((y + height) - 1) << 2); + s32 xl = ((x * 4)); + s32 yl = y * 4; - s32 xh2 = (((arg0 + width)) << 2); - s32 yh2 = ((arg1 + height) << 2); + s32 xh2 = (((x + width)) << 2); + s32 yh2 = ((y + height) << 2); if (arg6 == 0) { // todo: Update to F3DEX. Uses OLD definition for gspTextureRectangle. @@ -1722,10 +1722,8 @@ void func_8004B7DC(s32 arg0, s32 arg1, s32 width, s32 height, s32 arg4, s32 arg5 gSPTextureRectangle(gDisplayListHead++, xl, yl, xh2, yh2, G_TX_RENDERTILE, arg4 << 5, (arg5 << 5), 1 << 10, 1 << 10); } -void func_8004B7DC(s32, s32, s32, s32, s32, s32, s32); - -void func_8004B950(s32 arg0, s32 arg1, s32 width, s32 height, s32 arg4) { - func_8004B7DC(arg0, arg1, width, height, 0, 0, arg4); +void func_8004B950(s32 x, s32 y, s32 width, s32 height, s32 arg4) { + func_8004B7DC(x, y, width, height, 0, 0, arg4); } void func_8004B97C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { @@ -1752,8 +1750,6 @@ void func_8004B97C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { } } -void func_8004B7DC(s32, s32, s32, s32, s32, s32, s32); // extern - void func_8004BA08(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { UNUSED s32 pad[2]; s32 sp2C; @@ -1872,7 +1868,7 @@ void func_8004BB3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 arg4) { GLOBAL_ASM("asm/non_matchings/hud_renderer/func_8004BB3C.s") #endif -UNUSED void func_8004BD14(s32 arg0, s32 arg1, u32 width, u32 height, s32 alpha, u8 *texture1, u8 *texture2) { +UNUSED void func_8004BD14(s32 x, s32 y, u32 width, u32 height, s32 alpha, u8 *texture1, u8 *texture2) { gSPDisplayList(gDisplayListHead++, D_0D007F38); gSPDisplayList(gDisplayListHead++, D_0D008138); gDPSetTextureLOD(gDisplayListHead++, G_TL_TILE); @@ -1880,7 +1876,7 @@ UNUSED void func_8004BD14(s32 arg0, s32 arg1, u32 width, u32 height, s32 alpha, gDPSetCombineLERP(gDisplayListHead++, TEXEL1, TEXEL0, PRIMITIVE_ALPHA, TEXEL0, TEXEL1, TEXEL0, PRIMITIVE, TEXEL0, 0, 0, 0, COMBINED, 0, 0, 0, COMBINED); gDPLoadMultiTile(gDisplayListHead++, texture1, 0, G_TX_RENDERTILE, G_IM_FMT_RGBA, G_IM_SIZ_16b, width, height, 0, 0, width - 1, height - 1, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); gDPLoadMultiTile(gDisplayListHead++, texture2, 256, G_TX_RENDERTILE+1, G_IM_FMT_RGBA, G_IM_SIZ_16b, width, height, 0, 0, width - 1, height - 1, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - func_8004B950(arg0, arg1, width, height, 2); + func_8004B950(x, y, width, height, 2); gSPDisplayList(gDisplayListHead++, D_0D008120); } @@ -2042,7 +2038,7 @@ UNUSED void func_8004C91C(s32 arg0, s32 arg1, u8 *texture, s32 arg3, s32 arg4, s void func_8004C9D8(s32 arg0, s32 arg1, s32 arg2, u8 *texture, s32 arg4, s32 arg5, UNUSED s32 arg6, s32 arg7) { gSPDisplayList(gDisplayListHead++, D_0D007F38); - func_8004B2BC(arg2); + set_transparency(arg2); func_8004C268(arg0, arg1, texture, arg4, arg5, arg7, 1); } @@ -2427,7 +2423,7 @@ void func_8004DF5C(s32 arg0, s32 arg1, u8 *texture, s32 width, s32 arg4, s32 hei s32 i; for (i = 0; i < arg4 / height; i++) { - func_800452A4(img, width, height); + rsp_load_texture(img, width, height); func_8004B97C(arg0 - (width / 2), var_s0, width, height, 1); img += width * height; var_s0 += height; @@ -2463,7 +2459,7 @@ void func_8004E06C(s32 arg0, s32 arg1, u8 *texture, s32 arg3, s32 arg4) { temp_s0 = var_s1; temp_s6 = (u32) ((sins(temp_s0) * temp_f20) + (f32) (arg0 - var)); sins(temp_s0); - func_800452A4(img, arg3, 1); + rsp_load_texture(img, arg3, 1); func_8004B97C(temp_s6, var_s4, arg3, 1, 1); var_s1 += temp_s7; img += arg3; @@ -2483,14 +2479,14 @@ void func_8004E240(s32 arg0, s32 arg1, u8 *tlut, u8 *texture, s32 arg4, s32 arg5 void func_8004E2B8(s32 arg0, s32 arg1, s32 arg2, u8 *tlut, u8 *texture, s32 arg5, s32 arg6, s32 arg7) { gSPDisplayList(gDisplayListHead++, D_0D007DB8); - func_8004B2BC(arg2); + set_transparency(arg2); func_8004B05C(tlut); func_8004DF5C(arg0, arg1, texture, arg5, arg6, arg7); } void func_8004E338(s32 arg0, s32 arg1, u8 *tlut, u8 *texture, s32 arg4, s32 arg5) { gSPDisplayList(gDisplayListHead++, D_0D007DB8); - func_8004B2BC(D_8016589C); + set_transparency(D_8016589C); func_8004B05C(tlut); func_8004E06C(arg0, arg1, texture, arg4, arg5); } @@ -2549,12 +2545,12 @@ UNUSED void func_8004E604(s32 arg0, s32 arg1, u8 *tlut, u8 *texture) { void func_8004E638(s32 playerId) { s32 objectIndex; - struct_80165C18_entry *temp_v1; + Objects *temp_v1; struct_8018CA70_entry *temp_v0; objectIndex = gItemWindowObjectByPlayerId[playerId]; - temp_v1 = &D_80165C18[objectIndex]; - if (temp_v1->unk_0A6 >= 2) { + temp_v1 = &gObjectList[objectIndex]; + if (temp_v1->state >= 2) { temp_v0 = &D_8018CA70[playerId]; func_8004E4CC(temp_v0->slideItemBoxX + temp_v0->itemBoxX, temp_v0->slideItemBoxY + temp_v0->itemBoxY, (u8 *) temp_v1->activeTLUT, temp_v1->activeTexture); } @@ -2562,12 +2558,12 @@ void func_8004E638(s32 playerId) { void func_8004E6C4(s32 playerId) { s32 objectIndex; - struct_80165C18_entry *temp_v1; + Objects *temp_v1; struct_8018CA70_entry *temp_v0; objectIndex = gItemWindowObjectByPlayerId[playerId]; - temp_v1 = &D_80165C18[objectIndex]; - if (temp_v1->unk_0A6 >= 2) { + temp_v1 = &gObjectList[objectIndex]; + if (temp_v1->state >= 2) { temp_v0 = &D_8018CA70[playerId]; func_80047910(temp_v0->slideItemBoxX + temp_v0->itemBoxX, temp_v0->slideItemBoxY + temp_v0->itemBoxY, 0U, temp_v0->unknownScaling, (u8 *) temp_v1->activeTLUT, (u8 *) temp_v1->activeTexture, D_0D005C30, 0x00000028, 0x00000020, 0x00000028, 0x00000020); } @@ -2978,7 +2974,7 @@ void func_8004F8CC(s32 arg0, s32 arg1) { void func_8004F950(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { gSPDisplayList(gDisplayListHead++, D_0D007F38); - func_8004B2BC(arg2); + set_transparency(arg2); func_80043D50(D_0D00C558, 104, 16); func_8004F6D0(arg3); func_8004F8CC(arg0, arg1); @@ -3066,20 +3062,20 @@ void func_8004FC78(s16 arg0, s16 arg1, s8 arg2) { gSPDisplayList(gDisplayListHead++, D_0D007EB8); } -void func_8004FDB4(f32 arg0, f32 arg1, s16 arg2, s16 arg3, s16 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { +void func_8004FDB4(f32 arg0, f32 arg1, s16 arg2, s16 arg3, s16 characterId, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { if ((gCurrentCourseId == COURSE_YOSHI_VALLEY) && (arg3 < 3) && (arg8 == 0)) { func_80042330((s32) arg0, (s32) arg1, 0U, 1.0f); gSPDisplayList(gDisplayListHead++, D_0D007DB8); func_8004B35C(0x000000FF, 0x000000FF, 0x000000FF, D_8018D3E0); gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTPortraitBombKartAndQuestionMark); - func_800452A4(gTexturePortraitQuestionMark, 0x00000020, 0x00000020); + rsp_load_texture(gTexturePortraitQuestionMark, 0x00000020, 0x00000020); gSPDisplayList(gDisplayListHead++, D_0D0069E0); } else { func_80042330(arg0, arg1, 0U, 1.0f); gSPDisplayList(gDisplayListHead++, D_0D007DB8); func_8004B35C(0x000000FF, 0x000000FF, 0x000000FF, arg5); - gDPLoadTLUT_pal256(gDisplayListHead++, gPortraitTLUTs[arg4]); - func_800452A4(gPortraitTextures[arg4], 0x00000020, 0x00000020); + gDPLoadTLUT_pal256(gDisplayListHead++, gPortraitTLUTs[characterId]); + rsp_load_texture(gPortraitTextures[characterId], 0x00000020, 0x00000020); if (arg7 != 0) { gSPDisplayList(gDisplayListHead++, D_0D0069F8); } else { @@ -3096,7 +3092,7 @@ void func_8004FDB4(f32 arg0, f32 arg1, s16 arg2, s16 arg3, s16 arg4, s32 arg5, s func_8004B35C(0x000000FF, 0x000000FF, 0x000000FF, arg5); gSPDisplayList(gDisplayListHead++, D_0D007CB8); gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTHudTypeCRankFont); - func_800452A4(gTextureHudTypeCRankFont[arg2], 0x00000010, 0x00000010); + rsp_load_texture(gTextureHudTypeCRankFont[arg2], 0x00000010, 0x00000010); if (arg7 != 0) { func_80042330((s32) (arg0 + 9.0f), (s32) (arg1 + 7.0f), 0U, 1.0f); } else { @@ -3373,7 +3369,7 @@ void func_80050C68(void) { func_800507D8(var_s1, &sp88, &sp84); gSPDisplayList(gDisplayListHead++, D_0D007DB8); gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTPortraitBombKartAndQuestionMark); - func_800452A4(gTexturePortraitBombKart, 0x00000020, 0x00000020); + rsp_load_texture(gTexturePortraitBombKart, 0x00000020, 0x00000020); func_80042330(sp88 + 0x20, sp84 + 0x12, 0U, 0.6f); gSPDisplayList(gDisplayListHead++, D_0D0069E0); } @@ -3394,7 +3390,7 @@ void func_80050E34(s32 playerId, s32 arg1) { s32 characterId; s32 spB8; s32 temp_v0_2; - struct_80165C18_entry *object; + Objects *object; Player *player; player = &gPlayerOne[playerId]; @@ -3418,34 +3414,34 @@ void func_80050E34(s32 playerId, s32 arg1) { if ((gCurrentCourseId == COURSE_YOSHI_VALLEY) && (lapCount < 3)) { gSPDisplayList(gDisplayListHead++, D_0D007DB8); gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTPortraitBombKartAndQuestionMark); - func_800452A4(gTexturePortraitQuestionMark, 0x00000020, 0x00000020); - object = &D_80165C18[objectIndex]; + rsp_load_texture(gTexturePortraitQuestionMark, 0x00000020, 0x00000020); + object = &gObjectList[objectIndex]; object->pos[0] = object->unk_028[0] + ((f32) (spD0 + 0x20)); object->pos[1] = object->unk_028[1] + ((f32) (spC4 + spCC)); object->pos[2] = object->unk_028[2]; - func_80042E00(object->pos, object->unk_0BE, object->sizeScaling); + rsp_set_matrix_transformation(object->pos, object->unk_0BE, object->sizeScaling); gSPDisplayList(gDisplayListHead++, D_0D0069E0); } else { gDPLoadTLUT_pal256(gDisplayListHead++, gPortraitTLUTs[characterId]); gSPDisplayList(gDisplayListHead++, D_0D007DB8); - if (player->unk_0BC & 0x200) { - func_8004B614((s32) D_801656C0, (s32) D_801656D0, (s32) D_801656E0, 0x00000080, 0x00000080, 0x00000080, (s32) D_80165C18[objectIndex].unk_0A0); + if (player->effects & 0x200) { + func_8004B614((s32) D_801656C0, (s32) D_801656D0, (s32) D_801656E0, 0x00000080, 0x00000080, 0x00000080, (s32) gObjectList[objectIndex].unk_0A0); } else { - func_8004B2BC((s32) D_80165C18[objectIndex].unk_0A0); + set_transparency((s32) gObjectList[objectIndex].unk_0A0); } - func_800452A4(gPortraitTextures[characterId], 0x00000020, 0x00000020); - object = &D_80165C18[objectIndex]; + rsp_load_texture(gPortraitTextures[characterId], 0x00000020, 0x00000020); + object = &gObjectList[objectIndex]; object->pos[0] = object->unk_028[0] + ((f32) (spD0 + 0x20)); object->pos[1] = object->unk_028[1] + ((f32) (spC4 + spCC)); object->pos[2] = object->unk_028[2]; - func_80042E00(object->pos, object->unk_0BE, object->sizeScaling); + rsp_set_matrix_transformation(object->pos, object->unk_0BE, object->sizeScaling); if (spB8 != 0) { gSPDisplayList(gDisplayListHead++, D_0D0069F8); } else { gSPDisplayList(gDisplayListHead++, D_0D0069E0); } gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTHudTypeCRankTinyFont); - func_800452A4(gTextureHudTypeCRankTinyFont[arg1 + 1], 8, 8); + rsp_load_texture(gTextureHudTypeCRankTinyFont[arg1 + 1], 8, 8); if (spB8 != 0) { func_80042330(spD0 + 0x26, (spC4 + spCC) + 4, 0U, 1.0f); } else { @@ -3456,7 +3452,7 @@ void func_80050E34(s32 playerId, s32 arg1) { gSPDisplayList(gDisplayListHead++, D_0D007A40); func_8004B35C(D_8018D3E4, D_8018D3E8, D_8018D3EC, 0x000000FF); func_80044924(gTextureCharacterPortraitBorder, 0x00000020, 0x00000020); - func_80042E00(object->pos, object->unk_0BE, object->sizeScaling); + rsp_set_matrix_transformation(object->pos, object->unk_0BE, object->sizeScaling); gSPDisplayList(gDisplayListHead++, D_0D0069E0); } } @@ -3517,7 +3513,7 @@ GLOBAL_ASM("asm/non_matchings/hud_renderer/func_800514BC.s") void func_80051638(UNUSED s32 arg0) { s32 someIndex; s32 leafIndex; - struct_80165C18_entry *object; + Objects *object; gSPDisplayList(gDisplayListHead++, D_0D0079C8); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BOTH); @@ -3525,9 +3521,9 @@ void func_80051638(UNUSED s32 arg0) { for(someIndex = 0; someIndex < D_8018C970_SIZE; someIndex++) { leafIndex = D_8018C970[someIndex]; if (leafIndex != -1) { - object = &D_80165C18[leafIndex]; - if ((object->unk_0A6 >= 2) && (object->unk_0D5 == 7) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { - func_80043104(leafIndex); + object = &gObjectList[leafIndex]; + if ((object->state >= 2) && (object->unk_0D5 == 7) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { + rsp_set_matrix_gObjectList(leafIndex); gSPDisplayList(gDisplayListHead++, D_0D0069C8); } } @@ -3545,8 +3541,8 @@ void func_800517C8(void) { func_80044F34(D_0D0293D8, 0x10, 0x10); for (someIndex = 0; someIndex < NUM_SNOWFLAKES; someIndex++) { snowflakeIndex = D_8018C1B0[someIndex]; - if (D_80165C18[snowflakeIndex].unk_0A6 >= 2) { - func_80043104(snowflakeIndex); + if (gObjectList[snowflakeIndex].state >= 2) { + rsp_set_matrix_gObjectList(snowflakeIndex); gSPDisplayList(gDisplayListHead++, D_0D006980); } } @@ -3555,16 +3551,16 @@ void func_800517C8(void) { extern u8 D_8018D228; -void func_800518F8(s32 arg0, s16 arg1, s16 arg2) { +void func_800518F8(s32 objectIndex, s16 arg1, s16 arg2) { s32 pad[1]; - if (D_80165C18[arg0].unk_054 & 0x10) { - if (D_8018D228 != D_80165C18[arg0].unk_0D5) { - D_8018D228 = D_80165C18[arg0].unk_0D5; - func_80044DA0(D_80165C18[arg0].activeTexture, D_80165C18[arg0].textureWidth, D_80165C18[arg0].textureHeight); + if (gObjectList[objectIndex].unk_054 & 0x10) { + if (D_8018D228 != gObjectList[objectIndex].unk_0D5) { + D_8018D228 = gObjectList[objectIndex].unk_0D5; + func_80044DA0(gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].textureWidth, gObjectList[objectIndex].textureHeight); } - func_80042330(arg1, arg2, 0U, D_80165C18[arg0].sizeScaling); - gSPVertex(gDisplayListHead++, D_80165C18[arg0].unk_074, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + func_80042330(arg1, arg2, 0U, gObjectList[objectIndex].sizeScaling); + gSPVertex(gDisplayListHead++, gObjectList[objectIndex].vertex, 4, 0); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); } } @@ -3574,13 +3570,13 @@ void func_800518F8(s32 arg0, s16 arg1, s16 arg2) { ? func_80044DA0(s32 *, u8, u8); /* extern */ extern u8 D_8018D228; -void func_800519D4(s32 arg0, s16 arg1, s16 arg2) { +void func_800519D4(s32 objectIndex, s16 arg1, s16 arg2) { Gfx *temp_v0_2; Gfx *temp_v0_3; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; u8 temp_v0; - temp_s0 = &D_80165C18[arg0]; + temp_s0 = &gObjectList[objectIndex]; if (temp_s0->unk_054 & 0x10) { temp_v0 = temp_s0->unk_0D5; if (D_8018D228 != temp_v0) { @@ -3592,10 +3588,10 @@ void func_800519D4(s32 arg0, s16 arg1, s16 arg2) { temp_v0_2 = gDisplayListHead; gDisplayListHead = temp_v0_2 + 8; temp_v0_2->words.w0 = 0x0400103F; - temp_v0_2->words.w1 = (u32) temp_s0->unk_074; + temp_v0_2->words.w1 = (u32) temp_s0->vertex; temp_v0_3 = gDisplayListHead; gDisplayListHead = temp_v0_3 + 8; - temp_v0_3->words.w1 = (u32) D_0D006940; + temp_v0_3->words.w1 = (u32) common_rectangle_display; temp_v0_3->words.w0 = 0x06000000; } } @@ -3621,8 +3617,8 @@ void func_80051ABC(s16 arg0, s32 arg1) { s32 temp_a0_2; s32 var_s0; s32 var_s0_2; - struct_80165C18_entry *temp_v0; - struct_80165C18_entry *temp_v0_2; + Objects *temp_v0; + Objects *temp_v0_2; D_8018D228 = 0xFF; temp_v1 = gDisplayListHead; @@ -3636,7 +3632,7 @@ void func_80051ABC(s16 arg0, s32 arg1) { var_s1 = (arg1 * 4) + &D_8018CC80; do { temp_a0 = *var_s1; - temp_v0 = &D_80165C18[temp_a0]; + temp_v0 = &gObjectList[temp_a0]; func_800519D4(temp_a0, temp_v0->unk_09C, (s16) (arg0 - temp_v0->unk_09E)); var_s0 += 1; var_s1 += 4; @@ -3649,7 +3645,7 @@ void func_80051ABC(s16 arg0, s32 arg1) { var_s1_2 = (arg1 * 4) + &D_8018CC80; do { temp_a0_2 = *var_s1_2; - temp_v0_2 = &D_80165C18[temp_a0_2]; + temp_v0_2 = &gObjectList[temp_a0_2]; func_800518F8(temp_a0_2, temp_v0_2->unk_09C, (s16) (arg0 - temp_v0_2->unk_09E)); var_s0_2 += 1; var_s1_2 += 4; @@ -3683,8 +3679,8 @@ void func_80051C60(s16 arg0, s32 arg1) { s32 temp_a0_2; s32 var_s0; s32 var_s0_2; - struct_80165C18_entry *temp_v0_2; - struct_80165C18_entry *temp_v0_3; + Objects *temp_v0_2; + Objects *temp_v0_3; if (D_801658FE == 0) { temp_v0 = gCurrentCourseId; @@ -3714,7 +3710,7 @@ void func_80051C60(s16 arg0, s32 arg1) { var_s1 = (arg1 * 4) + &D_8018CC80; do { temp_a0 = *var_s1; - temp_v0_2 = &D_80165C18[temp_a0]; + temp_v0_2 = &gObjectList[temp_a0]; func_800519D4(temp_a0, temp_v0_2->unk_09C, (s16) ((s32) (var_s5 - temp_v0_2->unk_09E) / 2)); var_s0 += 1; var_s1 += 4; @@ -3727,7 +3723,7 @@ void func_80051C60(s16 arg0, s32 arg1) { var_s1_2 = (arg1 * 4) + &D_8018CC80; do { temp_a0_2 = *var_s1_2; - temp_v0_3 = &D_80165C18[temp_a0_2]; + temp_v0_3 = &gObjectList[temp_a0_2]; func_800518F8(temp_a0_2, temp_v0_3->unk_09C, (s16) ((s32) (var_s5 - temp_v0_3->unk_09E) / 2)); var_s0_2 += 1; var_s1_2 += 4; @@ -3853,18 +3849,18 @@ extern Light D_800E4610; /* unable to generate in void func_8005217C(s32 arg0) { s32 sp50; - struct_80165C18_entry *sp18; + Objects *sp18; s32 temp_a3; - struct_80165C18_entry *temp_v1; + Objects *temp_v1; temp_a3 = *D_80183F28; - temp_v1 = &D_80165C18[temp_a3]; - if (temp_v1->unk_0A6 >= 2) { + temp_v1 = &gObjectList[temp_a3]; + if (temp_v1->state >= 2) { sp18 = temp_v1; sp50 = temp_a3; - if (func_8007223C(temp_a3, 0x00000010) != 0) { + if (is_obj_index_flag_unk_054_active(temp_a3, 0x00000010) != 0) { sp50 = temp_a3; - func_80042E00(temp_v1->pos, (s16 *) temp_v1->unk_0BE, temp_v1->sizeScaling); + rsp_set_matrix_transformation(temp_v1->pos, (s16 *) temp_v1->unk_0BE, temp_v1->sizeScaling); func_800520C0(sp50); gSPDisplayList(gDisplayListHead++, D_0D007828); @@ -3940,15 +3936,15 @@ void func_8005217C(s32 arg0) { GLOBAL_ASM("asm/non_matchings/hud_renderer/func_8005217C.s") #endif -void func_800523B8(s32 arg0, s32 arg1, u32 arg2) { +void func_800523B8(s32 objectIndex, s32 arg1, u32 arg2) { UNUSED s32 pad[2]; - struct_80165C18_entry *temp_v1; + Objects *temp_v1; Camera *camera = &camera1[arg1]; - temp_v1 = &D_80165C18[arg0]; + temp_v1 = &gObjectList[objectIndex]; temp_v1->unk_0B2[1] = func_800418AC(temp_v1->pos[0], temp_v1->pos[2], camera->pos); - func_800484BC(temp_v1->pos, temp_v1->unk_0B2, temp_v1->sizeScaling, temp_v1->unk_0A0, (u8 *) temp_v1->activeTLUT, temp_v1->activeTexture, temp_v1->unk_074, 0x00000030, 0x00000028, 0x00000030, 0x00000028); - if ((func_8007223C(arg0, 0x00000020) != 0) && (arg2 < 0x15F91U)) { + func_800484BC(temp_v1->pos, temp_v1->unk_0B2, temp_v1->sizeScaling, temp_v1->unk_0A0, (u8 *) temp_v1->activeTLUT, temp_v1->activeTexture, temp_v1->vertex, 0x00000030, 0x00000028, 0x00000030, 0x00000028); + if ((is_obj_index_flag_unk_054_active(objectIndex, 0x00000020) != 0) && (arg2 < 0x15F91U)) { func_8004A630(&D_8018C830, temp_v1->pos, 0.4f); } } @@ -3960,9 +3956,9 @@ void func_800524B4(s32 arg0) { for (someIndex = 0; someIndex < 10; someIndex++) { objectIndex = D_8018BFA8[someIndex]; - if (D_80165C18[objectIndex].unk_0A6 >= 2) { + if (gObjectList[objectIndex].state >= 2) { temp_s2 = func_8008A364(objectIndex, arg0, 0x4000U, 0x00000320); - if (func_8007223C(objectIndex, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { func_800523B8(objectIndex, arg0, temp_s2); } } @@ -3971,7 +3967,7 @@ void func_800524B4(s32 arg0) { #ifdef MIPS_TO_C //generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b -extern s16 D_80183E80; +extern Vec3su D_80183E80; extern s32 D_8018C3F0; extern ? D_8018C490; extern s32 D_8018C630; @@ -3988,11 +3984,11 @@ void func_80052590(s32 cameraId) { s32 *var_s1_2; s32 temp_v0; s32 temp_v0_2; - struct_80165C18_entry *temp_s0; - struct_80165C18_entry *temp_s0_2; - struct_80165C18_entry *temp_s0_3; + Objects *temp_s0; + Objects *temp_s0_2; + Objects *temp_s0_3; - temp_s0 = &D_80165C18[*D_80183EA0]; + temp_s0 = &gObjectList[*D_80183EA0]; temp_s7 = &camera1[cameraId]; func_80046F60((s32) temp_s0->activeTLUT, (s32) temp_s0->activeTexture, 0x00000020, 0x00000040, 5); D_80183E80.unk0 = (s16) temp_s0->unk_0B2[0]; @@ -4002,8 +3998,8 @@ void func_80052590(s32 cameraId) { do { temp_v0 = *var_s1; if (temp_v0 != -1) { - temp_s0_2 = &D_80165C18[temp_v0]; - if ((temp_s0_2->unk_0A6 >= 2) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { + temp_s0_2 = &gObjectList[temp_v0]; + if ((temp_s0_2->state >= 2) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { D_80183E80.unk2 = func_800418AC(temp_s0_2->pos[0], temp_s0_2->pos[2], temp_s7->pos); func_800431B0(temp_s0_2->pos, &D_80183E80, temp_s0_2->sizeScaling, D_0D0062B0); } @@ -4016,8 +4012,8 @@ void func_80052590(s32 cameraId) { do { temp_v0_2 = *var_s1_2; if (temp_v0_2 != -1) { - temp_s0_3 = &D_80165C18[temp_v0_2]; - if ((temp_s0_3->unk_0A6 >= 2) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { + temp_s0_3 = &gObjectList[temp_v0_2]; + if ((temp_s0_3->state >= 2) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { D_80183E80.unk2 = func_800418AC(temp_s0_3->pos[0], temp_s0_3->pos[2], temp_s7->pos); func_800431B0(temp_s0_3->pos, &D_80183E80, temp_s0_3->sizeScaling, D_0D0062B0); } @@ -4036,13 +4032,13 @@ GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80052590.s") void func_800527D8(s32 cameraId) { s32 objectIndex; - struct_80165C18_entry *object; + Objects *object; objectIndex = D_80183EA0[1]; func_8008A364(objectIndex, cameraId, 0x5555U, 0x00000320); - if (func_8007223C(objectIndex, 0x00040000) != 0) { - object = &D_80165C18[objectIndex]; - if (object->unk_0A6 >= 2) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { + object = &gObjectList[objectIndex]; + if (object->state >= 2) { func_80043220(object->pos, object->unk_0B2, object->sizeScaling, object->unk_070); } } @@ -4089,8 +4085,8 @@ void func_800528EC(s32 arg0) { s32 *var_s3_2; s32 temp_v0_11; s32 temp_v0_8; - struct_80165C18_entry *temp_v1; - struct_80165C18_entry *temp_v1_2; + Objects *temp_v1; + Objects *temp_v1_2; temp_v0 = gDisplayListHead; D_80183E80.unk0 = (s16) D_8016582C.unk0; @@ -4130,9 +4126,9 @@ void func_800528EC(s32 arg0) { do { temp_v0_8 = *var_s3_2; if (temp_v0_8 != -1) { - temp_v1 = &D_80165C18[temp_v0_8]; - if (temp_v1->unk_0A6 > 0) { - func_80042E00(temp_v1->pos, &D_80183E80, temp_v1->sizeScaling); + temp_v1 = &gObjectList[temp_v0_8]; + if (temp_v1->state > 0) { + rsp_set_matrix_transformation(temp_v1->pos, &D_80183E80, temp_v1->sizeScaling); temp_v0_9 = gDisplayListHead; gDisplayListHead = temp_v0_9 + 8; temp_v0_9->words.w1 = (u32) D_0D005BD0; @@ -4149,9 +4145,9 @@ void func_800528EC(s32 arg0) { do { temp_v0_11 = *var_s3; if (temp_v0_11 != -1) { - temp_v1_2 = &D_80165C18[temp_v0_11]; - if ((temp_v1_2->unk_0A6 > 0) && (arg0 == temp_v1_2->unk_084[7]) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { - func_80042E00(temp_v1_2->pos, &D_80183E80, temp_v1_2->sizeScaling); + temp_v1_2 = &gObjectList[temp_v0_11]; + if ((temp_v1_2->state > 0) && (arg0 == temp_v1_2->unk_084[7]) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { + rsp_set_matrix_transformation(temp_v1_2->pos, &D_80183E80, temp_v1_2->sizeScaling); temp_v0_12 = gDisplayListHead; gDisplayListHead = temp_v0_12 + 8; temp_v0_12->words.w1 = (u32) D_0D005BD0; @@ -4264,7 +4260,7 @@ void func_80052E30(s32 arg0) { D_80183E80->unk0 = 0; D_80183E80->unk2 = 0; D_80183E80->unk4 = 0; - if (D_8018EDF3 == 1) { + if (gPlayerCount == 1) { var_s0 = 0; if (gPlayerCountSelection1 > 0) { do { @@ -4283,19 +4279,19 @@ void func_80052F20(s32 cameraId) { Camera *sp44; s32 someIndex; s32 objectIndex; - struct_80165C18_entry *temp_s1; + Objects *temp_s1; sp44 = &camera1[cameraId]; func_80046E60(d_course_frappe_snowland_snow_tlut, d_course_frappe_snowland_snow, 0x00000020, 0x00000020); for (someIndex = 0; someIndex < D_8018C3F0_SIZE; someIndex++) { objectIndex = D_8018C3F0[someIndex]; if (objectIndex != -1) { - temp_s1 = &D_80165C18[objectIndex]; - if (temp_s1->unk_0A6 > 0) { + temp_s1 = &gObjectList[objectIndex]; + if (temp_s1->state > 0) { func_8008A364(objectIndex, cameraId, 0x2AABU, 0x000001F4); - if (func_8007223C(objectIndex, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { temp_s1->unk_0B2[1] = func_800418AC(temp_s1->pos[0], temp_s1->pos[2], sp44->pos); - func_80043104(objectIndex); + rsp_set_matrix_gObjectList(objectIndex); gSPDisplayList(gDisplayListHead++, D_0D0069E0); } } @@ -4306,25 +4302,25 @@ void func_80052F20(s32 cameraId) { void func_8005309C(s32 cameraId) { s32 var_s4; - s32 temp_s1; + s32 objectIndex; Camera *camera; camera = &camera1[cameraId]; for (var_s4 = 0; var_s4 < 0x13; var_s4++) { - temp_s1 = D_80183EA0[var_s4]; - if (D_80165C18[temp_s1].unk_0A6 >= 2) { - func_8008A364(temp_s1, cameraId, 0x2AABU, 0x00000258); - if (func_8007223C(temp_s1, 0x00040000) != 0) { - D_80183E80[0] = (s16) D_80165C18[temp_s1].unk_0B2[0]; - D_80183E80[1] = func_800418AC(D_80165C18[temp_s1].pos[0], D_80165C18[temp_s1].pos[2], camera->pos); - D_80183E80[2] = (u16) D_80165C18[temp_s1].unk_0B2[2]; - if (func_8007223C(temp_s1, 0x00000010) != 0) { - func_800480B4(D_80165C18[temp_s1].pos, (u16 *) D_80183E80, D_80165C18[temp_s1].sizeScaling, (u8 *) D_80165C18[temp_s1].activeTLUT, D_80165C18[temp_s1].activeTexture, D_80165C18[temp_s1].unk_074, 0x00000040, 0x00000040, 0x00000040, 0x00000020); + objectIndex = D_80183EA0[var_s4]; + if (gObjectList[objectIndex].state >= 2) { + func_8008A364(objectIndex, cameraId, 0x2AABU, 0x00000258); + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { + D_80183E80[0] = (s16) gObjectList[objectIndex].unk_0B2[0]; + D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); + D_80183E80[2] = (u16) gObjectList[objectIndex].unk_0B2[2]; + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000010) != 0) { + func_800480B4(gObjectList[objectIndex].pos, (u16 *) D_80183E80, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 0x00000040, 0x00000040, 0x00000040, 0x00000020); } - temp_s1 = D_80183F28[var_s4]; - D_80183E80[0] = (s16) D_80165C18[temp_s1].unk_0B2[0]; - D_80183E80[2] = (u16) D_80165C18[temp_s1].unk_0B2[2]; - func_800480B4(D_80165C18[temp_s1].pos, (u16 *) D_80183E80, D_80165C18[temp_s1].sizeScaling, (u8 *) D_80165C18[temp_s1].activeTLUT, D_80165C18[temp_s1].activeTexture, D_80165C18[temp_s1].unk_074, 0x00000040, 0x00000040, 0x00000040, 0x00000020); + objectIndex = D_80183F28[var_s4]; + D_80183E80[0] = (s16) gObjectList[objectIndex].unk_0B2[0]; + D_80183E80[2] = (u16) gObjectList[objectIndex].unk_0B2[2]; + func_800480B4(gObjectList[objectIndex].pos, (u16 *) D_80183E80, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 0x00000040, 0x00000040, 0x00000040, 0x00000020); } } } @@ -4341,19 +4337,19 @@ void func_800532A4(s32 cameraId) { f32 var_f0; f32 var_f2; s32 objectIndex; - struct_80165C18_entry *object; + Objects *object; objectIndex = D_80183DB8[cameraId]; camera = &camera1[cameraId]; - if (func_8007223C(objectIndex, 0x00000010) != 0) { - object = &D_80165C18[objectIndex]; + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000010) != 0) { + object = &gObjectList[objectIndex]; object->unk_0B2[0] = 0; object->unk_0B2[1] = func_800418AC(object->pos[0], object->pos[2], camera->pos); object->unk_0B2[2] = 0x8000; if (func_80072354(objectIndex, 2) != 0) { - func_800480B4(object->pos, object->unk_0B2, object->sizeScaling, (u8 *) object->activeTLUT, object->activeTexture, object->unk_074, (s32) object->textureWidth, (s32) object->textureHeight, (s32) object->textureWidth, (s32) object->textureHeight / 2); + func_800480B4(object->pos, object->unk_0B2, object->sizeScaling, (u8 *) object->activeTLUT, object->activeTexture, object->vertex, (s32) object->textureWidth, (s32) object->textureHeight, (s32) object->textureWidth, (s32) object->textureHeight / 2); } else { - func_800485C4(object->pos, object->unk_0B2, object->sizeScaling, (s32) object->unk_0A0, (u8 *) object->activeTLUT, object->activeTexture, object->unk_074, (s32) object->textureWidth, (s32) object->textureHeight, (s32) object->textureWidth, (s32) object->textureHeight / 2); + func_800485C4(object->pos, object->unk_0B2, object->sizeScaling, (s32) object->unk_0A0, (u8 *) object->activeTLUT, object->activeTexture, object->vertex, (s32) object->textureWidth, (s32) object->textureHeight, (s32) object->textureWidth, (s32) object->textureHeight / 2); } if (gScreenModeSelection == 0) { var_f0 = object->pos[0] - D_8018CF14->pos[0]; @@ -4388,7 +4384,7 @@ GLOBAL_ASM("asm/non_matchings/hud_renderer/func_800534A4.s") void func_800534E8(s32 objectIndex) { // Why these don't just use `gSPSetLights1` calls... - switch (D_80165C18[objectIndex].unk_0A4) { + switch (gObjectList[objectIndex].type) { // hmm very strange 80165C18 case 0: gSPLight(gDisplayListHead++, &D_800E4638.l[0], LIGHT_1); gSPLight(gDisplayListHead++, &D_800E4638.a, LIGHT_2); @@ -4415,15 +4411,15 @@ void func_800534E8(s32 objectIndex) { } void func_800536C8(s32 objectIndex) { - if ((D_80165C18[objectIndex].unk_0A6 >= 2) && (func_80072354(objectIndex, 0x00000040) != 0)) { + if ((gObjectList[objectIndex].state >= 2) && (func_80072354(objectIndex, 0x00000040) != 0)) { func_8004A7AC(objectIndex, 1.75f); - func_80042E00(D_80165C18[objectIndex].pos, D_80165C18[objectIndex].unk_0B2, D_80165C18[objectIndex].sizeScaling); + rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_0B2, gObjectList[objectIndex].sizeScaling); func_800534E8(objectIndex); gSPDisplayList(gDisplayListHead++, D_0D007828); gDPSetTextureLUT(gDisplayListHead++, G_TT_RGBA16); gDPLoadTLUT_pal256(gDisplayListHead++, d_course_bowsers_castle_thwomp_tlut); - func_8004544C(D_80165C18[objectIndex].activeTexture, 0x00000010, 0x00000040, 4); - gSPDisplayList(gDisplayListHead++, D_80165C18[objectIndex].unk_070); + rsp_load_texture_mask(gObjectList[objectIndex].activeTexture, 0x00000010, 0x00000040, 4); + gSPDisplayList(gDisplayListHead++, gObjectList[objectIndex].unk_070); } } @@ -4462,8 +4458,8 @@ void func_80053870(s32 cameraId) { s32 temp_s1_3; s32 temp_s1_4; s32 var_s2; - struct_80165C18_entry *temp_s0; - struct_80165C18_entry *temp_s0_2; + Objects *temp_s0; + Objects *temp_s0_2; u8 temp_v0; sp84 = &camera1[cameraId]; @@ -4473,7 +4469,7 @@ void func_80053870(s32 cameraId) { if (D_80165750 > 0) { do { temp_s1 = *var_s0; - func_800721E8(temp_s1, 0x00070000); + set_object_flag_unk_054_false(temp_s1, 0x00070000); func_800722CC(temp_s1, 0x00000110); var_s2 += 1; var_s0 += 4; @@ -4486,7 +4482,7 @@ void func_80053870(s32 cameraId) { if (D_80165750 > 0) { do { temp_s1_2 = *var_s0_2; - temp_v0 = D_80165C18[temp_s1_2].unk_0DF; + temp_v0 = gObjectList[temp_s1_2].unk_0DF; if (gGamestate != 9) { temp_v0_2 = D_8018CF68[cameraId]; if ((temp_v0_2 >= (s16) (temp_v0 - 1)) && ((s16) (temp_v0 + 1) >= temp_v0_2) && (func_8008A140(temp_s1_2, sp84, 0x8000U) != 0)) { @@ -4533,10 +4529,10 @@ void func_80053870(s32 cameraId) { do { temp_s1_3 = *var_a3; if (temp_s1_3 != -1) { - temp_s0 = &D_80165C18[temp_s1_3]; - if ((temp_s0->unk_0A6 > 0) && (temp_s0->unk_0D5 == 3) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { + temp_s0 = &gObjectList[temp_s1_3]; + if ((temp_s0->state > 0) && (temp_s0->unk_0D5 == 3) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { sp44 = var_a3; - func_80042E00(temp_s0->pos, temp_s0->unk_0B2, temp_s0->sizeScaling); + rsp_set_matrix_transformation(temp_s0->pos, temp_s0->unk_0B2, temp_s0->sizeScaling); temp_v0_10 = gDisplayListHead; gDisplayListHead = temp_v0_10 + 8; temp_v0_10->words.w0 = 0x04000C2F; @@ -4573,8 +4569,8 @@ void func_80053870(s32 cameraId) { do { temp_s1_4 = *var_s3; if (temp_s1_4 != -1) { - temp_s0_2 = &D_80165C18[temp_s1_4]; - if ((temp_s0_2->unk_0A6 >= 2) && (temp_s0_2->unk_0D5 == 2) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { + temp_s0_2 = &gObjectList[temp_s1_4]; + if ((temp_s0_2->state >= 2) && (temp_s0_2->unk_0D5 == 2) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { func_8004B138(0x000000FF, 0x000000FF, 0x000000FF, (s32) temp_s0_2->unk_0A0); D_80183E80->unk2 = func_800418AC(temp_s0_2->pos[0], temp_s0_2->pos[2], sp84->pos); func_800431B0(temp_s0_2->pos, D_80183E80, temp_s0_2->sizeScaling, D_0D005AE0); @@ -4588,15 +4584,15 @@ GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80053870.s") #endif void func_80053D74(s32 objectIndex, UNUSED s32 arg1, s32 vertexIndex) { - struct_80165C18_entry *temp_v0; + Objects *temp_v0; if (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX) { - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; D_80183E80[2] = (s16) (temp_v0->unk_084[6] + 0x8000); - func_80042E00(temp_v0->pos, (u16 *) D_80183E80, temp_v0->sizeScaling); + rsp_set_matrix_transformation(temp_v0->pos, (u16 *) D_80183E80, temp_v0->sizeScaling); func_8004B1C8((s32) temp_v0->unk_084[0], (s32) temp_v0->unk_084[1], (s32) temp_v0->unk_084[2], (s32) temp_v0->unk_084[3], (s32) temp_v0->unk_084[4], (s32) temp_v0->unk_084[5], (s32) temp_v0->unk_0A0); gSPVertex(gDisplayListHead++, &D_0D0060B0[vertexIndex], 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); } } @@ -4606,25 +4602,25 @@ extern u8* D_8018D4C0; void func_80053E6C(s32 arg0) { s32 var_s1; - s32 thing; + s32 objectIndex; gSPDisplayList(gDisplayListHead++, D_0D007E98); gDPLoadTLUT_pal256(gDisplayListHead++, D_800E52D0); func_8004B614(0, 0, 0, 0, 0, 0, 0); D_80183E80[0] = 0; D_80183E80[1] = 0x8000; - func_800452A4(D_8018D4BC, 0x40, 0x20); + rsp_load_texture(D_8018D4BC, 0x40, 0x20); for (var_s1 = 0; var_s1 < D_80165738; var_s1++) { - thing = D_8018C630[var_s1]; - if ((thing != -1) && (D_80165C18[thing].unk_0A6 >= 2)) { - func_80053D74(thing, arg0, 0); + objectIndex = D_8018C630[var_s1]; + if ((objectIndex != -1) && (gObjectList[objectIndex].state >= 2)) { + func_80053D74(objectIndex, arg0, 0); } } - func_800452A4(D_8018D4C0, 0x40, 0x20); + rsp_load_texture(D_8018D4C0, 0x40, 0x20); for (var_s1 = 0; var_s1 < D_80165738; var_s1++) { - thing = D_8018C630[var_s1]; - if ((thing != -1) && (D_80165C18[thing].unk_0A6 >= 2)) { - func_80053D74(thing, arg0, 4); + objectIndex = D_8018C630[var_s1]; + if ((objectIndex != -1) && (gObjectList[objectIndex].state >= 2)) { + func_80053D74(objectIndex, arg0, 4); } } } @@ -4635,10 +4631,10 @@ void func_800540CC(s32 objectIndex, s32 cameraId) { camera = &camera1[cameraId]; if (objectIndex != -1) { - if ((D_80165C18[objectIndex].unk_0A6 >= 2) && (D_80165C18[objectIndex].unk_0D5 == 1) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { - func_8004B1C8((s32) D_80165C18[objectIndex].unk_0A4, (s32) D_80165C18[objectIndex].unk_0A4, (s32) D_80165C18[objectIndex].unk_0A4, 0, 0, 0, (s32) D_80165C18[objectIndex].unk_0A0); - D_80183E80[1] = func_800418AC(D_80165C18[objectIndex].pos[0], D_80165C18[objectIndex].pos[2], camera->pos); - func_800431B0(D_80165C18[objectIndex].pos, D_80183E80, D_80165C18[objectIndex].sizeScaling, D_0D005AE0); + if ((gObjectList[objectIndex].state >= 2) && (gObjectList[objectIndex].unk_0D5 == 1) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { + func_8004B1C8((s32) gObjectList[objectIndex].type, (s32) gObjectList[objectIndex].type, (s32) gObjectList[objectIndex].type, 0, 0, 0, (s32) gObjectList[objectIndex].unk_0A0); + D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); + func_800431B0(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling, D_0D005AE0); } } } @@ -4690,10 +4686,10 @@ void func_80054324(s32 objectIndex, s32 cameraId) { camera = &camera1[cameraId]; if (objectIndex != -1) { - if ((D_80165C18[objectIndex].unk_0A6 >= 2) && (D_80165C18[objectIndex].unk_0D5 == 6) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { - func_8004B1C8((s32) D_80165C18[objectIndex].unk_0A4, (s32) D_80165C18[objectIndex].unk_0A4, (s32) D_80165C18[objectIndex].unk_0A4, D_80165C18[objectIndex].unk_0A2, D_80165C18[objectIndex].unk_0A2, D_80165C18[objectIndex].unk_0A2, (s32) D_80165C18[objectIndex].unk_0A0); - D_80183E80[1] = func_800418AC(D_80165C18[objectIndex].pos[0], D_80165C18[objectIndex].pos[2], camera->pos); - func_800431B0(D_80165C18[objectIndex].pos, D_80183E80, D_80165C18[objectIndex].sizeScaling, D_0D005AE0); + if ((gObjectList[objectIndex].state >= 2) && (gObjectList[objectIndex].unk_0D5 == 6) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { + func_8004B1C8((s32) gObjectList[objectIndex].type, (s32) gObjectList[objectIndex].type, (s32) gObjectList[objectIndex].type, gObjectList[objectIndex].unk_0A2, gObjectList[objectIndex].unk_0A2, gObjectList[objectIndex].unk_0A2, (s32) gObjectList[objectIndex].unk_0A0); + D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); + func_800431B0(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling, D_0D005AE0); } } } @@ -4730,15 +4726,15 @@ void func_80054414(s32 cameraId) { void func_8005457C(s32 objectIndex, s32 cameraId) { Camera *camera; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; camera = &camera1[cameraId]; if (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX) { - temp_s0 = &D_80165C18[objectIndex]; + temp_s0 = &gObjectList[objectIndex]; if (temp_s0->unk_0D5 == 9) { - func_8004B72C(255, (s32) temp_s0->unk_0A4, 0, (s32) temp_s0->unk_0A2, 0, 0, (s32) temp_s0->unk_0A0); + func_8004B72C(255, (s32) temp_s0->type, 0, (s32) temp_s0->unk_0A2, 0, 0, (s32) temp_s0->unk_0A0); } else { - func_8004B138(255, (s32) temp_s0->unk_0A4, 0, (s32) temp_s0->unk_0A0); + func_8004B138(255, (s32) temp_s0->type, 0, (s32) temp_s0->unk_0A0); } D_80183E80[1] = func_800418AC(temp_s0->pos[0], temp_s0->pos[2], camera->pos); func_800431B0(temp_s0->pos, D_80183E80, temp_s0->sizeScaling, D_0D005AE0); @@ -4756,7 +4752,7 @@ void func_80054664(s32 cameraId) { D_80183E80[2] = 0x8000; for (var_s0 = 0; var_s0 < D_8018C1B0_SIZE; var_s0++) { objectIndex = D_8018C1B0[var_s0]; - if ((objectIndex != -1) && (D_80165C18[objectIndex].unk_0A6 >= 3)) { + if ((objectIndex != -1) && (gObjectList[objectIndex].state >= 3)) { func_8005457C(objectIndex, cameraId); } } @@ -4766,22 +4762,22 @@ void func_8005477C(s32 objectIndex, u8 arg1, Vec3f arg2) { if (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX) { switch (arg1) { /* irregular */ case 0: - func_8004B1C8(0x000000E6, 0x000000FF, 0x000000FF, 0, 0, 0x000000FF, (s32) D_80165C18[objectIndex].unk_0A0); + func_8004B1C8(0x000000E6, 0x000000FF, 0x000000FF, 0, 0, 0x000000FF, (s32) gObjectList[objectIndex].unk_0A0); break; case 1: - func_8004B1C8(0x000000FF, 0x000000FF, 0x00000096, 0x000000FF, 0, 0, (s32) D_80165C18[objectIndex].unk_0A0); + func_8004B1C8(0x000000FF, 0x000000FF, 0x00000096, 0x000000FF, 0, 0, (s32) gObjectList[objectIndex].unk_0A0); break; case 2: - func_8004B1C8(0x000000FF, 0x000000E6, 0x000000FF, 0x000000FF, 0, 0x00000096, (s32) D_80165C18[objectIndex].unk_0A0); + func_8004B1C8(0x000000FF, 0x000000E6, 0x000000FF, 0x000000FF, 0, 0x00000096, (s32) gObjectList[objectIndex].unk_0A0); break; case 3: - func_8004B1C8(0x000000FF, 0x000000FF, 0x0000001E, 0x000000FF, 0, 0, (s32) D_80165C18[objectIndex].unk_0A0); + func_8004B1C8(0x000000FF, 0x000000FF, 0x0000001E, 0x000000FF, 0, 0, (s32) gObjectList[objectIndex].unk_0A0); break; default: break; } - D_80183E80[1] = func_800418AC(D_80165C18[objectIndex].pos[0], D_80165C18[objectIndex].pos[2], arg2); - func_800431B0(D_80165C18[objectIndex].pos, D_80183E80, D_80165C18[objectIndex].sizeScaling, D_0D005AE0); + D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], arg2); + func_800431B0(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling, D_0D005AE0); } } @@ -4790,7 +4786,7 @@ void func_80054938(s32 cameraId) { Camera *sp54; s32 var_s0; s32 objectIndex; - struct_80165C18_entry *object; + Objects *object; sp54 = &camera1[cameraId]; gSPDisplayList(gDisplayListHead++, D_0D007AE0); @@ -4801,14 +4797,14 @@ void func_80054938(s32 cameraId) { for (var_s0 = 0; var_s0 < D_8018C870_SIZE; var_s0++) { objectIndex = D_8018C870[var_s0]; if (objectIndex != -1) { - object = &D_80165C18[objectIndex]; - if (object->unk_0A6 >= 2) { + object = &gObjectList[objectIndex]; + if (object->state >= 2) { if (object->unk_0D8 == 3) { func_8008A364(objectIndex, cameraId, 0x4000U, 0x00000514); } else { func_8008A364(objectIndex, cameraId, 0x4000U, 0x000001F4); } - if (func_8007223C(objectIndex, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { func_8005477C(objectIndex, object->unk_0D8, sp54->pos); } } @@ -4817,13 +4813,13 @@ void func_80054938(s32 cameraId) { } void func_80054AFC(s32 objectIndex, Vec3f arg1) { - D_80183E80[0] = func_800418E8(D_80165C18[objectIndex].pos[2], D_80165C18[objectIndex].pos[1], arg1); - D_80183E80[1] = func_800418AC(D_80165C18[objectIndex].pos[0], D_80165C18[objectIndex].pos[2], arg1); - D_80183E80[2] = (u16) D_80165C18[objectIndex].unk_0B2[2]; - func_8004B138((s32) D_80165C18[objectIndex].unk_084[0], (s32) D_80165C18[objectIndex].unk_084[1], (s32) D_80165C18[objectIndex].unk_084[2], (s32) D_80165C18[objectIndex].unk_0A0); - func_80042E00(D_80165C18[objectIndex].pos, (u16 *) D_80183E80, D_80165C18[objectIndex].sizeScaling); + D_80183E80[0] = func_800418E8(gObjectList[objectIndex].pos[2], gObjectList[objectIndex].pos[1], arg1); + D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], arg1); + D_80183E80[2] = (u16) gObjectList[objectIndex].unk_0B2[2]; + func_8004B138((s32) gObjectList[objectIndex].unk_084[0], (s32) gObjectList[objectIndex].unk_084[1], (s32) gObjectList[objectIndex].unk_084[2], (s32) gObjectList[objectIndex].unk_0A0); + rsp_set_matrix_transformation(gObjectList[objectIndex].pos, (u16 *) D_80183E80, gObjectList[objectIndex].sizeScaling); gSPVertex(gDisplayListHead++, D_0D005AE0, 4, 0); - gSPDisplayList(gDisplayListHead++, D_0D006940); + gSPDisplayList(gDisplayListHead++, common_rectangle_display); } #ifdef MIPS_TO_C @@ -4847,7 +4843,7 @@ void func_80054BE8(s32 cameraId) { var_s0 = D_8018C630; do { temp_a0 = *var_s0; - if ((temp_a0 != -1) && (D_80165C18[temp_a0].unk_0A6 >= 2)) { + if ((temp_a0 != -1) && (gObjectList[temp_a0].state >= 2)) { func_80054AFC(temp_a0, temp_s5->pos); } var_s0 += 4; @@ -4861,27 +4857,27 @@ void func_80054D00(s32 objectIndex, s32 cameraId) { Camera *camera; camera = &camera1[cameraId]; - if (D_80165C18[objectIndex].unk_0A6 >= 3) { + if (gObjectList[objectIndex].state >= 3) { func_8008A364(objectIndex, cameraId, 0x2AABU, 0x0000012C); - if (func_8007223C(objectIndex, 0x00040000) != 0) { - D_80183E80[0] = (s16) D_80165C18[objectIndex].unk_0B2[0]; - D_80183E80[1] = func_800418AC(D_80165C18[objectIndex].pos[0], D_80165C18[objectIndex].pos[2], camera->pos); - D_80183E80[2] = (u16) D_80165C18[objectIndex].unk_0B2[2]; - func_80048130(D_80165C18[objectIndex].pos, (u16 *) D_80183E80, D_80165C18[objectIndex].sizeScaling, (u8 *) D_80165C18[objectIndex].activeTLUT, D_80165C18[objectIndex].activeTexture, D_0D0062B0, 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5); + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { + D_80183E80[0] = (s16) gObjectList[objectIndex].unk_0B2[0]; + D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); + D_80183E80[2] = (u16) gObjectList[objectIndex].unk_0B2[2]; + func_80048130(gObjectList[objectIndex].pos, (u16 *) D_80183E80, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, D_0D0062B0, 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5); } } } void func_80054E10(s32 objectIndex) { - if (D_80165C18[objectIndex].unk_0A6 > 0) { - if (func_8007223C(objectIndex, 0x00800000) != 0) { - D_80183E50[0] = D_80165C18[objectIndex].pos[0]; - D_80183E50[1] = D_80165C18[objectIndex].unk_044 + 0.8; - D_80183E50[2] = D_80165C18[objectIndex].pos[2]; - D_80183E70[0] = D_80165C18[objectIndex].unk_038[0]; - D_80183E70[1] = D_80165C18[objectIndex].unk_038[1]; - D_80183E70[2] = D_80165C18[objectIndex].unk_038[2]; - func_8004A9B8(D_80165C18[objectIndex].sizeScaling); + if (gObjectList[objectIndex].state > 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00800000) != 0) { + D_80183E50[0] = gObjectList[objectIndex].pos[0]; + D_80183E50[1] = gObjectList[objectIndex].unk_044 + 0.8; + D_80183E50[2] = gObjectList[objectIndex].pos[2]; + D_80183E70[0] = gObjectList[objectIndex].unk_038[0]; + D_80183E70[1] = gObjectList[objectIndex].unk_038[1]; + D_80183E70[2] = gObjectList[objectIndex].unk_038[2]; + func_8004A9B8(gObjectList[objectIndex].sizeScaling); } } } @@ -4899,19 +4895,19 @@ void func_80054F04(s32 cameraId) { s32 var_s2; s32 objectIndex; Camera *sp44; - struct_80165C18_entry * object; + Objects * object; sp44 = &camera1[cameraId]; gSPDisplayList(gDisplayListHead++, D_0D0079C8); func_80043D50(d_course_moo_moo_farm_mole_dirt, 0x00000010, 0x00000010); for (var_s2 = 0; var_s2 < D_8018C3F0_SIZE; var_s2++) { objectIndex = D_8018C3F0[var_s2]; - object = &D_80165C18[objectIndex]; - if (object->unk_0A6 > 0) { + object = &gObjectList[objectIndex]; + if (object->state > 0) { func_8008A364(objectIndex, cameraId, 0x2AABU, 0x000000C8); - if ((func_8007223C(objectIndex, 0x00040000) != 0) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { + if ((is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) && (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX)) { object->unk_0B2[1] = func_800418AC(object->pos[0], object->pos[2], sp44->pos); - func_80043104(objectIndex); + rsp_set_matrix_gObjectList(objectIndex); gSPDisplayList(gDisplayListHead++, D_0D006980); } } @@ -4936,13 +4932,13 @@ void func_800550A4(s32 arg0) { } void func_80055164(s32 objectIndex) { - if (D_80165C18[objectIndex].unk_0A6 >= 2) { + if (gObjectList[objectIndex].state >= 2) { gSPDisplayList(gDisplayListHead++, D_0D0077A0); - func_80042E00(D_80165C18[objectIndex].pos, D_80165C18[objectIndex].unk_0BE, D_80165C18[objectIndex].sizeScaling); + rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_0BE, gObjectList[objectIndex].sizeScaling); if (gIsGamePaused == 0) { - D_80165C18[objectIndex].unk_0A2 = func_80004DFC((animation_type_1 *) D_80165C18[objectIndex].unk_070, (animation_type_2 **) D_80165C18[objectIndex].unk_074, 0, D_80165C18[objectIndex].unk_0A2); + gObjectList[objectIndex].unk_0A2 = func_80004DFC((animation_type_1 *) gObjectList[objectIndex].unk_070, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, gObjectList[objectIndex].unk_0A2); } else { - func_80004DFC((animation_type_1 *) D_80165C18[objectIndex].unk_070, (animation_type_2 **) D_80165C18[objectIndex].unk_074, 0, D_80165C18[objectIndex].unk_0A2); + func_80004DFC((animation_type_1 *) gObjectList[objectIndex].unk_070, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, gObjectList[objectIndex].unk_0A2); } } } @@ -4954,20 +4950,20 @@ void func_80055228(s32 cameraId) { for (var_s1 = 0; var_s1 < 4; var_s1++) { temp_s0 = D_80183EA0[var_s1]; func_8008A364(temp_s0, cameraId, 0x4000U, 0x000005DC); - if (func_8007223C(temp_s0, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(temp_s0, 0x00040000) != 0) { func_80055164(temp_s0); } } } void func_800552BC(s32 objectIndex) { - if (D_80165C18[objectIndex].unk_0A6 >= 2) { - func_80042E00(D_80165C18[objectIndex].pos, D_80165C18[objectIndex].unk_0BE, D_80165C18[objectIndex].sizeScaling); + if (gObjectList[objectIndex].state >= 2) { + rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_0BE, gObjectList[objectIndex].sizeScaling); gSPDisplayList(gDisplayListHead++, D_0D0077D0); if (gIsGamePaused == 0) { - D_80165C18[objectIndex].unk_0A2 = func_80004DFC((animation_type_1 *) D_80165C18[objectIndex].unk_070, (animation_type_2 **) D_80165C18[objectIndex].unk_074, 0, D_80165C18[objectIndex].unk_0A2); + gObjectList[objectIndex].unk_0A2 = func_80004DFC((animation_type_1 *) gObjectList[objectIndex].unk_070, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, gObjectList[objectIndex].unk_0A2); } else { - func_80004DFC((animation_type_1 *) D_80165C18[objectIndex].unk_070, (animation_type_2 **) D_80165C18[objectIndex].unk_074, 0, D_80165C18[objectIndex].unk_0A2); + func_80004DFC((animation_type_1 *) gObjectList[objectIndex].unk_070, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, gObjectList[objectIndex].unk_0A2); } } } @@ -4984,7 +4980,7 @@ void func_80055380(s32 arg0) { D_80165908 = 1; func_800722A4(var_s1, 2); } - if (func_8007223C(var_s1, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(var_s1, 0x00040000) != 0) { func_800552BC(var_s1); } } @@ -4993,11 +4989,11 @@ void func_80055380(s32 arg0) { void func_80055458(s32 objectIndex, s32 cameraId) { Camera *camera; - if (D_80165C18[objectIndex].unk_0A6 >= 2) { + if (gObjectList[objectIndex].state >= 2) { camera = &camera1[cameraId]; func_8004A6EC(objectIndex, 0.5f); - D_80165C18[objectIndex].unk_0B2[1] = func_800418AC(D_80165C18[objectIndex].pos[0], D_80165C18[objectIndex].pos[2], camera->pos); - func_800480B4(D_80165C18[objectIndex].pos, D_80165C18[objectIndex].unk_0B2, D_80165C18[objectIndex].sizeScaling, (u8 *) D_80165C18[objectIndex].activeTLUT, D_80165C18[objectIndex].activeTexture, D_0D0060B0, 0x00000040, 0x00000040, 0x00000040, 0x00000020); + gObjectList[objectIndex].unk_0B2[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); + func_800480B4(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_0B2, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, D_0D0060B0, 0x00000040, 0x00000040, 0x00000040, 0x00000020); } } @@ -5008,7 +5004,7 @@ void func_80055528(s32 arg0) { for (someIndex = 0; someIndex < 10; someIndex++) { test = D_80183EA0[someIndex]; func_8008A364(test, arg0, 0x2AABU, 0x00000320); - if (func_8007223C(test, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(test, 0x00040000) != 0) { func_80055458(test, arg0); } } @@ -5017,11 +5013,11 @@ void func_80055528(s32 arg0) { void func_800555BC(s32 objectIndex, s32 cameraId) { Camera *camera; - if (D_80165C18[objectIndex].unk_0A6 >= 2) { + if (gObjectList[objectIndex].state >= 2) { camera = &camera1[cameraId]; func_8004A870(objectIndex, 0.7f); - D_80165C18[objectIndex].unk_0B2[1] = func_800418AC(D_80165C18[objectIndex].pos[0], D_80165C18[objectIndex].pos[2], camera->pos); - func_800480B4(D_80165C18[objectIndex].pos, D_80165C18[objectIndex].unk_0B2, D_80165C18[objectIndex].sizeScaling, (u8 *) D_80165C18[objectIndex].activeTLUT, D_80165C18[objectIndex].activeTexture, (Vtx *) D_80165C18[objectIndex].unk_074, 64, 64, 64, 32); + gObjectList[objectIndex].unk_0B2[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); + func_800480B4(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_0B2, gObjectList[objectIndex].sizeScaling, (u8 *) gObjectList[objectIndex].activeTLUT, gObjectList[objectIndex].activeTexture, gObjectList[objectIndex].vertex, 64, 64, 64, 32); } } @@ -5033,15 +5029,15 @@ void func_8005568C(s32 arg0) { for (someIndex = 0; someIndex < 15; someIndex++) { test = D_80183F28[someIndex]; something = func_8008A364(test, arg0, 0x4000U, 0x000003E8); - if (func_8007223C(test, 0x00040000) != 0) { - func_800721C0(test, 0x00200000); + if (is_obj_index_flag_unk_054_active(test, 0x00040000) != 0) { + set_object_flag_unk_054_true(test, 0x00200000); if (something < 0x2711U) { - func_800721C0(test, 0x00000020); + set_object_flag_unk_054_true(test, 0x00000020); } else { - func_800721E8(test, 0x00000020); + set_object_flag_unk_054_false(test, 0x00000020); } if (something < 0x57E41U) { - func_800721C0(test, 0x00400000); + set_object_flag_unk_054_true(test, 0x00400000); } if (something < 0x52211U) { func_800555BC(test, arg0); @@ -5056,27 +5052,27 @@ UNUSED void func_800557AC() { void func_800557B4(s32 objectIndex, u32 arg1, u32 arg2) { Vec3f sp34; - struct_80165C18_entry *temp_s0; + Objects *temp_s0; - temp_s0 = &D_80165C18[objectIndex]; - if (temp_s0->unk_0A6 >= 2) { - if (func_8007223C(objectIndex, 0x00000020) != 0) { + temp_s0 = &gObjectList[objectIndex]; + if (temp_s0->state >= 2) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00000020) != 0) { if (func_80072320(objectIndex, 4) != 0) { if (arg2 >= arg1) { sp34[0] = temp_s0->pos[0]; sp34[1] = temp_s0->pos[1] - 1.0; sp34[2] = temp_s0->pos[2]; - func_80042F70(sp34, temp_s0->unk_0B2, temp_s0->sizeScaling); + rsp_set_matrix_transformation_inverted_x_y_orientation(sp34, temp_s0->unk_0B2, temp_s0->sizeScaling); gSPDisplayList(gDisplayListHead++, D_0D0077D0); - func_80004DFC((animation_type_1 *) temp_s0->unk_070, (animation_type_2 **) temp_s0->unk_074, (s16) temp_s0->unk_0D8, (s16) temp_s0->unk_0D2); + func_80004DFC((animation_type_1 *) temp_s0->unk_070, (animation_type_2 **) temp_s0->vertex, (s16) temp_s0->unk_0D8, (s16) temp_s0->itemDisplay); } } else if (arg1 < 0x15F91U) { func_8004A7AC(objectIndex, 1.5f); } } - func_80042E00(temp_s0->pos, temp_s0->unk_0B2, temp_s0->sizeScaling); + rsp_set_matrix_transformation(temp_s0->pos, temp_s0->unk_0B2, temp_s0->sizeScaling); gSPDisplayList(gDisplayListHead++, D_0D0077D0); - func_80004DFC((animation_type_1 *) temp_s0->unk_070, (animation_type_2 **) temp_s0->unk_074, (s16) temp_s0->unk_0D8, (s16) temp_s0->unk_0D2); + func_80004DFC((animation_type_1 *) temp_s0->unk_070, (animation_type_2 **) temp_s0->vertex, (s16) temp_s0->unk_0D8, (s16) temp_s0->itemDisplay); } } @@ -5097,7 +5093,7 @@ void func_8005592C(s32 cameraId) { } for (var_s2 = 0; var_s2 < 15; var_s2++) { objectIndex = D_80183EA0[var_s2]; - if (D_80165C18[objectIndex].unk_0A6 >= 2) { + if (gObjectList[objectIndex].state >= 2) { if (gPlayerCountSelection1 == 1) { var_s1 = 0x4000; if (var_s2 == 0) { @@ -5117,7 +5113,7 @@ void func_8005592C(s32 cameraId) { } } temp_s1 = func_8008A364(objectIndex, cameraId, var_s1, var_a3); - if (func_8007223C(objectIndex, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { func_800557B4(objectIndex, (u32) temp_s1, var_s3); } } @@ -5128,19 +5124,19 @@ void func_80055AB8(s32 objectIndex, s32 cameraId) { Camera *camera; camera = &camera1[cameraId]; - if (D_80165C18[objectIndex].unk_0A6 >= 2) { - if (func_8007223C(objectIndex, 0x00100000) != 0) { - D_80183E40[0] = D_80165C18[objectIndex].pos[0]; - D_80183E40[1] = D_80165C18[objectIndex].pos[1] + 16.0; - D_80183E40[2] = D_80165C18[objectIndex].pos[2]; + if (gObjectList[objectIndex].state >= 2) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00100000) != 0) { + D_80183E40[0] = gObjectList[objectIndex].pos[0]; + D_80183E40[1] = gObjectList[objectIndex].pos[1] + 16.0; + D_80183E40[2] = gObjectList[objectIndex].pos[2]; D_80183E80[0] = 0; - D_80183E80[1] = func_800418AC(D_80165C18[objectIndex].pos[0], D_80165C18[objectIndex].pos[2], camera->pos); + D_80183E80[1] = func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos); D_80183E80[2] = 0x8000; func_800468E0(D_80183E40, D_80183E80, 0.54f, d_course_rainbow_road_sphere, D_0D0062B0, 0x00000020, 0x00000040, 0x00000020, 0x00000040, 5); } else { - func_80042E00(D_80165C18[objectIndex].pos, D_80165C18[objectIndex].unk_0BE, D_80165C18[objectIndex].sizeScaling); + rsp_set_matrix_transformation(gObjectList[objectIndex].pos, gObjectList[objectIndex].unk_0BE, gObjectList[objectIndex].sizeScaling); gSPDisplayList(gDisplayListHead++, D_0D0077D0); - func_80004DFC((animation_type_1 *) D_80165C18[objectIndex].unk_070, (animation_type_2 **) D_80165C18[objectIndex].unk_074, 0, (s16) D_80165C18[objectIndex].unk_0D2); + func_80004DFC((animation_type_1 *) gObjectList[objectIndex].unk_070, (animation_type_2 **) gObjectList[objectIndex].vertex, 0, (s16) gObjectList[objectIndex].itemDisplay); } } } @@ -5152,7 +5148,7 @@ void func_80055C38(s32 cameraId) { for (var_s1 = 0; var_s1 < 3; var_s1++) { objectIndex = D_80183F28[var_s1]; func_8008A1D0(objectIndex, cameraId, 0x000005DC, 0x000009C4); - if (func_8007223C(objectIndex, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { func_80055AB8(objectIndex, cameraId); } } @@ -5164,21 +5160,21 @@ void func_80055CCC(s32 objectIndex, s32 cameraId) { Camera *camera; camera = &camera1[cameraId]; - if (D_80165C18[objectIndex].unk_0A6 >= 2) { + if (gObjectList[objectIndex].state >= 2) { func_8008A454(objectIndex, cameraId, 0x0000012C); - test = D_80165C18[objectIndex].pos[1] - D_80165C18[objectIndex].unk_044; + test = gObjectList[objectIndex].pos[1] - gObjectList[objectIndex].unk_044; func_8004A6EC(objectIndex, (20.0 / test) + 0.5); - if (func_80072270(objectIndex, 0x00100000) != 0) { - func_80043328(D_80165C18[objectIndex].pos, (u16 *) D_80165C18[objectIndex].unk_0BE, D_80165C18[objectIndex].sizeScaling, d_course_luigi_raceway_dl_F960); + if (is_obj_index_flag_unk_054_inactive(objectIndex, 0x00100000) != 0) { + func_80043328(gObjectList[objectIndex].pos, (u16 *) gObjectList[objectIndex].unk_0BE, gObjectList[objectIndex].sizeScaling, d_course_luigi_raceway_dl_F960); gSPDisplayList(gDisplayListHead++, d_course_luigi_raceway_dl_F650); } else { - D_80183E80[0] = (s16) D_80165C18[objectIndex].unk_0BE[0]; - D_80183E80[1] = (s16) (func_800418AC(D_80165C18[objectIndex].pos[0], D_80165C18[objectIndex].pos[2], camera->pos) + 0x8000); - D_80183E80[2] = (u16) D_80165C18[objectIndex].unk_0BE[2]; - func_80043328(D_80165C18[objectIndex].pos, D_80183E80, D_80165C18[objectIndex].sizeScaling, d_course_luigi_raceway_dl_FBE0); + D_80183E80[0] = (s16) gObjectList[objectIndex].unk_0BE[0]; + D_80183E80[1] = (s16) (func_800418AC(gObjectList[objectIndex].pos[0], gObjectList[objectIndex].pos[2], camera->pos) + 0x8000); + D_80183E80[2] = (u16) gObjectList[objectIndex].unk_0BE[2]; + func_80043328(gObjectList[objectIndex].pos, D_80183E80, gObjectList[objectIndex].sizeScaling, d_course_luigi_raceway_dl_FBE0); gSPDisplayList(gDisplayListHead++, d_course_luigi_raceway_dl_FA20); if (gPlayerCountSelection1 == 1) { - D_80165C18[objectIndex].unk_0BE[1] = 0; + gObjectList[objectIndex].unk_0BE[1] = 0; } } } @@ -5189,20 +5185,20 @@ void func_80055E68(s32 arg0) { objectIndex = D_80183EA0[0]; if (gGamestate != 9) { func_8008A1D0(objectIndex, arg0, 0x000005DC, 0x00000BB8); - if (func_8007223C(objectIndex, 0x00040000) != 0) { + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { func_80055CCC(objectIndex, arg0); } } else { - func_800721E8(objectIndex, 0x00100000); + set_object_flag_unk_054_false(objectIndex, 0x00100000); func_80055CCC(objectIndex, arg0); } } void func_80055EF4(s32 objectIndex, UNUSED s32 arg1) { - struct_80165C18_entry *object; + Objects *object; - object = &D_80165C18[objectIndex]; - if (object->unk_0A6 >= 2) { + object = &gObjectList[objectIndex]; + if (object->state >= 2) { func_80043220(object->pos, object->unk_0BE, object->sizeScaling, object->unk_070); } } @@ -5218,14 +5214,14 @@ void func_80055F48(s32 arg0) { void func_80055FA0(s32 objectIndex, UNUSED s32 arg1) { Mat4 someMatrix1; Mat4 someMatrix2; - struct_80165C18_entry *object; + Objects *object; - object = &D_80165C18[objectIndex]; - if (object->unk_0A6 >= 2) { + object = &gObjectList[objectIndex]; + if (object->state >= 2) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - func_800425D0(someMatrix1,object->pos, object->unk_0BE, object->sizeScaling); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], someMatrix1); + mtxf_set_matrix_transformation(someMatrix1,object->pos, object->unk_0BE, object->sizeScaling); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], someMatrix1); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, D_0D0077A0); gSPDisplayList(gDisplayListHead++, object->unk_070); @@ -5243,15 +5239,15 @@ void func_80056188(s32 cameraId) { Camera *camera; s32 var_s2; s32 objectIndex; - struct_80165C18_entry *object; + Objects *object; camera = &camera1[cameraId]; for (var_s2 =0; var_s2 < 10; var_s2++) { objectIndex = D_80183EA0[var_s2]; if (D_8018E838[cameraId] == 0) { - object = &D_80165C18[objectIndex]; - if ((object->unk_0A6 >= 2) && (func_80072270(objectIndex, 0x00080000) != 0) && (func_8008A140(objectIndex, camera, 0x2AABU) != 0)) { - object->unk_0B2[1] = func_800872D8(objectIndex, camera); + object = &gObjectList[objectIndex]; + if ((object->state >= 2) && (is_obj_index_flag_unk_054_inactive(objectIndex, 0x00080000) != 0) && (func_8008A140(objectIndex, camera, 0x2AABU) != 0)) { + object->unk_0B2[1] = angle_between_object_camera(objectIndex, camera); func_800480B4(object->pos, object->unk_0B2, object->sizeScaling, (u8 *) object->activeTLUT, object->activeTexture, D_0D0060B0, 0x00000040, 0x00000040, 0x00000040, 0x00000020); } } @@ -5293,7 +5289,7 @@ void func_800562E4(s32 arg0, s32 arg1, s32 arg2) { D_8016586C = temp_a1; D_80165878 = temp_a2; func_8004B138(temp_a0, temp_a1, temp_a2, arg2); - func_80042E00(&D_80183E40, &D_80183E80, 0.2f); + rsp_set_matrix_transformation(&D_80183E40, &D_80183E80, 0.2f); func_80044BF8((arg1 << 0xA) + D_0D02AC58, 0x00000020, 0x00000020); temp_v0_2 = gDisplayListHead; gDisplayListHead = temp_v0_2 + 8; @@ -5302,7 +5298,7 @@ void func_800562E4(s32 arg0, s32 arg1, s32 arg2) { temp_v0_3 = gDisplayListHead; gDisplayListHead = temp_v0_3 + 8; temp_v0_3->words.w0 = 0x06000000; - temp_v0_3->words.w1 = (u32) D_0D006940; + temp_v0_3->words.w1 = (u32) common_rectangle_display; } #else GLOBAL_ASM("asm/non_matchings/hud_renderer/func_800562E4.s") @@ -5326,9 +5322,9 @@ void func_800563DC(s32 objectIndex, s32 cameraId, s32 arg2) { s32 temp_s0_2; s32 temp_v0_4; s32 temp_v0_5; - struct_80165C18_entry *temp_v0; + Objects *temp_v0; - temp_v0 = &D_80165C18[objectIndex]; + temp_v0 = &gObjectList[objectIndex]; temp_f12 = temp_v0->pos[0]; temp_f14 = temp_v0->pos[2]; temp_s0 = D_801655CC & 3; @@ -5338,13 +5334,13 @@ void func_800563DC(s32 objectIndex, s32 cameraId, s32 arg2) { D_80183E40.unk8 = temp_f14; D_80183E80.unk2 = func_800418AC(temp_f12, temp_f14, camera1[cameraId].pos); D_80183E80.unk4 = 0x8000; - func_80042E00(&D_80183E40, &D_80183E80, 0.2f); + rsp_set_matrix_transformation(&D_80183E40, &D_80183E80, 0.2f); temp_v0_2 = gDisplayListHead; gDisplayListHead = temp_v0_2 + 8; temp_v0_2->words.w0 = 0x06000000; temp_v0_2->words.w1 = (u32) D_0D007E98; func_8004B310(arg2); - func_80047270(D_0D02A858, (temp_s0 << 0xA) + D_0D029858, D_0D005AE0, 0x00000020, 0x00000020, 0x00000020, 0x00000020); + draw_rectangle_texture_overlap(D_0D02A858, (temp_s0 << 0xA) + D_0D029858, D_0D005AE0, 0x00000020, 0x00000020, 0x00000020, 0x00000020); temp_v0_3 = gDisplayListHead; temp_s0_2 = D_8018D400; gDisplayListHead = temp_v0_3 + 8; @@ -5373,19 +5369,19 @@ void func_8005669C(s32 objectIndex, UNUSED s32 arg1, s32 arg2) { gSPDisplayList(gDisplayListHead++, D_0D0079E8); func_8004B310(arg2); func_80043D50(D_0D02AA58, 0x00000010, 0x00000010); - D_80183E40[1] = D_80165C18[objectIndex].pos[1] - 2.0; - D_80183E40[0] = D_80165C18[objectIndex].pos[0] + 2.0; - D_80183E40[2] = D_80165C18[objectIndex].pos[2] + 2.0; - func_800431B0(D_80183E40, D_80183E80, 0.15f, D_0D005770); - D_80183E40[0] = D_80165C18[objectIndex].pos[0] + 2.0; - D_80183E40[2] = D_80165C18[objectIndex].pos[2] - 2.0; - func_800431B0(D_80183E40, D_80183E80, 0.15f, D_0D005770); - D_80183E40[0] = D_80165C18[objectIndex].pos[0] - 2.0; - D_80183E40[2] = D_80165C18[objectIndex].pos[2] - 2.0; - func_800431B0(D_80183E40, D_80183E80, 0.15f, D_0D005770); - D_80183E40[0] = D_80165C18[objectIndex].pos[0] - 2.0; - D_80183E40[2] = D_80165C18[objectIndex].pos[2] + 2.0; - func_800431B0(D_80183E40, D_80183E80, 0.15f, D_0D005770); + D_80183E40[1] = gObjectList[objectIndex].pos[1] - 2.0; + D_80183E40[0] = gObjectList[objectIndex].pos[0] + 2.0; + D_80183E40[2] = gObjectList[objectIndex].pos[2] + 2.0; + func_800431B0(D_80183E40, D_80183E80, 0.15f, common_vtx_rectangle); + D_80183E40[0] = gObjectList[objectIndex].pos[0] + 2.0; + D_80183E40[2] = gObjectList[objectIndex].pos[2] - 2.0; + func_800431B0(D_80183E40, D_80183E80, 0.15f, common_vtx_rectangle); + D_80183E40[0] = gObjectList[objectIndex].pos[0] - 2.0; + D_80183E40[2] = gObjectList[objectIndex].pos[2] - 2.0; + func_800431B0(D_80183E40, D_80183E80, 0.15f, common_vtx_rectangle); + D_80183E40[0] = gObjectList[objectIndex].pos[0] - 2.0; + D_80183E40[2] = gObjectList[objectIndex].pos[2] + 2.0; + func_800431B0(D_80183E40, D_80183E80, 0.15f, common_vtx_rectangle); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); } @@ -5394,11 +5390,11 @@ void func_800568A0(s32 objectIndex, s32 playerId) { Player *player; player = &gPlayerOne[playerId]; - D_80183E50[0] = D_80165C18[objectIndex].pos[0]; - D_80183E50[1] = D_80165C18[objectIndex].unk_044 + 0.8; - D_80183E50[2] = D_80165C18[objectIndex].pos[2]; - func_80042A20(sp30, player->unk_110.unk60, D_80183E50, 0U, 0.5f); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], sp30); + D_80183E50[0] = gObjectList[objectIndex].pos[0]; + D_80183E50[1] = gObjectList[objectIndex].unk_044 + 0.8; + D_80183E50[2] = gObjectList[objectIndex].pos[2]; + set_transform_matrix(sp30, player->unk_110.unk60, D_80183E50, 0U, 0.5f); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], sp30); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, D_0D007B98); } @@ -5408,7 +5404,7 @@ void func_800569F4(s32 arg0) { objectIndex = D_80183DD8[arg0]; func_800723A4(objectIndex, 0); - D_80165C18[objectIndex].unk_0A0 = 0; + gObjectList[objectIndex].unk_0A0 = 0; } void func_80056A40(s32 arg0, s32 arg1) { @@ -5416,7 +5412,7 @@ void func_80056A40(s32 arg0, s32 arg1) { objectIndex = D_80183DD8[arg0]; func_800723A4(objectIndex, 0); - D_80165C18[objectIndex].unk_0A0 = (s16) arg1; + gObjectList[objectIndex].unk_0A0 = (s16) arg1; } void func_80056A94(s32 arg0) { @@ -5427,15 +5423,15 @@ void func_80056AC0(s32 cameraId) { Player *temp_v0; s32 temp_s1; s32 temp_s0; - s32 var_s2; - struct_80165C18_entry *temp_v1; + s32 payerId; + Objects *temp_v1; - for (var_s2 = 0; var_s2 < NUM_BOMB_KARTS_BATTLE; var_s2++) { - temp_s0 = D_80183DD8[var_s2]; - temp_v1 = &D_80165C18[temp_s0]; - if (temp_v1->unk_0A6 != 0) { + for (payerId = 0; payerId < NUM_BOMB_KARTS_BATTLE; payerId++) { + temp_s0 = D_80183DD8[payerId]; + temp_v1 = &gObjectList[temp_s0]; + if (temp_v1->state != 0) { temp_s1 = temp_v1->unk_0A0; - temp_v0 = &gPlayerOne[var_s2]; + temp_v0 = &gPlayerOne[payerId]; temp_v1->pos[0] = temp_v0->pos[0]; temp_v1->pos[1] = temp_v0->pos[1] - 2.0; temp_v1->pos[2] = temp_v0->pos[2]; @@ -5497,13 +5493,13 @@ void func_80056E24(s32 bombIndex, Vec3f arg1) { gSPDisplayList(gDisplayListHead++, D_0D0079C8); func_80043D50(D_0D02AA58, 0x00000010, 0x00000010); D_80183E80[1] = func_800418AC(sp2C.wheel1Pos[0], sp2C.wheel1Pos[2], arg1); - func_800431B0(sp2C.wheel1Pos, D_80183E80, 0.15f, D_0D005770); + func_800431B0(sp2C.wheel1Pos, D_80183E80, 0.15f, common_vtx_rectangle); D_80183E80[1] = func_800418AC(sp2C.wheel2Pos[0], sp2C.wheel2Pos[2], arg1); - func_800431B0(sp2C.wheel2Pos, D_80183E80, 0.15f, D_0D005770); + func_800431B0(sp2C.wheel2Pos, D_80183E80, 0.15f, common_vtx_rectangle); D_80183E80[1] = func_800418AC(sp2C.wheel3Pos[0], sp2C.wheel3Pos[2], arg1); - func_800431B0(sp2C.wheel3Pos, D_80183E80, 0.15f, D_0D005770); + func_800431B0(sp2C.wheel3Pos, D_80183E80, 0.15f, common_vtx_rectangle); D_80183E80[1] = func_800418AC(sp2C.wheel4Pos[0], sp2C.wheel4Pos[2], arg1); - func_800431B0(sp2C.wheel4Pos, D_80183E80, 0.15f, D_0D005770); + func_800431B0(sp2C.wheel4Pos, D_80183E80, 0.15f, common_vtx_rectangle); gSPTexture(gDisplayListHead++, 1, 1, 0, G_TX_RENDERTILE, G_OFF); } @@ -5515,15 +5511,15 @@ void func_80056FCC(s32 bombIndex) { D_80183E50[0] = temp_v0->bombPos[0]; D_80183E50[1] = temp_v0->yPos + 1.0; D_80183E50[2] = temp_v0->bombPos[2]; - func_80042A20(sp30, D_80164038[bombIndex].unk60, D_80183E50, 0U, 0.5f); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], sp30); + set_transform_matrix(sp30, D_80164038[bombIndex].unk60, D_80183E50, 0U, 0.5f); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], sp30); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_LOAD | G_MTX_NOPUSH| G_MTX_MODELVIEW); gSPDisplayList(gDisplayListHead++, D_0D007B98); } void func_80057114(s32 cameraId) { Camera *temp_s7; - s32 temp_s0; + s32 objectIndex; s32 temp_s4; s32 var_s2; s32 state; @@ -5535,13 +5531,13 @@ void func_80057114(s32 cameraId) { temp_s7 = &camera1[cameraId]; if (cameraId == 0) { for (var_s2 = 0; var_s2 < NUM_BOMB_KARTS_VERSUS; var_s2++) { - temp_s0 = D_80183DD8[var_s2]; - if (func_8007223C(temp_s0, 0x00200000) != 0) { + objectIndex = D_80183DD8[var_s2]; + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00200000) != 0) { D_80163DE8[var_s2].unk_4A = 0; } else if (gGamestate != 5) { D_80163DE8[var_s2].unk_4A = 1; } - func_800721E8(temp_s0, 0x00200000); + set_object_flag_unk_054_false(objectIndex, 0x00200000); } } @@ -5550,17 +5546,17 @@ void func_80057114(s32 cameraId) { // huh??? state = var_s1_2->state; if (var_s1_2->state != BOMB_STATE_INACTIVE) { - temp_s0 = D_80183DD8[var_s2]; - D_80165C18[temp_s0].pos[0] = var_s1_2->bombPos[0]; - D_80165C18[temp_s0].pos[1] = var_s1_2->bombPos[1]; - D_80165C18[temp_s0].pos[2] = var_s1_2->bombPos[2]; - temp_s4 = func_8008A364(temp_s0, cameraId, 0x31C4U, 0x000001F4); - if (func_8007223C(temp_s0, 0x00040000) != 0) { - func_800721C0(temp_s0, 0x00200000); + objectIndex = D_80183DD8[var_s2]; + gObjectList[objectIndex].pos[0] = var_s1_2->bombPos[0]; + gObjectList[objectIndex].pos[1] = var_s1_2->bombPos[1]; + gObjectList[objectIndex].pos[2] = var_s1_2->bombPos[2]; + temp_s4 = func_8008A364(objectIndex, cameraId, 0x31C4U, 0x000001F4); + if (is_obj_index_flag_unk_054_active(objectIndex, 0x00040000) != 0) { + set_object_flag_unk_054_true(objectIndex, 0x00200000); D_80183E80[0] = 0; D_80183E80[1] = func_800418AC(var_s1_2->bombPos[0], var_s1_2->bombPos[2], temp_s7->pos); D_80183E80[2] = 0x8000; - func_800563DC(temp_s0, cameraId, 0x000000FF); + func_800563DC(objectIndex, cameraId, 0x000000FF); func_80056E24(var_s2, temp_s7->pos); if (((u32) temp_s4 < 0x4E21U) && (state != BOMB_STATE_EXPLODED)) { func_80056FCC(var_s2); diff --git a/src/hud_renderer.h b/src/hud_renderer.h index 268d21b48..56e661824 100644 --- a/src/hud_renderer.h +++ b/src/hud_renderer.h @@ -36,8 +36,8 @@ void func_8004477C(u8*, s32, s32); void func_80044AB8(u8*, s32, s32); void func_80044BF8(u8*, s32, s32); -void func_800452A4(u8*, s32, s32); -void func_8004544C(u8*, s32, s32, s32); +void rsp_load_texture(u8*, s32, s32); +void rsp_load_texture_mask(u8*, s32, s32, s32); void func_80045614(u8*, s32, s32); void func_80045B2C(Vtx*); void func_80045B74(Vtx*); @@ -78,7 +78,7 @@ void func_80046E60(u8*, u8*, s32, s32); void func_80046F60(u8*, u8*, s32, s32, s32); void func_80047068(u8*, u8*, Vtx*, s32, s32, s32, s32); -void func_80047270(u8*, u8*, Vtx*, s32, s32, s32, s32); +void draw_rectangle_texture_overlap(u8*, u8*, Vtx*, s32, s32, s32, s32); void func_8004747C(u8*, u8*, Vtx*, s32, s32, s32, s32, s32); void func_8004768C(u8*, u8*, Vtx*, s32, s32, s32); void func_8004788C(s32, s32, u16, f32, u8*, u8*, Vtx*, s32, s32, s32, s32); @@ -191,7 +191,7 @@ void func_8004B138(s32, s32, s32, s32); void func_8004B180(s32, s32, s32, s32); void func_8004B1C8(s32, s32, s32, s32, s32, s32, s32); void func_8004B254(s32, s32, s32); -void func_8004B2BC(s32); +void set_transparency(s32); void func_8004B310(s32); void func_8004B35C(s32, s32, s32, s32); void func_8004B3C8(s32); diff --git a/src/kart_attributes.inc.c b/src/kart_attributes.inc.c index 220a4aafe..12306a4bc 100644 --- a/src/kart_attributes.inc.c +++ b/src/kart_attributes.inc.c @@ -61,23 +61,23 @@ f32 *D_800E2568[5] = { }; // Mario Luigi Yoshi Toad D.K. Wario Peach Bowser -f32 D_800E257C[] = { // 50CC +f32 gTopSpeed50cc[] = { // 50CC 290.0, 290.0, 294.0, 294.0, 290.0, 290.0, 294.0, 290.0, }; -f32 D_800E259C[] = { // 100CC +f32 gTopSpeed100cc[] = { // 100CC 310.0, 310.0, 314.0, 314.0, 310.0, 310.0, 314.0, 310.0, }; -f32 D_800E25BC[] = { // 150CC +f32 gTopSpeed150cc[] = { // 150CC 320.0, 320.0, 324.0, 324.0, 320.0, 320.0, 324.0, 320.0, }; -f32 D_800E25DC[] = { // Extra +f32 gTopSpeedExtra[] = { // Extra 310.0, 310.0, 314.0, 314.0, 310.0, 310.0, 314.0, 310.0, }; -f32 D_800E25FC[] = { // Battle mode +f32 gTopSpeedBattle[] = { // Battle mode 245.0, 245.0, 245.0, 245.0, 245.0, 245.0, 245.0, 245.0, }; -f32 *D_800E261C[5] = { - D_800E257C, D_800E259C, D_800E25BC, D_800E25DC, D_800E25FC, +f32 *gTopSpeedTable[5] = { + gTopSpeed50cc, gTopSpeed100cc, gTopSpeed150cc, gTopSpeedExtra, gTopSpeedBattle, }; // Mario Luigi Yoshi Toad D.K. Wario Peach Bowser @@ -397,7 +397,7 @@ f32 gKartTurnSpeedReductionTable0[] = { f32 gKartTurnSpeedReductionTable1[] = { 0.0, 0.0, 0.002, 0.002, -0.002, -0.002, 0.002, -0.002, }; -f32 gKartTable800E36B0[] = { +f32 gKartTripleABoost[] = { 2.0, 2.0, 3.0, 3.0, 1.5, 1.5, 3.0, 3.0, }; f32 gKartHopInitialVelocityTable[] = { diff --git a/src/kart_dma.c b/src/kart_dma.c index 1015be175..5e9494a0c 100644 --- a/src/kart_dma.c +++ b/src/kart_dma.c @@ -1688,74 +1688,187 @@ u8 *gKartPalettes[] = { * The player struct tracks the texture indices to load. * * @param player - * @param arg1 Appears to be character index; 0-7. + * @param playerId Player ID. * @param arg2 Rom buffer index appears to always be 0-3. Sometimes subtracted by 2. * @param arg3 Second buffer index appears to always be 0-3. * @param arg4 First buffer index always zero. **/ -void func_80027040(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) { - s32 temp = player->unk_0BC; +void load_kart_texture(Player *player, s8 playerId, s8 arg2, s8 arg3, s8 arg4) { + s32 temp = player->effects; if (((temp & 0x80) == 0x80) || ((temp & 0x40) == 0x40) || ((temp & 0x80000) == 0x80000) || ((temp & 0x800000) == 0x800000) || ((temp & 0x20000) == 0x20000) || ((player->unk_044 & 0x800) != 0)) { - if (player->unk_244[arg2] != 0) { - osInvalDCache(&D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId]); - osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable1[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]])], &D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId], &gDmaMesgQueue); + if (player->animFrameSelector[arg2] != 0) { + osInvalDCache(&D_802DFB80[arg4][arg3][playerId], D_800DDEB0[player->characterId]); + + osPiStartDma( + &gDmaIoMesg, + OS_MESG_PRI_NORMAL, OS_READ, + (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( + gKartTextureTable1[player->characterId][player->animGroupSelector[arg2]][player->animFrameSelector[arg2]] + )], + &D_802DFB80[arg4][arg3][playerId], + D_800DDEB0[player->characterId], + &gDmaMesgQueue + ); + osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); } else { - osInvalDCache(&D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId]); - osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable0[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]])], &D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId], &gDmaMesgQueue); + osInvalDCache(&D_802DFB80[arg4][arg3][playerId], D_800DDEB0[player->characterId]); + + osPiStartDma( + &gDmaIoMesg, + OS_MESG_PRI_NORMAL, + OS_READ, + (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( + gKartTextureTable0[player->characterId][player->animGroupSelector[arg2]][player->animFrameSelector[arg2]] + )], + &D_802DFB80[arg4][arg3][playerId], + D_800DDEB0[player->characterId], + &gDmaMesgQueue + ); + osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); } } else if (((temp & 0x400) == 0x400) || ((temp & 0x01000000) == 0x01000000) || ((temp & 0x02000000) == 0x02000000) || ((temp & 0x10000) == 0x10000)) { - osInvalDCache(&D_802DFB80[arg4][arg3][arg1], 0x780U); + osInvalDCache(&D_802DFB80[arg4][arg3][playerId], 0x780U); // player->unk_0A8 >> 8 converts an 8.8 fixed-point animation frame to a whole number. - osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTumbles[player->characterId][player->unk_0A8 >> 8])], &D_802DFB80[arg4][arg3][arg1], 0x900, &gDmaMesgQueue); + osPiStartDma( + &gDmaIoMesg, + OS_MESG_PRI_NORMAL, + OS_READ, + (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( + gKartTextureTumbles[player->characterId][player->unk_0A8 >> 8] + )], + &D_802DFB80[arg4][arg3][playerId], + 0x900, + &gDmaMesgQueue + ); + osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); } else { - osInvalDCache(&D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId]); - osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable0[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]])], &D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId], &gDmaMesgQueue); + osInvalDCache(&D_802DFB80[arg4][arg3][playerId], D_800DDEB0[player->characterId]); + + osPiStartDma( + &gDmaIoMesg, + OS_MESG_PRI_NORMAL, + OS_READ, + (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( + gKartTextureTable0[player->characterId][player->animGroupSelector[arg2]][player->animFrameSelector[arg2]] + )], + &D_802DFB80[arg4][arg3][playerId], + D_800DDEB0[player->characterId], + &gDmaMesgQueue + ); + osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); } } void func_80027560(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) { - s32 temp = player->unk_0BC; + s32 temp = player->effects; if (((temp & 0x80) == 0x80) || ((temp & 0x40) == 0x40) || ((temp & 0x80000) == 0x80000) || ((temp & 0x800000) == 0x800000) || ((temp & 0x20000) == 0x20000) || ((player->unk_044 & 0x800) != 0)) { - if (player->unk_244[arg2] != 0) { + if (player->animFrameSelector[arg2] != 0) { osInvalDCache(&D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId]); - osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable1[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]])], &D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId], &gDmaMesgQueue); + + osPiStartDma( + &gDmaIoMesg, + OS_MESG_PRI_NORMAL, + OS_READ, + (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( + gKartTextureTable1[player->characterId][player->animGroupSelector[arg2]][player->animFrameSelector[arg2]] + )], + &D_802DFB80[arg4][arg3][arg1], + D_800DDEB0[player->characterId], + &gDmaMesgQueue + ); } else { osInvalDCache(&D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId]); - osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable0[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]])], &D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId], &gDmaMesgQueue); + + osPiStartDma( + &gDmaIoMesg, + OS_MESG_PRI_NORMAL, + OS_READ, + (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( + gKartTextureTable0[player->characterId][player->animGroupSelector[arg2]][player->animFrameSelector[arg2]] + )], + &D_802DFB80[arg4][arg3][arg1], + D_800DDEB0[player->characterId], + &gDmaMesgQueue + ); } } else if (((temp & 0x400) == 0x400) || ((temp & 0x01000000) == 0x01000000) || ((temp & 0x02000000) == 0x02000000) || ((temp & 0x10000) == 0x10000)) { osInvalDCache(&D_802DFB80[arg4][arg3][arg1], 0x780); // player->unk_0A8 >> 8 converts an 8.8 fixed-point animation frame to a whole number. - osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTumbles[player->characterId][player->unk_0A8 >> 8])], &D_802DFB80[arg4][arg3][arg1], 0x900, &gDmaMesgQueue); + osPiStartDma( + &gDmaIoMesg, + OS_MESG_PRI_NORMAL, + OS_READ, + (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( + gKartTextureTumbles[player->characterId][player->unk_0A8 >> 8] + )], + &D_802DFB80[arg4][arg3][arg1], + 0x900, + &gDmaMesgQueue + ); } else { osInvalDCache(&D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId]); - osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable0[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]])], &D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId], &gDmaMesgQueue); + + osPiStartDma( + &gDmaIoMesg, + OS_MESG_PRI_NORMAL, + OS_READ, + (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( + gKartTextureTable0[player->characterId][player->animGroupSelector[arg2]][player->animFrameSelector[arg2]] + )], + &D_802DFB80[arg4][arg3][arg1], + D_800DDEB0[player->characterId], + &gDmaMesgQueue + ); } } -void func_80027A20(Player *player, s8 arg1, s8 arg2, s8 arg3) { +void load_kart_palette(Player *player, s8 playerId, s8 arg2, s8 arg3) { // Weird typecasting is being done here. We define D_802F1F80 as a 3-dimensional u32 array, // but its better to understand it as a 3-dimensional struct_D_802F1F80 array. - struct_D_802F1F80 *temp_s0 = (struct_D_802F1F80 *) &D_802F1F80[arg3][arg2][arg1 * 0x80]; + struct_D_802F1F80 *temp_s0 = (struct_D_802F1F80 *) &D_802F1F80[arg3][arg2][playerId * 0x80]; switch(gActiveScreenMode) { case SCREEN_MODE_1P: case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: osInvalDCache(temp_s0, sizeof(struct_D_802F1F80)); - osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartPalettes[player->characterId])], temp_s0, sizeof(struct_D_802F1F80), &gDmaMesgQueue); + + osPiStartDma( + &gDmaIoMesg, + OS_MESG_PRI_NORMAL, + OS_READ, + (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( + gKartPalettes[player->characterId] + )], + temp_s0, + sizeof(struct_D_802F1F80), + &gDmaMesgQueue + ); + osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); break; - case SCREEN_MODE_3P_4P_SPLITSCREEN: + case SCREEN_MODE_3P_4P_SPLITSCREEN: // Code identical to above osInvalDCache(temp_s0, sizeof(struct_D_802F1F80)); - osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartPalettes[player->characterId])], temp_s0, sizeof(struct_D_802F1F80), &gDmaMesgQueue); + + osPiStartDma( + &gDmaIoMesg, + OS_MESG_PRI_NORMAL, + OS_READ, + (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET( + gKartPalettes[player->characterId] + )], + temp_s0, + sizeof(struct_D_802F1F80), + &gDmaMesgQueue + ); + osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); break; } @@ -1763,11 +1876,30 @@ void func_80027A20(Player *player, s8 arg1, s8 arg2, s8 arg3) { void func_80027BDC(UNUSED Player *player, s32 arg1, void *vAddr, u16 size) { osInvalDCache(vAddr, size); - osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(arg1)], vAddr, size, &gDmaMesgQueue); + + osPiStartDma( + &gDmaIoMesg, + OS_MESG_PRI_NORMAL, + OS_READ, + (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(arg1)], + vAddr, + size, + &gDmaMesgQueue + ); + osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK); } void func_80027C74(UNUSED Player *player, s32 arg1, void *vAddr, u16 size) { osInvalDCache(vAddr, size); - osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(arg1)], vAddr, size, &gDmaMesgQueue); + + osPiStartDma( + &gDmaIoMesg, + OS_MESG_PRI_NORMAL, + OS_READ, + (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(arg1)], + vAddr, + size, + &gDmaMesgQueue + ); } diff --git a/src/kart_dma.h b/src/kart_dma.h index 05ef39da9..0c8fc07ae 100644 --- a/src/kart_dma.h +++ b/src/kart_dma.h @@ -6,9 +6,9 @@ /* Function Prototypes */ -void func_80027040(Player*, s8, s8, s8, s8); +void load_kart_texture(Player*, s8, s8, s8, s8); void func_80027560(Player*, s8, s8, s8, s8); -void func_80027A20(Player*, s8, s8, s8); +void load_kart_palette(Player*, s8, s8, s8); void func_80027BDC(Player*, s32, void*, u16); void func_80027C74(Player*, s32, void*, u16); diff --git a/src/math_util_2.c b/src/math_util_2.c index 2c03184d5..d2978b9cb 100644 --- a/src/math_util_2.c +++ b/src/math_util_2.c @@ -13,24 +13,24 @@ #pragma intrinsic (sqrtf) -UNUSED void func_80040E50(s32 *arg0, s32 arg1) { +UNUSED void operator_or(s32 *arg0, s32 arg1) { *arg0 = (s32) (*arg0 | arg1); } -UNUSED void func_80040E60(s32 *arg0,s32 arg1) { +UNUSED void operator_and_not(s32 *arg0,s32 arg1) { *arg0 = (s32) (*arg0 & ~arg1); } -UNUSED void func_80040E74(s32 *arg0, s32 arg1) { +UNUSED void operator_xor(s32 *arg0, s32 arg1) { *arg0 = (s32) (*arg0 ^ arg1); } -UNUSED s32 func_80040E84(s32 *arg0, s32 arg1) { - s32 phi_v1; +UNUSED bool func_80040E84(s32 *arg0, s32 arg1) { + bool phi_v1; - phi_v1 = 0; + phi_v1 = FALSE; if ((*arg0 & arg1) != 0) { - phi_v1 = 1; + phi_v1 = TRUE; } return phi_v1; } @@ -335,15 +335,14 @@ void func_80041480(s16 *arg0, s16 arg1, s16 arg2, s16 *arg3) { } } -Vec3f *vec3f_set_dupe_2_electric_boogaloo(Vec3f arg0, f32 arg1, f32 arg2, f32 arg3) { +Vec3f *vec3f_set_xyz(Vec3f arg0, f32 arg1, f32 arg2, f32 arg3) { arg0[0] = arg1; arg0[1] = arg2; arg0[2] = arg3; return (Vec3f *) &arg0; } -// look like normalise vector -Vec3f *func_80041530(Vec3f dest) { +Vec3f *vec3f_normalize(Vec3f dest) { f32 invsqrt = 1.0f / sqrtf(dest[0] * dest[0] + dest[1] * dest[1] + dest[2] * dest[2]); dest[0] = dest[0] * invsqrt; @@ -352,7 +351,7 @@ Vec3f *func_80041530(Vec3f dest) { return (Vec3f *) &dest; } -Vec3f *func_80041594(Vec3f dest, Vec3f arg1, Vec3f arg2) { +Vec3f *vec3f_cross_product(Vec3f dest, Vec3f arg1, Vec3f arg2) { dest[0] = (arg1[1] * arg2[2]) - (arg2[1] * arg1[2]); dest[1] = (arg1[2] * arg2[0]) - (arg2[2] * arg1[0]); @@ -361,7 +360,7 @@ Vec3f *func_80041594(Vec3f dest, Vec3f arg1, Vec3f arg2) { return (Vec3f *) &dest; } -UNUSED s32 func_80041608(f32 x1, f32 y1, f32 x2, f32 y2, f32 distance) { +UNUSED s32 is_within_distance_2d(f32 x1, f32 y1, f32 x2, f32 y2, f32 distance) { f32 x; f32 y; s32 ret = 0; @@ -464,15 +463,15 @@ s32 func_80041980(Vec3f arg0, Camera *arg1, u16 arg2) { void func_800419F8(void) { Vec3f sp18; - Vec3f sp24; + Vec3f vec; sp18[0] = 0.0f; sp18[1] = 0.0f; sp18[2] = 120.0f; - func_80042D14(sp24, sp18, D_80165834); - D_80165840[0] = sp24[0]; - D_80165840[1] = sp24[1]; - D_80165840[2] = sp24[2]; + vec3f_rotate_x_y(vec, sp18, D_80165834); + D_80165840[0] = vec[0]; + D_80165840[1] = vec[1]; + D_80165840[2] = vec[2]; } UNUSED void func_80041A70(void) { @@ -637,13 +636,13 @@ void func_80041EF4(void) { } extern s32 gMatrixHudCount; -//void func_80022180(Mtx*, Mat4); +//void convert_to_fixed_point_matrix(Mtx*, Mat4); UNUSED void func_80041F54(s32 x, s32 y) { Mat4 matrix; mtfx_translation_x_y(matrix, x, y); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], matrix); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -652,7 +651,7 @@ UNUSED void func_80042000(u16 angle_z) { Mat4 matrix; mtxf_u16_rotate_z(matrix, angle_z); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], matrix); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -661,7 +660,7 @@ UNUSED void func_800420A8(f32 scale) { Mat4 matrix; mtxf_scale_x_y(matrix, scale); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], matrix); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); @@ -671,7 +670,7 @@ UNUSED void func_8004214C(u16 angle, f32 scale) { Mat4 matrix; mtxf_rotate_z_scale_x_y(matrix, angle, scale); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], matrix); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -680,19 +679,19 @@ UNUSED void func_800421FC(s32 x, s32 y, f32 scale) { Mat4 matrix; mtfx_translation_x_y(matrix, x, y); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], matrix); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); mtxf_scale_x_y(matrix, scale); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], matrix); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); } void func_80042330(s32 x, s32 y, u16 angle, f32 scale) { Mat4 matrix; mtxf_translation_x_y_rotate_z_scale_x_y(matrix, x, y, angle, scale); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], matrix); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -748,49 +747,49 @@ UNUSED void func_8004252C(Mat4 arg0, u16 arg1, u16 arg2) { arg0[2][2] = sp28 * cos_theta_y; } -void func_800425D0(Mat4 arg0, Vec3f arg1, Vec3su arg2, f32 arg3) { - f32 sp44 = sins(arg2[0]); - f32 temp_f22 = coss(arg2[0]); - f32 sp3C = sins(arg2[1]); - f32 sp38 = coss(arg2[1]); - f32 sp34 = sins(arg2[2]); - f32 temp_f0 = coss(arg2[2]); +void mtxf_set_matrix_transformation(Mat4 transformMatrix, Vec3f translationVector, Vec3su rotationVector, f32 scalingFactor) { + f32 sinX = sins(rotationVector[0]); + f32 cosX = coss(rotationVector[0]); + f32 sinY = sins(rotationVector[1]); + f32 cosY = coss(rotationVector[1]); + f32 sinZ = sins(rotationVector[2]); + f32 cosZ = coss(rotationVector[2]); - arg0[0][0] = ((sp38 * temp_f0) + (sp44 * sp3C * sp34)) * arg3; - arg0[1][0] = ((-sp38 * sp34) + (sp44 * sp3C * temp_f0)) * arg3; - arg0[2][0] = (temp_f22 * sp3C) * arg3; - arg0[3][0] = arg1[0]; - arg0[0][1] = temp_f22 * sp34 * arg3; - arg0[1][1] = temp_f22 * temp_f0 * arg3; - arg0[2][1] = -sp44 * arg3; - arg0[3][1] = arg1[1]; - arg0[0][2] = ((-sp3C * temp_f0) + (sp44 * sp38 * sp34)) * arg3; - arg0[1][2] = ((sp3C * sp34) + (sp44 * sp38 * temp_f0)) * arg3; - arg0[2][2] = temp_f22 * sp38 * arg3; - arg0[3][2] = arg1[2]; - arg0[0][3] = 0.0f; - arg0[1][3] = 0.0f; - arg0[2][3] = 0.0f; - arg0[3][3] = 1.0f; + transformMatrix[0][0] = (( cosY * cosZ) + (sinX * sinY * sinZ)) * scalingFactor; + transformMatrix[1][0] = ((-cosY * sinZ) + (sinX * sinY * cosZ)) * scalingFactor; + transformMatrix[2][0] = (cosX * sinY) * scalingFactor; + transformMatrix[3][0] = translationVector[0]; + transformMatrix[0][1] = cosX * sinZ * scalingFactor; + transformMatrix[1][1] = cosX * cosZ * scalingFactor; + transformMatrix[2][1] = -sinX * scalingFactor; + transformMatrix[3][1] = translationVector[1]; + transformMatrix[0][2] = ((-sinY * cosZ) + (sinX * cosY * sinZ)) * scalingFactor; + transformMatrix[1][2] = (( sinY * sinZ) + (sinX * cosY * cosZ)) * scalingFactor; + transformMatrix[2][2] = cosX * cosY * scalingFactor; + transformMatrix[3][2] = translationVector[2]; + transformMatrix[0][3] = 0.0f; + transformMatrix[1][3] = 0.0f; + transformMatrix[2][3] = 0.0f; + transformMatrix[3][3] = 1.0f; } -void func_80042760(Mat4 dest, Vec3f arg1, Vec3f arg2, f32 scale) { - dest[0][0] = scale; - dest[1][0] = 0.0f; - dest[2][0] = 0.0f; - dest[3][0] = arg1[0] - arg2[0]; - dest[0][1] = 0.0f; - dest[1][1] = -scale; - dest[2][1] = 0.0f; - dest[3][1] = arg1[1] - arg2[1]; - dest[0][2] = 0.0f; - dest[1][2] = 0.0f; - dest[2][2] = -scale; - dest[3][2] = arg1[2] - arg2[2]; - dest[0][3] = 0.0f; - dest[1][3] = 0.0f; - dest[2][3] = 0.0f; - dest[3][3] = 1.0f; +void mtxf_set_matrix_scale_transl(Mat4 transformMatrix, Vec3f vec1, Vec3f vec2, f32 scale) { + transformMatrix[0][0] = scale; + transformMatrix[1][0] = 0.0f; + transformMatrix[2][0] = 0.0f; + transformMatrix[3][0] = vec1[0] - vec2[0]; + transformMatrix[0][1] = 0.0f; + transformMatrix[1][1] = -scale; + transformMatrix[2][1] = 0.0f; + transformMatrix[3][1] = vec1[1] - vec2[1]; + transformMatrix[0][2] = 0.0f; + transformMatrix[1][2] = 0.0f; + transformMatrix[2][2] = -scale; + transformMatrix[3][2] = vec1[2] - vec2[2]; + transformMatrix[0][3] = 0.0f; + transformMatrix[1][3] = 0.0f; + transformMatrix[2][3] = 0.0f; + transformMatrix[3][3] = 1.0f; } /** @@ -801,38 +800,38 @@ void func_80042760(Mat4 dest, Vec3f arg1, Vec3f arg2, f32 scale) { * @param arg1 **/ -void func_800427DC(s32 arg0, Mat4 arg1) { - f32 sp3C; - struct_80165C18_entry *temp_s0 = &D_80165C18[arg0]; - f32 sp34; - f32 sp30; - f32 sp2C; - f32 temp_f0; - f32 temp_f20; +void mtxf_set_matrix_gObjectList(s32 objectIndex, Mat4 transformMatrix) { + f32 sinX; + Objects *temp_s0 = &gObjectList[objectIndex]; + f32 sinY; + f32 cosY; + f32 sinZ; + f32 cosZ; + f32 cosX; - sp3C = sins(temp_s0->unk_0B2[0]); - temp_f20 = coss(temp_s0->unk_0B2[0]); - sp34 = sins(temp_s0->unk_0B2[1]); - sp30 = coss(temp_s0->unk_0B2[1]); - sp2C = sins(temp_s0->unk_0B2[2]); - temp_f0 = coss(temp_s0->unk_0B2[2]); + sinX = sins(temp_s0->unk_0B2[0]); + cosX = coss(temp_s0->unk_0B2[0]); + sinY = sins(temp_s0->unk_0B2[1]); + cosY = coss(temp_s0->unk_0B2[1]); + sinZ = sins(temp_s0->unk_0B2[2]); + cosZ = coss(temp_s0->unk_0B2[2]); - arg1[0][0] = temp_s0->sizeScaling * ((sp30 * temp_f0) + (sp3C * sp34 * sp2C)); - arg1[1][0] = temp_s0->sizeScaling * ((-sp30 * sp2C) + sp3C * sp34 * temp_f0); - arg1[2][0] = temp_s0->sizeScaling * (temp_f20 * sp34); - arg1[3][0] = temp_s0->pos[0]; - arg1[0][1] = temp_s0->sizeScaling * (temp_f20 * sp2C); - arg1[1][1] = temp_s0->sizeScaling * (temp_f20 * temp_f0); - arg1[2][1] = temp_s0->sizeScaling * -sp3C; - arg1[3][1] = temp_s0->pos[1]; - arg1[0][2] = temp_s0->sizeScaling * ((-sp34 * temp_f0) + (sp3C * sp30 * sp2C)); - arg1[1][2] = temp_s0->sizeScaling * ((sp34 * sp2C) + (sp3C * sp30 * temp_f0)); - arg1[2][2] = temp_s0->sizeScaling * (temp_f20 * sp30); - arg1[3][2] = temp_s0->pos[2]; - arg1[0][3] = 0.0f; - arg1[1][3] = 0.0f; - arg1[2][3] = 0.0f; - arg1[3][3] = 1.0f; + transformMatrix[0][0] = temp_s0->sizeScaling * ((cosY * cosZ) + (sinX * sinY * sinZ)); + transformMatrix[1][0] = temp_s0->sizeScaling * ((-cosY * sinZ) + sinX * sinY * cosZ); + transformMatrix[2][0] = temp_s0->sizeScaling * (cosX * sinY); + transformMatrix[3][0] = temp_s0->pos[0]; + transformMatrix[0][1] = temp_s0->sizeScaling * (cosX * sinZ); + transformMatrix[1][1] = temp_s0->sizeScaling * (cosX * cosZ); + transformMatrix[2][1] = temp_s0->sizeScaling * -sinX; + transformMatrix[3][1] = temp_s0->pos[1]; + transformMatrix[0][2] = temp_s0->sizeScaling * ((-sinY * cosZ) + (sinX * cosY * sinZ)); + transformMatrix[1][2] = temp_s0->sizeScaling * ((sinY * sinZ) + (sinX * cosY * cosZ)); + transformMatrix[2][2] = temp_s0->sizeScaling * (cosX * cosY); + transformMatrix[3][2] = temp_s0->pos[2]; + transformMatrix[0][3] = 0.0f; + transformMatrix[1][3] = 0.0f; + transformMatrix[2][3] = 0.0f; + transformMatrix[3][3] = 1.0f; } UNUSED void mtxf_mult_first_column(Mat4 arg0, f32 arg1) { @@ -853,36 +852,37 @@ UNUSED void mtxf_mult_third_column(Mat4 arg0, f32 arg1) { arg0[2][2] *= arg1; } -void func_80042A20(Mat4 dest, Vec3f arg1, Vec3f arg2, u16 arg3, f32 arg4) { +void set_transform_matrix(Mat4 dest, Vec3f orientationVector, Vec3f positionVector, u16 rotationAngle, f32 scaleFactor) { Vec3f sp44; Vec3f sp38; Vec3f sp2C; - vec3f_set_dupe_2_electric_boogaloo(sp44, sins(arg3), 0.0f, coss(arg3)); - func_80041530(arg1); - func_80041594(sp38, arg1, sp44); - func_80041530(sp38); - func_80041594(sp2C, sp38, arg1); - func_80041530(sp2C); - dest[0][0] = sp38[0] * arg4; - dest[0][1] = sp38[1] * arg4; - dest[0][2] = sp38[2] * arg4; - dest[3][0] = arg2[0]; - dest[1][0] = arg1[0] * arg4; - dest[1][1] = arg1[1] * arg4; - dest[1][2] = arg1[2] * arg4; - dest[3][1] = arg2[1]; - dest[2][0] = sp2C[0] * arg4; - dest[2][1] = sp2C[1] * arg4; - dest[2][2] = sp2C[2] * arg4; - dest[3][2] = arg2[2]; + vec3f_set_xyz(sp44, sins(rotationAngle), 0.0f, coss(rotationAngle)); + vec3f_normalize(orientationVector); + vec3f_cross_product(sp38, orientationVector, sp44); + vec3f_normalize(sp38); + vec3f_cross_product(sp2C, sp38, orientationVector); + vec3f_normalize(sp2C); + dest[0][0] = sp38[0] * scaleFactor; + dest[0][1] = sp38[1] * scaleFactor; + dest[0][2] = sp38[2] * scaleFactor; + dest[3][0] = positionVector[0]; + dest[1][0] = orientationVector[0] * scaleFactor; + dest[1][1] = orientationVector[1] * scaleFactor; + dest[1][2] = orientationVector[2] * scaleFactor; + dest[3][1] = positionVector[1]; + dest[2][0] = sp2C[0] * scaleFactor; + dest[2][1] = sp2C[1] * scaleFactor; + dest[2][2] = sp2C[2] * scaleFactor; + dest[3][2] = positionVector[2]; dest[0][3] = 0.0f; dest[1][3] = 0.0f; dest[2][3] = 0.0f; dest[3][3] = 1.0f; } -UNUSED void func_80042B5C(Vec3f arg0, Vec3f arg1, Vec3s arg2) { +// aplly to position a rotation and put in dest +UNUSED void vec3f_rotate(Vec3f dest, Vec3f pos, Vec3s rot) { f32 sp74; f32 sp70; f32 sp6C; @@ -899,27 +899,29 @@ UNUSED void func_80042B5C(Vec3f arg0, Vec3f arg1, Vec3s arg2) { f32 sine3; f32 cosine3; - sine1 = sins(arg2[0]); - cosine1 = coss(arg2[0]); - sine2 = sins(arg2[1]); - cosine2 = coss(arg2[1]); - sine3 = sins(arg2[2]); - cosine3 = coss(arg2[2]); - sp74 = arg1[0] * ((cosine2 * cosine3) + ((sine1 * sine2) * sine3)); - temp_f4 = arg1[1] * ((-cosine2 * sine3) + ((sine1 * sine2) * cosine3)); - temp_f8 = arg1[2] * (cosine1 * sine2); - sp70 = arg1[0] * (cosine1 * sine3); - sp64 = arg1[1] * (cosine1 * cosine3); - sp58 = arg1[2] * -sine1; - sp6C = arg1[0] * ((-sine2 * cosine3) + ((sine1 * cosine2) * sine3)); - sp60 = arg1[1] * ((sine2 * sine3) + ((sine1 * cosine2) * cosine3)); - sp54 = arg1[2] * (cosine1 * cosine2); - arg0[0] = sp74 + temp_f4 + temp_f8; - arg0[1] = sp70 + sp64 + sp58; - arg0[2] = sp6C + sp60 + sp54; + sine1 = sins(rot[0]); + cosine1 = coss(rot[0]); + sine2 = sins(rot[1]); + cosine2 = coss(rot[1]); + sine3 = sins(rot[2]); + cosine3 = coss(rot[2]); + // it's a matrix multiplication + sp74 = pos[0] * ((cosine2 * cosine3) + ((sine1 * sine2) * sine3)); + temp_f4 = pos[1] * ((-cosine2 * sine3) + ((sine1 * sine2) * cosine3)); + temp_f8 = pos[2] * (cosine1 * sine2); + sp70 = pos[0] * (cosine1 * sine3); + sp64 = pos[1] * (cosine1 * cosine3); + sp58 = pos[2] * -sine1; + sp6C = pos[0] * ((-sine2 * cosine3) + ((sine1 * cosine2) * sine3)); + sp60 = pos[1] * ((sine2 * sine3) + ((sine1 * cosine2) * cosine3)); + sp54 = pos[2] * (cosine1 * cosine2); + dest[0] = sp74 + temp_f4 + temp_f8; + dest[1] = sp70 + sp64 + sp58; + dest[2] = sp6C + sp60 + sp54; } -void func_80042D14(Vec3f arg0, Vec3f arg1, Vec3s arg2) { +// apply to position a rotation x y only and put in dest +void vec3f_rotate_x_y(Vec3f dest, Vec3f pos, Vec3s rot) { f32 sp2C; f32 sp28; f32 sp24; @@ -928,61 +930,68 @@ void func_80042D14(Vec3f arg0, Vec3f arg1, Vec3s arg2) { f32 sine2; f32 cosine2; - sp2C = arg1[0]; - sp28 = arg1[1]; - sp24 = arg1[2]; - sine1 = sins(arg2[0]); - cosine1 = coss(arg2[0]); - sine2 = sins(arg2[1]); - cosine2 = coss(arg2[1]); - arg0[0] = (sp2C * cosine2) - (sp24 * sine2); - arg0[1] = (sp2C * sine1 * sine2) + (sp28 * cosine1) + (sp24 * sine1 * cosine2); - arg0[2] = ((sp2C * cosine1 * sine2) - (sp28 * sine1)) + (sp24 * cosine1 * cosine2); + sp2C = pos[0]; + sp28 = pos[1]; + sp24 = pos[2]; + sine1 = sins(rot[0]); + cosine1 = coss(rot[0]); + sine2 = sins(rot[1]); + cosine2 = coss(rot[1]); + dest[0] = (sp2C * cosine2) - (sp24 * sine2); + dest[1] = (sp2C * sine1 * sine2) + (sp28 * cosine1) + (sp24 * sine1 * cosine2); + dest[2] = ((sp2C * cosine1 * sine2) - (sp28 * sine1)) + (sp24 * cosine1 * cosine2); } -void func_80042E00(Vec3f arg0, Vec3su arg1, f32 arg2) { +/** + * @brief set the matrix to a transformation matrix + * + * @param translate or position + * @param orientation + * @param scale + */ +void rsp_set_matrix_transformation(Vec3f translate, Vec3su orientation, f32 scale) { Mat4 matrix; - func_800425D0(matrix, arg0, arg1, arg2); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix); + mtxf_set_matrix_transformation(matrix, translate, orientation, scale); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], matrix); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } -UNUSED void func_80042EB8(Vec3f arg0, Vec3f arg1, f32 arg2) { +UNUSED void rsp_set_matrix_diff_translation_scale(Vec3f pos1, Vec3f pos2, f32 scale) { Mat4 matrix; - func_80042760(matrix, arg0, arg1, arg2); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix); + mtxf_set_matrix_scale_transl(matrix, pos1, pos2, scale); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], matrix); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } -void func_80042F70(Vec3f arg0, Vec3su arg1, f32 arg2) { +void rsp_set_matrix_transformation_inverted_x_y_orientation(Vec3f arg0, Vec3su arg1, f32 arg2) { Mat4 matrix; - Vec3su sp20; + Vec3su orientation; - sp20[0] = arg1[0] + 0x8000; - sp20[1] = arg1[1] + 0x8000; - sp20[2] = arg1[2]; - func_800425D0(matrix, arg0, sp20, arg2); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix); + orientation[0] = arg1[0] + 0x8000; // change the sign + orientation[1] = arg1[1] + 0x8000; // change the sign + orientation[2] = arg1[2]; + mtxf_set_matrix_transformation(matrix, arg0, orientation, arg2); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], matrix); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } -void func_80043050(Vec3f arg0,Vec3f arg1, f32 arg2) { +void rsp_set_matrix_transl_rot_scale(Vec3f arg0,Vec3f arg1, f32 arg2) { Mat4 matrix; - func_80042A20(matrix, arg1, arg0, 0, arg2); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], matrix); + set_transform_matrix(matrix, arg1, arg0, 0, arg2); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], matrix); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } -void func_80043104(s32 arg0) { - Mat4 sp20; +void rsp_set_matrix_gObjectList(s32 transformIndex) { + Mat4 matrix; - func_800427DC(arg0, sp20); - func_80022180(&gGfxPool->mtxHud[gMatrixHudCount], sp20); + mtxf_set_matrix_gObjectList(transformIndex, matrix); + convert_to_fixed_point_matrix(&gGfxPool->mtxHud[gMatrixHudCount], matrix); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxHud[gMatrixHudCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } diff --git a/src/math_util_2.h b/src/math_util_2.h index 104425cdf..f56a12ee2 100644 --- a/src/math_util_2.h +++ b/src/math_util_2.h @@ -7,9 +7,9 @@ /* Function Prototypes */ // Unused functions -void func_80040E50(s32*, s32); -void func_80040E60(s32*,s32); -void func_80040E74(s32*, s32); +void operator_or(s32*, s32); +void operator_and_not(s32*,s32); +void operator_xor(s32*, s32); s32 func_80040E84(s32*, s32); s32 func_80040EA4(s32*, s32); s32 f32_step_up_towards_alternate(f32*, f32, f32*); @@ -19,7 +19,7 @@ s32 s32_step_down_towards_alternate(s32*, s32, s32*); s32 s16_step_up_towards_alternate(s16*, s16, s16*); s32 s16_step_down_towards_alternate(s16*, s16, s16*); s32 s32_step_towards(s32*, s32, s32); -s32 func_80041608(f32, f32, f32, f32, f32); +s32 is_within_distance_2d(f32, f32, f32, f32, f32); s32 func_80041680(f32, f32); s32 func_800416AC(f32, f32); void func_80041F54(s32, s32); @@ -32,8 +32,8 @@ void func_8004252C(Mat4, u16, u16); void mtxf_mult_first_column(Mat4, f32); void mtxf_mult_second_column(Mat4, f32); void mtxf_mult_third_column(Mat4, f32); -void func_80042B5C(Vec3f, Vec3f, Vec3s); -void func_80042EB8(Vec3f, Vec3f, f32); +void vec3f_rotate(Vec3f, Vec3f, Vec3s); +void rsp_set_matrix_diff_translation_scale(Vec3f, Vec3f, f32); void vec3f_copy(Vec3f, Vec3f); @@ -48,9 +48,9 @@ s32 u16_step_down_towards(u16*, s32, s32); s32 s16_step_towards(s16*, s16, s16); s32 f32_step_towards(f32*, f32, f32); void func_80041480(s16*, s16, s16, s16*); -Vec3f *vec3f_set_dupe_2_electric_boogaloo(Vec3f, f32, f32, f32); -Vec3f *func_80041530(Vec3f dest); -Vec3f *func_80041594(Vec3f, Vec3f, Vec3f); +Vec3f *vec3f_set_xyz(Vec3f, f32, f32, f32); +Vec3f *vec3f_normalize(Vec3f dest); +Vec3f *vec3f_cross_product(Vec3f, Vec3f, Vec3f); s32 func_80041658(f32, f32); f32 func_800416D8(f32, f32, u16); f32 func_80041724(f32, f32, u16); @@ -70,15 +70,15 @@ void func_80041D24(void); void func_80041D34(void); void func_80041EF4(void); void func_80042330(s32, s32, u16, f32); -void func_800425D0(Mat4, Vec3f, Vec3su, f32); -void func_80042760(Mat4, Vec3f, Vec3f, f32); -void func_800427DC(s32, Mat4); -void func_80042A20(Mat4, Vec3f, Vec3f, u16, f32); -void func_80042D14(Vec3f, Vec3f, Vec3s); -void func_80042E00(Vec3f, Vec3su, f32); -void func_80042F70(Vec3f, Vec3su, f32); -void func_80043050(Vec3f, Vec3f, f32); -void func_80043104(s32); +void mtxf_set_matrix_transformation(Mat4, Vec3f, Vec3su, f32); +void mtxf_set_matrix_scale_transl(Mat4, Vec3f, Vec3f, f32); +void mtxf_set_matrix_gObjectList(s32, Mat4); +void set_transform_matrix(Mat4, Vec3f, Vec3f, u16, f32); +void vec3f_rotate_x_y(Vec3f, Vec3f, Vec3s); +void rsp_set_matrix_transformation(Vec3f, Vec3su, f32); +void rsp_set_matrix_transformation_inverted_x_y_orientation(Vec3f, Vec3su, f32); +void rsp_set_matrix_transl_rot_scale(Vec3f, Vec3f, f32); +void rsp_set_matrix_gObjectList(s32); /* This is where I'd put my static data, if I had any */ diff --git a/src/menus.c b/src/menus.c index 0b9c223e2..8db43d386 100644 --- a/src/menus.c +++ b/src/menus.c @@ -32,7 +32,7 @@ f32 D_8018EDD8; f32 D_8018EDDC; s32 D_8018EDE0; s8 gCharacterGridSelections[4]; // map from player id to current grid position -s8 D_8018EDE8[4]; // bool8; map player id to isCharSelected on CSS +bool8 D_8018EDE8[4]; // map player id to isCharSelected on CSS s8 D_8018EDEC; s8 gMainMenuSelectionDepth; s8 D_8018EDEE; // grid screen state? @@ -40,7 +40,7 @@ s8 gDebugMenuSelection; s8 gControllerPakMenuSelection; s8 D_8018EDF1; u8 gSoundMode; -s8 D_8018EDF3; // main menu row id? but it is also the number of players define +s8 gPlayerCount; // main menu row id? but it is also the number of players define s8 D_8018EDF4; s8 D_8018EDF5; s8 D_8018EDF6; @@ -92,7 +92,7 @@ u32 sVIGammaOffDitherOn = OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON; // used to set gScreenModeSelection; might be smaller; could be function static data const s8 D_800F2B50[] = {0, 1, 2, 3, 3}; -// set to D_8018EDF3, then that sets gPlayerCountSelection1 +// set to gPlayerCount, then that sets gPlayerCountSelection1 const s8 D_800F2B58[] = {1, 2, 2, 3, 4}; // Limit for each column in one-two-three-four players selection @@ -224,7 +224,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) { struct_8018D9E0_entry *sp38; s32 res; struct_8018EE10_entry *sp30; - s32 sp2C; // cursorWasMoved or communicateStoredAction + bool sp2C; // cursorWasMoved or communicateStoredAction UNUSED u32 pad; btnAndStick = (controller->buttonPressed | controller->stickPressed); @@ -852,7 +852,7 @@ void logo_intro_menu_act(struct Controller *arg0, UNUSED u16 arg1) { gScreenModeSelection = 0; gCharacterSelections[0] = 0; gModeSelection = 0; - D_8018EDF3 = 1; + gPlayerCount = 1; #endif if ((func_800B4520() == 0) && (anyInput)) { @@ -1186,7 +1186,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) { default: break; } - gPlayerCountSelection1 = D_8018EDF3 = D_800F2B58[D_8018EDF1]; + gPlayerCountSelection1 = gPlayerCount = D_800F2B58[D_8018EDF1]; if (sp28) { if (btnAndStick & (A_BUTTON | START_BUTTON)) { @@ -1225,9 +1225,9 @@ void splash_menu_act(struct Controller *controller, u16 arg1) { void func_800B28C8(void) { // For Grand Prix and Versus, this will be the CC mode selected. For Time Trials, it will // be whether 'Begin' or 'Data' is selected. Not used for Battle. - s8 temp_v0 = D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]]; + s8 temp_v0 = D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; // Determine which game mode was selected based on the number of players and the row selected on the main menu - switch (gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]) { + switch (gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]) { case GRAND_PRIX: gCCSelection = temp_v0; gPlaceItemBoxes = 1; @@ -1260,7 +1260,7 @@ void func_800B28C8(void) { void main_menu_act(struct Controller *controller, u16 arg1) { u16 btnAndStick; // sp2E s32 sp28; - s32 sp24; + bool sp24; s32 newMode; // temp_v1_2? btnAndStick = controller->buttonPressed | controller->stickPressed; @@ -1272,23 +1272,23 @@ void main_menu_act(struct Controller *controller, u16 arg1) { switch (gMainMenuSelectionDepth) { case BLANK_MAIN_MENU: { - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; break; } case PLAYER_NUM_SELECTION: { - if ((btnAndStick & R_JPAD) && D_8018EDF3 < 4) { - D_8018EDF3 += 1; + if ((btnAndStick & R_JPAD) && gPlayerCount < 4) { + gPlayerCount += 1; func_800B44AC(); play_sound2(SOUND_MENU_CURSOR_MOVE); } - if ((btnAndStick & L_JPAD) && D_8018EDF3 >= 2) { - D_8018EDF3 -= 1; + if ((btnAndStick & L_JPAD) && gPlayerCount >= 2) { + gPlayerCount -= 1; func_800B44AC(); play_sound2(SOUND_MENU_CURSOR_MOVE); } // L800B2B38 - gPlayerCountSelection1 = D_8018EDF3; + gPlayerCountSelection1 = gPlayerCount; switch (gPlayerCountSelection1){ case 1: gScreenModeSelection = SCREEN_MODE_1P; break; case 2: gScreenModeSelection = SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL; break; @@ -1301,42 +1301,42 @@ void main_menu_act(struct Controller *controller, u16 arg1) { func_800CA330(0x19); D_8018EDE0 = 1; play_sound2(SOUND_MENU_GO_BACK); - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } else if (btnAndStick & A_BUTTON) { // L800B2C00 gMainMenuSelectionDepth = GAME_MODE_SELECTION; func_800B44AC(); play_sound2(SOUND_MENU_SELECT); - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } else if (btnAndStick & CONT_L) { // L800B2C58 gMainMenuSelectionDepth = OPTIONS_SELECTION; func_8009E280(); play_sound2(SOUND_MENU_OPTION); - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } else if (btnAndStick & CONT_R) { gMainMenuSelectionDepth = DATA_SELECTION; func_8009E258(); play_sound2(SOUND_MENU_DATA); - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } else { - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } break; } case GAME_MODE_SELECTION: { if (btnAndStick & D_JPAD) { - if (D_800E86AC[D_8018EDF3 - 1] < D_800F2B58[D_8018EDF3 + 7]) { - D_800E86AC[D_8018EDF3 - 1] += 1; + if (D_800E86AC[gPlayerCount - 1] < D_800F2B58[gPlayerCount + 7]) { + D_800E86AC[gPlayerCount - 1] += 1; func_800B44AC(); play_sound2(SOUND_MENU_CURSOR_MOVE); } } // L800B2D94 if (btnAndStick & U_JPAD) { - if (D_800E86AC[D_8018EDF3 - 1] > 0) { - D_800E86AC[D_8018EDF3 - 1] -= 1; + if (D_800E86AC[gPlayerCount - 1] > 0) { + D_800E86AC[gPlayerCount - 1] -= 1; func_800B44AC(); play_sound2(SOUND_MENU_CURSOR_MOVE); } @@ -1346,10 +1346,10 @@ void main_menu_act(struct Controller *controller, u16 arg1) { gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; func_800B44AC(); play_sound2(SOUND_MENU_GO_BACK); - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } else if (btnAndStick & A_BUTTON) { // L800B2E3C - switch(gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]) { + switch(gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]) { case 0: gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; play_sound2(SOUND_MENU_GP); @@ -1373,9 +1373,9 @@ void main_menu_act(struct Controller *controller, u16 arg1) { // L800B2F04 func_800B44AC(); gMenuTimingCounter = 0; - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } else { - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } break; } @@ -1385,14 +1385,14 @@ void main_menu_act(struct Controller *controller, u16 arg1) { if (1); if ((arg1 == 0) && (++gMenuTimingCounter == 100 || gMenuTimingCounter % 300 == 0)) { // L800B2FAC - if (gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]] == 0 || gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]] == 2) { + if (gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]] == 0 || gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]] == 2) { play_sound2(SOUND_MENU_SELECT_LEVEL); } } // L800B3000 - sp28 = D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]]; + sp28 = D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; if ((btnAndStick & U_JPAD) && (sp28 > 0)) { - D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]] -= 1; + D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]] -= 1; func_800B44AC(); play_sound2(SOUND_MENU_CURSOR_MOVE); } @@ -1400,33 +1400,33 @@ void main_menu_act(struct Controller *controller, u16 arg1) { if (btnAndStick & D_JPAD) { sp24 = FALSE; if (func_800B555C()) { - if (sp28 < D_800F2B60[D_8018EDF3 + 4][D_800E86AC[D_8018EDF3 - 1] + 1]) { + if (sp28 < D_800F2B60[gPlayerCount + 4][D_800E86AC[gPlayerCount - 1] + 1]) { sp24 = TRUE; } } else { // L800B30D4 - if (sp28 < D_800F2B60[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1] + 1]) { + if (sp28 < D_800F2B60[gPlayerCount][D_800E86AC[gPlayerCount - 1] + 1]) { sp24 = TRUE; } } // L800B3110 if (sp24) { - D_800E86B0[D_8018EDF3 - 1][D_8018EDF3] += 1; + D_800E86B0[gPlayerCount - 1][gPlayerCount] += 1; func_800B44AC(); play_sound2(SOUND_MENU_CURSOR_MOVE); } } // L800B3150 - sp28 = D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]]; + sp28 = D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]; if (btnAndStick & B_BUTTON) { gMainMenuSelectionDepth = GAME_MODE_SELECTION; func_800B44AC(); play_sound2(SOUND_MENU_GO_BACK); - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } else if (btnAndStick & A_BUTTON) { // L800B31DC func_800B44AC(); - if (D_8018EDF3 == 1 && D_800E86AC[D_8018EDF3 - 1] == 1 && sp28 == 1) { + if (gPlayerCount == 1 && D_800E86AC[gPlayerCount - 1] == 1 && sp28 == 1) { func_8009E258(); play_sound2(SOUND_MENU_DATA); } else { @@ -1434,10 +1434,10 @@ void main_menu_act(struct Controller *controller, u16 arg1) { play_sound2(SOUND_MENU_SELECT); gMenuTimingCounter = 0; } - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } else { // L800B3294 - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } break; } @@ -1449,7 +1449,7 @@ void main_menu_act(struct Controller *controller, u16 arg1) { } // L800B330C if (btnAndStick & B_BUTTON) { - switch (gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]) { + switch (gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]) { case 0: case 1: case 2: @@ -1464,27 +1464,27 @@ void main_menu_act(struct Controller *controller, u16 arg1) { func_800B44AC(); play_sound2(SOUND_MENU_GO_BACK); gMenuTimingCounter = 0; - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } else if (btnAndStick & A_BUTTON) { // L800B33D8 func_8009E1C0(); play_sound2(SOUND_MENU_OK_CLICKED); func_800B28C8(); - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } else { - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; } break; } case OPTIONS_SELECTION: case DATA_SELECTION: { - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; break; } default: { - newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + newMode = gGameModeFromNumPlayersAndRowSelection[gPlayerCount][D_800E86AC[gPlayerCount - 1]]; break; } } @@ -1496,7 +1496,7 @@ GLOBAL_ASM("asm/non_matchings/menus/main_menu_act.s") #endif // check if there is no currently selected and/or hovered character at grid position `gridId` -s32 is_character_spot_free(s32 gridId) { +bool is_character_spot_free(s32 gridId) { s32 i; for (i = 0; i < ARRAY_COUNT(gCharacterGridSelections); i++) { if (gridId == gCharacterGridSelections[i]) { @@ -1825,13 +1825,13 @@ void func_800B3F74(s32 menuSelection) { gCupSelection = MUSHROOM_CUP; gCupCourseSelection = 0; gTimeTrialDataCourseIndex = 0; - if (D_8018EDF3 <= 0) { - D_8018EDF3 = 1; + if (gPlayerCount <= 0) { + gPlayerCount = 1; } - if (D_8018EDF3 >= 5) { - D_8018EDF3 = 4; + if (gPlayerCount >= 5) { + gPlayerCount = 4; } - D_8018EDF1 = D_800F2BDC[D_8018EDF3 + 3]; + D_8018EDF1 = D_800F2BDC[gPlayerCount + 3]; func_800CA008(0, 0); func_800C8EAC(1); D_8018EDFC = 0; @@ -1859,7 +1859,7 @@ void func_800B3F74(s32 menuSelection) { { gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; func_800C8EAC(2); - D_8018EDF3 = 1; + gPlayerCount = 1; if (gScreenModeSelection >= NUM_SCREEN_MODES || gScreenModeSelection < 0) { gScreenModeSelection = SCREEN_MODE_1P; } @@ -1901,7 +1901,7 @@ void func_800B3F74(s32 menuSelection) { D_8018EDEE = 1; if (gGamestate == 0) { for (i = 0; i < 4; i++) { - if (i < D_8018EDF3) { + if (i < gPlayerCount) { gCharacterGridSelections[i] = i + 1; } else { gCharacterGridSelections[i] = 0; @@ -1926,7 +1926,7 @@ void func_800B3F74(s32 menuSelection) { { D_8018EDEE = 3; for (i = 0; i < ARRAY_COUNT(D_8018EDE8); i++) { - if (D_8018EDF3 > i) { + if (gPlayerCount > i) { D_8018EDE8[i] = TRUE; } else { D_8018EDE8[i] = FALSE; @@ -1973,7 +1973,7 @@ void func_800B3F74(s32 menuSelection) { } void func_800B44AC(void) { - D_8018E7A8 = 0x20; + gCycleFlashMenu = 0x20; } void func_800B44BC(void) { diff --git a/src/menus.h b/src/menus.h index 9b3bf569a..3c5ca0907 100644 --- a/src/menus.h +++ b/src/menus.h @@ -56,7 +56,7 @@ extern s8 gDebugMenuSelection; extern s8 gControllerPakMenuSelection; extern s8 D_8018EDF1; extern u8 gSoundMode; -extern s8 D_8018EDF3; +extern s8 gPlayerCount; extern s8 D_8018EDF4; extern s8 D_8018EDF5; extern s8 D_8018EDF6; diff --git a/src/player_controller.c b/src/player_controller.c index c295e7af2..13db3665b 100644 --- a/src/player_controller.c +++ b/src/player_controller.c @@ -360,29 +360,29 @@ s32 get_player_index_for_player(Player *player) { void func_80027DA8(Player *arg0, s8 arg1) { if (D_8015F890 != 1) { - if ((arg0->unk_000 & 0x10) != 0x10) { - if (((D_8018D168 == 1) && ((arg0->unk_000 & 0x4000) == 0x4000)) && ((arg0->unk_000 & 0x100) != 0x100)) { + if ((arg0->type & 0x10) != 0x10) { + if (((D_8018D168 == 1) && ((arg0->type & 0x4000) == 0x4000)) && ((arg0->type & 0x100) != 0x100)) { func_800C94A4(arg1); - arg0->unk_000 |= 0x10; - } else if ((arg0->unk_000 & 0x2000) == 0) { + arg0->type |= 0x10; + } else if ((arg0->type & 0x2000) == 0) { func_800C9A88(arg1); - arg0->unk_000 |= 0x10; + arg0->type |= 0x10; } } - } else if ((arg0->unk_000 & 0x10) != 0x10) { + } else if ((arg0->type & 0x10) != 0x10) { if ((D_8018D168 == 1) && (arg0 == gPlayerOne)) { func_800C94A4(arg1); - arg0->unk_000 |= 0x10; - } else if ((arg0->unk_000 & 0x2000) == 0) { + arg0->type |= 0x10; + } else if ((arg0->type & 0x2000) == 0) { func_800C9A88(arg1); - arg0->unk_000 |= 0x10; + arg0->type |= 0x10; } } } void func_80027EDC(Player *player, s8 playerId) { UNUSED s32 pad; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & 0x100) != 0x100)) { switch (gCurrentCourseId) { case COURSE_MARIO_RACEWAY: if (((s16)gNearestWaypointByPlayerId[playerId] >= 0x19B) && ((s16)gNearestWaypointByPlayerId[playerId] < 0x1B9)) { @@ -450,7 +450,7 @@ void func_80027EDC(Player *player, s8 playerId) { } break; case COURSE_TOADS_TURNPIKE: - if ((player->unk_000 & 0x800) != 0x800) { + if ((player->type & PLAYER_CINEMATIC_MODE) != PLAYER_CINEMATIC_MODE) { if (D_80165300[playerId] != 1) { func_800CA288(playerId, 0x1e); } @@ -572,7 +572,7 @@ void func_80027EDC(Player *player, s8 playerId) { } break; case COURSE_TOADS_TURNPIKE: - if ((player->unk_000 & 0x800) != 0x800) { + if ((player->type & PLAYER_CINEMATIC_MODE) != PLAYER_CINEMATIC_MODE) { if (D_80165300[playerId] != 1) { func_800CA2E4(playerId, 0x1E); } @@ -619,43 +619,43 @@ void func_80027EDC(Player *player, s8 playerId) { void func_80028864(Player *player, Camera *camera, s8 arg2, s8 arg3) { u16 sp1E; - if (!(player->unk_000 & 0x2000)) { + if (!(player->type & PLAYER_START_SEQUENCE)) { switch (gActiveScreenMode) { - case 0: - sp1E = func_8001FB0C(player, camera1, (f32) D_8016557C, 0.0f); + case SCREEN_MODE_1P: + sp1E = check_player_camera_collision(player, camera1, (f32) D_8016557C, 0.0f); break; - case 1: - case 2: - sp1E = func_8001FB0C(player, camera1, (f32) D_8016557C, 0.0f); + case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: + case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: + sp1E = check_player_camera_collision(player, camera1, (f32) D_8016557C, 0.0f); if (sp1E == 1) break; - sp1E = func_8001FB0C(player, camera2, (f32) D_8016557C, 0.0f); + sp1E = check_player_camera_collision(player, camera2, (f32) D_8016557C, 0.0f); break; - case 3: - sp1E = func_8001FB0C(player, camera1, (f32) D_8016557C, 0.0f); + case SCREEN_MODE_3P_4P_SPLITSCREEN: + sp1E = check_player_camera_collision(player, camera1, (f32) D_8016557C, 0.0f); if (sp1E == 1) break; - sp1E = func_8001FB0C(player, camera2, (f32) D_8016557C, 0.0f); + sp1E = check_player_camera_collision(player, camera2, (f32) D_8016557C, 0.0f); if (sp1E == 1) break; - sp1E = func_8001FB0C(player, camera3, (f32) D_8016557C, 0.0f); + sp1E = check_player_camera_collision(player, camera3, (f32) D_8016557C, 0.0f); if (sp1E == 1) break; - sp1E = func_8001FB0C(player, camera4, (f32) D_8016557C, 0.0f); + sp1E = check_player_camera_collision(player, camera4, (f32) D_8016557C, 0.0f); break; } if ((sp1E == 1) || - ((player->unk_000 & 0x100) == 0x100) || + ((player->type & PLAYER_INVISIBLE_OR_BOMB) == PLAYER_INVISIBLE_OR_BOMB) || (gModeSelection == 3) || ((player->unk_0CA & 2) != 0) || (player->unk_0CA & 8) || ((*((&D_801633F8) + (arg2))) == ((s16) 1U))) { - player->unk_0BC &= ~0x1000; - if (((player->unk_0BC & 0x80) == 0x80) || - ((player->unk_0BC & 0x40) == 0x40) || - ((player->unk_0BC & 0x400) == 0x400) || - ((player->unk_0BC & 0x4000) == 0x4000) || - ((player->unk_0BC & 0x80000) == 0x80000) || - ((player->unk_0BC & 0x800000) == 0x800000) || - ((player->unk_0BC & 0x01000000) == 0x01000000) || - ((player->unk_0BC & 0x02000000) == 0x02000000) || - ((player->unk_0BC & 0x20000) == 0x20000) || + player->effects &= ~0x1000; + if (((player->effects & 0x80) == 0x80) || + ((player->effects & 0x40) == 0x40) || + ((player->effects & 0x400) == 0x400) || + ((player->effects & 0x4000) == 0x4000) || + ((player->effects & 0x80000) == 0x80000) || + ((player->effects & 0x800000) == 0x800000) || + ((player->effects & 0x01000000) == 0x01000000) || + ((player->effects & 0x02000000) == 0x02000000) || + ((player->effects & 0x20000) == 0x20000) || (player->unk_044 & 0x800)) { func_8002E594(player, camera, arg3, arg2); } else { @@ -664,76 +664,76 @@ void func_80028864(Player *player, Camera *camera, s8 arg2, s8 arg3) { } else { control_cpu_movement(player, camera, arg3, arg2); } - } else if ((player->unk_000 & 0x200) == 0x200) { + } else if ((player->type & PLAYER_STAGING) == PLAYER_STAGING) { func_8002D028(player, arg2); func_8002F730(player, camera, arg3, arg2); - } else if (player->unk_000 & 0x80) { + } else if (player->type & 0x80) { func_8002D268(player, camera, arg3, arg2); } else { - if ((player->unk_000 & 0x4000) != 0x4000) { - player->unk_09C = 50.0f; + if ((player->type & 0x4000) != 0x4000) { + player->currentSpeed = 50.0f; } - player->unk_0BC &= ~8; + player->effects &= ~8; } } void func_80028C44(Player *player, Camera *camera, s8 arg2, s8 arg3) { - if ((player->unk_000 & 0x2000) == 0) { - player->unk_0BC &= ~0x1000; - if (((player->unk_0BC & 0x80) == 0x80) || - ((player->unk_0BC & 0x40) == 0x40) || - ((player->unk_0BC & 0x400) == 0x400) || - ((player->unk_0BC & 0x4000) == 0x4000) || - ((player->unk_0BC & 0x80000) == 0x80000) || - ((player->unk_0BC & 0x800000) == 0x800000) || - ((player->unk_0BC & 0x1000000) == 0x1000000) || - ((player->unk_0BC & 0x2000000) == 0x2000000) || - ((player->unk_0BC & 0x20000) == 0x20000) || + if ((player->type & PLAYER_START_SEQUENCE) == 0) { + player->effects &= ~0x1000; + if (((player->effects & 0x80) == 0x80) || + ((player->effects & 0x40) == 0x40) || + ((player->effects & 0x400) == 0x400) || + ((player->effects & 0x4000) == 0x4000) || + ((player->effects & 0x80000) == 0x80000) || + ((player->effects & 0x800000) == 0x800000) || + ((player->effects & 0x1000000) == 0x1000000) || + ((player->effects & 0x2000000) == 0x2000000) || + ((player->effects & 0x20000) == 0x20000) || ((player->unk_044 & 0x800) != 0)) { func_8002E594(player, camera, arg3, arg2); } else { func_8002D268(player, camera, arg3, arg2); } } else { - player->unk_0BC &= -9; + player->effects &= -9; } } void func_80028D3C(Player *player, Camera *camera, s8 arg2, s8 arg3) { - if ((((player->unk_000 & 0x2000) == 0) + if ((((player->type & PLAYER_START_SEQUENCE) == 0) && (D_800DC510 != 5)) || (player->unk_0CA & 2) != 0 || (player->unk_0CA & 8) != 0 - || (player->unk_0BC & 0x4F010CC0) != 0) { - player->unk_0BC &= ~0x1000; + || (player->effects & 0x4F010CC0) != 0) { + player->effects &= ~0x1000; - if (((player->unk_0BC & 0x80) == 0x80) || - ((player->unk_0BC & 0x40) == 0x40) || - ((player->unk_0BC & 0x400) == 0x400) || - ((player->unk_0BC & 0x4000) == 0x4000) || - ((player->unk_0BC & 0x80000) == 0x80000) || - ((player->unk_0BC & 0x800000) == 0x800000) || - ((player->unk_0BC & 0x1000000) == 0x1000000) || - ((player->unk_0BC & 0x2000000) == 0x2000000) || - ((player->unk_0BC & 0x20000) == 0x20000) || + if (((player->effects & 0x80) == 0x80) || + ((player->effects & 0x40) == 0x40) || + ((player->effects & 0x400) == 0x400) || + ((player->effects & 0x4000) == 0x4000) || + ((player->effects & 0x80000) == 0x80000) || + ((player->effects & 0x800000) == 0x800000) || + ((player->effects & 0x1000000) == 0x1000000) || + ((player->effects & 0x2000000) == 0x2000000) || + ((player->effects & 0x20000) == 0x20000) || ((player->unk_044 & 0x800) != 0)) { func_8002E594(player, camera, arg3, arg2); } else { func_8002D268(player, camera, arg3, arg2); } } else { - player->unk_0BC = player->unk_0BC & ~8; + player->effects = player->effects & ~8; } } void func_80028E70(Player *player, Camera *camera, s8 arg2, s8 arg3) { - if ((player->unk_000 & 0x8000) == 0x8000) { + if ((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) { switch (gGamestate) { case ENDING_SEQUENCE: - if (!(player->unk_000 & 0x2000)) { + if (!(player->type & PLAYER_START_SEQUENCE)) { func_80038C6C(player, camera, arg3, arg2); } else { - player->unk_0BC &= ~8; + player->effects &= ~8; } break; default: @@ -808,36 +808,36 @@ void func_800291F8(void) { } void func_80029200(Player *player, s8 arg1) { - if ((s32) player->unk_0C4 < -0x71B) { - player->unk_24C[arg1] = 0; + if ((s32) player->slopeAccel < -0x71B) { + player->animGroupSelector[arg1] = 0; } - if (((s32) player->unk_0C4 < -0x4F9) && ((s32) player->unk_0C4 >= -0x71B)) { - player->unk_24C[arg1] = 1; + if (((s32) player->slopeAccel < -0x4F9) && ((s32) player->slopeAccel >= -0x71B)) { + player->animGroupSelector[arg1] = 1; } - if ((player->unk_0C4 < -0x221) && (player->unk_0C4 >= -0x4F9)) { - player->unk_24C[arg1] = 2; + if ((player->slopeAccel < -0x221) && (player->slopeAccel >= -0x4F9)) { + player->animGroupSelector[arg1] = 2; } - if ((player->unk_0C4 < -0x16B) && (player->unk_0C4 >= -0x221)) { - player->unk_24C[arg1] = 3; + if ((player->slopeAccel < -0x16B) && (player->slopeAccel >= -0x221)) { + player->animGroupSelector[arg1] = 3; } - if ((player->unk_0C4 < 0x16C) && (player->unk_0C4 >= -0x16B)) { - player->unk_24C[arg1] = 4; + if ((player->slopeAccel < 0x16C) && (player->slopeAccel >= -0x16B)) { + player->animGroupSelector[arg1] = 4; } - if ((player->unk_0C4 >= 0x16C) && (player->unk_0C4 < 0x222)) { - player->unk_24C[arg1] = 5; + if ((player->slopeAccel >= 0x16C) && (player->slopeAccel < 0x222)) { + player->animGroupSelector[arg1] = 5; } - if ((player->unk_0C4 >= 0x222) && (player->unk_0C4 < 0x4FA)) { - player->unk_24C[arg1] = 6; + if ((player->slopeAccel >= 0x222) && (player->slopeAccel < 0x4FA)) { + player->animGroupSelector[arg1] = 6; } - if ((player->unk_0C4 >= 0x4FA) && (player->unk_0C4 < 0x71C)) { - player->unk_24C[arg1] = 7; + if ((player->slopeAccel >= 0x4FA) && (player->slopeAccel < 0x71C)) { + player->animGroupSelector[arg1] = 7; } - if (player->unk_0C4 >= 0x71C) { - player->unk_24C[arg1] = 8; + if (player->slopeAccel >= 0x71C) { + player->animGroupSelector[arg1] = 8; } } -void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 arg3) { +void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 playerId) { UNUSED s32 pad[2]; f32 temp_f0; f32 temp_f2; @@ -850,50 +850,50 @@ void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 arg3) { u16 var_a0; player->unk_048[arg2] = atan2s(player->pos[0] - camera->pos[0], player->pos[2] - camera->pos[2]); - player->unk_244[arg2] = (u16) ( (((player->unk_048[arg2]) + player->unk_02C[1] + player->unk_0C0))) / 128; + player->animFrameSelector[arg2] = (u16) ( (((player->unk_048[arg2]) + player->unk_02C[1] + player->unk_0C0))) / 128; - temp_f2 = (D_800DDBD4[player->characterId] * 18.0f) * player->unk_224; + temp_f2 = (gCharacterSize[player->characterId] * 18.0f) * player->size; temp_f0 = player->unk_230 - player->unk_23C; - if ((player->unk_0BC & 8) != 8) { - if ((player->unk_0BC & 0x40000000) == 0x40000000) { + if ((player->effects & 8) != 8) { + if ((player->effects & LIGHTNING_EFFECT) == LIGHTNING_EFFECT) { player->unk_0CC[arg2] = (s16) ((s32) (((f64) func_802B7C40(temp_f0 / temp_f2)) * 1.6)); } else { player->unk_0CC[arg2] = func_802B7C40(temp_f0 / temp_f2) * 2; } } - if ((player->unk_0BC & 0x04000000) == 0x04000000) { + if ((player->effects & 0x04000000) == 0x04000000) { player->unk_0CC[arg2] = (s16) ((s32) player->unk_D9C); } - if ((player->unk_0BC & 8) != 8) { + if ((player->effects & 8) != 8) { temp_f0 = player->unk_1F8 - player->unk_1FC; player->unk_0D4[arg2] = (((func_802B7C40(temp_f0 / temp_f2)) * 0.9)); } else { - if (((player->unk_244[arg2]) >= 0) && ((player->unk_244[arg2]) < 0x101)) { + if (((player->animFrameSelector[arg2]) >= 0) && ((player->animFrameSelector[arg2]) < 0x101)) { var_f0 = player->rotY - player->pos[1]; } else { var_f0 = player->pos[1] - player->rotY; } player->unk_0D4[arg2] = (s16) ((s32) (((f64) func_802B7C40(var_f0 / temp_f2)) * 0.5)); } - if ((player->unk_0BC & 0x04000000) == 0x04000000) { + if ((player->effects & 0x04000000) == 0x04000000) { player->unk_0D4[arg2] = (s16) ((s32) player->unk_D9C); } func_80029200(player, arg2); temp_a0 = ((player->unk_048[arg2] + player->unk_02C[1]) + player->unk_0C0); temp_a0 = (s16) player->unk_0D4[arg2] * sins((u16) temp_a0) + player->unk_0CC[arg2] * coss((u16) temp_a0); move_s16_towards(&player->unk_050[arg2], temp_a0, 0.5f); - var_a0 = player->unk_244[arg2]; + var_a0 = player->animFrameSelector[arg2]; player->unk_002 = player->unk_002 & (~(4 << (arg2 * 4))); if (var_a0 >= 0x101) { var_a0 = 0x201 - var_a0; player->unk_002 |= (4 << (arg2 * 4)); } - if (((player->unk_0BC & 0x80) != 0x80) - && ((player->unk_0BC & 0x40) != 0x40) - && ((player->unk_0BC & 0x80000) != 0x80000) - && ((player->unk_0BC & 0x800000) != 0x800000) - && ((player->unk_0BC & 0x20000) != 0x20000) + if (((player->effects & 0x80) != 0x80) + && ((player->effects & 0x40) != 0x40) + && ((player->effects & 0x80000) != 0x80000) + && ((player->effects & 0x800000) != 0x800000) + && ((player->effects & 0x20000) != 0x20000) && (!(player->unk_044 & 0x800))) { if (var_a0 < 0x51) { var_a1 = 0x208; @@ -907,21 +907,21 @@ void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 arg3) { var_a1 = 0x666; var_t0 = 0; } - if (((player->unk_0BC & 0x80000) == 0x80000) - || ((player->unk_0BC & 0x800000) == 0x800000) + if (((player->effects & 0x80000) == 0x80000) + || ((player->effects & 0x800000) == 0x800000) || (player->unk_044 & 0x800)) { player->unk_050[arg2] = 0; } - if (((player->unk_0BC & 8) == 8) + if (((player->effects & 8) == 8) && ((player->unk_0CA & 2) == 2)) { player->unk_050[arg2] = 0; } var_a0 = (player->unk_048[arg2] + player->unk_02C[1] + player->unk_0C0); - if (((player->unk_0BC & 0x80) == 0x80) - || ((player->unk_0BC & 0x40) == 0x40) - || ((player->unk_0BC & 0x80000) == 0x80000) - || ((player->unk_0BC & 0x800000) == 0x800000) - || ((player->unk_0BC & 0x20000) == 0x20000) + if (((player->effects & 0x80) == 0x80) + || ((player->effects & 0x40) == 0x40) + || ((player->effects & 0x80000) == 0x80000) + || ((player->effects & 0x800000) == 0x800000) + || ((player->effects & 0x20000) == 0x20000) || (player->unk_044 & 0x800)) { if (var_a0 >= 0x7FF9) { var_a0 = -var_a0; @@ -938,56 +938,56 @@ void func_8002934C(Player *player, Camera *camera, s8 arg2, s8 arg3) { } var_a0 /= var_a1; } - player->unk_244[arg2] = var_a0 + var_t0; - if ((player->unk_244[arg2]) >= 0x23) { - player->unk_244[arg2] = 0x22; + player->animFrameSelector[arg2] = var_a0 + var_t0; + if ((player->animFrameSelector[arg2]) >= 0x23) { + player->animFrameSelector[arg2] = 0x22; } - if ((player->unk_0BC & 0x80) - || (player->unk_0BC & 0x40) - || (player->unk_0BC & 0x80000) - || (player->unk_0BC & 0x800000) - || (player->unk_0BC & 0x20000) + if ((player->effects & 0x80) + || (player->effects & 0x40) + || (player->effects & 0x80000) + || (player->effects & 0x800000) + || (player->effects & 0x20000) || (player->unk_044 & 0x800)) { - if ((player->unk_244[arg2]) >= 0x14) { - player->unk_244[arg2] = 0; + if ((player->animFrameSelector[arg2]) >= 0x14) { + player->animFrameSelector[arg2] = 0; } } - if ((player->unk_24C[arg2]) >= 9) { - player->unk_24C[arg2] = 4; + if ((player->animGroupSelector[arg2]) >= 9) { + player->animGroupSelector[arg2] = 4; } - if (((player->unk_0BC & 0x80000) == 0x80000) - || ((player->unk_0BC & 0x800000) == 0x800000) + if (((player->effects & 0x80000) == 0x80000) + || ((player->effects & 0x800000) == 0x800000) || (player->unk_044 & 0x800)) { - player->unk_24C[arg2] = 4; + player->animGroupSelector[arg2] = 4; } - if (((player->unk_0BC & 0x400) == 0x400) - || ((player->unk_0BC & 0x01000000) == 0x01000000) - || ((player->unk_0BC & 0x02000000) == 0x02000000) - || (player->unk_0BC & 0x10000) - || (player->unk_0BC & 0x80) - || (player->unk_0BC & 0x40)) { + if (((player->effects & 0x400) == 0x400) + || ((player->effects & 0x01000000) == 0x01000000) + || ((player->effects & 0x02000000) == 0x02000000) + || (player->effects & 0x10000) + || (player->effects & 0x80) + || (player->effects & 0x40)) { player->unk_002 |= 1 << (arg2 * 4); - D_80165190[arg2][arg3] = 1; + D_80165190[arg2][playerId] = 1; - if ((player->unk_0BC & 0x80) || (player->unk_0BC & 0x40)) { - if ((player->unk_244[arg2] == D_801650D0[arg2][arg3]) - && (player->unk_24C[arg2] == D_80165110[arg2][arg3])) { + if ((player->effects & 0x80) || (player->effects & 0x40)) { + if ((player->animFrameSelector[arg2] == D_801650D0[arg2][playerId]) + && (player->animGroupSelector[arg2] == D_80165110[arg2][playerId])) { player->unk_002 &= ~(1 << (arg2 * 4)); - D_80165190[arg2][arg3] = 1; + D_80165190[arg2][playerId] = 1; } - } else if (((player->unk_0A8) >> 8) == D_80165150[arg2][arg3] >> 8) { + } else if (((player->unk_0A8) >> 8) == D_80165150[arg2][playerId] >> 8) { player->unk_002 &= ~(1 << (arg2 * 4)); } } else { player->unk_002 |= 1 << (arg2 * 4); - if (((player->unk_244[arg2] == D_801650D0[arg2][arg3]) && (player->unk_24C[arg2] == D_80165110[arg2][arg3])) && ((D_80165190[arg2][arg3]) == 0)) { + if (((player->animFrameSelector[arg2] == D_801650D0[arg2][playerId]) && (player->animGroupSelector[arg2] == D_80165110[arg2][playerId])) && ((D_80165190[arg2][playerId]) == 0)) { player->unk_002 &= ~(1 << (arg2 * 4)); } } - temp_a0_2 = D_801650D0[arg2][arg3] - player->unk_244[arg2]; + temp_a0_2 = D_801650D0[arg2][playerId] - player->animFrameSelector[arg2]; if ((temp_a0_2 >= 0x14) || (temp_a0_2 < (-0x13))) { player->unk_002 |= 1 << (arg2 * 4); } @@ -1007,14 +1007,14 @@ void func_80029B4C(Player *player, UNUSED f32 arg1, f32 arg2, UNUSED f32 arg3) { s16 temp_v0; f32 var_f12; - if ((player->unk_0BC & 0x40000000) == 0x40000000) { - var_f12 = 18.0f * ((((D_800DDBD4[player->characterId] / 2)) * ((player->unk_224) * 1.5))); + if ((player->effects & LIGHTNING_EFFECT) == LIGHTNING_EFFECT) { + var_f12 = 18.0f * ((((gCharacterSize[player->characterId] / 2)) * ((player->size) * 1.5))); } else { - var_f12 = 18.0f * (D_800DDBD4[player->characterId] / 2); + var_f12 = 18.0f * (gCharacterSize[player->characterId] / 2); } - func_802B6540(sp5C, 0.0f, 1.0f, 0.0f, (player->unk_02C[1] + player->unk_0C0)); + calculate_orientation_matrix(sp5C, 0.0f, 1.0f, 0.0f, (player->unk_02C[1] + player->unk_0C0)); sp8C[0] = var_f12 - 3.6; sp8C[1] = -player->boundingBoxSize; sp8C[2] = var_f12 - 2.0f; @@ -1063,7 +1063,7 @@ void func_80029B4C(Player *player, UNUSED f32 arg1, f32 arg2, UNUSED f32 arg3) { player->boundingBoxCorners[3].cornerPos[2] = player->pos[2] + sp8C[2]; process_collision(player, &player->boundingBoxCorners[3], sp80[0], sp80[1], sp80[2]); - if (!(player->unk_0BC & 8)) { + if (!(player->effects & 8)) { a = (player->boundingBoxCorners[2].cornerGroundY + player->boundingBoxCorners[0].cornerGroundY) / 2; move_f32_towards(&player->unk_230, a, 0.5f); @@ -1076,15 +1076,15 @@ void func_80029B4C(Player *player, UNUSED f32 arg1, f32 arg2, UNUSED f32 arg3) { d = (player->boundingBoxCorners[3].cornerGroundY + player->boundingBoxCorners[2].cornerGroundY) / 2; move_f32_towards(&player->unk_1F8, d, 0.5f); } - temp_f2_3 = ((D_800DDBD4[player->characterId] * 18.0f) + 1.0f) * player->unk_224; + temp_f2_3 = ((gCharacterSize[player->characterId] * 18.0f) + 1.0f) * player->size; temp_f0_2 = player->unk_23C - player->unk_230; player->unk_206 = -func_802B7C40(temp_f0_2 / temp_f2_3); - if (((player->unk_0CA & 2) == 2) || (player->unk_0BC & 8)) { + if (((player->unk_0CA & 2) == 2) || (player->effects & 8)) { player->unk_206 = 0; } - if ((player->unk_0BC & 8) != 8) { + if ((player->effects & 8) != 8) { temp_f0_2 = player->unk_1F8 - player->unk_1FC; - move_s16_towards(&player->unk_0C4, func_802B7C40(temp_f0_2 / temp_f2_3), 0.5f); + move_s16_towards(&player->slopeAccel, func_802B7C40(temp_f0_2 / temp_f2_3), 0.5f); } else { temp_f0_2 = player->rotY - arg2; @@ -1095,19 +1095,19 @@ void func_80029B4C(Player *player, UNUSED f32 arg1, f32 arg2, UNUSED f32 arg3) { else { temp_v0 *= 10; } - move_s16_towards(&player->unk_0C4, temp_v0, 0.5f); + move_s16_towards(&player->slopeAccel, temp_v0, 0.5f); } - if (((player->unk_0BC & 8) == 8) && ((player->unk_0CA & 2) == 2)) { - player->unk_0C4 = (s16) ((s32) player->unk_D9C); + if (((player->effects & 8) == 8) && ((player->unk_0CA & 2) == 2)) { + player->slopeAccel = (s16) ((s32) player->unk_D9C); } player->unk_0F8 = get_surface_type(player->unk_110.unk3A) & 0xFF; if (player->unk_0F8 == 0xFE) { - if (((player->unk_0BC & 0x100000) != 0x100000) && ((player->unk_0BC & 8) != 8)) { + if (((player->effects & 0x100000) != 0x100000) && ((player->effects & 8) != 8)) { player->statusEffects |= 0x800000; } } if (player->unk_0F8 == 0xFC) { - if (((player->unk_0BC & 4) != 4) && ((player->unk_0BC & 8) != 8)) { + if (((player->effects & 4) != 4) && ((player->effects & 8) != 8)) { player->statusEffects |= 0x8000; } } @@ -1124,10 +1124,10 @@ void func_8002A194(Player *player, f32 arg1, f32 arg2, f32 arg3) { f32 temp_f0; temp_v1 = -player->unk_02C[1] - player->unk_0C0; - if ((player->unk_0BC & 0x40000000) == 0x40000000) { - var_f20 = (((D_800DDBD4[player->characterId] * 18) / 2) * (player->unk_224 * 1.5)) - 1; + if ((player->effects & LIGHTNING_EFFECT) == LIGHTNING_EFFECT) { + var_f20 = (((gCharacterSize[player->characterId] * 18) / 2) * (player->size * 1.5)) - 1; } else { - var_f20 = (((D_800DDBD4[player->characterId] * 18) / 2) * player->unk_224) - 1; + var_f20 = (((gCharacterSize[player->characterId] * 18) / 2) * player->size) - 1; } player->boundingBoxCorners[0].cornerPos[2] = (coss(temp_v1 + 0x2000) * var_f20) + arg3; @@ -1149,7 +1149,7 @@ void func_8002A194(Player *player, f32 arg1, f32 arg2, f32 arg3) { player->boundingBoxCorners[3].cornerPos[0] = (sins(temp_v1 - 0x6000) * var_f20) + arg1; player->boundingBoxCorners[3].cornerGroundY = func_802ABE30(player->boundingBoxCorners[2].cornerPos[0], arg2, player->boundingBoxCorners[2].cornerPos[2], player->unk_110.unk3A); - if ((player->unk_0BC & 8) != 8) { + if ((player->effects & 8) != 8) { player->unk_230 = (player->boundingBoxCorners[2].cornerGroundY + player->boundingBoxCorners[0].cornerGroundY) / 2; player->unk_23C = (player->boundingBoxCorners[3].cornerGroundY + player->boundingBoxCorners[1].cornerGroundY) / 2; player->unk_1FC = (player->boundingBoxCorners[1].cornerGroundY + player->boundingBoxCorners[0].cornerGroundY) / 2; @@ -1160,12 +1160,12 @@ void func_8002A194(Player *player, f32 arg1, f32 arg2, f32 arg3) { player->boundingBoxCorners[2].surfaceType = player->unk_0F8; player->boundingBoxCorners[1].surfaceType = player->unk_0F8; player->boundingBoxCorners[0].surfaceType = player->unk_0F8; - var_f20 = (D_800DDBD4[player->characterId] * 18) + 1; + var_f20 = (gCharacterSize[player->characterId] * 18) + 1; temp_f0 = (player->unk_23C - player->unk_230); player->unk_206 = -func_802B7C40(temp_f0 / var_f20); - if ((player->unk_0BC & 8) != 8) { + if ((player->effects & 8) != 8) { temp_f0 = (player->unk_1F8 - player->unk_1FC); - move_s16_towards(&player->unk_0C4, func_802B7C40(temp_f0 / var_f20), 0.5f); + move_s16_towards(&player->slopeAccel, func_802B7C40(temp_f0 / var_f20), 0.5f); } else { temp_f0 = player->rotY - arg2; temp_v0 = func_802B7C40(temp_f0 / var_f20); @@ -1174,7 +1174,7 @@ void func_8002A194(Player *player, f32 arg1, f32 arg2, f32 arg3) { } else { var_a1 = temp_v0 * 0xA; } - move_s16_towards(&player->unk_0C4, var_a1, 0.5f); + move_s16_towards(&player->slopeAccel, var_a1, 0.5f); } if (func_802ABD7C(player->unk_110.unk3A) != 0) { player->boundingBoxCorners[3].unk_14 |= 1; @@ -1182,12 +1182,12 @@ void func_8002A194(Player *player, f32 arg1, f32 arg2, f32 arg3) { player->boundingBoxCorners[3].unk_14 &= ~1; } if (player->unk_0F8 == 0x00FE) { - if (((player->unk_0BC & 0x100000) != 0x100000) && ((player->unk_0BC & 8) != 8)) { + if (((player->effects & 0x100000) != 0x100000) && ((player->effects & 8) != 8)) { player->statusEffects |= 0x800000; } } if (player->unk_0F8 == 0x00FC) { - if (((player->unk_0BC & 4) != 4) && ((player->unk_0BC & 8) != 8)) { + if (((player->effects & 4) != 4) && ((player->effects & 8) != 8)) { player->statusEffects |= 0x8000; } } @@ -1228,9 +1228,9 @@ void func_8002A5F4(Vec3f arg0, f32 arg1, Vec3f arg2, f32 arg3, f32 arg4) { } void func_8002A704(Player *player, s8 arg1) { - player->unk_0BC |= 0x2000; + player->effects |= 0x2000; player->statusEffects &= ~0x02000000; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & 0x100) != 0x100)) { func_800C90F4(0U, (player->characterId * 0x10) + 0x29008001); func_800C9060(arg1, 0x1900A40BU); } @@ -1238,23 +1238,23 @@ void func_8002A704(Player *player, s8 arg1) { } void func_8002A79C(Player *player, s8 arg1) { - if (((player->unk_0BC & 0x100) != 0x100) && ((player->unk_0BC & 0x10) != 0x10) && (player->unk_22A >= 2)) { - player->unk_0BC |= 0x100; + if (((player->effects & 0x100) != 0x100) && ((player->effects & 0x10) != 0x10) && (player->unk_22A >= 2)) { + player->effects |= 0x100; player->unk_23A = 0; player->unk_22A = 0; player->unk_228 = 0; if (D_8015F890 != 1) { - if ((player->unk_000 & 0x4000) && !(player->unk_000 & 0x100)) { + if ((player->type & 0x4000) && !(player->type & PLAYER_INVISIBLE_OR_BOMB)) { func_800C9250(arg1); } } else if (player == gPlayerOne) { func_800C9250(arg1); } - } else if ((player->unk_0BC & 0x100) == 0x100) { + } else if ((player->effects & 0x100) == 0x100) { player->unk_23A += 1; if (player->unk_23A >= 0x1F) { player->unk_23A = 0; - player->unk_0BC &= ~0x100; + player->effects &= ~0x100; player->unk_22A = 0; player->unk_228 = 0; } @@ -1267,7 +1267,7 @@ void func_8002A8A4(Player *player, s8 arg1) { if (player->unk_228 < 0x65) { player->unk_228++; } - if ((player->unk_228 == 0x0064) && (player->unk_000 & 0x4000)) { + if ((player->unk_228 == 0x0064) && (player->type & 0x4000)) { func_800C9060(arg1, 0x1900851EU); } } else { @@ -1287,7 +1287,7 @@ void func_8002A8A4(Player *player, s8 arg1) { if (player->unk_228 < 0x65) { player->unk_228++; } - if ((player->unk_228 == 0x0064) && (player->unk_000 & 0x4000)) { + if ((player->unk_228 == 0x0064) && (player->type & 0x4000)) { func_800C9060(arg1, 0x1900851EU); } } else { @@ -1309,7 +1309,7 @@ void func_8002AA50(Player *player) { player->kartHopJerk = gKartHopJerkTable[player->characterId]; player->kartHopAcceleration = 0.0f; player->kartHopVelocity = gKartHopInitialVelocityTable[player->characterId]; - player->unk_0BC |= 2; + player->effects |= 2; player->unk_DAC = 3.0f; player->kartGravity = 500.0f; func_80036C5C(player); @@ -1356,8 +1356,8 @@ void func_8002AAC0(Player *player) { void func_8002AB70(Player *player) { UNUSED s32 pad[2]; - if (((player->unk_0BC & 8) != 8) && (player->unk_08C > 0.0f)) { - if (((player->unk_0C4 / 182) < -1) && ((player->unk_0C4 / 182) >= -0x14) && (((player->unk_094 / 18.0f) * 216.0f) >= 20.0f)) { + if (((player->effects & 8) != 8) && (player->unk_08C > 0.0f)) { + if (((player->slopeAccel / 182) < -1) && ((player->slopeAccel / 182) >= -0x14) && (((player->unk_094 / 18.0f) * 216.0f) >= 20.0f)) { move_f32_towards(&player->kartGravity, 500.0f, 1.0f); move_f32_towards(&player->unk_DAC, 3.0f, 0.05f); } else { @@ -1369,36 +1369,36 @@ void func_8002AB70(Player *player) { player->unk_DAC = 2.0f; } move_f32_towards(&player->kartGravity, gKartGravityTable[player->characterId], 0.02f); - if ((player->unk_0BC & 2) == 2) { + if ((player->effects & 2) == 2) { move_f32_towards(&player->unk_DAC, 1.0f, 0.07f); } else { move_f32_towards(&player->unk_DAC, 1.0f, 0.07f); } } - if ((player->unk_0BC & 0x100000) == 0x100000) { + if ((player->effects & 0x100000) == 0x100000) { move_f32_towards(&player->unk_DAC, 20.0f, 1.0f); player->kartGravity = 3500.0f; } - if ((player->unk_0BC & 4) == 4) { + if ((player->effects & 4) == 4) { move_f32_towards(&player->unk_DAC, 25.0f, 1.0f); player->kartGravity = 1800.0f; } - if ((player->unk_0BC & 0x400) == 0x400) { + if ((player->effects & 0x400) == 0x400) { player->kartGravity = 1100.0f; } - if (player->unk_0BC & 0x80000) { + if (player->effects & 0x80000) { player->kartGravity = 1500.0f; } if ((player->unk_044 & 0x800) != 0) { player->kartGravity = 1900.0f; } - if ((player->unk_0BC & 0x800000) == 0x800000) { + if ((player->effects & 0x800000) == 0x800000) { player->kartGravity = 300.0f; } - if ((player->unk_0BC & 0x01000000) == 0x01000000) { + if ((player->effects & 0x01000000) == 0x01000000) { player->kartGravity = 550.0f; } - if ((player->unk_0BC & 0x02000000) == 0x02000000) { + if ((player->effects & 0x02000000) == 0x02000000) { player->kartGravity = 800.0f; } } @@ -1426,8 +1426,8 @@ void func_8002AE38(Player *player, s8 arg1, f32 arg2, f32 arg3, f32 arg4, f32 ar sp28 = (sins(-player->unk_02C[1]) * player->unk_094) + arg2; temp_f16 = (coss(-player->unk_02C[1]) * player->unk_094) + arg3; if ( - ((player->unk_0BC & 0x800) != 0x800) && - ((player->unk_0BC & 0x10) != 0x10) && + ((player->effects & 0x800) != 0x800) && + ((player->effects & 0x10) != 0x10) && !(player->unk_044 & 0x4000) && ( (((player->unk_094 / 18.0f) * 216.0f) <= 8.0f) || @@ -1436,7 +1436,7 @@ void func_8002AE38(Player *player, s8 arg1, f32 arg2, f32 arg3, f32 arg4, f32 ar ((player->unk_07C >> 0x10) > -5) ) )) { - if ((player->unk_0BC & 0x20) == 0x20) { + if ((player->effects & 0x20) == 0x20) { player->unk_0C0 = (f32)(player->unk_0C0 - (player->unk_0C0 / 10)); } else { temp_v0_3 = player->unk_0C0; @@ -1451,7 +1451,7 @@ void func_8002AE38(Player *player, s8 arg1, f32 arg2, f32 arg3, f32 arg4, f32 ar } else { var_v1 = 0; } - if ((player->unk_09C >= 200.0f) && + if ((player->currentSpeed >= 200.0f) && (var_v1 == 2) && ( ((player->unk_0C0 / 182) >= 0x10) || @@ -1461,7 +1461,7 @@ void func_8002AE38(Player *player, s8 arg1, f32 arg2, f32 arg3, f32 arg4, f32 ar } else { player->unk_0C0 = (atan2s(arg2 - arg4, arg3 - arg5) - atan2s(arg2 - sp28, arg3 - temp_f16)) * 2; } - if (((player->unk_0BC & 0x10) != 0x10) && + if (((player->effects & 0x10) != 0x10) && ( ( ((player->unk_07C >> 0x10) > 0) && @@ -1500,14 +1500,14 @@ void func_8002B218(Player *player) { for (someIndex = 0; someIndex < 10; someIndex++) { if (player->unk_006 == sp38[someIndex]) { - player->unk_0BC |= 0x10; + player->effects |= 0x10; func_8002AA50(player); player->unk_204 = 0; break; } if (player->unk_006 == sp24[someIndex]) { - player->unk_0BC &= ~0x10; + player->effects &= ~0x10; break; } } @@ -1538,16 +1538,16 @@ void func_8002B308(Player *player, s8 arg1, UNUSED s8 arg2) { if ((player->statusEffects & 0x100) == 0x100) { func_8008DABC(player, arg1); } - if ((player->statusEffects & 0x4000) == 0x4000) { + if ((player->statusEffects & HIT_ROTATING_EFFECT) == HIT_ROTATING_EFFECT) { func_8008DF98(player, arg1); } if ((player->statusEffects & 0x200000) == 0x200000) { func_8008C73C(player, arg1); } - if ((player->statusEffects & 0x400000) == 0x400000) { + if ((player->statusEffects & REVERSE_EFFECT) == REVERSE_EFFECT) { func_8008E6C0(player, arg1); } - if ((player->statusEffects & 0x01000000) == 0x01000000) { + if ((player->statusEffects & HIT_BY_ITEM_EFFECT) == HIT_BY_ITEM_EFFECT) { func_8008EAE0(player, arg1); } if ((player->statusEffects & 0x00800000) == 0x00800000) { @@ -1574,52 +1574,52 @@ void func_8002B5C0(Player *player, UNUSED s8 arg1, UNUSED s8 arg2) { if (((player->unk_0CA & 8) != 0) || ((player->unk_0CA & 2) != 0)) { player->statusEffects &= 0xFE1D0478; } - if ((player->unk_0BC & 0x400) == 0x400) { + if ((player->effects & 0x400) == 0x400) { player->statusEffects &= 0xFF5D457E; } - if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40)) { + if (((player->effects & 0x80) == 0x80) || ((player->effects & 0x40) == 0x40)) { player->statusEffects &= 0xFF5F457E; } - if ((player->unk_0BC & 0x800) == 0x800) { + if ((player->effects & 0x800) == 0x800) { player->statusEffects &= 0xFF5D457E; } if ((player->unk_044 & 0x4000) != 0) { player->statusEffects &= 0xFF5D457E; } - if ((player->unk_0BC & 0x80000) == 0x80000) { + if ((player->effects & 0x80000) == 0x80000) { player->statusEffects &= 0xFE1D4478; } - if ((player->unk_0BC & 0x800000) == 0x800000) { + if ((player->effects & 0x800000) == 0x800000) { player->statusEffects &= 0xFE1D0478; } - if ((player->unk_0BC & 0x04000000) == 0x04000000) { + if ((player->effects & 0x04000000) == 0x04000000) { player->statusEffects &= 0xFE1D0578; } - if ((player->unk_0BC & 0x01000000) == 0x01000000) { + if ((player->effects & 0x01000000) == 0x01000000) { player->statusEffects &= 0xFE1D4478; } - if ((player->unk_0BC & 0x02000000) == 0x02000000) { + if ((player->effects & 0x02000000) == 0x02000000) { player->statusEffects &= 0xFE1D4478; } - if ((player->unk_0BC & 0x100000) == 0x100000) { + if ((player->effects & 0x100000) == 0x100000) { player->statusEffects &= 0xFE1D0478; } - if ((player->unk_0BC & 4) == 4) { + if ((player->effects & 4) == 4) { player->statusEffects &= 0xFE1D0478; } - if ((player->unk_0BC & 0x10000) == 0x10000) { + if ((player->effects & 0x10000) == 0x10000) { player->statusEffects &= 0xFE1D0478; } - if ((player->unk_0BC & 0x200) == 0x200) { + if ((player->effects & 0x200) == 0x200) { player->statusEffects &= 0xFE9D8478; } - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + if ((player->effects & 0x80000000) == 0x80000000) { player->statusEffects &= 0xFE9D8678; } - if ((player->unk_0BC & 0x4000) == 0x4000) { + if ((player->effects & 0x4000) == 0x4000) { player->statusEffects &= 0xFF5D45FF; } - if ((player->unk_0BC & 0x20000) == 0x20000) { + if ((player->effects & 0x20000) == 0x20000) { player->statusEffects &= 0xFE1D0478; } } @@ -1677,19 +1677,19 @@ void func_8002B9CC(Player *player, s8 arg1, UNUSED s32 arg2) { temp_f14 = D_8018CE10[arg1].unk_04[2]; if (sqrtf((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f14 * temp_f14)) >= 6.5) { player->unk_08C /= 4; - player->unk_09C /= 4; - if (!(player->unk_0BC & 0x80) && !(player->unk_0BC & 0x40)) { + player->currentSpeed /= 4; + if (!(player->effects & 0x80) && !(player->effects & 0x40)) { func_8008C73C(player, arg1); } } } else { - temp_f0 = D_80165070[arg1][0] - player->unk_034[0]; - temp_f2 = D_80165070[arg1][1] - player->unk_034[1]; - temp_f14 = D_80165070[arg1][2] - player->unk_034[2]; + temp_f0 = D_80165070[arg1][0] - player->velocity[0]; + temp_f2 = D_80165070[arg1][1] - player->velocity[1]; + temp_f14 = D_80165070[arg1][2] - player->velocity[2]; if (sqrtf((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f14 * temp_f14)) >= 4.2) { player->unk_08C /= 4; - player->unk_09C /= 4; - if (!(player->unk_0BC & 0x80) && !(player->unk_0BC & 0x40)) { + player->currentSpeed /= 4; + if (!(player->effects & 0x80) && !(player->effects & 0x40)) { func_8008C73C(player, arg1); } } @@ -1722,7 +1722,7 @@ void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, UNUSED s8 arg3, UNUSED return; } - func_802B6540(sp64, 0, 1, 0, (s16) 0); + calculate_orientation_matrix(sp64, 0, 1, 0, (s16) 0); sp58[0] = *arg1; sp58[1] = 0; @@ -1803,29 +1803,29 @@ void func_8002BF4C(Player *player, s8 arg1) { if (((player->unk_094 / 18.0f) * 216.0f) < 50.0f) { player->unk_0E2 = 0; - player->unk_0BC &= 0xFFDFFFFF; + player->effects &= 0xFFDFFFFF; return; } - if ((player->unk_0BC & 0x200000) == 0x200000) { + if ((player->effects & 0x200000) == 0x200000) { player->unk_0E2 -= 1; if (player->unk_0E2 <= 0) { - player->unk_0BC &= 0xFFDFFFFF; + player->effects &= 0xFFDFFFFF; } } else { for (i = 0; i < 8; i++) { playerBorrow = &players[i]; if (((player != playerBorrow) && - ((playerBorrow->unk_000 & 0x100) == 0) && - (playerBorrow->unk_000 & 0x8000)) && + ((playerBorrow->type & 0x100) == 0) && + (playerBorrow->type & 0x8000)) && ((var_a2 = func_8001FD78(player, playerBorrow->pos[0], playerBorrow->pos[1], playerBorrow->pos[2]), var_a2 == 1))) { player->unk_0E2 += 1; if (player->unk_0E2 >= 0x3D) { - player->unk_0BC |= 0x200000; - if ((player->unk_000 & 0x100) != 0x100) { - uselessAssignment = player->unk_000 & 0x100; + player->effects |= 0x200000; + if ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB) { + uselessAssignment = player->type & PLAYER_INVISIBLE_OR_BOMB; func_800C90F4(arg1, (player->characterId * 0x10) + 0x29008001); } - if ((player->unk_000 & 0x100) != 0x100) { + if ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB) { uselessAssignment = var_a2; func_800C9060(arg1, 0x19008011); } @@ -1841,7 +1841,7 @@ void func_8002BF4C(Player *player, s8 arg1) { } void func_8002C11C(Player *player) { - if ((player->unk_0BC & 0x10) == 0x10) { + if ((player->effects & 0x10) == 0x10) { player->unk_204 += 1; if (player->unk_204 >= 0x65) { player->unk_204 = 0x64; @@ -1864,7 +1864,7 @@ void func_8002C17C(Player *player, s8 playerId) { } else if (D_80165330[playerId] == 0) { D_80165320[playerId] = gNearestWaypointByPlayerId[playerId]; D_80165310[playerId] = gPathIndexByPlayerId[playerId]; - } else if (!(player->unk_0BC & 8)) { + } else if (!(player->effects & 8)) { if (func_802ABDF4(player->unk_110.unk3A) == 0) { D_80165330[playerId] = 0; } @@ -1882,11 +1882,11 @@ void func_8002C17C(Player *player, s8 playerId) { } break; case COURSE_ROYAL_RACEWAY: - if (((player->unk_0BC & 0x100000) != 0) && (D_80165330[playerId] == 0)) { + if (((player->effects & 0x100000) != 0) && (D_80165330[playerId] == 0)) { D_80165330[playerId] = 1; D_80165320[playerId] = gNearestWaypointByPlayerId[playerId]; D_80165310[playerId] = gPathIndexByPlayerId[playerId]; - } else if (((player->unk_0BC & 0x100000) == 0) && !(player->unk_0BC & 8)) { + } else if (((player->effects & 0x100000) == 0) && !(player->effects & 8)) { D_80165330[playerId] = 0; D_80165320[playerId] = gNearestWaypointByPlayerId[playerId]; D_80165310[playerId] = gPathIndexByPlayerId[playerId]; @@ -1900,7 +1900,7 @@ void func_8002C17C(Player *player, s8 playerId) { } else if (D_80165330[playerId] == 0) { D_80165320[playerId] = gNearestWaypointByPlayerId[playerId]; D_80165310[playerId] = gPathIndexByPlayerId[playerId]; - } else if (!((player->unk_0BC & 8) || (player->unk_0CA & 1))) { + } else if (!((player->effects & 8) || (player->unk_0CA & 1))) { D_80165330[playerId] = 0; } break; @@ -1931,7 +1931,7 @@ void func_8002C4F8(Player *player, s8 arg1) { if ((gCurrentCourseId != COURSE_KOOPA_BEACH) && (gCurrentCourseId != COURSE_SKYSCRAPER) && (gCurrentCourseId != COURSE_RAINBOW_ROAD) && - ((player->unk_000 & 0x4000) == 0x4000)) { + ((player->type & 0x4000) == 0x4000)) { if ((gCurrentCourseId == COURSE_BOWSER_CASTLE) || (gCurrentCourseId == COURSE_BIG_DONUT)) { func_800C9060((u8) arg1, 0x1900801CU); @@ -1951,16 +1951,16 @@ void func_8002C4F8(Player *player, s8 arg1) { } if (player->unk_110.unk3C[2] >= 600.0f) { player->unk_0CA |= 0x0100; - } else if ((player->unk_0BC & 8) != 8) { + } else if ((player->effects & 8) != 8) { player->unk_0CA &= ~0x0100; } - if ((player->unk_000 & 0x1000) && ((func_802ABDF4(player->unk_110.unk3A) != 0) || (player->unk_0CA & 1))) { - if (!(player->unk_0CA & 2) && !(player->unk_0CA & 8) && !(player->unk_0BC & 0x1000)) { + if ((player->type & PLAYER_CPU) && ((func_802ABDF4(player->unk_110.unk3A) != 0) || (player->unk_0CA & 1))) { + if (!(player->unk_0CA & 2) && !(player->unk_0CA & 8) && !(player->effects & 0x1000)) { func_80090778(player); func_80090868(player); } } - if ((player->unk_000 & 0x1000) && (player->unk_0F8 == 0x00FD) && !(player->unk_0BC & 8)) { + if ((player->type & PLAYER_CPU) && (player->unk_0F8 == 0x00FD) && !(player->effects & 8)) { func_80090778(player); func_80090868(player); } @@ -1969,35 +1969,35 @@ void func_8002C4F8(Player *player, s8 arg1) { void func_8002C7E4(Player *player, s8 arg1, s8 arg2) { if ((player->unk_046 & 1) != 1) { - if ((player->unk_0BC & 0x8000) == 0x8000) { - if ((player->unk_0BC & 0x2000) != 0x2000) { + if ((player->effects & 0x8000) == 0x8000) { + if ((player->effects & 0x2000) != 0x2000) { func_8002B9CC(player, arg1, arg2); } player->unk_044 &= ~0x0001; player->unk_046 |= 1; player->unk_046 |= 8; - if ((player->unk_000 & 0x4000) == 0x4000) { + if ((player->type & 0x4000) == 0x4000) { func_8001CA24(player, 2.8f); } if ((player->unk_046 & 2) == 2) { if ((player->unk_046 & 4) != 4) { player->unk_046 |= 4; player->unk_046 |= 0x40; - if (player->unk_0BC & 0x2000) { + if (player->effects & 0x2000) { func_8008D554(player); } } } } } - if ((player->unk_0BC & 0x8000) == 0x8000) { - player->unk_0BC &= ~0x8000; + if ((player->effects & 0x8000) == 0x8000) { + player->effects &= ~0x8000; player->unk_10C = 1; player->unk_044 &= ~0x0001; return; } player->unk_046 &= ~0x0001; - player->unk_0BC &= ~0x8000; + player->effects &= ~0x8000; if (player->unk_10C > 0) { player->unk_10C += 1; } @@ -2014,14 +2014,14 @@ void func_8002C954(Player *player, s8 arg1, Vec3f arg2) { f32 zdist; temp_f0 = player->pos[1] - player->unk_074; - if (((((player->unk_0BC & 0x10000) != 0x10000) && - ((player->unk_0BC & 0x100000) == 0x100000)) || + if (((((player->effects & 0x10000) != 0x10000) && + ((player->effects & 0x100000) == 0x100000)) || ((((temp_f0 >= 20.0f) || (temp_f0 < (-1.0f))) && - ((player->unk_0BC & 0x10000) == 0)) && - (player->unk_0BC & 8)) || + ((player->effects & 0x10000) == 0)) && + (player->effects & 8)) || ((player->unk_110.unk34 == 0) && - ((player->unk_0BC & 0x10000) == 0))) && + ((player->effects & 0x10000) == 0))) && (((player->unk_0CA & 2) == 0) || (!(player->unk_0CA & 8)))) { func_8008F494(player, arg1); @@ -2032,7 +2032,7 @@ void func_8002C954(Player *player, s8 arg1, Vec3f arg2) { } player->unk_046 |= 0x20; } - if (((player->unk_000 & 0x4000) == 0x4000) && (((player->unk_094 / 18.0f) * 216.0f) > 30.0f)) { + if (((player->type & 0x4000) == 0x4000) && (((player->unk_094 / 18.0f) * 216.0f) > 30.0f)) { func_8001CA24(player, 3.0f); } player->unk_046 |= 0x10; @@ -2040,10 +2040,10 @@ void func_8002C954(Player *player, s8 arg1, Vec3f arg2) { if (player->unk_256 >= 0xA) { player->unk_256 = 0; } - if ((player->unk_0C4 >= 0) && (((player->unk_094 / 18.0f) * 216.0f) > 5.0f)) { + if ((player->slopeAccel >= 0) && (((player->unk_094 / 18.0f) * 216.0f) > 5.0f)) { func_80031F48(player, 18.0f); } - if ((player->unk_000 & 0x4000) == 0x4000) { + if ((player->type & 0x4000) == 0x4000) { xdist = D_80165070[arg1][0] - arg2[0]; var_f14 = D_80165070[arg1][1] - arg2[1]; ydist = var_f14; // okay @@ -2054,9 +2054,9 @@ void func_8002C954(Player *player, s8 arg1, Vec3f arg2) { } if ((var_f14 <= 0.6) && (((player->unk_094 / 18.0f) * 216.0f) >= 40.0f) && - (!(player->unk_000 & 0x100))) { + (!(player->type & PLAYER_INVISIBLE_OR_BOMB))) { func_800CAEC4(arg1, 0.6F); - } else if (!(player->unk_000 & 0x100)) { + } else if (!(player->type & PLAYER_INVISIBLE_OR_BOMB)) { if ((var_f14 <= 0.6) && (((player->unk_094 / 18.0f) * 216.0f) < 40.0f) && (((player->unk_094 / 18.0f) * 216.0f) >= 10.0f)) { @@ -2066,7 +2066,7 @@ void func_8002C954(Player *player, s8 arg1, Vec3f arg2) { } } } - if (player->unk_0BC & 0x2000) { + if (player->effects & 0x2000) { func_8008D554(player); player->unk_08C /= 2; } @@ -2076,58 +2076,58 @@ void func_8002CD48(Player *player, s8 arg1, s8 arg2) { if (((player->unk_0CA & 2) == 2) || ((player->unk_0CA & 8) == 8)) { func_80090970(player, arg1, arg2); } - if ((player->unk_0BC & 0x800) == 0x800) { + if ((player->effects & 0x800) == 0x800) { func_8008CEB0(player, arg1); } if (player->unk_044 & 0x4000) { func_8008D170(player, arg1); } - if ((player->unk_0BC & 0x2000) == 0x2000) { + if ((player->effects & 0x2000) == 0x2000) { func_8008D4B4(player); } - if ((player->unk_0BC & 0x100000) == 0x100000) { + if ((player->effects & 0x100000) == 0x100000) { func_8008EDC0(player); } - if ((player->unk_0BC & 4) == 4) { + if ((player->effects & 4) == 4) { func_8008F008(player); } - if ((s32)(player->unk_0BC & 0x04000000) == 0x04000000) { + if ((s32)(player->effects & 0x04000000) == 0x04000000) { func_8008DC08(player, arg1); } - if ((player->unk_0BC & 0x40000000) == 0x40000000) { + if ((player->effects & LIGHTNING_EFFECT) == LIGHTNING_EFFECT) { func_8008E118(player, arg1); } - if ((player->unk_0BC & 0x10000) == 0x10000) { + if ((player->effects & 0x10000) == 0x10000) { func_8008F3F4(player, arg1); } - if ((player->unk_0BC & 0x200) == 0x200) { + if ((player->effects & 0x200) == 0x200) { func_8008F650(player, arg1); } - if ((player->unk_0BC & 0x80000000) == 0x80000000) { + if ((player->effects & 0x80000000) == 0x80000000) { func_8008F8DC(player, arg1); } - if (((player->unk_0BC & 0x20000000) == 0x20000000) && (player->unk_228 >= 0x64)) { + if (((player->effects & 0x20000000) == 0x20000000) && (player->unk_228 >= 0x64)) { func_80031F48(player, 4.0f); } - if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40)) { + if (((player->effects & 0x80) == 0x80) || ((player->effects & 0x40) == 0x40)) { func_8008C9EC(player, arg1); } - if ((player->unk_0BC & 0x400) == 0x400) { + if ((player->effects & 0x400) == 0x400) { func_8008C62C(player, arg1); } - if ((player->unk_0BC & 0x01000000) == 0x01000000) { + if ((player->effects & 0x01000000) == 0x01000000) { func_8008E4A4(player, arg1); } - if ((player->unk_0BC & 0x02000000) == 0x02000000) { + if ((player->effects & 0x02000000) == 0x02000000) { func_8008E8D8(player, arg1); } - if ((player->unk_0BC & 0x4000) == 0x4000) { + if ((player->effects & 0x4000) == 0x4000) { func_8008F1B8(player, arg1); } - if ((player->unk_0BC & 0x80000) == 0x80000) { + if ((player->effects & 0x80000) == 0x80000) { func_8008D698(player, arg1); } - if ((player->unk_0BC & 0x800000) == 0x800000) { + if ((player->effects & 0x800000) == 0x800000) { func_8008D8B4(player, arg1); func_80031F48(player, 10.0f); } @@ -2179,16 +2179,16 @@ void func_8002D028(Player *player, s8 arg1) { if (temp_f18 <= 8.0f) { func_800224F0(&player->unk_02C[1], -0x8000, 0x016C); if ((player->unk_02C[1] < (-0x7F41)) || (player->unk_02C[1] > 0x7F41)) { - player->unk_000 &= ~0x0200; + player->type &= ~0x0200; } player->unk_08C = 0; player->unk_094 = 0; player->unk_104 = 0; player->unk_240 = 0; player->unk_07C = 0; - player->unk_034[0] = 0; - player->unk_034[1] = 0; - player->unk_034[2] = 0; + player->velocity[0] = 0; + player->velocity[1] = 0; + player->velocity[2] = 0; player->unk_0C0 = 0; player->unk_078 = 0; } else { @@ -2196,7 +2196,7 @@ void func_8002D028(Player *player, s8 arg1) { } } -void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) +void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 playerId) { Vec3f sp184 = {0.0, 0.0, 1.0}; Vec3f sp178 = {0.0, 0.0, 0.0}; @@ -2226,22 +2226,22 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) s32 sp7C = 0; UNUSED s32 pad4[6]; - func_80027EDC(player, arg3); + func_80027EDC(player, playerId); func_8002C11C(player); - if ((player->unk_000 & 0x4000) == 0x4000) { - func_8002A79C(player, arg3); + if ((player->type & 0x4000) == 0x4000) { + func_8002A79C(player, playerId); } - func_8002B830(player, arg3, arg2); - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { - func_8002BF4C(player, arg3); + func_8002B830(player, playerId, arg2); + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { + func_8002BF4C(player, playerId); } - func_8002CD48(player, arg3, arg2); - if (((player->unk_0BC & 0x20000000) == 0x20000000) && (player->unk_228 >= 0x64)) { + func_8002CD48(player, playerId, arg2); + if (((player->effects & 0x20000000) == 0x20000000) && (player->unk_228 >= 0x64)) { sp7C = 2; } func_80037BB4(player, sp160); func_8002AB70(player); - func_8002FCA8(player, arg3); + func_8002FCA8(player, playerId); if (player->unk_044 & 1) { player->unk_064[0] *= -1.0f; player->unk_064[2] *= -1.0f; @@ -2260,12 +2260,12 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) spB0 = (-player->unk_110.unk60[1] * player->kartGravity); spAC = -1 * (player->unk_064[2] + sp16C[2]) + ((-player->unk_110.unk60[2] * player->kartGravity) * sp104[temp3]); } - if (((player->unk_0BC & 8) != 8) && ((player->unk_0BC & 0x20) == 0x20)) { + if (((player->effects & 8) != 8) && ((player->effects & 0x20) == 0x20)) { spB4 = 0 * (player->unk_064[0] + sp16C[0]); spB0 = -1 * player->kartGravity / 4; spAC = 0 * (player->unk_064[2] + sp16C[2]); } - if ((player->unk_0BC & 8) == 8) { + if ((player->effects & 8) == 8) { spB4 = 0 * (player->unk_064[0] + sp16C[0]); spB0 = -1 * player->kartGravity; spAC = 0 * (player->unk_064[2] + sp16C[2]); @@ -2276,24 +2276,24 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) } else { player->unk_044 &= 0xFFF7; } - if (((player->unk_08C <= 0.0f) && ((temp_v0_3 = player->unk_0BC, (temp_v0_3 & 1) == 1))) && ((temp_v0_3 & 0x20) != 0x20)) { + if (((player->unk_08C <= 0.0f) && ((temp_v0_3 = player->effects, (temp_v0_3 & 1) == 1))) && ((temp_v0_3 & 0x20) != 0x20)) { sp178[2] = temp_f2_2 * 4500.0f; } else { sp178[2] = 0.0f; } sp178[1] = 0.0f; - mtxf_translate_vec3f_mat3(sp178, player->unk_174); + mtxf_translate_vec3f_mat3(sp178, player->orientationMatrix); spB4 += sp178[0]; spAC += sp178[2]; - func_8002C7E4(player, arg3, arg2); - sp184[2] = func_80030150(player, arg3); - mtxf_translate_vec3f_mat3(sp184, player->unk_174); - sp98[0] = player->unk_034[0]; - sp98[1] = player->unk_034[1]; - sp98[2] = player->unk_034[2]; + func_8002C7E4(player, playerId, arg2); + sp184[2] = func_80030150(player, playerId); + mtxf_translate_vec3f_mat3(sp184, player->orientationMatrix); + sp98[0] = player->velocity[0]; + sp98[1] = player->velocity[1]; + sp98[2] = player->velocity[2]; if (((player->unk_10C < 3) && (((s32) player->unk_256) < 3)) - || ((player->unk_0BC & 0x2000) == 0x2000)) { + || ((player->effects & 0x2000) == 0x2000)) { if (((player->unk_07C >> 16) >= 0x28) || ((player->unk_07C >> 16) < (-0x27))) { @@ -2309,7 +2309,7 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) sp98[2] += (((((f64) ((sp184[2] + spAC) + sp160[2])) - (sp98[2] * (0.12 * ((f64) player->kartFriction)))) / 6000.0) / 30.0); } sp98[1] += (((((f64) ((sp184[1] + spB0) + sp160[1])) - (sp98[1] * (0.12 * ((f64) player->kartFriction)))) / 6000.0) / ((f64) player->unk_DAC)); - if (((((player->unk_0CA & 2) == 2) || ((player->unk_0CA & 8) == 8)) || ((player->unk_0BC & 0x04000000) == 0x04000000)) || (player->unk_0CA & 1)) { + if (((((player->unk_0CA & 2) == 2) || ((player->unk_0CA & 8) == 8)) || ((player->effects & 0x04000000) == 0x04000000)) || (player->unk_0CA & 1)) { sp98[0] = 0.0f; sp98[1] = 0.0f; sp98[2] = 0.0f; @@ -2325,13 +2325,13 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) player->rotX = player->pos[0]; player->rotZ = player->pos[2]; player->rotY = player->pos[1]; - spFC = posX + player->unk_034[0] + D_8018CE10[arg3].unk_04[0]; - spF8 = posY + player->unk_034[1]; - spF4 = posZ + player->unk_034[2] + D_8018CE10[arg3].unk_04[2]; + spFC = posX + player->velocity[0] + D_8018CE10[playerId].unk_04[0]; + spF8 = posY + player->velocity[1]; + spF4 = posZ + player->velocity[2] + D_8018CE10[playerId].unk_04[2]; if (((((player->unk_0CA & 2) != 2) && ((player->unk_0CA & 8) != 8)) - && ((player->unk_0BC & 0x04000000) != 0x04000000)) + && ((player->effects & 0x04000000) != 0x04000000)) && (!(player->unk_0CA & 1))) { func_8002AAC0(player); spF8 += player->kartHopVelocity; @@ -2342,16 +2342,16 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) player->unk_060 = 0.0f; player->unk_05C = 1.0f; if ((player->unk_044 & 1) != 1) { - func_802B6540(player->unk_174, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1]); + calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1]); } else { - func_802B6540(player->unk_174, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1] + 0x8000); + calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1] + 0x8000); } - player->unk_0BC |= 8; + player->effects |= 8; player->unk_0C2 += 1; temp_var = player->unk_110.unk3C[2]; if (temp_var <= 0.0f) { - player->unk_0BC = player->unk_0BC & (~2); - player->unk_0BC = player->unk_0BC & (~8); + player->effects = player->effects & (~2); + player->effects = player->effects & (~8); if (player->unk_0C2 >= 35) { if (player->unk_0C2 >= 0x32) { player->unk_0C2 = 0x32; @@ -2359,16 +2359,16 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) player->unk_DB4.unkC = 3.0f; player->unk_DB4.unk18 = 0; player->unk_0B6 |= 0x100; - if ((((player->unk_000 & 0x4000) == 0x4000) - && ((player->unk_0BC & 0x100000) == 0x100000)) - && ((player->unk_000 & 0x100) != 0x100)) + if ((((player->type & 0x4000) == 0x4000) + && ((player->effects & 0x100000) == 0x100000)) + && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) - func_800C9060(arg3, 0x1900A60AU); - else if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) + func_800C9060(playerId, 0x1900A60AU); + else if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { - func_800CADD0((u8) arg3, ((f32) player->unk_0C2) / 35.0f); + func_800CADD0((u8) playerId, ((f32) player->unk_0C2) / 35.0f); } - if ((player->unk_000 & 0x4000) == 0x4000) + if ((player->type & 0x4000) == 0x4000) { player->unk_044 |= 0x100; } @@ -2376,23 +2376,23 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) if (((player->unk_0C2 < 0x23) && (player->unk_0C2 >= 0x1C)) && (((player->unk_094 / 18.0f) * 216.0f) >= 20.0f)) { player->unk_DB4.unkC = 2.8f; player->unk_DB4.unk18 = 0; - if (((player->unk_000 & 0x4000) == 0x4000) - && ((player->unk_000 & 0x100) != 0x100)) { - func_800CADD0((u8) arg3, ((f32) player->unk_0C2) / 35.0f); + if (((player->type & 0x4000) == 0x4000) + && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { + func_800CADD0((u8) playerId, ((f32) player->unk_0C2) / 35.0f); } - if ((player->unk_000 & 0x4000) == 0x4000) { + if ((player->type & 0x4000) == 0x4000) { player->unk_044 |= 0x100; } } if (((player->unk_0C2 < 0x1C) && (player->unk_0C2 >= 4)) && (((player->unk_094 / 18.0f) * 216.0f) >= 20.0f)) { player->unk_DB4.unk18 = 0; player->unk_DB4.unkC = 1.5f; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { - if (((player->unk_0C2 < 0xB) && (player->unk_0C2 >= 4)) && (gCurrentCourseId == 2)) { - func_800CADD0((u8) arg3, player->unk_0C2 / 14.0f); + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { + if (((player->unk_0C2 < 0xB) && (player->unk_0C2 >= 4)) && (gCurrentCourseId == COURSE_BOWSER_CASTLE)) { + func_800CADD0((u8) playerId, player->unk_0C2 / 14.0f); } else { - func_800CADD0((u8) arg3, player->unk_0C2 / 25.0f); + func_800CADD0((u8) playerId, player->unk_0C2 / 25.0f); } } } @@ -2406,12 +2406,12 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) temp_var = player->unk_110.unk3C[0]; if (temp_var < 0.0f) { func_8003F734(player, sp8C, sp98, &temp_var, &spFC, &spF8, &spF4); - func_8002C954(player, arg3, sp98); + func_8002C954(player, playerId, sp98); } temp_var = player->unk_110.unk3C[1]; if (temp_var < 0.0f) { func_8003FBAC(player, sp8C, sp98, &temp_var, &spFC, &spF8, &spF4); - func_8002C954(player, arg3, sp98); + func_8002C954(player, playerId, sp98); } temp_var = player->unk_110.unk3C[0]; if (temp_var >= 0.0f) { @@ -2427,20 +2427,20 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) } } } - if (((!(player->unk_0BC & 8)) && (func_802ABDB8(player->unk_110.unk3A) != 0)) && ((player->unk_0BC & 0x10000) != 0x10000)) { + if (((!(player->effects & 8)) && (func_802ABDB8(player->unk_110.unk3A) != 0)) && ((player->effects & 0x10000) != 0x10000)) { if ((!(player->unk_0CA & 2)) || (!(player->unk_0CA & 8))) { - func_8008F494(player, arg3); + func_8008F494(player, playerId); } - } else if (((!(player->unk_0BC & 8)) && (func_802ABDB8(player->unk_110.unk3A) == 0)) && (player->unk_0BC & 0x10000)) { - func_8008F5A4(player, arg3); + } else if (((!(player->effects & 8)) && (func_802ABDB8(player->unk_110.unk3A) == 0)) && (player->effects & 0x10000)) { + func_8008F5A4(player, playerId); } player->unk_074 = func_802ABE30(spFC, spF8, spF4, player->unk_110.unk3A); - if (((player->unk_000 & 0x4000) == 0x4000) && (((gActiveScreenMode == 0) || (gActiveScreenMode == 2)) || (gActiveScreenMode == 1))) { + if (((player->type & 0x4000) == 0x4000) && (((gActiveScreenMode == SCREEN_MODE_1P) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_VERTICAL)) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL))) { func_80029B4C(player, spFC, spF8, spF4); } else { func_8002A194(player, spFC, spF8, spF4); } - func_8002AE38(player, arg3, posX, posZ, spFC, spF4); + func_8002AE38(player, playerId, posX, posZ, spFC, spF4); temp2 = (sp98[0] * sp98[0]) + (sp98[2] * sp98[2]); player->unk_22C = player->unk_094; @@ -2448,8 +2448,8 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) if ((player->unk_08C <= 0.0f) && (player->unk_094 <= 0.08) - && (D_8018CE10[arg3].unk_04[0] == 0.0f) - && (D_8018CE10[arg3].unk_04[2] == 0.0f)) { + && (D_8018CE10[playerId].unk_04[0] == 0.0f) + && (D_8018CE10[playerId].unk_04[2] == 0.0f)) { sp98[0] = sp98[0] + (-1 * sp98[0]); sp98[2] = sp98[2] + (-1 * sp98[2]); } else { @@ -2457,39 +2457,39 @@ void func_8002D268(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) player->pos[2] = spF4; } player->pos[1] = spF8; - if ((player->unk_000 & 0x4000) && (!(player->unk_000 & 0x1000))) { - func_8002BB9C(player, &spFC, &spF4, arg2, arg3, sp98); + if ((player->type & 0x4000) && (!(player->type & PLAYER_CPU))) { + func_8002BB9C(player, &spFC, &spF4, arg2, playerId, sp98); } player->unk_064[0] = sp178[0]; player->unk_064[2] = sp178[2]; - player->unk_034[0] = sp98[0]; - player->unk_034[1] = sp98[1]; - player->unk_034[2] = sp98[2]; - D_80165070[arg3][0] = sp98[0]; - D_80165070[arg3][1] = sp98[1]; - D_80165070[arg3][2] = sp98[2]; - if ((player->unk_000 & 0x4000) == 0x4000) { + player->velocity[0] = sp98[0]; + player->velocity[1] = sp98[1]; + player->velocity[2] = sp98[2]; + D_80165070[playerId][0] = sp98[0]; + D_80165070[playerId][1] = sp98[1]; + D_80165070[playerId][2] = sp98[2]; + if ((player->type & 0x4000) == 0x4000) { if (gKartTopSpeedTable[player->characterId] < player->unk_094) { temp = gKartTopSpeedTable[player->characterId] / player->unk_094; - player->unk_034[0] *= temp; - player->unk_034[1] *= temp; - player->unk_034[2] *= temp; + player->velocity[0] *= temp; + player->velocity[1] *= temp; + player->velocity[2] *= temp; player->unk_094 = gKartTopSpeedTable[player->characterId]; } } if ((player->unk_044 & 1) == 1) { if (player->unk_094 > 1) { temp = 1 / player->unk_094; - player->unk_034[0] *= temp; - player->unk_034[1] *= temp; - player->unk_034[2] *= temp; + player->velocity[0] *= temp; + player->velocity[1] *= temp; + player->velocity[2] *= temp; player->unk_094 = 1; } } if (player->unk_110.unk3C[2] >= 500.0f) { player->unk_078 = (s16) (((s16) player->unk_078) / 2); } - func_8002C4F8(player, arg3); + func_8002C4F8(player, playerId); } void func_8002E4C4(Player *player) { @@ -2503,7 +2503,7 @@ void func_8002E4C4(Player *player) { if (((player->pos[1] - D_80164510[player_index]) > 1200.0f) || ((player->pos[1] - D_80164510[player_index]) < -1200.0f)) { player->pos[1] = player->rotY; } - player->unk_034[1] = 0.0f; + player->velocity[1] = 0.0f; } void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { @@ -2529,12 +2529,12 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { Vec3f sp48; s16 sp46; func_8002B830(player, arg3, arg2); - if ((((((((player->unk_0BC & 0x80) == 0x80) - || ((player->unk_0BC & 0x40) == 0x40)) - || ((player->unk_0BC & 0x4000) == 0x4000)) - || ((player->unk_0BC & 0x80000) == 0x80000)) - || ((player->unk_0BC & 0x800000) == 0x800000)) - || ((player->unk_0BC & 0x20000) == 0x20000)) + if ((((((((player->effects & 0x80) == 0x80) + || ((player->effects & 0x40) == 0x40)) + || ((player->effects & 0x4000) == 0x4000)) + || ((player->effects & 0x80000) == 0x80000)) + || ((player->effects & 0x800000) == 0x800000)) + || ((player->effects & 0x20000) == 0x20000)) || (player->unk_044 & 0x800)) { sp46 = 1; } else { @@ -2543,9 +2543,9 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { func_8002CD48(player, arg3, arg2); func_8002AB70(player); func_8002FCA8(player, arg3); - if ((((player->unk_0BC & 0x80) == 0x80) - || ((player->unk_0BC & 0x40) == 0x40)) - || ((player->unk_0BC & 0x20000) == 0x20000)) { + if ((((player->effects & 0x80) == 0x80) + || ((player->effects & 0x40) == 0x40)) + || ((player->effects & 0x20000) == 0x20000)) { sp80 = -1 * (player->unk_064[0]) + (((-player->unk_110.unk60[0]) * player->kartGravity) * 0.1); sp7C = (-player->unk_110.unk60[1]) * player->kartGravity; sp78 = -1 * (player->unk_064[2]) + (((-player->unk_110.unk60[2]) * player->kartGravity) * 0.1); @@ -2556,25 +2556,25 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { } func_8002C7E4(player, arg3, arg2); if (sp46 == 1) { - func_802B6540(player->unk_174, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->unk_02C[1])); - func_802B6540(player->unk_150, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->unk_0AE)); + calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->unk_02C[1])); + calculate_orientation_matrix(player->unk_150, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->unk_0AE)); } else { - func_802B6540(player->unk_174, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->unk_02C[1])); + calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, (s16) ((s32) player->unk_02C[1])); } spEC[2] = func_80030150(player, arg3); if (sp46 == 1) { mtxf_translate_vec3f_mat3(spEC, player->unk_150); } else { - mtxf_translate_vec3f_mat3(spEC, player->unk_174); + mtxf_translate_vec3f_mat3(spEC, player->orientationMatrix); } - sp54[0] = player->unk_034[0]; - sp54[1] = player->unk_034[1]; - sp54[2] = player->unk_034[2]; + sp54[0] = player->velocity[0]; + sp54[1] = player->velocity[1]; + sp54[2] = player->velocity[2]; if ((player->unk_10C < 3) && ((player->unk_256) < 3) - && ((player->unk_0BC & 0x400) != 0x400) - && ((player->unk_0BC & 0x01000000) != 0x01000000) - && ((player->unk_0BC & 0x02000000) != 0x02000000)) { + && ((player->effects & 0x400) != 0x400) + && ((player->effects & 0x01000000) != 0x01000000) + && ((player->effects & 0x02000000) != 0x02000000)) { sp54[0] += (((((spEC[0] + sp80) + spD4[0])) - (sp54[0] * (0.12 * player->kartFriction))) / 6000) / ((player->unk_20C * 5.0f) + 1.0f); sp54[2] += (((((spEC[2] + sp78) + spD4[2])) - (sp54[2] * (0.12 * player->kartFriction))) / 6000) / ((player->unk_20C * 5.0f) + 1.0f); } else { @@ -2597,24 +2597,24 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { player->rotY = player->pos[1]; player->rotZ = player->pos[2]; - spD0 = posX + player->unk_034[0] + D_8018CE10[arg3].unk_04[0]; - spCC = posY + player->unk_034[1]; - spC8 = posZ + player->unk_034[2] + D_8018CE10[arg3].unk_04[2]; + spD0 = posX + player->velocity[0] + D_8018CE10[arg3].unk_04[0]; + spCC = posY + player->velocity[1]; + spC8 = posZ + player->velocity[2] + D_8018CE10[arg3].unk_04[2]; func_8002AAC0(player); spCC += player->kartHopVelocity; func_802AD950(&player->unk_110, player->boundingBoxSize, spD0, spCC, spC8, player->rotX, player->rotY, player->rotZ); - player->unk_0BC |= 8; + player->effects |= 8; player->unk_0C2 += 1; player->unk_058 = 0.0f; player->unk_060 = 0.0f; player->unk_05C = 1.0f; sp74 = player->unk_110.unk3C[2]; if (sp74 <= 0.0f) { - player->unk_0BC &= ~2; - player->unk_0BC &= ~8; - if ((((player->unk_0BC & 0x400) != 0x400) - && ((player->unk_0BC & 0x01000000) != 0x01000000)) - && ((player->unk_0BC & 0x02000000) != 0x02000000)) { + player->effects &= ~2; + player->effects &= ~8; + if ((((player->effects & 0x400) != 0x400) + && ((player->effects & 0x01000000) != 0x01000000)) + && ((player->effects & 0x02000000) != 0x02000000)) { if (player->unk_0C2 >= 0x1C) { if (player->unk_0C2 >= 0x32) { player->unk_0C2 = 0x0032; @@ -2622,10 +2622,10 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { player->unk_DB4.unk18 = 0; player->unk_0B6 |= 0x100; player->unk_DB4.unkC = 3.0f; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800CADD0((u8) arg3, ((f32) player->unk_0C2) / 50.0f); } - if ((player->unk_000 & 0x4000) == 0x4000) { + if ((player->type & 0x4000) == 0x4000) { player->unk_044 |= 0x100; } } @@ -2634,10 +2634,10 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { && (((player->unk_094 / 18.0f) * 216.0f) >= 20.0f)) { player->unk_DB4.unkC = 2.0f; player->unk_DB4.unk18 = 0; - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800CADD0((u8) arg3, ((f32) player->unk_0C2) / 50.0f); } - if ((player->unk_000 & 0x4000) == 0x4000) { + if ((player->type & 0x4000) == 0x4000) { player->unk_044 |= 0x100; } } @@ -2647,13 +2647,13 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { if (player->unk_0C2 >= 0x32) { player->unk_0C2 = 0x0032; } - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800CADD0((u8) arg3, ((f32) player->unk_0C2) / 20.0f); } if (player->unk_0C2 >= 0x28) { player->unk_0C2 = 0x0014; } - if ((player->unk_0BC & 0x400) == 0x400) { + if ((player->effects & 0x400) == 0x400) { player->unk_0C2 /= 6.5; player->kartHopJerk = 0.06f; player->kartHopAcceleration = 0.0f; @@ -2661,7 +2661,7 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { player->unk_0C2 /= 7.5; player->kartHopJerk = 0.06f; player->kartHopAcceleration = 0.0f; - if ((player->unk_000 & 0x4000) == 0x4000) { + if ((player->type & 0x4000) == 0x4000) { player->unk_044 |= 0x100; } } @@ -2701,15 +2701,15 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { } } } - if (((func_802ABDB8(player->unk_110.unk3A) != 0) && ((player->unk_0BC & 0x10000) != 0x10000)) && (((player->unk_094 / 18.0f) * 216.0f) >= 20.0f)) { + if (((func_802ABDB8(player->unk_110.unk3A) != 0) && ((player->effects & 0x10000) != 0x10000)) && (((player->unk_094 / 18.0f) * 216.0f) >= 20.0f)) { if ((!(player->unk_0CA & 2)) || (!(player->unk_0CA & 8))) { func_8008F494(player, arg3); } - } else if (((!(player->unk_0BC & 8)) && (func_802ABDB8(player->unk_110.unk3A) == 0)) && (player->unk_0BC & 0x10000)) { + } else if (((!(player->effects & 8)) && (func_802ABDB8(player->unk_110.unk3A) == 0)) && (player->effects & 0x10000)) { func_8008F5A4(player, arg3); } player->unk_074 = func_802ABE30(spD0, spCC, spC8, player->unk_110.unk3A); - if (((player->unk_000 & 0x4000) == 0x4000) && (((gActiveScreenMode == 0) || (gActiveScreenMode == 2)) || (gActiveScreenMode == 1))) { + if (((player->type & 0x4000) == 0x4000) && (((gActiveScreenMode == SCREEN_MODE_1P) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_VERTICAL)) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL))) { func_80029B4C(player, spD0, spCC, spC8); } else { func_8002A194(player, spD0, spCC, spC8); @@ -2718,13 +2718,13 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { temp = (sp54[0] * sp54[0]) + (sp54[2] * sp54[2]); player->unk_22C = player->unk_094; player->unk_094 = sqrtf(temp); - if ((((player->unk_0BC & 0x400) != 0x400) + if ((((player->effects & 0x400) != 0x400) && (player->unk_08C <= 0) && (player->unk_094 < 0.13)) - || (((player->unk_0BC & 0x400) != 0x400) + || (((player->effects & 0x400) != 0x400) && (player->unk_08C <= 0) && (player->unk_094 < 0.20) - && ((player->unk_0BC & 1) == 1))) { + && ((player->effects & 1) == 1))) { sp54[0] = sp54[0] + (-1 * sp54[0]); sp54[2] = sp54[2] + (-1 * sp54[2]); } else { @@ -2734,15 +2734,15 @@ void func_8002E594(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { player->pos[1] = spCC; player->unk_064[0] = spE0[0]; player->unk_064[2] = spE0[2]; - player->unk_034[0] = sp54[0]; - player->unk_034[1] = sp54[1]; - player->unk_034[2] = sp54[2]; - if ((player->unk_000 & 0x4000) == 0x4000) { + player->velocity[0] = sp54[0]; + player->velocity[1] = sp54[1]; + player->velocity[2] = sp54[2]; + if ((player->type & 0x4000) == 0x4000) { if (gKartTopSpeedTable[player->characterId] < player->unk_094) { temp_f0_6 = gKartTopSpeedTable[player->characterId] / player->unk_094; - player->unk_034[0] *= temp_f0_6; - player->unk_034[1] *= temp_f0_6; - player->unk_034[2] *= temp_f0_6; + player->velocity[0] *= temp_f0_6; + player->velocity[1] *= temp_f0_6; + player->velocity[2] *= temp_f0_6; player->unk_094 = gKartTopSpeedTable[player->characterId]; } } @@ -2767,39 +2767,39 @@ void control_cpu_movement(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg f32 toSqrt; f32 temp_f0_2; f32 test; - player->unk_0BC |= 0x1000; + player->effects |= 0x1000; player->unk_044 |= 0x10; test = D_80164510[arg3]; player->unk_204 = 0; - player->unk_0BC &= ~0x10; + player->effects &= ~0x10; func_8002B830(player, arg3, arg2); func_8002CD48(player, arg3, arg2); sp84 = 0 * player->unk_064[0] + spDC[0]; sp7C = 0 * player->unk_064[2] + spDC[2]; player->unk_10C = 0; player->unk_256 = 0; - player->unk_0BC &= ~0x8000; + player->effects &= ~0x8000; spF4[2] = func_80030150(player, arg3); - mtxf_translate_vec3f_mat3(spF4, player->unk_174); - sp68[0] = player->unk_034[0]; + mtxf_translate_vec3f_mat3(spF4, player->orientationMatrix); + sp68[0] = player->velocity[0]; sp68[1] = 0; - sp68[2] = player->unk_034[2]; + sp68[2] = player->velocity[2]; sp68[0] += (((spF4[0] + sp84) + spD0[0]) - (sp68[0] * (0.12 * player->kartFriction))) / 6000.0; sp68[2] += (((spF4[2] + sp7C) + spD0[2]) - (sp68[2] * (0.12 * player->kartFriction))) / 6000.0; player->rotX = player->pos[0]; player->rotY = test; player->rotZ = player->pos[2]; - spCC = player->pos[0] + player->unk_034[0]; - spC4 = player->pos[2] + player->unk_034[2]; + spCC = player->pos[0] + player->velocity[0]; + spC4 = player->pos[2] + player->velocity[2]; player->unk_0C0 = 0; player->kartHopJerk = 0; player->kartHopAcceleration = 0; player->kartHopVelocity = 0; - func_802B6540(player->unk_174, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1]); + calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1]); player->unk_0C2 = 0; - player->unk_0BC &= ~2; - player->unk_0BC &= ~8; - player->unk_0C4 = 0; + player->effects &= ~2; + player->effects &= ~8; + player->slopeAccel = 0; player->unk_206 = 0; toSqrt = (sp68[0] * sp68[0]) + (sp68[2] * sp68[2]); player->unk_22C = player->unk_094; @@ -2809,17 +2809,17 @@ void control_cpu_movement(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg player->pos[1] = test; player->unk_064[0] = 0; player->unk_064[2] = 0; - player->unk_034[0] = sp68[0]; - player->unk_034[1] = sp68[1]; - player->unk_034[2] = sp68[2]; + player->velocity[0] = sp68[0]; + player->velocity[1] = sp68[1]; + player->velocity[2] = sp68[2]; D_80165070[arg3][0] = sp68[0]; D_80165070[arg3][1] = sp68[1]; D_80165070[arg3][2] = sp68[2]; if (gKartTopSpeedTable[player->characterId] < player->unk_094) { temp_f0_2 = gKartTopSpeedTable[player->characterId] / player->unk_094; - player->unk_034[0] *= temp_f0_2; - player->unk_034[1] *= temp_f0_2; - player->unk_034[2] *= temp_f0_2; + player->velocity[0] *= temp_f0_2; + player->velocity[1] *= temp_f0_2; + player->velocity[2] *= temp_f0_2; player->unk_094 = gKartTopSpeedTable[player->characterId]; } } @@ -2852,11 +2852,11 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg sp7C = player->unk_064[2] * 0; spF4[2] = func_80030150(player, arg3); - mtxf_translate_vec3f_mat3(spF4, player->unk_174); + mtxf_translate_vec3f_mat3(spF4, player->orientationMatrix); - sp68[0] = player->unk_034[0]; - sp68[1] = player->unk_034[1]; - sp68[2] = player->unk_034[2]; + sp68[0] = player->velocity[0]; + sp68[1] = player->velocity[1]; + sp68[2] = player->velocity[2]; sp68[0] += (((f64) (spF4[0] + sp84) - (sp68[0] * 780.0)) / 6500.0); sp68[2] += (((f64) (spF4[2] + sp7C) - (sp68[2] * 780.0)) / 6500.0); @@ -2871,9 +2871,9 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg player->rotY = player->pos[1]; player->rotZ = player->pos[2]; - spCC = player->unk_034[0] + spC0; - spC8 = player->unk_034[1] + sp44; - spC4 = player->unk_034[2] + spB8; + spCC = player->velocity[0] + spC0; + spC8 = player->velocity[1] + sp44; + spC4 = player->velocity[2] + spB8; func_8002AAC0(player); @@ -2882,15 +2882,15 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg player->unk_058 = 0.0f; player->unk_05C = 1.0f; player->unk_060 = 0.0f; - func_802B6540(player->unk_174, 0.0f, 1.0f, 0.0f, (s16) (s32) player->unk_02C[1]); - player->unk_0BC &= ~8; + calculate_orientation_matrix(player->orientationMatrix, 0.0f, 1.0f, 0.0f, (s16) (s32) player->unk_02C[1]); + player->effects &= ~8; sp78 = player->unk_110.unk3C[2]; if (sp78 <= 0.0f) { if(1) {}; func_8003F46C(player, sp5C, sp68, spE8, &sp78, &spCC, &spC8, &spC4); } player->unk_074 = func_802ABE30(spCC, spC8, spC4, player->unk_110.unk3A); - if (((player->unk_000 & 0x4000) == 0x4000) && ((gActiveScreenMode == 0) || (gActiveScreenMode == 2) || (gActiveScreenMode == 1))) { + if (((player->type & 0x4000) == 0x4000) && ((gActiveScreenMode == SCREEN_MODE_1P) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_VERTICAL) || (gActiveScreenMode == SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL))) { func_80029B4C(player, spCC, spC8, spC4); } else { func_8002A194(player, spCC, spC8, spC4); @@ -2899,7 +2899,7 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg sqrt = (sp68[0] * sp68[0]) + (sp68[1] * sp68[1]) + (sp68[2] * sp68[2]); player->unk_22C = player->unk_094; player->unk_094 = sqrtf(sqrt); - if (((player->unk_08C <= 0.0f) && ((f64) player->unk_094 < 0.13)) || ((player->unk_08C <= 0.0f) && ((f64) player->unk_094 < 0.2) && ((player->unk_0BC & 1) == 1))) { + if (((player->unk_08C <= 0.0f) && ((f64) player->unk_094 < 0.13)) || ((player->unk_08C <= 0.0f) && ((f64) player->unk_094 < 0.2) && ((player->effects & 1) == 1))) { sp68[0] = sp68[0] + (sp68[0] * -1.0f); sp68[2] = sp68[2] + (sp68[2] * -1.0f); } else { @@ -2911,20 +2911,20 @@ void func_8002F730(Player *player, UNUSED Camera *camera, UNUSED s8 arg2, s8 arg player->unk_064[0] = spE8[0]; player->unk_064[2] = spE8[2]; - player->unk_034[0] = sp68[0]; - player->unk_034[1] = sp68[1]; - player->unk_034[2] = sp68[2]; + player->velocity[0] = sp68[0]; + player->velocity[1] = sp68[1]; + player->velocity[2] = sp68[2]; D_80165070[arg3][0] = sp68[0]; D_80165070[arg3][1] = sp68[1]; D_80165070[arg3][2] = sp68[2]; - if ((player->unk_000 & 0x4000) == 0x4000) { + if ((player->type & 0x4000) == 0x4000) { if (gKartTopSpeedTable[player->characterId] < player->unk_094) { temp_f0_2 = gKartTopSpeedTable[player->characterId] / player->unk_094; - player->unk_034[0] *= temp_f0_2; - player->unk_034[1] *= temp_f0_2; - player->unk_034[2] *= temp_f0_2; + player->velocity[0] *= temp_f0_2; + player->velocity[1] *= temp_f0_2; + player->velocity[2] *= temp_f0_2; player->unk_094 = gKartTopSpeedTable[player->characterId]; } } @@ -2937,7 +2937,7 @@ void func_8002FCA8(Player *player, s8 arg1) { s32 var_v1; var_f0 = 0.0f; - if ((player->unk_0BC & 0x200) != 0x200) { + if ((player->effects & 0x200) != 0x200) { if ((s32) player->boundingBoxCorners[3].surfaceType < 0xF) { var_f0 += D_800E2A90[player->characterId][player->boundingBoxCorners[3].surfaceType]; } @@ -2956,13 +2956,13 @@ void func_8002FCA8(Player *player, s8 arg1) { } else { var_v1 = 0; } - if ((player->unk_09C >= 200.0f) && (var_v1 == 2)) { + if ((player->currentSpeed >= 200.0f) && (var_v1 == 2)) { temp_lo = (s16) player->unk_0C0 / 182; if ((temp_lo > 0xF) || (temp_lo < -0xF)) { var_f0 += 1.0; } } - if (((player->unk_0BC & 0x200000) == 0x200000) && ((player->unk_000 & 0x4000) != 0x4000)) { + if (((player->effects & 0x200000) == 0x200000) && ((player->type & 0x4000) != 0x4000)) { var_f0 = -3.0f; } @@ -2980,20 +2980,20 @@ void func_8002FE84(Player *player, f32 arg1) { s16 temp_lo; s32 test; - if ((player->unk_0BC & 0x4000) == 0x4000) { - player->unk_098 = ((player->unk_09C * player->unk_09C) / 25.0f) * 1.1; + if ((player->effects & 0x4000) == 0x4000) { + player->unk_098 = ((player->currentSpeed * player->currentSpeed) / 25.0f) * 1.1; return; } // Huh? - if (((player->unk_0BC & 0xFFFFFFFF) & 8) == 8) { - player->unk_098 = ((player->unk_09C * player->unk_09C) / 25.0f) * 1.1; + if (((player->effects & 0xFFFFFFFF) & 8) == 8) { + player->unk_098 = ((player->currentSpeed * player->currentSpeed) / 25.0f) * 1.1; return; } var_f0 = 0.0f; player->unk_098 = arg1; - temp_lo = player->unk_0C4 / 182; + temp_lo = player->slopeAccel / 182; if ((temp_lo > 0x11) || (temp_lo < -0x11)) { var_f0 += (temp_lo * 0.0125) / 1.2; } else { @@ -3014,8 +3014,8 @@ void func_8002FE84(Player *player, f32 arg1) { var_f0 += test * 0.004; } player->unk_098 = arg1 * (1.0 + (var_f0 * 0.7)); - if ((player->unk_0BC & 0x20) == 0x20) { - temp_f0_3 = player->unk_09C + 180.0f; + if ((player->effects & 0x20) == 0x20) { + temp_f0_3 = player->currentSpeed + 180.0f; player->unk_098 = (temp_f0_3 * temp_f0_3) / 25.0f; } } @@ -3029,7 +3029,7 @@ f32 func_80030150(Player *player, s8 arg1) { var_f0 = 0.0f; var_f2 = (player->unk_094 / 18.0f) * 216.0f; if (var_f2 >= 8.0f) { - if ((player->unk_0BC & 0x200) != 0x200) { + if ((player->effects & 0x200) != 0x200) { if ((s32) player->boundingBoxCorners[3].surfaceType >= 0xF) { // ??????? if(1) {} @@ -3046,8 +3046,8 @@ f32 func_80030150(Player *player, s8 arg1) { if ((s32) player->boundingBoxCorners[0].surfaceType < 0xF) var_f0 += D_800E2E90[player->characterId][player->boundingBoxCorners[0].surfaceType]; } - if (((player->unk_0BC & 8) != 8) && ((player->unk_0CA & 2) != 2)) { - temp_lo = player->unk_0C4 / 182; + if (((player->effects & 8) != 8) && ((player->unk_0CA & 2) != 2)) { + temp_lo = player->slopeAccel / 182; if (var_f2 >= 20.0f) { if ((temp_lo > 0x11) || (temp_lo < -0x11)) { var_f0 -= ((temp_lo * 0.0126) / 3.0); @@ -3056,11 +3056,11 @@ f32 func_80030150(Player *player, s8 arg1) { } } else { var_f0 += -0.2; - if ((player->unk_0BC & 0x40000000) == 0x40000000) { + if ((player->effects & LIGHTNING_EFFECT) == LIGHTNING_EFFECT) { var_f0 += -0.55; } } - if (((player->unk_0BC & 0x10) == 0x10) || (player->unk_204 > 0)) { + if (((player->effects & 0x10) == 0x10) || (player->unk_204 > 0)) { var_v0 = (s16) player->unk_0C0 / 182; if (var_v0 < 0) { var_f0 += -var_v0 * 0.004; @@ -3075,14 +3075,14 @@ f32 func_80030150(Player *player, s8 arg1) { var_f0 += var_v0 * (0.01 + gKartTurnSpeedReductionTable0[player->characterId]); } } - if (((player->unk_0BC & 0x20000000) == 0x20000000) && (player->unk_228 < 0xA)) { + if (((player->effects & 0x20000000) == 0x20000000) && (player->unk_228 < 0xA)) { if (var_v0 < 0) { var_f0 += -var_v0 * 0.008; } else { var_f0 += var_v0 * 0.008; } } - if ((player->unk_0BC & 0x200) == 0x200) { + if ((player->effects & 0x200) == 0x200) { var_f0 += -0.25; } } @@ -3096,7 +3096,7 @@ f32 func_80030150(Player *player, s8 arg1) { var_f0 += 0.05; } } - if ((player->unk_0BC & 8) != 0) { + if ((player->effects & 8) != 0) { move_f32_towards(&player->unk_0A0, player->unk_08C * 0.04, 0.15f); } else { move_f32_towards(&player->unk_0A0, 0.0f, 0.1f); @@ -3104,27 +3104,27 @@ f32 func_80030150(Player *player, s8 arg1) { } else { player->unk_0A0 = 0.0f; player->unk_0E8 = 0.0f; - if (((s16) player->unk_0C4 / 182) < 0) { + if (((s16) player->slopeAccel / 182) < 0) { var_f0 += -0.85; - if (player->unk_0BC & 0x40000000) { + if (player->effects & LIGHTNING_EFFECT) { var_f0 += -0.55; } } } - if ((player->unk_000 & 0x4000) != 0x4000) { - if ((player->unk_0BC & 0x200000) == 0x200000) { + if ((player->type & 0x4000) != 0x4000) { + if ((player->effects & 0x200000) == 0x200000) { move_f32_towards(&player->unk_0E8, 380.0f, 0.5f); } else { move_f32_towards(&player->unk_0E8, 0.0f, 0.1f); } } - if ((player->unk_000 & 0x4000) == 0x4000) { - if (((player->unk_0BC & 0x100) == 0x100) && ((player->unk_0BC & 0x10) != 0x10)) { + if ((player->type & 0x4000) == 0x4000) { + if (((player->effects & 0x100) == 0x100) && ((player->effects & 0x10) != 0x10)) { move_f32_towards(&player->unk_0E8, 580.0f, 0.2f); } else { move_f32_towards(&player->unk_0E8, 0.0f, 0.01f); } - if ((player->unk_0BC & 0x200000) == 0x200000) { + if ((player->effects & 0x200000) == 0x200000) { move_f32_towards(&player->unk_0E4, 580.0f, 0.01f); } else { move_f32_towards(&player->unk_0E4, 0.0f, 0.01f); @@ -3135,14 +3135,14 @@ f32 func_80030150(Player *player, s8 arg1) { if (var_f2 < 0.0f) { var_f2 = 0.0f; } - if (((player->unk_0CA & 2) == 2) || ((player->unk_0CA & 8) == 8) || ((player->unk_000 & 0x2000) == 0x2000)) { + if (((player->unk_0CA & 2) == 2) || ((player->unk_0CA & 8) == 8) || ((player->type & PLAYER_START_SEQUENCE) == PLAYER_START_SEQUENCE)) { return (1.0f - player->unk_104) * var_f2; } - if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40) || ((player->unk_0BC & 0x01000000) == 0x01000000) || ((player->unk_0BC & 0x02000000) == 0x02000000)) { + if (((player->effects & 0x80) == 0x80) || ((player->effects & 0x40) == 0x40) || ((player->effects & 0x01000000) == 0x01000000) || ((player->effects & 0x02000000) == 0x02000000)) { return (1.0f - player->unk_104) * var_f2; } // Have to `and` the 0x2000 here to force the compiler to reload the immediate - if (((player->unk_0BC & 0x2000) == (0x2000 & 0xFFFFFFFF)) || ((player->unk_0BC & 0x100000) == 0x100000) || ((player->unk_0BC & 4) == 4)) { + if (((player->effects & 0x2000) == (0x2000 & 0xFFFFFFFF)) || ((player->effects & 0x100000) == 0x100000) || ((player->effects & 4) == 4)) { func_8002FE84(player, player->boostPower + player->unk_08C); return player->boostPower + player->unk_08C; } @@ -3227,7 +3227,7 @@ void func_80030C34(Player *player) { if (player == gPlayerEight) { var_v0 = 7; } - if (D_80165460[var_v0] == 0) { + if (gIsPlayerTripleAButtonCombo[var_v0] == FALSE) { if (gPlayerIsThrottleActive[var_v0] == 1) { if ((D_80165420[var_v0] < 2) || (D_80165420[var_v0] >= 9)) { D_80165440[var_v0] = 0; @@ -3247,7 +3247,7 @@ void func_80030C34(Player *player) { D_80165400[var_v0] = 1; } if (D_80165440[var_v0] == 5) { - D_80165460[var_v0] = 1; + gIsPlayerTripleAButtonCombo[var_v0] = TRUE; D_80165480[var_v0] = 0x00000078; D_80165440[var_v0] = 0; D_80165420[var_v0] = 0; @@ -3255,7 +3255,7 @@ void func_80030C34(Player *player) { } else { D_80165480[var_v0]--; if (D_80165480[var_v0] <= 0) { - D_80165460[var_v0] = 0; + gIsPlayerTripleAButtonCombo[var_v0] = FALSE; } } } @@ -3287,7 +3287,7 @@ void func_80030E00(Player *player) { if (player == gPlayerEight) { var_v0 = 7; } - if (D_80165460[var_v0] == 0) { + if (gIsPlayerTripleAButtonCombo[var_v0] == FALSE) { if (gPlayerIsThrottleActive[var_v0] == 0) { if ((D_80165420[var_v0] < 2) || (D_80165420[var_v0] >= 9)) { D_80165440[var_v0] = 0; @@ -3307,7 +3307,7 @@ void func_80030E00(Player *player) { D_80165400[var_v0] = 1; } if (D_80165440[var_v0] == 5) { - D_80165460[var_v0] = 1; + gIsPlayerTripleAButtonCombo[var_v0] = TRUE; D_80165480[var_v0] = 0x00000078; D_80165440[var_v0] = 0; D_80165420[var_v0] = 0; @@ -3315,94 +3315,86 @@ void func_80030E00(Player *player) { } else { D_80165480[var_v0]--; if (D_80165480[var_v0] <= 0) { - D_80165460[var_v0] = 0; + gIsPlayerTripleAButtonCombo[var_v0] = FALSE; } } } -/* -D_80165460 appears to track on a per-player index whether they're doing regular or "fast" accleration -"fast" acceleration is triggered by triple tapping "A" instead of just pressing-and-holding -gKartAccelerationTables may actually be something more like gKartJerkTables, with player->unk_09C being player accleration -gKartTable800E36B0 is some sort of per-character multiplier to the jerk that is only used when triple-tap "A" is used -player->unk_214 is possibly the max-acceleration allowed -No speculation on what player->unk_0C4 could be -*/ -void func_80030FC8(Player *player) { +void player_speed(Player *player) { s32 player_index; player_index = get_player_index_for_player(player); - if (D_80165460[player_index] == 0) { - if ((0.0 <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.1))) { - player->unk_09C += gKartAccelerationTables[player->characterId][0] + (0.05 * (player->unk_0C4 / 182)); + if (gIsPlayerTripleAButtonCombo[player_index] == FALSE) { + if ((0.0 <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.1))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][0] + (0.05 * (player->slopeAccel / 182)); } - if (((player->unk_214 * 0.1) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.2))) { - player->unk_09C += gKartAccelerationTables[player->characterId][1] + (0.05 * (player->unk_0C4 / 182)); + if (((player->topSpeed * 0.1) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.2))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][1] + (0.05 * (player->slopeAccel / 182)); } - if (((player->unk_214 * 0.2) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.3))) { - player->unk_09C += gKartAccelerationTables[player->characterId][2] + (0.05 * (player->unk_0C4 / 182)); + if (((player->topSpeed * 0.2) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.3))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][2] + (0.05 * (player->slopeAccel / 182)); } - if (((player->unk_214 * 0.3) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.4))) { - player->unk_09C += gKartAccelerationTables[player->characterId][3] + (0.05 * (player->unk_0C4 / 182)); + if (((player->topSpeed * 0.3) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.4))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][3] + (0.05 * (player->slopeAccel / 182)); } - if (((player->unk_214 * 0.4) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.5))) { - player->unk_09C += gKartAccelerationTables[player->characterId][4] + (0.05 * (player->unk_0C4 / 182)); + if (((player->topSpeed * 0.4) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.5))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][4] + (0.05 * (player->slopeAccel / 182)); } - if (((player->unk_214 * 0.5) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.6))) { - player->unk_09C += gKartAccelerationTables[player->characterId][5] + (0.05 * (player->unk_0C4 / 182)); + if (((player->topSpeed * 0.5) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.6))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][5] + (0.05 * (player->slopeAccel / 182)); } - if (((player->unk_214 * 0.6) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.7))) { - player->unk_09C += gKartAccelerationTables[player->characterId][6] + (0.05 * (player->unk_0C4 / 182)); + if (((player->topSpeed * 0.6) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.7))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][6] + (0.05 * (player->slopeAccel / 182)); } - if (((player->unk_214 * 0.7) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.8))) { - player->unk_09C += gKartAccelerationTables[player->characterId][7] + (0.05 * (player->unk_0C4 / 182)); + if (((player->topSpeed * 0.7) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.8))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][7] + (0.05 * (player->slopeAccel / 182)); } - if (((player->unk_214 * 0.8) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.9))) { - player->unk_09C += gKartAccelerationTables[player->characterId][8] + (0.05 * (player->unk_0C4 / 182)); + if (((player->topSpeed * 0.8) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.9))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][8] + (0.05 * (player->slopeAccel / 182)); } - if (((player->unk_214 * 0.9) <= player->unk_09C) && (player->unk_09C <= (player->unk_214 * 1.0))) { - player->unk_09C += gKartAccelerationTables[player->characterId][9] + (0.05 * (player->unk_0C4 / 182)); + if (((player->topSpeed * 0.9) <= player->currentSpeed) && (player->currentSpeed <= (player->topSpeed * 1.0))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][9] + (0.05 * (player->slopeAccel / 182)); } } else { - if ((0.0 <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.1))) { - player->unk_09C += (gKartAccelerationTables[player->characterId][0] + (0.05 * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; + if ((0.0 <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.1))) { + player->currentSpeed += (gKartAccelerationTables[player->characterId][0] + (0.05 * (player->slopeAccel / 182))) * gKartTripleABoost[player->characterId]; } - if (((player->unk_214 * 0.1) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.2))) { - player->unk_09C += (gKartAccelerationTables[player->characterId][1] + (0.05 * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; + if (((player->topSpeed * 0.1) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.2))) { + player->currentSpeed += (gKartAccelerationTables[player->characterId][1] + (0.05 * (player->slopeAccel / 182))) * gKartTripleABoost[player->characterId]; } - if (((player->unk_214 * 0.2) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.3))) { - player->unk_09C += (gKartAccelerationTables[player->characterId][2] + (0.05 * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; + if (((player->topSpeed * 0.2) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.3))) { + player->currentSpeed += (gKartAccelerationTables[player->characterId][2] + (0.05 * (player->slopeAccel / 182))) * gKartTripleABoost[player->characterId]; } - if (((player->unk_214 * 0.3) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.4))) { - player->unk_09C += (gKartAccelerationTables[player->characterId][3] + (0.05 * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; + if (((player->topSpeed * 0.3) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.4))) { + player->currentSpeed += (gKartAccelerationTables[player->characterId][3] + (0.05 * (player->slopeAccel / 182))) * gKartTripleABoost[player->characterId]; } - if (((player->unk_214 * 0.4) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.5))) { - player->unk_09C += (gKartAccelerationTables[player->characterId][4] + (0.05 * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; + if (((player->topSpeed * 0.4) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.5))) { + player->currentSpeed += (gKartAccelerationTables[player->characterId][4] + (0.05 * (player->slopeAccel / 182))) * gKartTripleABoost[player->characterId]; } - if (((player->unk_214 * 0.5) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.6))) { - player->unk_09C += (gKartAccelerationTables[player->characterId][5] + (0.05 * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; + if (((player->topSpeed * 0.5) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.6))) { + player->currentSpeed += (gKartAccelerationTables[player->characterId][5] + (0.05 * (player->slopeAccel / 182))) * gKartTripleABoost[player->characterId]; } - if (((player->unk_214 * 0.6) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.7))) { - player->unk_09C += (gKartAccelerationTables[player->characterId][6] + (0.05 * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; + if (((player->topSpeed * 0.6) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.7))) { + player->currentSpeed += (gKartAccelerationTables[player->characterId][6] + (0.05 * (player->slopeAccel / 182))) * gKartTripleABoost[player->characterId]; } - if (((player->unk_214 * 0.7) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.8))) { - player->unk_09C += (gKartAccelerationTables[player->characterId][7] + (0.05 * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; + if (((player->topSpeed * 0.7) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.8))) { + player->currentSpeed += (gKartAccelerationTables[player->characterId][7] + (0.05 * (player->slopeAccel / 182))) * gKartTripleABoost[player->characterId]; } - if (((player->unk_214 * 0.8) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.9))) { - player->unk_09C += (gKartAccelerationTables[player->characterId][8] + (0.05 * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; + if (((player->topSpeed * 0.8) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.9))) { + player->currentSpeed += (gKartAccelerationTables[player->characterId][8] + (0.05 * (player->slopeAccel / 182))) * gKartTripleABoost[player->characterId]; } - if (((player->unk_214 * 0.9) <= player->unk_09C) && (player->unk_09C <= (player->unk_214 * 1.0))) { - player->unk_09C += (gKartAccelerationTables[player->characterId][9] + (0.05 * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; + if (((player->topSpeed * 0.9) <= player->currentSpeed) && (player->currentSpeed <= (player->topSpeed * 1.0))) { + player->currentSpeed += (gKartAccelerationTables[player->characterId][9] + (0.05 * (player->slopeAccel / 182))) * gKartTripleABoost[player->characterId]; } } - if (player->unk_09C < 0.0f) { - player->unk_09C = 0.0f; + if (player->currentSpeed < 0.0f) { + player->currentSpeed = 0.0f; } - if (player->unk_214 <= player->unk_09C) { - player->unk_09C = player->unk_214; + if (player->topSpeed <= player->currentSpeed) { + player->currentSpeed = player->topSpeed; } - if (!((player->unk_0BC & 8)) || ((player->unk_0BC & 0x40000000))) { - player->unk_08C = (player->unk_09C * player->unk_09C) / 25.0f; + if (!((player->effects & 8)) || ((player->effects & LIGHTNING_EFFECT))) { + player->unk_08C = (player->currentSpeed * player->currentSpeed) / 25.0f; } player->unk_044 |= 0x20; if ((player->statusEffects * 8) < 0) { @@ -3415,18 +3407,18 @@ void func_80031F48(Player *player, f32 arg1) { s32 player_index; player_index = get_player_index_for_player(player); - player->unk_09C -= arg1; - if (player->unk_09C <= 0.0f) { - player->unk_09C = 0.0f; + player->currentSpeed -= arg1; + if (player->currentSpeed <= 0.0f) { + player->currentSpeed = 0.0f; } if (player->unk_094 < 0.2) { player->unk_08C = 0.0f; } - if (player->unk_214 <= player->unk_09C) { - player->unk_09C = player->unk_214; + if (player->topSpeed <= player->currentSpeed) { + player->currentSpeed = player->topSpeed; } - if ((player->unk_0BC & 8) != 8) { - player->unk_08C = (player->unk_09C * player->unk_09C) / 25.0f; + if ((player->effects & 8) != 8) { + player->unk_08C = (player->currentSpeed * player->currentSpeed) / 25.0f; } player->unk_044 &= 0xFFDF; if ((player->statusEffects * 8) < 0) { @@ -3587,9 +3579,9 @@ void func_800323E4(Player *player) { if (player == gPlayerEight) { var_v1 = 7; } - player->unk_0BC |= 1; + player->effects |= 1; // This check will never be true, why is it here? - if ((player->unk_0BC & 0x20) == 0x20) { + if ((player->effects & 0x20) == 0x20) { func_80031F48(player, 1.0f); player->unk_20C = var_f2; } else { @@ -3633,35 +3625,35 @@ void func_80032700(Player *player) { s32 test; temp_v0 = get_player_index_for_player(player); - if ((player->unk_09C >= 0.0) && (player->unk_09C < (player->unk_214 * 0.1))) { - player->unk_09C += gKartAccelerationTables[player->characterId][0] * 3.0; + if ((player->currentSpeed >= 0.0) && (player->currentSpeed < (player->topSpeed * 0.1))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][0] * 3.0; } - if (((player->unk_214 * 0.1) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.2))) { - player->unk_09C += gKartAccelerationTables[player->characterId][1] * 3.0; + if (((player->topSpeed * 0.1) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.2))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][1] * 3.0; } - if (((player->unk_214 * 0.2) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.3))) { - player->unk_09C += gKartAccelerationTables[player->characterId][2] * 3.0; + if (((player->topSpeed * 0.2) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.3))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][2] * 3.0; } - if (((player->unk_214 * 0.3) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.4))) { - player->unk_09C += gKartAccelerationTables[player->characterId][3] * 3.0; + if (((player->topSpeed * 0.3) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.4))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][3] * 3.0; } - if (((player->unk_214 * 0.4) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.5))) { - player->unk_09C += gKartAccelerationTables[player->characterId][4] * 3.0; + if (((player->topSpeed * 0.4) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.5))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][4] * 3.0; } - if (((player->unk_214 * 0.5) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.6))) { - player->unk_09C += gKartAccelerationTables[player->characterId][5] * 3.0; + if (((player->topSpeed * 0.5) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.6))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][5] * 3.0; } - if (((player->unk_214 * 0.6) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.7))) { - player->unk_09C += gKartAccelerationTables[player->characterId][6] * 2.5; + if (((player->topSpeed * 0.6) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.7))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][6] * 2.5; } - if (((player->unk_214 * 0.7) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.8))) { - player->unk_09C += gKartAccelerationTables[player->characterId][7] * 2.5; + if (((player->topSpeed * 0.7) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.8))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][7] * 2.5; } - if (((player->unk_214 * 0.8) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.9))) { - player->unk_09C += gKartAccelerationTables[player->characterId][8] * 2.5; + if (((player->topSpeed * 0.8) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.9))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][8] * 2.5; } - if (((player->unk_214 * 0.9) <= player->unk_09C) && (player->unk_09C <= player->unk_214 * 1.0)) { - player->unk_09C += gKartAccelerationTables[player->characterId][9] * 2.5; + if (((player->topSpeed * 0.9) <= player->currentSpeed) && (player->currentSpeed <= player->topSpeed * 1.0)) { + player->currentSpeed += gKartAccelerationTables[player->characterId][9] * 2.5; } if (D_801656F0 == 1) { test = gRaceFrameCounter - D_801652E0[temp_v0]; @@ -3672,7 +3664,7 @@ void func_80032700(Player *player) { } if ((test < var_v0) && ((player->unk_044 & 0x20) != 0x20)) { player->statusEffects |= 0x02000000; - } else if ((player->unk_214 * 0.9f) <= player->unk_09C) { + } else if ((player->topSpeed * 0.9f) <= player->currentSpeed) { if ((player->statusEffects & 0x02000000) != 0x02000000) { player->statusEffects |= 0x10000000; player->statusEffects &= ~0x02000000; @@ -3680,108 +3672,108 @@ void func_80032700(Player *player) { } } player->unk_044 |= 0x20; - player->unk_098 = (player->unk_09C * player->unk_09C) / 25.0f; + player->unk_098 = (player->currentSpeed * player->currentSpeed) / 25.0f; } void func_80032CB0(Player *player, f32 arg1) { - player->unk_09C -= arg1; - if (player->unk_09C <= 0.0f) { - player->unk_09C = 0.0f; + player->currentSpeed -= arg1; + if (player->currentSpeed <= 0.0f) { + player->currentSpeed = 0.0f; } if (player->unk_094 < 0.2) { player->unk_08C = 0.0f; } - if (player->unk_214 <= player->unk_09C) { - player->unk_09C = player->unk_214; + if (player->topSpeed <= player->currentSpeed) { + player->currentSpeed = player->topSpeed; } - if ((f64) player->unk_09C <= (player->unk_214 * 0.7)) { + if ((f64) player->currentSpeed <= (player->topSpeed * 0.7)) { player->statusEffects &= ~0x10000000; } player->statusEffects &= ~0x02000000; player->unk_044 &= ~0x0020; - player->unk_098 = (player->unk_09C * player->unk_09C) / 25.0f; + player->unk_098 = (player->currentSpeed * player->currentSpeed) / 25.0f; } void func_80032D94(Player *player) { UNUSED s32 player_index; player_index = get_player_index_for_player(player); - if ((0.0 <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.1))) { - player->unk_09C += gKartAccelerationTables[player->characterId][0] * 3.2; + if ((0.0 <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.1))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][0] * 3.2; } - if (((player->unk_214 * 0.1) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.2))) { - player->unk_09C += gKartAccelerationTables[player->characterId][1] * 3.2; + if (((player->topSpeed * 0.1) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.2))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][1] * 3.2; } - if (((player->unk_214 * 0.2) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.3))) { - player->unk_09C += gKartAccelerationTables[player->characterId][2] * 3.2; + if (((player->topSpeed * 0.2) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.3))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][2] * 3.2; } - if (((player->unk_214 * 0.3) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.4))) { - player->unk_09C += gKartAccelerationTables[player->characterId][3] * 3.2; + if (((player->topSpeed * 0.3) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.4))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][3] * 3.2; } - if (((player->unk_214 * 0.4) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.5))) { - player->unk_09C += gKartAccelerationTables[player->characterId][4] * 3.2; + if (((player->topSpeed * 0.4) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.5))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][4] * 3.2; } - if (((player->unk_214 * 0.5) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.6))) { - player->unk_09C += gKartAccelerationTables[player->characterId][5] * 3.2; + if (((player->topSpeed * 0.5) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.6))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][5] * 3.2; } - if (((player->unk_214 * 0.6) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.7))) { - player->unk_09C += gKartAccelerationTables[player->characterId][6] * 3.2; + if (((player->topSpeed * 0.6) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.7))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][6] * 3.2; } - if (((player->unk_214 * 0.7) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.8))) { - player->unk_09C += gKartAccelerationTables[player->characterId][7] * 2.8; + if (((player->topSpeed * 0.7) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.8))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][7] * 2.8; } - if (((player->unk_214 * 0.8) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.9))) { - player->unk_09C += gKartAccelerationTables[player->characterId][8] * 2.8; + if (((player->topSpeed * 0.8) <= player->currentSpeed) && (player->currentSpeed < (player->topSpeed * 0.9))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][8] * 2.8; } - if (((player->unk_214 * 0.9) <= player->unk_09C) && (player->unk_09C <= (player->unk_214 * 1.0))) { - player->unk_09C += gKartAccelerationTables[player->characterId][9] * 2.8; + if (((player->topSpeed * 0.9) <= player->currentSpeed) && (player->currentSpeed <= (player->topSpeed * 1.0))) { + player->currentSpeed += gKartAccelerationTables[player->characterId][9] * 2.8; } - if (player->unk_09C < 0.0f) { - player->unk_09C = 0.0f; + if (player->currentSpeed < 0.0f) { + player->currentSpeed = 0.0f; } - player->unk_098 = (player->unk_09C * player->unk_09C) / 25.0f; + player->unk_098 = (player->currentSpeed * player->currentSpeed) / 25.0f; } void func_80033280(Player *player, f32 arg1) { - player->unk_09C -= arg1; - if (player->unk_09C <= 0.0f) { - player->unk_09C = 0.0f; + player->currentSpeed -= arg1; + if (player->currentSpeed <= 0.0f) { + player->currentSpeed = 0.0f; } - if (player->unk_214 <= player->unk_09C) { - player->unk_09C = player->unk_214; + if (player->topSpeed <= player->currentSpeed) { + player->currentSpeed = player->topSpeed; } - player->unk_098 = (player->unk_09C * player->unk_09C) / 25.0f; + player->unk_098 = (player->currentSpeed * player->currentSpeed) / 25.0f; } void func_800332E8(Player *player, s32 arg1) { - if ((D_80165280[arg1] >= 0.0) && (D_80165280[arg1] < ((f64) player->unk_214 * 0.1))) { + if ((D_80165280[arg1] >= 0.0) && (D_80165280[arg1] < ((f64) player->topSpeed * 0.1))) { D_80165280[arg1] += gKartAccelerationTables[player->characterId][0] * 3.2; } - if (((player->unk_214 * 0.1) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.2))) { + if (((player->topSpeed * 0.1) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.2))) { D_80165280[arg1] += gKartAccelerationTables[player->characterId][1] * 3.2; } - if (((player->unk_214 * 0.2) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.3))) { + if (((player->topSpeed * 0.2) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.3))) { D_80165280[arg1] += gKartAccelerationTables[player->characterId][2] * 3.2; } - if (((player->unk_214 * 0.3) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.4))) { + if (((player->topSpeed * 0.3) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.4))) { D_80165280[arg1] += gKartAccelerationTables[player->characterId][3] * 3.2; } - if (((player->unk_214 * 0.4) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.5))) { + if (((player->topSpeed * 0.4) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.5))) { D_80165280[arg1] += gKartAccelerationTables[player->characterId][4] * 3.2; } - if (((player->unk_214 * 0.5) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.6))) { + if (((player->topSpeed * 0.5) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.6))) { D_80165280[arg1] += gKartAccelerationTables[player->characterId][5] * 3.2; } - if (((player->unk_214 * 0.6) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.7))) { + if (((player->topSpeed * 0.6) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.7))) { D_80165280[arg1] += gKartAccelerationTables[player->characterId][6] * 3.2; } - if (((player->unk_214 * 0.7) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.8))) { + if (((player->topSpeed * 0.7) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.8))) { D_80165280[arg1] += gKartAccelerationTables[player->characterId][7] * 2.8; } - if (((player->unk_214 * 0.8) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->unk_214 * 0.9))) { + if (((player->topSpeed * 0.8) <= D_80165280[arg1]) && (D_80165280[arg1] < (player->topSpeed * 0.9))) { D_80165280[arg1] += gKartAccelerationTables[player->characterId][8] * 2.8; } - if (((player->unk_214 * 0.9) <= D_80165280[arg1]) && (D_80165280[arg1] <= (player->unk_214 * 1.0))) { + if (((player->topSpeed * 0.9) <= D_80165280[arg1]) && (D_80165280[arg1] <= (player->topSpeed * 1.0))) { D_80165280[arg1] += gKartAccelerationTables[player->characterId][9] * 2.8; } player->unk_044 |= 0x20; @@ -3797,8 +3789,8 @@ void func_800337CC(Player *player, f32 arg1, s32 arg2) { if (D_80165280[arg2] <= 0.0f) { D_80165280[arg2] = 0.0f; } - if (player->unk_214 <= D_80165280[arg2]) { - D_80165280[arg2] = player->unk_214; + if (player->topSpeed <= D_80165280[arg2]) { + D_80165280[arg2] = player->topSpeed; } player->unk_098 = (D_80165280[arg2] * D_80165280[arg2]) / 25.0f; } @@ -3903,7 +3895,7 @@ void func_80033AE0(Player *player, struct Controller *controller, s8 arg2) { f32 sp44[156] = {0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.6, 0.6, 0.6, 0.6, 0.6, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.5, 0.5, 0.5, 0.5, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.6, 0.6, 0.6, 0.6, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8}; //f32 sp44[156] = {0.0, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.6, 0.6, 0.6, 0.6, 0.6, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.5, 0.5, 0.5, 0.5, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.6, 0.6, 0.6, 0.6, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8}; - if (((((player->unk_0BC & 2) != 2) && ((((player->unk_0C0 / 182) <= 6) && ((player->unk_0C0 / 182) >= (-6))) || ((controller->button & 0x0010) != 0x0010))) || (((player->unk_094 / 18.0f) * 216.0f) <= 20.0f)) || ((player->unk_0BC & 0x8000) == 0x8000)) + if (((((player->effects & 2) != 2) && ((((player->unk_0C0 / 182) <= 6) && ((player->unk_0C0 / 182) >= (-6))) || ((controller->button & 0x0010) != 0x0010))) || (((player->unk_094 / 18.0f) * 216.0f) <= 20.0f)) || ((player->effects & 0x8000) == 0x8000)) { func_80036CB4(player); } @@ -3924,7 +3916,7 @@ void func_80033AE0(Player *player, struct Controller *controller, s8 arg2) { player->unk_044 &= 0xFFF9; D_801652C0[arg2] = 0; } - if (((player->unk_0BC & 2) == 2) || ((player->unk_0BC & 0x10) == 0x10)) + if (((player->effects & 2) == 2) || ((player->effects & 0x10) == 0x10)) { player->unk_044 &= 0xFFF9; } @@ -3940,7 +3932,7 @@ void func_80033AE0(Player *player, struct Controller *controller, s8 arg2) { player->unk_0FA = (s16) sp2D0; if (((sp2D0 >= 0x5A) || (sp2D0 < (-0x59))) && (!(player->unk_044 & 0x4000))) { - if ((((((!(player->unk_0BC & 0x10)) && (gCCSelection == 2)) && (gModeSelection != 3)) && (!(player->unk_0BC & 8))) && (((player->unk_094 / 18.0f) * 216.0f) >= 40.0f)) && (player->unk_204 == 0)) + if ((((((!(player->effects & 0x10)) && (gCCSelection == 2)) && (gModeSelection != 3)) && (!(player->effects & 8))) && (((player->unk_094 / 18.0f) * 216.0f) >= 40.0f)) && (player->unk_204 == 0)) { player->statusEffects |= 0x80; } @@ -3953,14 +3945,14 @@ void func_80033AE0(Player *player, struct Controller *controller, s8 arg2) { { var_f2 += D_800E3610[player->characterId][player->boundingBoxCorners[2].surfaceType]; } - if ((player->unk_0BC & 0x20) == 0x20) + if ((player->effects & 0x20) == 0x20) { sp2C8 = 10; sp2CC = 10; } else { - if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_0BC & 2) != 2)) + if (((player->effects & 0x10) == 0x10) && ((player->effects & 2) != 2)) { var_a0 = 3; } @@ -4117,7 +4109,7 @@ void func_80033AE0(Player *player, struct Controller *controller, s8 arg2) { func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 2, 0x6000 / sp2CC, 1.9f); func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 1, 0x5000 / sp2CC, 1.9f); func_80033A40(player, &sp2D0, &sp2E4, player->unk_07C, 0, 0 / sp2CC, 1.9f); - if ((player->unk_0BC & 0x10) == 0x10) + if ((player->effects & 0x10) == 0x10) { var_f2_2 = (f32) (((s32) (sp2E4 >> 16)) / 8); } @@ -4128,18 +4120,18 @@ void func_80033AE0(Player *player, struct Controller *controller, s8 arg2) { } else { - var_f2_2 = ((f32) (sp2E4 >> 0x10)) / (8.0f + (player->unk_09C / 50.0f)); + var_f2_2 = ((f32) (sp2E4 >> 0x10)) / (8.0f + (player->currentSpeed / 50.0f)); } if (var_f2_2 < 0.0f) { var_f2_2 = -var_f2_2; } - if ((player->unk_0BC & 0x20) == 0x20) + if ((player->effects & 0x20) == 0x20) { var_f2_2 = var_f2_2 * (sp44[((s16) ((player->unk_094 / 18.0f) * 216.0f)) + 10] * 1.5f); } else - if ((player->unk_0BC & 0x10) == 0x10) + if ((player->effects & 0x10) == 0x10) { var_f2_2 = var_f2_2 * sp44[(s16) ((player->unk_094 / 18.0f) * 216.0f)]; } @@ -4152,7 +4144,7 @@ void func_80033AE0(Player *player, struct Controller *controller, s8 arg2) { { func_8002BD58(player); } - player->unk_0BC &= 0xDFFFFFFF; + player->effects &= 0xDFFFFFFF; if (((s32) player->boundingBoxCorners[3].surfaceType) > 0xE) { var_f12 = var_f12; @@ -4165,15 +4157,15 @@ void func_80033AE0(Player *player, struct Controller *controller, s8 arg2) { { var_f12 += D_800E3410[player->characterId][player->boundingBoxCorners[2].surfaceType]; } - if (((player->unk_0BC & 2) != 2) && ((player->unk_0BC & 0x10) != 0x10)) + if (((player->effects & 2) != 2) && ((player->effects & 0x10) != 0x10)) { - if ((player->unk_0BC & 0x20) == 0x20) + if ((player->effects & 0x20) == 0x20) { player->unk_078 = (s16) ((s32) (((f32) ((((s32) player->unk_07C) >> 0x10) * 5)) * var_f2_2)); } else { - if ((player->unk_0BC & 0x1) != 0x1) + if ((player->effects & 0x1) != 0x1) { if (((player->unk_07C >> 16) >= 45) || ((player->unk_07C >> 16) <= (-45))) { @@ -4206,14 +4198,14 @@ void func_80033AE0(Player *player, struct Controller *controller, s8 arg2) { } } else - if (((player->unk_0BC & 8) != 8) && ((player->unk_0BC & 2) != 2)) { + if (((player->effects & 8) != 8) && ((player->effects & 2) != 2)) { if ((((s16) player->unk_0C0) / 182) > 0) { var_s1_2 = (((s32) (((player->unk_07C >> 0x10) * 0xD) + 0x2B1)) / 106) + 0x28; if ((player->unk_07C >> 0x10) < (-0x27)) { - player->unk_0BC = player->unk_0BC | 0x20000000; + player->effects = player->effects | 0x20000000; if ((player->unk_07C >> 0x10) < (-0x31)) { - player->unk_0BC |= 0x20000000; + player->effects |= 0x20000000; } } func_8002A8A4(player, arg2); @@ -4221,9 +4213,9 @@ void func_80033AE0(Player *player, struct Controller *controller, s8 arg2) { else { var_s1_2 = (((s32) (((player->unk_07C >> 0x10) * 0xD) + 0x2B1)) / 106) - 0x35; if ((player->unk_07C >> 0x10) >= 0x28) { - player->unk_0BC = player->unk_0BC | 0x20000000; + player->effects = player->effects | 0x20000000; if ((player->unk_07C >> 0x10) < (-0x31)) { - player->unk_0BC |= 0x20000000; + player->effects |= 0x20000000; } } func_8002A8A4(player, arg2); @@ -4237,7 +4229,7 @@ void func_80033AE0(Player *player, struct Controller *controller, s8 arg2) { if (((player->unk_094 / 18.0f) * 216.0f) >= 65.0f) { player->unk_078 = var_s1_2 * ((((f64) var_f2_2) + 3.5) + (var_f2_2 * var_f12)); } - if ((player->unk_0BC & 0x20000000) == 0x20000000) { + if ((player->effects & 0x20000000) == 0x20000000) { player->unk_078 *= 0.9; } else { @@ -4295,42 +4287,42 @@ void func_8003680C(Player *player, s16 arg1) { 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, }; - if (!((player->unk_0BC & 0x80) || - (player->unk_0BC & 0x40) || - (player->unk_0BC & 0x400) || - (player->unk_0BC & 0x10000) || - (player->unk_0BC & 0x20000) || - (player->unk_0BC & 0x01000000) || - (player->unk_0BC & 0x02000000) || - (player->unk_0BC & 0x04000000))) { + if (!((player->effects & 0x80) || + (player->effects & 0x40) || + (player->effects & 0x400) || + (player->effects & 0x10000) || + (player->effects & 0x20000) || + (player->effects & 0x01000000) || + (player->effects & 0x02000000) || + (player->effects & 0x04000000))) { if (!(((player->unk_094 / 18.0f) * 216.0f) >= 110.0f)) { - player->unk_0BC &= ~0x20000000; + player->effects &= ~0x20000000; player->unk_228 = 0; - if (!(player->unk_0BC & 0x80) && !(player->unk_0BC & 0x40)) { + if (!(player->effects & 0x80) && !(player->effects & 0x40)) { sp304 = (s32) player->unk_07C >> 0x10; move_s32_towards(&sp304, (s32) arg1, 0.35f); sp304 <<= 0x10; - if ((player->unk_0BC & 0x10) == 0x10) { + if ((player->effects & 0x10) == 0x10) { var_f0 = (sp304 >> 0x10) / 5; } else { - var_f0 = (f32) (sp304 >> 0x10) / (8.0f + (player->unk_09C / 50.0f)); + var_f0 = (f32) (sp304 >> 0x10) / (8.0f + (player->currentSpeed / 50.0f)); } if (var_f0 < 0.0f) { var_f0 = -var_f0; } - if ((player->unk_0BC & 0x10) == 0x10) { + if ((player->effects & 0x10) == 0x10) { var_f0 = sp44[(s16) ((player->unk_094 / 18.0f) * 216.0f)] * var_f0; } else { var_f0 = sp44[(s16) ((player->unk_094 / 18.0f) * 216.0f)] * sp24[player->characterId] * var_f0; } player->unk_07C = sp304; - if (((player->unk_0BC & 2) != 2) && ((player->unk_0BC & 0x10) != 0x10)) { - if ((player->unk_0BC & 1) != 1) { + if (((player->effects & 2) != 2) && ((player->effects & 0x10) != 0x10)) { + if ((player->effects & 1) != 1) { player->unk_078 = (player->unk_07C >> 0x10) * var_f0; } else { player->unk_078 = (player->unk_07C >> 0x10) * (var_f0 + 1.5); } - } else if ((player->unk_0BC & 8) != 8) { + } else if ((player->effects & 8) != 8) { if (((s16) player->unk_0C0 / 182) > 0) { var_v0 = player->unk_07C >> 0x10; } else { @@ -4345,11 +4337,11 @@ void func_8003680C(Player *player, s16 arg1) { } player->unk_078 = var_v0 * var_f0; } - if ((((player->unk_0BC & 2) != 2) && + if ((((player->effects & 2) != 2) && (player->unk_0C0 < 0x3D) && (player->unk_0C0 > -0x3D)) || (((player->unk_094 / 18.0f) * 216.0f) <= 20.0f) || - ((player->unk_0BC & 0x8000) == 0x8000)) { + ((player->effects & 0x8000) == 0x8000)) { func_80036CB4(player); } } @@ -4360,7 +4352,7 @@ void func_8003680C(Player *player, s16 arg1) { void func_80036C5C(Player *arg0) { if (((arg0->unk_094 / 18.0f) * 216.0f) > 20.0f) { arg0->unk_204 = 0; - arg0->unk_0BC |= 0x10; + arg0->effects |= 0x10; arg0->unk_0B6 |= 0x800; } } @@ -4368,7 +4360,7 @@ void func_80036C5C(Player *arg0) { void func_80036CB4(Player *player) { s32 test; - if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_000 & 0x4000) == 0x4000)) { + if (((player->effects & 0x10) == 0x10) && ((player->type & 0x4000) == 0x4000)) { if ((player->unk_0C0 / 182) > 0) { test = ((((player->unk_07C >> 0x10) * 0xD) + 0x2B1) / 106) + 0x28; player->unk_07C = test << 0x10; @@ -4377,10 +4369,10 @@ void func_80036CB4(Player *player) { test = ((((player->unk_07C >> 0x10) * 0xD) + 0x2B1) / 106) - 0x35; player->unk_07C = test << 0x10; } - player->unk_0BC &= ~0x10; + player->effects &= ~0x10; } - if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_000 & 0x4000) != 0x4000)) { - player->unk_0BC &= ~0x10; + if (((player->effects & 0x10) == 0x10) && ((player->type & 0x4000) != 0x4000)) { + player->effects &= ~0x10; } } @@ -4391,16 +4383,16 @@ void func_80036DB4(Player *player, Vec3f arg1, Vec3f arg2) { f32 var_f18; s32 temp_t6; - if (((player->unk_0BC & 0x1000) == 0x1000) || ((player->unk_0BC & 0x20) == 0x20)) { + if (((player->effects & 0x1000) == 0x1000) || ((player->effects & 0x20) == 0x20)) { arg1[0] = 0.0f; arg1[1] = 0.0f; arg1[2] = 0.0f; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } else { - if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_0BC & 2) != 2)) { + if (((player->effects & 0x10) == 0x10) && ((player->effects & 2) != 2)) { var_f18 = player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) * 3.0f) + (-player->unk_20C * 10.0f); sp20 = player->unk_084 * 3.0f; - } else if (!(player->unk_0BC & 0x800) && !(player->unk_044 & 0x4000)) { + } else if (!(player->effects & 0x800) && !(player->unk_044 & 0x4000)) { thing = player->unk_0FA; if (thing > 0) { thing *= -1; @@ -4408,20 +4400,20 @@ void func_80036DB4(Player *player, Vec3f arg1, Vec3f arg2) { temp_t6 = player->unk_07C >> 0x10; if ((temp_t6 < 0x15) && (temp_t6 >= -0x14)) { if (thing < 0x14) { - var_f18 = (player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) / 3.0f)) + (-player->unk_09C * 0.02) + (-player->unk_20C * 50.0f); + var_f18 = (player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) / 3.0f)) + (-player->currentSpeed * 0.02) + (-player->unk_20C * 50.0f); } else { - var_f18 = (player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) / 3.0f)) + ((temp_t6 * 0.01) + (-player->unk_09C * 0.05)) + (-player->unk_20C * 50.0f); + var_f18 = (player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) / 3.0f)) + ((temp_t6 * 0.01) + (-player->currentSpeed * 0.05)) + (-player->unk_20C * 50.0f); } } else { - var_f18 = (player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) / 3.0f)) + ((temp_t6 * 0.1) + (-player->unk_09C * 0.15)) + (-player->unk_20C * 50.0f); + var_f18 = (player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) / 3.0f)) + ((temp_t6 * 0.1) + (-player->currentSpeed * 0.15)) + (-player->unk_20C * 50.0f); } sp20 = player->unk_084; } else { - var_f18 = player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) * 1.5) + (((player->unk_07C >> 0x10) * 0.1) + (-player->unk_09C * 0.05)) + (-player->unk_20C * 50.0f); + var_f18 = player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) * 1.5) + (((player->unk_07C >> 0x10) * 0.1) + (-player->currentSpeed * 0.05)) + (-player->unk_20C * 50.0f); sp20 = player->unk_084; } - if ((player->unk_0BC & 0x200) == 0x200) { - if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_0BC & 2) != 2)) { + if ((player->effects & 0x200) == 0x200) { + if (((player->effects & 0x10) == 0x10) && ((player->effects & 2) != 2)) { var_f18 = player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) * 3.0f) + (-player->unk_20C * 10.0f); sp20 = player->unk_084 * 3.0f; } else { @@ -4432,7 +4424,7 @@ void func_80036DB4(Player *player, Vec3f arg1, Vec3f arg2) { arg1[0] = (player->unk_090 + var_f18) * player->unk_094; arg1[1] = 0.0f; arg1[2] = player->unk_094 * sp20; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } arg2[0] = arg1[0]; arg2[1] = arg1[1]; @@ -4445,16 +4437,16 @@ void func_800371F4(Player *player, Vec3f arg1, Vec3f arg2) { f32 var_f18; s32 temp_t6; - if (((player->unk_0BC & 0x1000) == 0x1000) || ((player->unk_0BC & 0x20) == 0x20)) { + if (((player->effects & 0x1000) == 0x1000) || ((player->effects & 0x20) == 0x20)) { arg1[0] = 0.0f; arg1[1] = 0.0f; arg1[2] = 0.0f; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } else { - if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_0BC & 2) != 2)) { + if (((player->effects & 0x10) == 0x10) && ((player->effects & 2) != 2)) { var_f18 = player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) * 3.0f) + (-player->unk_20C * 50.0f); sp20 = player->unk_084 * 3.0f; - } else if (!(player->unk_0BC & 0x800) && !(player->unk_044 & 0x4000)) { + } else if (!(player->effects & 0x800) && !(player->unk_044 & 0x4000)) { var_v0 = player->unk_0FA; if (var_v0 > 0) { var_v0 *= -1; @@ -4462,20 +4454,20 @@ void func_800371F4(Player *player, Vec3f arg1, Vec3f arg2) { temp_t6 = (s32) player->unk_07C >> 0x10; if ((temp_t6 < 0x15) && (temp_t6 >= -0x14)) { if (var_v0 < 0x14) { - var_f18 = (player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) / 3.0f)) + (-player->unk_09C * 0.02) + (-player->unk_20C * 50.0f); + var_f18 = (player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) / 3.0f)) + (-player->currentSpeed * 0.02) + (-player->unk_20C * 50.0f); } else { - var_f18 = ((player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) / 3.0f)) - ((temp_t6 * 0.01) + (player->unk_09C * 0.05))) + (-player->unk_20C * 50.0f); + var_f18 = ((player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) / 3.0f)) - ((temp_t6 * 0.01) + (player->currentSpeed * 0.05))) + (-player->unk_20C * 50.0f); } } else { - var_f18 = ((player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) / 3.0f)) - ((temp_t6 * 0.1) + (player->unk_09C * 0.15))) + (-player->unk_20C * 50.0f); + var_f18 = ((player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) / 3.0f)) - ((temp_t6 * 0.1) + (player->currentSpeed * 0.15))) + (-player->unk_20C * 50.0f); } sp20 = player->unk_084; } else { - var_f18 = ((player->unk_208 + ((f64) (-(player->unk_094 / 18.0f) * 216.0f) * 1.5)) - (((player->unk_07C >> 0x10) * 0.1) + (player->unk_09C * 0.05))) + (-player->unk_20C * 50.0f); + var_f18 = ((player->unk_208 + ((f64) (-(player->unk_094 / 18.0f) * 216.0f) * 1.5)) - (((player->unk_07C >> 0x10) * 0.1) + (player->currentSpeed * 0.05))) + (-player->unk_20C * 50.0f); sp20 = player->unk_084; } - if ((player->unk_0BC & 0x200) == 0x200) { - if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_0BC & 2) != 2)) { + if ((player->effects & 0x200) == 0x200) { + if (((player->effects & 0x10) == 0x10) && ((player->effects & 2) != 2)) { var_f18 = player->unk_208 + ((-(player->unk_094 / 18.0f) * 216.0f) * 3.0f) + (-player->unk_20C * 50.0f); sp20 = player->unk_084 * 3.0f; } else { @@ -4486,7 +4478,7 @@ void func_800371F4(Player *player, Vec3f arg1, Vec3f arg2) { arg1[0] = -(player->unk_090 + var_f18) * player->unk_094; arg1[1] = 0.0f; arg1[2] = player->unk_094 * sp20; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } arg2[0] = arg1[0]; arg2[1] = arg1[1]; @@ -4497,13 +4489,13 @@ void func_80037614(Player *player, Vec3f arg1, Vec3f arg2) { f32 var_f12; f32 var_f2; - if (((player->unk_0BC & 0x1000) == 0x1000) || ((player->unk_0BC & 0x20) == 0x20)) { + if (((player->effects & 0x1000) == 0x1000) || ((player->effects & 0x20) == 0x20)) { arg1[0] = 0.0f; arg1[1] = 0.0f; arg1[2] = 0.0f; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } else { - if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_0BC & 2) != 2)) { + if (((player->effects & 0x10) == 0x10) && ((player->effects & 2) != 2)) { var_f2 = ((-(player->unk_094 / 18.0f) * 216.0f) * 2) + -80.0f; var_f12 = -80.0f; } else { @@ -4513,7 +4505,7 @@ void func_80037614(Player *player, Vec3f arg1, Vec3f arg2) { arg1[0] = (var_f2 + 28.0f) * player->unk_094; arg1[1] = 0.0f; arg1[2] = var_f12 * player->unk_094; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } arg2[0] = arg1[0]; arg2[1] = arg1[1]; @@ -4524,13 +4516,13 @@ void func_8003777C(Player *player, Vec3f arg1, Vec3f arg2) { f32 var_f12; f32 var_f2; - if (((player->unk_0BC & 0x1000) == 0x1000) || ((player->unk_0BC & 0x20) == 0x20)) { + if (((player->effects & 0x1000) == 0x1000) || ((player->effects & 0x20) == 0x20)) { arg1[0] = 0.0f; arg1[1] = 0.0f; arg1[2] = 0.0f; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } else { - if (((player->unk_0BC & 0x10) == 0x10) && ((player->unk_0BC & 2) != 2)) { + if (((player->effects & 0x10) == 0x10) && ((player->effects & 2) != 2)) { var_f2 = ((-(player->unk_094 / 18.0f) * 216.0f) * 2) + -80.0f; var_f12 = -80.0f; } else { @@ -4540,7 +4532,7 @@ void func_8003777C(Player *player, Vec3f arg1, Vec3f arg2) { arg1[0] = -(var_f2 + 28.0f) * player->unk_094; arg1[1] = 0.0f; arg1[2] = var_f12 * player->unk_094; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } arg2[0] = arg1[0]; arg2[1] = arg1[1]; @@ -4551,13 +4543,13 @@ void func_800378E8(Player *player, Vec3f arg1, Vec3f arg2) { f32 var_f12; f32 var_f2; - if ((player->unk_0BC & 0x20) == 0x20) { + if ((player->effects & 0x20) == 0x20) { arg1[0] = 0.0f; arg1[1] = 0.0f; arg1[2] = 0.0f; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } else { - if ((player->unk_0BC & 0x10) == 0x10) { + if ((player->effects & 0x10) == 0x10) { var_f2 = player->unk_208 + (-(player->unk_094 / 18.0f) * 216.0f * 5.0f) + (-player->unk_20C * 10.0f); var_f12 = -100.0f; } else { @@ -4567,7 +4559,7 @@ void func_800378E8(Player *player, Vec3f arg1, Vec3f arg2) { arg1[0] = (player->unk_090 + var_f2) * player->unk_094; arg1[1] = 0.0f; arg1[2] = player->unk_094 * var_f12; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } arg2[0] = arg1[0]; arg2[1] = arg1[1]; @@ -4578,13 +4570,13 @@ void func_80037A4C(Player *player, Vec3f arg1, Vec3f arg2) { f32 var_f12; f32 var_f2; - if ((player->unk_0BC & 0x20) == 0x20) { + if ((player->effects & 0x20) == 0x20) { arg1[0] = 0.0f; arg1[1] = 0.0f; arg1[2] = 0.0f; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } else { - if ((player->unk_0BC & 0x10) == 0x10) { + if ((player->effects & 0x10) == 0x10) { var_f2 = player->unk_208 + (-(player->unk_094 / 18.0f) * 216.0f * 5.0f) + (-player->unk_20C * 50.0f); var_f12 = -100.0f; } else { @@ -4594,7 +4586,7 @@ void func_80037A4C(Player *player, Vec3f arg1, Vec3f arg2) { arg1[0] = -(player->unk_090 + var_f2) * player->unk_094; arg1[1] = 0.0f; arg1[2] = player->unk_094 * var_f12; - mtxf_translate_vec3f_mat3(arg1, player->unk_174); + mtxf_translate_vec3f_mat3(arg1, player->orientationMatrix); } arg2[0] = arg1[0]; arg2[1] = arg1[1]; @@ -4611,10 +4603,10 @@ void func_80037BB4(Player *player, Vec3f arg1) { arg1[2] = 0.0f; } else { if (player->unk_078 < 0) { - if (((player->unk_0BC & 0x20000000) != 0x20000000) || (player->unk_228 >= 0x64)) { + if (((player->effects & 0x20000000) != 0x20000000) || (player->unk_228 >= 0x64)) { player->unk_02C[1] += player->unk_078; } - if (!(player->unk_000 & 0x1000)) { + if (!(player->type & PLAYER_CPU)) { if (gModeSelection == BATTLE) { func_800378E8(player, sp20, arg1); } else { @@ -4624,10 +4616,10 @@ void func_80037BB4(Player *player, Vec3f arg1) { func_80037614(player, sp20, arg1); } } else { - if (((player->unk_0BC & 0x20000000) != 0x20000000) || (player->unk_228 >= 0x64)) { + if (((player->effects & 0x20000000) != 0x20000000) || (player->unk_228 >= 0x64)) { player->unk_02C[1] += player->unk_078; } - if (!(player->unk_000 & 0x1000)) { + if (!(player->type & PLAYER_CPU)) { if (gModeSelection == BATTLE) { func_80037A4C(player, sp20, arg1); } else { @@ -4641,49 +4633,49 @@ void func_80037BB4(Player *player, Vec3f arg1) { } void func_80037CFC(Player *player, struct Controller *controller, s8 arg2) { - if (((player->unk_0BC & 0x80) != 0x80) && - ((player->unk_0BC & 0x40) != 0x40) && - ((player->unk_0BC & 0x400) != 0x400) && - ((player->unk_0BC & 0x4000) != 0x4000) && - ((player->unk_0BC & 0x01000000) != 0x01000000) && - ((player->unk_0BC & 0x02000000) != 0x02000000) && ((player->unk_0BC & 0x10000) != 0x10000) && - ((player->unk_0BC & 0x20000) != 0x20000)) { - if (((player->unk_0BC & 0x04000000) != 0x04000000) && - ((player->unk_0BC & 8) != 8) && - ((player->unk_0BC & 2) != 2) && - ((player->unk_0BC & 0x10) != 0x10) && + if (((player->effects & 0x80) != 0x80) && + ((player->effects & 0x40) != 0x40) && + ((player->effects & 0x400) != 0x400) && + ((player->effects & 0x4000) != 0x4000) && + ((player->effects & 0x01000000) != 0x01000000) && + ((player->effects & 0x02000000) != 0x02000000) && ((player->effects & 0x10000) != 0x10000) && + ((player->effects & 0x20000) != 0x20000)) { + if (((player->effects & 0x04000000) != 0x04000000) && + ((player->effects & 8) != 8) && + ((player->effects & 2) != 2) && + ((player->effects & 0x10) != 0x10) && (controller->buttonPressed & 0x10)) { func_8002AA50(player); - if (((player->unk_000 & 0x4000) == 0x4000) && ((player->unk_000 & 0x100) != 0x100)) { + if (((player->type & 0x4000) == 0x4000) && ((player->type & PLAYER_INVISIBLE_OR_BOMB) != PLAYER_INVISIBLE_OR_BOMB)) { func_800C9060(arg2, 0x19008000); } } - if ((player->unk_0BC & 8) != 8) { + if ((player->effects & 8) != 8) { func_80033AE0(player, controller, arg2); - } else if (((player->unk_0BC & 2) == 2) && (player->unk_110.unk3C[2] <= 5.0f)) { + } else if (((player->effects & 2) == 2) && (player->unk_110.unk3C[2] <= 5.0f)) { func_80033AE0(player, controller, arg2); } - player->unk_0BC &= ~1; - if ((!(player->unk_0BC & 0x100000)) && (!(player->unk_0BC & 4))) { + player->effects &= ~1; + if ((!(player->effects & 0x100000)) && (!(player->effects & 4))) { if (((player->unk_094 / 18.0f) * 216.0f) <= 12.0f) { - if (controller->button & 0x8000) { - if (controller->button & 0x4000) { - player->unk_0BC |= 0x20; - if ((player->unk_0BC & 0x20) != 0x20) { - player->unk_09C += 100.0f; + if (controller->button & A_BUTTON) { + if (controller->button & B_BUTTON) { + player->effects |= 0x20; + if ((player->effects & 0x20) != 0x20) { + player->currentSpeed += 100.0f; } } } } - if (((player->unk_0BC & 0x20) == 0x20) && - (((controller->button & 0x4000) == 0) || - (!(controller->button & 0x8000)))) { - player->unk_0BC &= ~0x20; + if (((player->effects & 0x20) == 0x20) && + (((controller->button & B_BUTTON) == 0) || + (!(controller->button & A_BUTTON)))) { + player->effects &= ~0x20; } } if ((player->unk_044 & 1) != 1) { - if (controller->button & 0x8000) { - func_80030FC8(player); + if (controller->button & A_BUTTON) { + player_speed(player); func_80030E00(player); } else { if (gModeSelection == 3) @@ -4696,7 +4688,7 @@ void func_80037CFC(Player *player, struct Controller *controller, s8 arg2) { } func_80030C34(player); } - if (controller->button & 0x4000) { + if (controller->button & B_BUTTON) { func_800323E4(player); func_8003221C(player); } else { @@ -4704,35 +4696,35 @@ void func_80037CFC(Player *player, struct Controller *controller, s8 arg2) { func_80032050(player); } } - if ((!(player->unk_0BC & 0x100000)) && (!(player->unk_0BC & 4))) { + if ((!(player->effects & 0x100000)) && (!(player->effects & 4))) { if (((func_800388B0(controller) < (-0x31)) && (((player->unk_094 / 18.0f) * 216.0f) <= 5.0f)) && - (controller->button & 0x4000)) { - player->unk_09C = 140.0f; + (controller->button & B_BUTTON)) { + player->currentSpeed = 140.0f; player->unk_044 |= 1; - player->unk_08C = (player->unk_09C * player->unk_09C) / 25.0f; + player->unk_08C = (player->currentSpeed * player->currentSpeed) / 25.0f; player->unk_20C = 0.0f; } - if ((func_800388B0(controller) >= -0x1D) || (!(controller->button & 0x4000))) { + if ((func_800388B0(controller) >= -0x1D) || (!(controller->button & B_BUTTON))) { if ((player->unk_044 & 1) == 1) { player->unk_044 &= 0xFFFE; - player->unk_09C = 0.0f; + player->currentSpeed = 0.0f; } } } } else { - if ((player->unk_0BC & 0x4000) == 0x4000){ - if (controller->button & 0x8000) { - func_80030FC8(player); + if ((player->effects & 0x4000) == 0x4000){ + if (controller->button & A_BUTTON) { + player_speed(player); } else { func_80031F48(player, 5.0f); } } - if (((((player->unk_0BC & 0x80) == 0x80) || - ((player->unk_0BC & 0x40) == 0x40)) || - ((player->unk_0BC & 0x01000000) == 0x01000000)) || - ((player->unk_0BC & 0x02000000) == 0x02000000)) { - if (controller->button & 0x8000) { + if (((((player->effects & 0x80) == 0x80) || + ((player->effects & 0x40) == 0x40)) || + ((player->effects & 0x01000000) == 0x01000000)) || + ((player->effects & 0x02000000) == 0x02000000)) { + if (controller->button & A_BUTTON) { func_80030E00(player); func_800332E8(player, arg2); return; @@ -4744,12 +4736,12 @@ void func_80037CFC(Player *player, struct Controller *controller, s8 arg2) { } void func_800381AC(Player *player, struct Controller *controller, s8 arg2) { - if (((player->unk_000 & 0x8000) == 0x8000) && - ((player->unk_000 & 0x4000) == 0x4000) && - ((player->unk_000 & 0x1000) != 0x1000)) { - if ((player->unk_000 & 0x2000) != 0x2000) { + if (((player->type & PLAYER_EXISTS) == PLAYER_EXISTS) && + ((player->type & 0x4000) == 0x4000) && + ((player->type & PLAYER_CPU) != PLAYER_CPU)) { + if ((player->type & PLAYER_START_SEQUENCE) != PLAYER_START_SEQUENCE) { if (((player->unk_0CA & 2) == 2) || ((player->unk_0CA & 8) == 8)) { - if (controller->button & 0x8000) { + if (controller->button & A_BUTTON) { func_80032D94(player); } else { func_80033280(player, 5.0f); @@ -4764,7 +4756,7 @@ void func_800381AC(Player *player, struct Controller *controller, s8 arg2) { D_801652E0[arg2] = gRaceFrameCounter; } } - if (controller->button & 0x8000) { + if (controller->button & A_BUTTON) { func_80032700(player); } else { func_80032CB0(player, 5.0f); @@ -4788,24 +4780,24 @@ void func_800382DC(void) { case 1: if (D_8015F890 != 1) { func_800381AC(gPlayerOne, gControllerOne, 0); - temp_v0_3 = gPlayerTwo->unk_000; + temp_v0_3 = gPlayerTwo->type; if (((temp_v0_3 & 0x100) == 0x100) && ((temp_v0_3 & 0x800) != 0x800)) { func_800381AC(gPlayerTwo, gControllerSix, 1); } - temp_v0_4 = gPlayerThree->unk_000; + temp_v0_4 = gPlayerThree->type; if (((temp_v0_4 & 0x100) == 0x100) && ((temp_v0_4 & 0x800) != 0x800)) { func_800381AC(gPlayerThree, gControllerSeven, 2); return; } } else { - if ((gPlayerOne->unk_000 & 0x800) != 0x800) { + if ((gPlayerOne->type & 0x800) != 0x800) { func_800381AC(gPlayerOne, gControllerEight, 0); } - temp_v0_5 = gPlayerTwo->unk_000; + temp_v0_5 = gPlayerTwo->type; if (((temp_v0_5 & 0x100) == 0x100) && ((temp_v0_5 & 0x800) != 0x800)) { func_800381AC(gPlayerTwo, gControllerSix, 1); } - temp_v0_6 = gPlayerThree->unk_000; + temp_v0_6 = gPlayerThree->type; if (((temp_v0_6 & 0x100) == 0x100) && ((temp_v0_6 & 0x800) != 0x800)) { func_800381AC(gPlayerThree, gControllerSeven, 2); return; @@ -4939,15 +4931,15 @@ s16 func_800388B0(struct Controller *controller) { } void func_80038BE4(Player *player, s16 arg1) { - player->unk_09C += (f32) arg1; - if (player->unk_09C < 0.0f) { - player->unk_09C = 0.0f; + player->currentSpeed += (f32) arg1; + if (player->currentSpeed < 0.0f) { + player->currentSpeed = 0.0f; } - if (player->unk_09C >= 250.0f) { - player->unk_09C = 250.0f; + if (player->currentSpeed >= 250.0f) { + player->currentSpeed = 250.0f; } player->unk_044 |= 0x20; - player->unk_08C = (player->unk_09C * player->unk_09C) / 25.0f; + player->unk_08C = (player->currentSpeed * player->currentSpeed) / 25.0f; } void func_80038C6C(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { @@ -4980,7 +4972,7 @@ void func_80038C6C(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { player->unk_084 = -10.0f; player->unk_088 = 28.0f; - player->unk_214 = 250.0f; + player->topSpeed = 250.0f; func_8002B830(player, arg3, arg2); func_8002CD48(player, arg3, arg2); player->unk_02C[1] += player->unk_078; @@ -4994,15 +4986,15 @@ void func_80038C6C(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { sp108[2] = 0; sp108[1] = 0; sp108[0] = 0; - mtxf_translate_vec3f_mat3(sp108, player->unk_174); + mtxf_translate_vec3f_mat3(sp108, player->orientationMatrix); spA4 += sp108[0]; sp9C += sp108[2]; sp114[2] = player->unk_08C; - mtxf_translate_vec3f_mat3(sp114, player->unk_174); + mtxf_translate_vec3f_mat3(sp114, player->orientationMatrix); - sp88[0] = player->unk_034[0]; - sp88[1] = player->unk_034[1]; - sp88[2] = player->unk_034[2]; + sp88[0] = player->velocity[0]; + sp88[1] = player->velocity[1]; + sp88[2] = player->velocity[2]; sp88[0] += ((((((sp114[0] + spA4) + spF0[0])) - (sp88[0] * (0.12 * (player->kartFriction)))) / 6000.0) / 1); sp88[2] += ((((((sp114[2] + sp9C) + spF0[2])) - (sp88[2] * (0.12 * (player->kartFriction)))) / 6000.0) / 1); @@ -5019,9 +5011,9 @@ void func_80038C6C(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { player->rotY = player->pos[1]; player->rotZ = player->pos[2]; - spEC = posX + player->unk_034[0]; - spE8 = posY + player->unk_034[1]; - spE4 = posZ + player->unk_034[2]; + spEC = posX + player->velocity[0]; + spE8 = posY + player->velocity[1]; + spE4 = posZ + player->velocity[2]; func_8002AAC0(player); spE8 += player->kartHopVelocity; spE8 -= 0.02; @@ -5029,14 +5021,14 @@ void func_80038C6C(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { player->unk_058 = 0; player->unk_060 = 0; player->unk_05C = 1.0f; - func_802B6540(player->unk_174, 0, 1.0f, 0, player->unk_02C[1]); - player->unk_0BC |= 8; + calculate_orientation_matrix(player->orientationMatrix, 0, 1.0f, 0, player->unk_02C[1]); + player->effects |= 8; player->unk_0C2 += 1; sp98 = player->unk_110.unk3C[2]; if (sp98 <= 0) { player->unk_0C2 = 0; - player->unk_0BC &= ~2; - player->unk_0BC &= ~8; + player->effects &= ~2; + player->effects &= ~8; player->kartHopVelocity = player->unk_0C2; } sp98 = player->unk_110.unk3C[2]; @@ -5074,28 +5066,28 @@ void func_80038C6C(Player *player, UNUSED Camera *camera, s8 arg2, s8 arg3) { player->unk_064[0] = sp108[0]; player->unk_064[2] = sp108[2]; - player->unk_034[0] = sp88[0]; - player->unk_034[1] = sp88[1]; - player->unk_034[2] = sp88[2]; + player->velocity[0] = sp88[0]; + player->velocity[1] = sp88[1]; + player->velocity[2] = sp88[2]; D_80165070[arg3][0] = sp88[0]; D_80165070[arg3][1] = sp88[1]; D_80165070[arg3][2] = sp88[2]; - if ((player->unk_000 & 0x4000) == 0x4000) { + if ((player->type & 0x4000) == 0x4000) { if (gKartTopSpeedTable[player->characterId] < player->unk_094) { divOptimize = gKartTopSpeedTable[player->characterId] / player->unk_094; - player->unk_034[0] *= divOptimize; - player->unk_034[1] *= divOptimize; - player->unk_034[2] *= divOptimize; + player->velocity[0] *= divOptimize; + player->velocity[1] *= divOptimize; + player->velocity[2] *= divOptimize; player->unk_094 = gKartTopSpeedTable[player->characterId]; } } if ((player->unk_044 & 1) == 1){ if (player->unk_094 > 1.0f){ - player->unk_034[0] *= 1.0f / player->unk_094; - player->unk_034[1] *= 1.0f / player->unk_094; - player->unk_034[2] *= 1.0f / player->unk_094; + player->velocity[0] *= 1.0f / player->unk_094; + player->velocity[1] *= 1.0f / player->unk_094; + player->velocity[2] *= 1.0f / player->unk_094; player->unk_094 = 1.0f; } } diff --git a/src/player_controller.h b/src/player_controller.h index 79a56ecf4..931cf2d1f 100644 --- a/src/player_controller.h +++ b/src/player_controller.h @@ -73,7 +73,7 @@ f32 func_80030150(Player*, s8); void func_80030A34(Player*); void func_80030C34(Player*); void func_80030E00(Player*); -void func_80030FC8(Player*); +void player_speed(Player*); void func_80031F48(Player*, f32); void func_80032050(Player*); void func_8003221C(Player*); diff --git a/src/racing/actors.c b/src/racing/actors.c index 7c5e618f6..c56930751 100644 --- a/src/racing/actors.c +++ b/src/racing/actors.c @@ -500,7 +500,7 @@ void update_actor_kiwano_fruit(struct KiwanoFruit *fruit) { s32 nearestWaypoint; player = &gPlayers[fruit->targetPlayer]; - if (((player->unk_000 & 0x1000) != 0) || (player->unk_110.unk34 == 0)) { + if (((player->type & PLAYER_CPU) != 0) || (player->unk_110.unk34 == 0)) { fruit->state = 0; return; } @@ -530,14 +530,14 @@ void update_actor_kiwano_fruit(struct KiwanoFruit *fruit) { fruit->velocity[0] = 0.0f; fruit->velocity[1] = 2.3f; fruit->velocity[2] = 0.0f; - if ((player->unk_0BC & 0x200) != 0) { + if ((player->effects & 0x200) != 0) { func_800C9060(player - gPlayerOne, 0x1900A052U); } else { - player->unk_0BC |= 0x8000; + player->effects |= 0x8000; player->pos[0] -= temp_f2 * 4.0f; player->pos[2] -= temp_f14 * 4.0f; - player->unk_034[0] -= temp_f2 * 0.7f; - player->unk_034[2] -= temp_f14 * 0.7f; + player->velocity[0] -= temp_f2 * 0.7f; + player->velocity[2] -= temp_f14 * 0.7f; func_800C9060(player - gPlayerOne, 0x19007018U); if (gModeSelection != GRAND_PRIX) { D_80162DF8 = 1; @@ -809,12 +809,12 @@ void func_80298AC0(Player *player) { sp64[1] = data->pos[1]; sp64[2] = data->pos[2]; if (func_8029EEB8(player, sp64, 5.0f, 40.0f, 0.8f) == 1) { - if ((player->unk_0BC & 0x200) != 0) { - func_800C98B8(player->pos, player->unk_034, 0x19018010); + if ((player->effects & 0x200) != 0) { + func_800C98B8(player->pos, player->velocity, 0x19018010); func_800C90F4((u8) (player - gPlayerOne), (player->characterId * 0x10) + 0x2900800D); data->someId |= 0x400; } - if ((player->unk_000 & 0x100) == 0) { + if ((player->type & PLAYER_INVISIBLE_OR_BOMB) == 0) { func_800C9060((u8) (player - gPlayerOne), 0x19007018); } break; @@ -828,7 +828,7 @@ void func_80298C94(void) { for (index = 0; index < 4; index++){ // wtf is up with the << 0x18 >> 0x18? is it some weird type conversion? - if (((gPlayers[index].unk_000 & 0xC000) != 0) && (((get_surface_type(gPlayers[index].unk_110.unk3A) << 0x18) >> 0x18) == 8)) { + if (((gPlayers[index].type & 0xC000) != 0) && (((get_surface_type(gPlayers[index].unk_110.unk3A) << 0x18) >> 0x18) == 8)) { func_80298AC0(&gPlayers[index]); } } @@ -1587,9 +1587,9 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) { Mat4 spE0; Mat4 spA0; - f32 temp_f0 = is_within_render_distance(camera->pos, actor->pos, camera->rot[1], 2500.0f, gCameraZoom[camera - camera1], 9000000.0f); + f32 distance = is_within_render_distance(camera->pos, actor->pos, camera->rot[1], 2500.0f, gCameraZoom[camera - camera1], 9000000.0f); - if (temp_f0 < 0.0f) { return; } + if (distance < 0.0f) { return; } gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); @@ -1597,12 +1597,12 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) { maxObjectsReached = render_set_position(sp120, 0) == 0; if (maxObjectsReached) { return; } - if (temp_f0 < 122500.0f) { + if (distance < 122500.0f) { gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_1C0F0); gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_1B978); - } else if (temp_f0 < 640000.0f) { + } else if (distance < 640000.0f) { gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_1D670); gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_1D160); @@ -1610,7 +1610,7 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) { gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_1E910); gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_1E480); } - if (1440000.0f < temp_f0) { return; } + if (1440000.0f < distance) { return; } gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK); gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22D28); @@ -2126,8 +2126,8 @@ void init_kiwano_fruit(void) { for (i = 0; i < 4; i++) { phi_s1 = &gPlayers[i]; //temp_v0 = *phi_s1; - if ((phi_s1->unk_000 & 0x4000) == 0) { continue; } - if ((phi_s1->unk_000 & 0x100) != 0) { continue; } + if ((phi_s1->type & 0x4000) == 0) { continue; } + if ((phi_s1->type & 0x100) != 0) { continue; } phi_s0 = addActorToEmptySlot(sp64, sp50, sp58, ACTOR_KIWANO_FRUIT); actor = &gActorList[phi_s0]; @@ -2378,7 +2378,7 @@ void func_8029E158(void) { init_red_shell_texture(); destroy_all_actors(); place_course_actors(); - func_800122D8(); + init_course_vehicles(); } void func_8029E7DC(struct Actor *actor) { @@ -2533,6 +2533,7 @@ s16 func_8029E890(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) { return -1; } +// returns actor index if any slot avaible returns -1 s16 addActorToEmptySlot(Vec3f pos, Vec3s rot, Vec3f velocity, s16 actorType) { s32 index; @@ -2625,9 +2626,9 @@ s32 func_8029EEB8(Player *player, Vec3f pos, f32 arg2, f32 arg3, f32 arg4) { } temp_f0_3 = sqrtf(arg3); sp28 = temp_f0_3 - arg2; - temp_f16 = player->unk_034[0]; - temp_f18 = player->unk_034[2]; - if (player->unk_0BC & 0x200) { + temp_f16 = player->velocity[0]; + temp_f18 = player->velocity[2]; + if (player->effects & 0x200) { return 1; } if (temp_f0_3 < 0.1f) { @@ -2635,12 +2636,12 @@ s32 func_8029EEB8(Player *player, Vec3f pos, f32 arg2, f32 arg3, f32 arg4) { if (temp_f0_4 < 0.5f) { temp_f0_4 = 0.5f; } - player->unk_034[0] = 0; - player->unk_034[2] = 0; + player->velocity[0] = 0; + player->velocity[2] = 0; player->pos[0] += (temp_f16 / temp_f0_4) * arg2; player->pos[2] += (temp_f18 / temp_f0_4) * arg2; } else { - player->unk_0BC |= 0x8000; + player->effects |= 0x8000; temp_f20 /= temp_f0_3; temp_f14 /= temp_f0_3; temp_f0_5 = sqrtf((temp_f16 * temp_f16) + (temp_f18 * temp_f18)); @@ -2648,14 +2649,14 @@ s32 func_8029EEB8(Player *player, Vec3f pos, f32 arg2, f32 arg3, f32 arg4) { temp_f0_6 = 1.2f; player->pos[0] = pos[0] - (temp_f20 * arg2 * temp_f0_6); player->pos[2] = pos[2] - (temp_f14 * arg2 * temp_f0_6); - player->unk_034[0] = 0.0f; - player->unk_034[2] = 0.0f; + player->velocity[0] = 0.0f; + player->velocity[2] = 0.0f; return 1; } temp_f2_2 = ((temp_f20 * temp_f16) + (temp_f14 * temp_f18)) / temp_f0_5; temp_f2_2 = temp_f0_5 * temp_f2_2 * arg4 * 1.3f; - player->unk_034[0] -= temp_f20 * temp_f2_2; - player->unk_034[2] -= temp_f14 * temp_f2_2; + player->velocity[0] -= temp_f20 * temp_f2_2; + player->velocity[2] -= temp_f14 * temp_f2_2; player->pos[0] += temp_f20 * sp28 * 0.5f; player->pos[2] += temp_f14 * sp28 * 0.5f; } @@ -2664,12 +2665,12 @@ s32 func_8029EEB8(Player *player, Vec3f pos, f32 arg2, f32 arg3, f32 arg4) { s32 func_8029F1F8(Player *player, struct Actor *marioRacewaySign) { if (func_8029EEB8(player, marioRacewaySign->pos, 7.0f, 200.0f, 0.8f) == 1) { - if ((player->unk_000 & 0x4000) != 0) { - if ((player->unk_0BC & 0x200) != 0) { + if ((player->type & 0x4000) != 0) { + if ((player->effects & 0x200) != 0) { marioRacewaySign->flags |= 0x400; - func_800C98B8(player->pos, player->unk_034, 0x19018010U); + func_800C98B8(player->pos, player->velocity, 0x19018010U); func_800C90F4(player - gPlayerOne, (player->characterId * 0x10) + 0x2900800D); - } else if ((player->unk_000 & 0x100) == 0) { + } else if ((player->type & PLAYER_INVISIBLE_OR_BOMB) == 0) { func_800C9060(player - gPlayerOne, 0x1900701AU); } } @@ -2680,12 +2681,12 @@ s32 func_8029F1F8(Player *player, struct Actor *marioRacewaySign) { s32 func_8029F2FC(Player *player, struct PiranhaPlant *plant) { if (func_8029EEB8(player, plant->pos, plant->boundingBoxSize, plant->boundingBoxSize, 2.5f) == 1) { - if ((player->unk_000 & 0x4000) != 0) { - if ((player->unk_0BC & 0x200) != 0) { + if ((player->type & 0x4000) != 0) { + if ((player->effects & 0x200) != 0) { plant->flags |= 0x400; - func_800C98B8(player->pos, player->unk_034, 0x1901A24AU); + func_800C98B8(player->pos, player->velocity, 0x1901A24AU); func_800C90F4(player - gPlayerOne, (player->characterId * 0x10) + 0x2900800D); - } else if ((player->unk_000 & 0x100) == 0) { + } else if ((player->type & PLAYER_INVISIBLE_OR_BOMB) == 0) { func_800C9060(player - gPlayerOne, 0x1900A052U); } } @@ -2731,15 +2732,15 @@ s32 func_8029F408(Player *player, struct YoshiValleyEgg *egg) { if (totalBox < xz_dist) { return 0; } - if ((player->unk_000 & 0x4000) != 0) { - if ((player->unk_0BC & 0x200) != 0) { + if ((player->type & 0x4000) != 0) { + if ((player->effects & 0x200) != 0) { egg->flags |= 0x400; egg->pathCenter[1] = 8.0f; - func_800C98B8(player->pos, player->unk_034, 0x19018010); + func_800C98B8(player->pos, player->velocity, 0x19018010); func_800C90F4(player - gPlayerOne, (player->characterId * 0x10) + 0x2900800D); } else { func_8008DABC(player, player - gPlayerOne); - if ((gModeSelection == TIME_TRIALS) && ((player->unk_000 & 0x1000) == 0)) { + if ((gModeSelection == TIME_TRIALS) && ((player->type & PLAYER_CPU) == 0)) { D_80162DF8 = 1; } } @@ -2794,33 +2795,33 @@ s32 func_8029F69C(Player *player, struct Actor *actor) { if (var_f16 < xz_dist) { return 0; } - sp48 = player->unk_034[0]; - sp44 = player->unk_034[2]; - if (player->unk_000 & 0x4000) { - if (player->unk_0BC & 0x200) { + sp48 = player->velocity[0]; + sp44 = player->velocity[2]; + if (player->type & 0x4000) { + if (player->effects & 0x200) { actor->flags |= 0x400; - func_800C98B8(player->pos, player->unk_034, 0x19018010U); + func_800C98B8(player->pos, player->velocity, 0x19018010U); func_800C90F4(player - gPlayerOne, (player->characterId * 0x10) + 0x2900800D); return 1; } - if (!(player->unk_000 & 0x100)) { + if (!(player->type & PLAYER_INVISIBLE_OR_BOMB)) { func_800C9060(player - gPlayerOne, 0x19007018U); } } - if (!(player->unk_0BC & 0x200)) { - player->unk_0BC |= 0x8000; + if (!(player->effects & 0x200)) { + player->effects |= 0x8000; } sp20[0] = actor->pos[0]; sp20[1] = actor->pos[1]; sp20[2] = actor->pos[2]; - if (((gCurrentCourseId == 0) || (gCurrentCourseId == 4) || (gCurrentCourseId == 7) || (gCurrentCourseId == 8)) && (player->unk_094 > 1.0f)) { + if (((gCurrentCourseId == COURSE_MARIO_RACEWAY) || (gCurrentCourseId == COURSE_YOSHI_VALLEY) || (gCurrentCourseId == COURSE_ROYAL_RACEWAY) || (gCurrentCourseId == COURSE_LUIGI_RACEWAY)) && (player->unk_094 > 1.0f)) { func_80077AB0(sp20, 0); } if (xz_dist < 0.1f) { sqrtf((sp48 * sp48) + (sp44 * sp44)); if(xz_dist){} - player->unk_034[0] = 0; - player->unk_034[2] = 0; + player->velocity[0] = 0; + player->velocity[2] = 0; player->pos[0] = sp20[0] - (x_dist * var_f16 * 1.2f); player->pos[2] = sp20[2] - (z_dist * var_f16 * 1.2f); } else { @@ -2830,14 +2831,14 @@ s32 func_8029F69C(Player *player, struct Actor *actor) { if (temp_f0_4 < 0.25f) { player->pos[0] = sp20[0] - (x_dist * var_f16 * 1.2f); player->pos[2] = sp20[2] - (z_dist * var_f16 * 1.2f); - player->unk_034[0] = 0; - player->unk_034[2] = 0; + player->velocity[0] = 0; + player->velocity[2] = 0; return 1; } temp_f12 = ((x_dist * sp48) + (z_dist * sp44)) / temp_f0_4; temp_f12 = temp_f0_4 * temp_f12 * 1.5f; - player->unk_034[0] -= x_dist * temp_f12; - player->unk_034[2] -= z_dist * temp_f12; + player->velocity[0] -= x_dist * temp_f12; + player->velocity[2] -= z_dist * temp_f12; temp_f2 = xz_dist - var_f16; player->pos[0] += x_dist * temp_f2 * 0.5f; player->pos[2] += z_dist * temp_f2 * 0.5f; @@ -3149,18 +3150,18 @@ void func_802A0450(Player *player, struct Actor *actor) { temp_lo = player - gPlayerOne; switch (actor->type) { case ACTOR_YOSHI_VALLEY_EGG: - if (!(player->unk_0BC & 0x80000000) && !(player->unk_000 & 0x100)) { + if (!(player->effects & 0x80000000) && !(player->type & PLAYER_INVISIBLE_OR_BOMB)) { func_8029F408(player, (struct YoshiValleyEgg *) actor); } break; case ACTOR_BANANA: - if (player->unk_0BC & 0x800008C0) { break; } + if (player->effects & 0x800008C0) { break; } if (player->statusEffects & 1) { break; } temp_v1 = actor->rot[0]; if (((temp_lo == temp_v1) && (actor->flags & 0x1000)) || (func_8029FB80(player, actor) != 1)) { break; } player->statusEffects |= 1; owner = &gPlayers[temp_v1]; - if (owner->unk_000 & 0x4000) { + if (owner->type & 0x4000) { if (actor->flags & 0xF) { if (temp_lo != temp_v1) { func_800C90F4(temp_v1, (owner->characterId * 0x10) + 0x29008006); @@ -3176,14 +3177,14 @@ void func_802A0450(Player *player, struct Actor *actor) { func_8029FDC8(actor); break; case ACTOR_GREEN_SHELL: - if (player->unk_0BC & 0x80000400) { break; } + if (player->effects & 0x80000400) { break; } if (player->statusEffects & 4) { break; } temp_v1 = actor->rot[2]; if (((temp_lo == temp_v1) && (actor->flags & 0x1000)) || (func_8029FB80(player, actor) != 1)) { break; } player->statusEffects |= 4; - func_800C98B8(player->pos, player->unk_034, 0x19018010U); + func_800C98B8(player->pos, player->velocity, 0x19018010U); owner = &gPlayers[temp_v1]; - if ((owner->unk_000 & 0x4000) && (temp_lo != temp_v1)) { + if ((owner->type & 0x4000) && (temp_lo != temp_v1)) { func_800C90F4(temp_v1, (owner->characterId * 0x10) + 0x29008006); } func_8029FDC8(actor); @@ -3192,12 +3193,12 @@ void func_802A0450(Player *player, struct Actor *actor) { if (player->statusEffects & 2) { break; } temp_v1 = actor->rot[2]; if (((temp_lo == temp_v1) && (actor->flags & 0x1000)) || (func_8029FB80(player, actor) != 1)) { break; } - if (!(player->unk_0BC & 0x80000000)) { + if (!(player->effects & 0x80000000)) { player->statusEffects |= 2; - func_800C98B8(player->pos, player->unk_034, 0x19018010U); + func_800C98B8(player->pos, player->velocity, 0x19018010U); } owner = &gPlayers[temp_v1]; - if ((owner->unk_000 & 0x4000) && (temp_lo != temp_v1)) { + if ((owner->type & 0x4000) && (temp_lo != temp_v1)) { func_800C90F4(temp_v1, (owner->characterId * 0x10) + 0x29008006); } if (temp_lo == actor->unk_04) { @@ -3206,27 +3207,27 @@ void func_802A0450(Player *player, struct Actor *actor) { break; case ACTOR_RED_SHELL: temp_v1 = actor->rot[2]; - if (player->unk_0BC & 0x01000000) { break; } + if (player->effects & 0x01000000) { break; } if (player->statusEffects & 2) { break; } temp_v1 = actor->rot[2]; if (((temp_lo == temp_v1) && (actor->flags & 0x1000)) || (func_8029FB80(player, actor) != 1)) { break; } - if (!(player->unk_0BC & 0x80000000)) { + if (!(player->effects & 0x80000000)) { player->statusEffects |= 2; - func_800C98B8(player->pos, player->unk_034, 0x19018010U); + func_800C98B8(player->pos, player->velocity, 0x19018010U); } owner = &gPlayers[temp_v1]; - if ((owner->unk_000 & 0x4000) && (temp_lo != temp_v1)) { + if ((owner->type & 0x4000) && (temp_lo != temp_v1)) { func_800C90F4(temp_v1, (owner->characterId * 0x10) + 0x29008006); } func_8029FDC8(actor); break; case ACTOR_PIRANHA_PLANT: - if (!(player->unk_0BC & 0x80000000)) { + if (!(player->effects & 0x80000000)) { func_8029F2FC(player, (struct PiranhaPlant *) actor); } break; case ACTOR_MARIO_RACEWAY_SIGN: - if (!(player->unk_0BC & 0x80000000)) { + if (!(player->effects & 0x80000000)) { func_8029F1F8(player, actor); } break; @@ -3242,18 +3243,18 @@ void func_802A0450(Player *player, struct Actor *actor) { case 31: case 32: case 33: - if (!(player->unk_0BC & 0x80000000)) { + if (!(player->effects & 0x80000000)) { func_8029F69C(player, actor); } break; case ACTOR_FALLING_ROCK: - if (!(player->unk_0BC & 0x80000000) && !(player->unk_000 & 0x100)) { + if (!(player->effects & 0x80000000) && !(player->type & PLAYER_INVISIBLE_OR_BOMB)) { if (func_8029FB80(player, actor) == 1) { func_800C98B8(actor->pos, actor->velocity, SOUND_ACTION_EXPLOSION); - if ((gModeSelection == TIME_TRIALS) && !(player->unk_000 & 0x1000)) { + if ((gModeSelection == TIME_TRIALS) && !(player->type & PLAYER_CPU)) { D_80162DF8 = 1; } - if (player->unk_0BC & 0x200) { + if (player->effects & 0x200) { actor->velocity[1] = 10.0f; } else { func_8008DABC(player, player - gPlayerOne); @@ -3263,12 +3264,12 @@ void func_802A0450(Player *player, struct Actor *actor) { break; case ACTOR_FAKE_ITEM_BOX: temp_v1 = actor->velocity[0]; - if (player->unk_0BC & 0x80000000) { break; } + if (player->effects & 0x80000000) { break; } temp_v1 = actor->velocity[0]; if (((temp_lo == temp_v1) && (actor->flags & 0x1000)) || (func_8029FB80(player, actor) != 1)) { break; } - player->statusEffects |= 0x400000; + player->statusEffects |= REVERSE_EFFECT; owner = &gPlayers[temp_v1]; - if (owner->unk_000 & 0x4000) { + if (owner->type & 0x4000) { if (actor->flags & 0xF) { if (temp_lo != temp_v1) { func_800C90F4(temp_v1, (owner->characterId * 0x10) + 0x29008006); @@ -3293,7 +3294,7 @@ void func_802A0450(Player *player, struct Actor *actor) { actor->state = 3; actor->flags = -0x8000; actor->unk_04 = 0; - if (player->unk_000 & 0x4000) { + if (player->type & 0x4000) { func_8007ABFC(player - gPlayerOne, 7); } } else if (actor->state == 0) { @@ -3306,7 +3307,7 @@ void func_802A0450(Player *player, struct Actor *actor) { actor->state = 3; actor->flags = -0x8000; actor->unk_04 = 0; - if (player->unk_000 & 0x4000) { + if (player->type & 0x4000) { func_8007ABFC(player - gPlayerOne, 0); } } else if (actor->state == 0) { @@ -3327,12 +3328,12 @@ void evaluate_player_collision(void) { for (i = 0; i < 8; i++) { phi_s1 = &gPlayers[i]; - if (((phi_s1->unk_000 & 0x8000) != 0) && ((phi_s1->unk_0BC & 0x4000000) == 0)) { + if (((phi_s1->type & 0x8000) != 0) && ((phi_s1->effects & 0x4000000) == 0)) { func_802977E4(phi_s1); for (j = 0; j < ACTOR_LIST_SIZE; j++) { temp_a1 = &gActorList[j]; - if ((phi_s1->unk_0BC & 0x4000000) == 0) { + if ((phi_s1->effects & 0x4000000) == 0) { // temp_v0 = temp_a1->unk2; if (((temp_a1->flags & 0x8000) != 0) && ((temp_a1->flags & 0x4000) != 0)) { func_802A0450(phi_s1, temp_a1); @@ -3444,7 +3445,7 @@ void update_actor_fake_item_box(struct FakeItemBox *fake_item_box) { func_802ADDC8(&fake_item_box->unk30, fake_item_box->boundingBoxSize, fake_item_box->pos[0], fake_item_box->pos[1], fake_item_box->pos[2]); func_802B4E30((struct Actor *)fake_item_box); temp_v1_3 = &gControllers[temp_v1]; - if ((temp_v0_4->unk_000 & 0x4000) != 0) { + if ((temp_v0_4->type & 0x4000) != 0) { if ((temp_v1_3->buttonDepressed & Z_TRIG) != 0) { temp_v1_3->buttonDepressed &= 0xDFFF; diff --git a/src/racing/actors_extended.c b/src/racing/actors_extended.c index 375e2a262..45720b9c7 100644 --- a/src/racing/actors_extended.c +++ b/src/racing/actors_extended.c @@ -99,7 +99,7 @@ void func_802B0570(struct BananaActor *banana) { func_802B0464(banana->youngerIndex); func_802B04E8(banana, banana->elderIndex); - if ((gPlayers[banana->playerId].unk_000 & 0x4000) != 0) { + if ((gPlayers[banana->playerId].type & 0x4000) != 0) { func_800C9060(banana->playerId, 0x19019053); } banana->flags = -0x8000; @@ -293,7 +293,7 @@ void update_actor_banana_bunch(struct BananaBunchParent *banana_bunch) { if (someCount == 0) { destroy_actor((struct Actor *) banana_bunch); owner->statusEffects &= ~0x40000; - } else if ((owner->unk_000 & 0x4000) != 0) { + } else if ((owner->type & 0x4000) != 0) { controller = &gControllers[banana_bunch->playerId]; if ((controller->buttonPressed & Z_TRIG) != 0) { controller->buttonPressed &= ~Z_TRIG; @@ -311,22 +311,22 @@ void update_actor_banana_bunch(struct BananaBunchParent *banana_bunch) { } } -s32 func_802B0E14(s16 arg0) { - struct ShellActor *temp; +bool is_shell_exist(s16 arg0) { + struct ShellActor *actor; if (arg0 < 0) { - return 0; + return FALSE; } - temp = (struct ShellActor*) &gActorList[arg0]; - if (temp->type == ACTOR_GREEN_SHELL) { - if (temp->state == TRIPLE_GREEN_SHELL) { - return 1; + actor = (struct ShellActor*) &gActorList[arg0]; + if (actor->type == ACTOR_GREEN_SHELL) { + if (actor->state == TRIPLE_GREEN_SHELL) { + return TRUE; } - return 0; + return FALSE; } - if (temp->state == TRIPLE_RED_SHELL) { - return 1; + if (actor->state == TRIPLE_RED_SHELL) { + return TRUE; } - return 0; + return FALSE; } void update_actor_triple_shell(TripleShellParent *parent, s16 shellType) { @@ -336,7 +336,7 @@ void update_actor_triple_shell(TripleShellParent *parent, s16 shellType) { struct ShellActor *shell; Vec3f someVelocity; UNUSED s32 pad3; - s16 someCount; + s16 shellCount; u16 someRotAngle; Player *player; @@ -345,43 +345,43 @@ void update_actor_triple_shell(TripleShellParent *parent, s16 shellType) { parent->rotAngle += parent->rotVelocity; someRotAngle = parent->rotAngle; switch (parent->state) { - case 0: - if (func_802B19EC(parent, &gPlayers[playerId], shellType, 0U) != -1) { + case SPAWN_FIRST_SHELL: + if (init_triple_shell(parent, &gPlayers[playerId], shellType, 0U) != -1) { func_800C9060(playerId, 0x19008012); parent->shellsAvailable += 1; } - parent->state = 1; + parent->state = SPAWN_SECOND_SHELL; break; - case 1: + case SPAWN_SECOND_SHELL: if (parent->rotVelocity > 0) { if (someRotAngle >= 0xD556) { - if (func_802B19EC(parent, &gPlayers[playerId], shellType, 1U) != -1) { + if (init_triple_shell(parent, &gPlayers[playerId], shellType, 1U) != -1) { func_800C9060(playerId, 0x19008012); parent->shellsAvailable += 1; } - parent->state = 2; + parent->state = SPAWN_THIRD_SHELL; } } else { if (someRotAngle < 0x2AAA) { - if (func_802B19EC(parent, &gPlayers[playerId], shellType, 1U) != -1) { + if (init_triple_shell(parent, &gPlayers[playerId], shellType, 1U) != -1) { func_800C9060(playerId, 0x19008012); parent->shellsAvailable += 1; } - parent->state = 2; + parent->state = SPAWN_THIRD_SHELL; } } break; - case 2: + case SPAWN_THIRD_SHELL: if (parent->rotVelocity > 0) { if ((someRotAngle >= 0x2AAB) && (someRotAngle < 0x31C7)) { - if (func_802B19EC(parent, &gPlayers[playerId], shellType, 2U) != -1) { + if (init_triple_shell(parent, &gPlayers[playerId], shellType, 2U) != -1) { func_800C9060(playerId, 0x19008012); parent->shellsAvailable += 1; } parent->state = 3; } } else if ((someRotAngle < 0xD555) && (someRotAngle >= 0xCE39)) { - if (func_802B19EC(parent, &gPlayers[playerId], shellType, 2U) != -1) { + if (init_triple_shell(parent, &gPlayers[playerId], shellType, 2U) != -1) { func_800C9060(playerId, 0x19008012); parent->shellsAvailable += 1; } @@ -398,23 +398,23 @@ void update_actor_triple_shell(TripleShellParent *parent, s16 shellType) { shell->flags |= 0x4000; break; case 4: - someCount = 0; - if (func_802B0E14(parent->shellIndices[0]) == 1) { - someCount = 1; + shellCount = 0; + if (is_shell_exist(parent->shellIndices[0]) == 1) { + shellCount = 1; } else { parent->shellIndices[0] = -1.0f; } - if (func_802B0E14(parent->shellIndices[1]) == 1) { - someCount++; + if (is_shell_exist(parent->shellIndices[1]) == 1) { + shellCount++; } else { parent->shellIndices[1] = -1.0f; } - if (func_802B0E14(parent->shellIndices[2]) == 1) { - someCount++; + if (is_shell_exist(parent->shellIndices[2]) == 1) { + shellCount++; } else { parent->shellIndices[2] = -1.0f; } - if (someCount == 0) { + if (shellCount == 0) { destroy_actor((struct Actor *) parent); break; } @@ -505,14 +505,14 @@ void update_actor_triple_shell(TripleShellParent *parent, s16 shellType) { } } -// This function could reasonably be called "spawn_banana_bunch" or similar -s32 func_802B17F4(Player *player) { +s32 use_banana_bunch_item(Player *player) { Vec3f startingVelocity = {0.0f, 0.0f, 0.0f}; Vec3s startingRot = {0, 0, 0}; Vec3f startingPos = {0.0f, 0.0f, 0.0f}; s16 actorIndex; struct BananaBunchParent *bananaBunch; + // this have a animation of spawning so see update_actor_banana_bunch actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_BANANA_BUNCH); if (actorIndex < 0) { return actorIndex; @@ -520,18 +520,18 @@ s32 func_802B17F4(Player *player) { bananaBunch = (struct BananaBunchParent *) &gActorList[actorIndex]; bananaBunch->state = 0; bananaBunch->playerId = player - gPlayerOne; - player->statusEffects |= 0x40000; + player->statusEffects |= HOLD_BANANA_EFFECT; return actorIndex; } -// This function could reasonably be called "spawn_triple_shell" or similar -s32 func_802B18E4(Player *player, s16 tripleShellType) { +s32 use_triple_shell_item(Player *player, s16 tripleShellType) { Vec3f startingVelocity = {0.0f, 0.0f, 0.0f}; Vec3s startingRot = {0, 0, 0}; Vec3f startingPos = {0.0f, 0.0f, 0.0f}; s16 actorIndex; TripleShellParent *parent; + // this have a animation of spawning so see update_actor_triple_shell actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, tripleShellType); if (actorIndex < 0) { return actorIndex; @@ -546,8 +546,7 @@ s32 func_802B18E4(Player *player, s16 tripleShellType) { return actorIndex; } -// This function could reasonably be called "spawn_shell_for_triple_shell" or similar -s32 func_802B19EC(TripleShellParent *parent, Player *player, s16 shellType, u16 shellId) { +s32 init_triple_shell(TripleShellParent *parent, Player *player, s16 shellType, u16 shellId) { Vec3f startingVelocity = {0.0f, 0.0f, 0.0f}; Vec3s startingRot = {0, 0, 0}; Vec3f startingPos; @@ -557,7 +556,7 @@ s32 func_802B19EC(TripleShellParent *parent, Player *player, s16 shellType, u16 startingPos[0] = 0.0f; startingPos[1] = -player->boundingBoxSize; startingPos[2] = player->boundingBoxSize - 4.0f; - mtxf_translate_vec3f_mat3(startingPos, player->unk_174); + mtxf_translate_vec3f_mat3(startingPos, player->orientationMatrix); startingPos[0] += player->pos[0]; startingPos[1] += player->pos[1]; startingPos[2] += player->pos[2]; @@ -592,21 +591,27 @@ s32 func_802B19EC(TripleShellParent *parent, Player *player, s16 shellType, u16 return 1; } -// This function could reasonably be called "spawn_green_shell" or similar -s32 func_802B1C9C(Player *player) { +s32 use_green_shell_item(Player *player) { Vec3f startingVelocity = {0.0f, 0.0f, 0.0f}; Vec3s startingRot = {0, 0, 0}; Vec3f startingPos; s16 actorIndex; struct ShellActor *shell; + // place behind player startingPos[0] = 0.0f; startingPos[1] = -player->boundingBoxSize; startingPos[2] = player->boundingBoxSize - 4.0f; - mtxf_translate_vec3f_mat3(startingPos, player->unk_174); + + // rotate to match player orientation + mtxf_translate_vec3f_mat3(startingPos, player->orientationMatrix); + + // move to player position startingPos[0] += player->pos[0]; startingPos[1] += player->pos[1]; startingPos[2] += player->pos[2]; + + // spawn the shell actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_GREEN_SHELL); if (actorIndex < 0) { return actorIndex; @@ -625,21 +630,27 @@ s32 func_802B1C9C(Player *player) { return actorIndex; } -// This function could reasonably be called "spawn_red_shell" or similar -s32 func_802B1E48(Player *player) { +s32 use_red_shell_item(Player *player) { Vec3f startingVelocity = {0.0f, 0.0f, 0.0f}; Vec3s startingRot = {0, 0, 0}; Vec3f startingPos; s16 actorIndex; struct ShellActor *shell; + // place behind player startingPos[0] = 0.0f; startingPos[1] = -player->boundingBoxSize; startingPos[2] = player->boundingBoxSize - 4.0f; - mtxf_translate_vec3f_mat3(startingPos, player->unk_174); + + // rotate to match player orientation + mtxf_translate_vec3f_mat3(startingPos, player->orientationMatrix); + + // move to player position startingPos[0] += player->pos[0]; startingPos[1] += player->pos[1]; startingPos[2] += player->pos[2]; + + // spawn the shell actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_RED_SHELL); if (actorIndex < 0) { return actorIndex; @@ -658,11 +669,10 @@ s32 func_802B1E48(Player *player) { return actorIndex; } -// This function could reasonably be called "spawn_blue_shell" // Interestingly blue shells start their life as a red shell, // and then just change the type from red to blue shell -void func_802B1FFC(Player *player) { - gActorList[func_802B1E48(player)].type = ACTOR_BLUE_SPINY_SHELL; +void use_blue_shell_item(Player *player) { + gActorList[use_red_shell_item(player)].type = ACTOR_BLUE_SPINY_SHELL; } void update_actor_banana(struct BananaActor *banana) { @@ -706,7 +716,7 @@ void update_actor_banana(struct BananaActor *banana) { } func_802ADDC8(&banana->unk30, banana->boundingBoxSize + 1.0f, banana->pos[0], banana->pos[1], banana->pos[2]); func_802B4E30((struct Actor *) banana); - if ((player->unk_000 & 0x4000) != 0) { + if ((player->type & 0x4000) != 0) { if (gDemoMode) { controller = gControllerOne; } else { @@ -856,13 +866,13 @@ void func_802B2914(struct BananaBunchParent *banana_bunch, Player *player, s16 b startingPos[0] = 0.0f; startingPos[1] = -player->boundingBoxSize; startingPos[2] = -(player->boundingBoxSize + 4.0f); - mtxf_translate_vec3f_mat3(startingPos, player->unk_174); + mtxf_translate_vec3f_mat3(startingPos, player->orientationMatrix); startingPos[0] += player->pos[0]; startingPos[1] += player->pos[1]; startingPos[2] += player->pos[2]; - startingVelocity[0] = player->unk_034[0]; - startingVelocity[1] = player->unk_034[1]; - startingVelocity[2] = player->unk_034[2]; + startingVelocity[0] = player->velocity[0]; + startingVelocity[1] = player->velocity[1]; + startingVelocity[2] = player->velocity[2]; startingRot[0] = 0; startingRot[1] = 0; startingRot[2] = 0; @@ -915,14 +925,13 @@ void func_802B2914(struct BananaBunchParent *banana_bunch, Player *player, s16 b tempBanana->youngerIndex = actorIndex; break; } - if ((player->unk_000 & 0x4000) != 0) { + if ((player->type & 0x4000) != 0) { func_800C9060(player - gPlayerOne, 0x19008012); } } } -// This function could reasonably be called "spawn_fake_itembox" or similar -s32 func_802B2C40(Player *player) { +s32 use_fake_itembox_item(Player *player) { struct FakeItemBox *itemBox; UNUSED s32 pad[5]; s16 actorIndex; @@ -930,32 +939,41 @@ s32 func_802B2C40(Player *player) { Vec3s startingRot; Vec3f startingPos; + // place behind player startingPos[0] = 0.0f; startingPos[1] = -player->boundingBoxSize; startingPos[2] = -(player->boundingBoxSize + 4.0f); - mtxf_translate_vec3f_mat3(startingPos, player->unk_174); + + // rotate to match player orientation + mtxf_translate_vec3f_mat3(startingPos, player->orientationMatrix); + + // move to player position startingPos[0] += player->pos[0]; startingPos[1] += player->pos[1]; startingPos[2] += player->pos[2]; - startingVelocity[0] = player->unk_034[0]; - startingVelocity[1] = player->unk_034[1]; - startingVelocity[2] = player->unk_034[2]; + + // set the itembox's velocity to the player's velocity + startingVelocity[0] = player->velocity[0]; + startingVelocity[1] = player->velocity[1]; + startingVelocity[2] = player->velocity[2]; + startingRot[0] = 0; startingRot[1] = 0; startingRot[2] = 0; + + // spawn the itembox actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_FAKE_ITEM_BOX); if (actorIndex < 0) { return actorIndex; } itemBox = (struct FakeItemBox*)&gActorList[actorIndex]; itemBox->playerId = (player - gPlayerOne); - itemBox->state = 0; - player->statusEffects |= 0x40000; + itemBox->state = HELD_FAKE_ITEM_BOX; + player->statusEffects |= HOLD_BANANA_EFFECT; return actorIndex; } -// This function could reasonably be called "spawn_banana" or similar -s32 func_802B2D70(Player *player) { +s32 use_banana_item(Player *player) { UNUSED s32 pad[6]; u16 playerId; s16 actorIndex; @@ -969,20 +987,28 @@ s32 func_802B2D70(Player *player) { return -1; } // Extremely weird fake match to fix a tiny stack difference + // place the banana in back of the player startingPos[0, 0] = 0.0f; startingPos[1] = -player->boundingBoxSize; startingPos[2] = -(player->boundingBoxSize + 4.0f); - mtxf_translate_vec3f_mat3(startingPos, player->unk_174); + + // apply the player's orientation to the banana + mtxf_translate_vec3f_mat3(startingPos, player->orientationMatrix); + + // add the player's position to the banana's position startingPos[0] += player->pos[0]; startingPos[1] += player->pos[1]; startingPos[2] += player->pos[2]; - startingVelocity[0] = player->unk_034[0]; - startingVelocity[1] = player->unk_034[1]; - startingVelocity[2] = player->unk_034[2]; + + // set the banana's velocity to the player's velocity + startingVelocity[0] = player->velocity[0]; + startingVelocity[1] = player->velocity[1]; + startingVelocity[2] = player->velocity[2]; startingRot[0] = 0; startingRot[1] = 0; startingRot[2] = 0; - actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_BANANA); + + actorIndex = addActorToEmptySlot(startingPos, startingRot, startingVelocity, ACTOR_BANANA); // spawn banana if (actorIndex < 0) { return actorIndex; } @@ -990,7 +1016,7 @@ s32 func_802B2D70(Player *player) { banana->playerId = playerId; banana->state = HELD_BANANA; banana->unk_04 = 0x0014; - player->statusEffects |= 0x40000; + player->statusEffects |= HOLD_BANANA_EFFECT; return actorIndex; } @@ -999,12 +1025,12 @@ s32 func_802B2D70(Player *player) { * * @param Activating player (not to be struck) */ -void func_802B2EBC(Player *player) { +void use_thunder_item(Player *player) { s32 index; Player *otherPlayer; func_8009E5BC(); - if ((player->unk_000 & 0x4000) != 0) { + if ((player->type & 0x4000) != 0) { // Play sound. func_800CAB4C(player - gPlayerOne); } @@ -1012,7 +1038,7 @@ void func_802B2EBC(Player *player) { for (index = 0; index < 8; index++) { otherPlayer = &gPlayers[index]; if (player != otherPlayer) { - otherPlayer->statusEffects |= 0x4000; + otherPlayer->statusEffects |= HIT_ROTATING_EFFECT; } } } @@ -1021,54 +1047,54 @@ void func_802B2EBC(Player *player) { void func_802B2FA0(Player *player) { s32 playerId = player - gPlayerOne; - switch (player->unk_010) { + switch (player->currentItemCopy) { case ITEM_GREEN_SHELL: - func_802B1C9C(player); + use_green_shell_item(player); break; case ITEM_RED_SHELL: - func_802B1E48(player); + use_red_shell_item(player); break; case ITEM_BLUE_SPINY_SHELL: - func_802B1FFC(player); + use_blue_shell_item(player); break; case ITEM_BANANA: - func_802B2D70(player); + use_banana_item(player); break; case ITEM_BANANA_BUNCH: - func_802B17F4(player); + use_banana_bunch_item(player); break; case ITEM_MUSHROOM: - player->statusEffects |= 0x200; + player->statusEffects |= BOOST_EFFECT; break; case ITEM_DOUBLE_MUSHROOM: - player->statusEffects |= 0x200; + player->statusEffects |= BOOST_EFFECT; break; case ITEM_TRIPLE_MUSHROOM: - player->statusEffects |= 0x200; + player->statusEffects |= BOOST_EFFECT; break; case ITEM_SUPER_MUSHROOM: - player->statusEffects |= 0x200; + player->statusEffects |= BOOST_EFFECT; break; case ITEM_BOO: - player->statusEffects |= 0x800; + player->statusEffects |= BOO_EFFECT; break; case ITEM_STAR: - player->statusEffects |= 0x2000; + player->statusEffects |= STAR_EFFECT; break; case ITEM_THUNDERBOLT: - func_802B2EBC(player); + use_thunder_item(player); break; case ITEM_FAKE_ITEM_BOX: - func_802B2C40(player); + use_fake_itembox_item(player); break; case ITEM_TRIPLE_GREEN_SHELL: - func_802B18E4(player, ACTOR_TRIPLE_GREEN_SHELL); + use_triple_shell_item(player, ACTOR_TRIPLE_GREEN_SHELL); break; case ITEM_TRIPLE_RED_SHELL: - func_802B18E4(player, ACTOR_TRIPLE_RED_SHELL); + use_triple_shell_item(player, ACTOR_TRIPLE_RED_SHELL); break; } - func_8007AC9C(playerId); + consume_item(playerId); } // Check if a player is using an item? @@ -1081,7 +1107,7 @@ void func_802B30EC(void) { for (player = &gPlayers[0], loopController = &gControllers[0], target = &gControllers[4]; loopController != target; player++, loopController++) { controller = loopController; if (func_800910E4(player) == 0) { - if((player->unk_000 & 0x100) != 0){ + if((player->type & PLAYER_INVISIBLE_OR_BOMB) != 0){ if ((player - gPlayerTwo) == 0) { controller = gControllerSix; } else if((player - gPlayerThree) == 0) { @@ -1093,7 +1119,7 @@ void func_802B30EC(void) { } } - if (((player->unk_000 & 0x4000) != 0) && (player->unk_010 != ITEM_NONE) && ((player->unk_000 & 0x2000) == 0)) { + if (((player->type & 0x4000) != 0) && (player->currentItemCopy != ITEM_NONE) && ((player->type & PLAYER_START_SEQUENCE) == 0)) { if ((controller->buttonPressed & Z_TRIG) != 0) { controller->buttonPressed &= ~Z_TRIG; func_802B2FA0(player); @@ -1136,7 +1162,7 @@ void update_actor_green_shell(struct ShellActor *shell) { somePosVel[0] = 0.0f; somePosVel[1] = player->boundingBoxSize; somePosVel[2] = -(player->boundingBoxSize + shell->boundingBoxSize + 2.0f); - mtxf_translate_vec3f_mat3(somePosVel, player->unk_174); + mtxf_translate_vec3f_mat3(somePosVel, player->orientationMatrix); shell->pos[0] = player->pos[0] + somePosVel[0]; pad2 = player->pos[1] - somePosVel[1]; shell->pos[2] = player->pos[2] + somePosVel[2]; @@ -1147,7 +1173,7 @@ void update_actor_green_shell(struct ShellActor *shell) { } else { shell->pos[1] = pad2; } - if ((player->unk_000 & 0x4000) != 0) { + if ((player->type & 0x4000) != 0) { controller = &gControllers[shell->playerId]; if ((controller->buttonDepressed & 0x2000) != 0) { controller->buttonDepressed &= ~0x2000; @@ -1216,7 +1242,7 @@ void update_actor_green_shell(struct ShellActor *shell) { somePosVel[0] = sins(shell->rotAngle) * 6.0f; somePosVel[1] = shell->boundingBoxSize - player->boundingBoxSize; somePosVel[2] = coss(shell->rotAngle) * 6.0f; - mtxf_translate_vec3f_mat3(somePosVel, player->unk_174); + mtxf_translate_vec3f_mat3(somePosVel, player->orientationMatrix); shell->pos[0] = player->pos[0] + somePosVel[0]; shell->pos[1] = player->pos[1] + somePosVel[1]; shell->pos[2] = player->pos[2] + somePosVel[2]; @@ -1257,7 +1283,7 @@ void update_actor_green_shell(struct ShellActor *shell) { somePosVel[0] = sins(shell->rotAngle) * 8.0f; somePosVel[1] = shell->boundingBoxSize - player->boundingBoxSize; somePosVel[2] = coss(shell->rotAngle) * 8.0f; - mtxf_translate_vec3f_mat3(somePosVel, player->unk_174); + mtxf_translate_vec3f_mat3(somePosVel, player->orientationMatrix); somePos2[0] = shell->pos[0]; somePos2[1] = shell->pos[1]; somePos2[2] = shell->pos[2]; @@ -1420,7 +1446,7 @@ void func_802B3E7C(struct ShellActor *shell, Player *player) { shell->velocity[1] = -2.0f; shell->velocity[2] = z_velocity; - if (player->unk_0BC & 0x80000000) { + if (player->effects & 0x80000000) { func_8029FDC8((struct Actor *) shell); } else { func_802AD950(&shell->unk30, 4.0f, shell->pos[0], shell->pos[1], shell->pos[2], newPosition[0], newPosition[1], newPosition[2]); @@ -1442,7 +1468,7 @@ s16 func_802B3FD0(Player *owner, struct ShellActor *shell) { for (playerIndex = 0; playerIndex < 4; playerIndex++) { player = &gPlayers[playerIndex]; - if ((player->unk_000 & 0x8000) == 0) {continue;} + if ((player->type & PLAYER_EXISTS) == 0) {continue;} if (player == owner) {continue; } if (gPlayerBalloonCount[playerIndex] < 0) { continue; } // func_802B51E8 is not quite a 3D distance function, it doubles (rather than squares) the Z difference of the positions @@ -1515,7 +1541,7 @@ void update_actor_red_blue_shell(struct ShellActor *shell) { somePosVel[0] = 0.0f; somePosVel[1] = player->boundingBoxSize; somePosVel[2] = -(player->boundingBoxSize + shell->boundingBoxSize + 2.0f); - mtxf_translate_vec3f_mat3(somePosVel, player->unk_174); + mtxf_translate_vec3f_mat3(somePosVel, player->orientationMatrix); shell->pos[0] = player->pos[0] + somePosVel[0]; pad7 = player->pos[1] - somePosVel[1]; shell->pos[2] = player->pos[2] + somePosVel[2]; @@ -1528,7 +1554,7 @@ void update_actor_red_blue_shell(struct ShellActor *shell) { shell->pos[1] = pad7; } - if ((player->unk_000 & 0x4000) != 0) { + if ((player->type & 0x4000) != 0) { if (gDemoMode) { controller = gControllerOne; } else { @@ -1594,7 +1620,7 @@ void update_actor_red_blue_shell(struct ShellActor *shell) { somePosVel[0] = sins(shell->rotAngle) * 8.0f; somePosVel[1] = shell->boundingBoxSize - player->boundingBoxSize; somePosVel[2] = coss(shell->rotAngle) * 8.0f; - mtxf_translate_vec3f_mat3(somePosVel, player->unk_174); + mtxf_translate_vec3f_mat3(somePosVel, player->orientationMatrix); shell->pos[0] = player->pos[0] + somePosVel[0]; shell->pos[1] = player->pos[1] + somePosVel[1]; shell->pos[2] = player->pos[2] + somePosVel[2]; @@ -1699,7 +1725,7 @@ void update_actor_red_blue_shell(struct ShellActor *shell) { somePosVel[0] = sins(shell->rotAngle) * 8.0f; somePosVel[1] = shell->boundingBoxSize - player->boundingBoxSize; somePosVel[2] = coss(shell->rotAngle) * 8.0f; - mtxf_translate_vec3f_mat3(somePosVel, player->unk_174); + mtxf_translate_vec3f_mat3(somePosVel, player->orientationMatrix); origPos[0] = shell->pos[0]; origPos[1] = shell->pos[1]; origPos[2] = shell->pos[2]; diff --git a/src/racing/actors_extended.h b/src/racing/actors_extended.h index 6bf0865ba..b1ab80fcb 100644 --- a/src/racing/actors_extended.h +++ b/src/racing/actors_extended.h @@ -14,19 +14,19 @@ void func_802B0648(struct BananaBunchParent*); void func_802B0788(s16, struct BananaBunchParent*, Player*); s32 func_802B09C0(s16); void update_actor_banana_bunch(struct BananaBunchParent*); -s32 func_802B0E14(s16); +s32 is_shell_exist(s16); void update_actor_triple_shell(TripleShellParent*, s16); -s32 func_802B17F4(Player*); -s32 func_802B18E4(Player*, s16); -s32 func_802B19EC(TripleShellParent*, Player*, s16, u16); -s32 func_802B1C9C(Player*); -s32 func_802B1E48(Player*); -void func_802B1FFC(Player*); +s32 use_banana_bunch_item(Player*); +s32 use_triple_shell_item(Player*, s16); +s32 init_triple_shell(TripleShellParent*, Player*, s16, u16); +s32 use_green_shell_item(Player*); +s32 use_red_shell_item(Player*); +void use_blue_shell_item(Player*); void update_actor_banana(struct BananaActor*); void func_802B2914(struct BananaBunchParent*, Player*, s16); -s32 func_802B2C40(Player*); -s32 func_802B2D70(Player*); -void func_802B2EBC(Player*); +s32 use_fake_itembox_item(Player*); +s32 use_banana_item(Player*); +void use_thunder_item(Player*); void func_802B2FA0(Player*); void func_802B30EC(void); void update_actor_green_shell(struct ShellActor*); diff --git a/src/racing/math_util.c b/src/racing/math_util.c index ec9d377eb..33b7c315c 100644 --- a/src/racing/math_util.c +++ b/src/racing/math_util.c @@ -631,7 +631,7 @@ void func_802B64C4(Vec3f arg0, s16 arg1) { arg0[2] = sp2C * temp1 + (temp_f0 * temp3); } -void func_802B6540(Mat3 dest, f32 arg1, f32 arg2, f32 arg3, s16 arg4) { +void calculate_orientation_matrix(Mat3 dest, f32 arg1, f32 arg2, f32 arg3, s16 rotationAngle) { Mat3 mtx_rot_y; Mat3 matrix; s32 i, j; @@ -643,8 +643,8 @@ void func_802B6540(Mat3 dest, f32 arg1, f32 arg2, f32 arg3, s16 arg4) { f32 sinValue; f32 cossValue; - sinValue = sins(arg4); - cossValue = coss(arg4); + sinValue = sins(rotationAngle); + cossValue = coss(rotationAngle); mtx_rot_y[0][0] = cossValue; mtx_rot_y[2][1] = 0; mtx_rot_y[1][2] = 0; @@ -676,11 +676,11 @@ void func_802B6540(Mat3 dest, f32 arg1, f32 arg2, f32 arg3, s16 arg4) { matrix[1][1] = -1; } else { - a = (f32) -(360.0 - ((f64) (func_802B7CE8(arg2) * 180.0f) / M_PI)); + a = (f32) -(360.0 - ((f64) (calculate_vector_angle_xy(arg2) * 180.0f) / M_PI)); b = -arg3 / sqrtf((arg1 * arg1) + (arg3 * arg3)); c = 0; d = arg1 / sqrtf((arg1 * arg1) + (arg3 * arg3)); - func_802B6A84(matrix, a, b, c, d); + calculate_rotation_matrix(matrix, a, b, c, d); } dest[0][0] = (mtx_rot_y[0][0] * matrix[0][0]) + (mtx_rot_y[0][1] * matrix[1][0]) + (mtx_rot_y[0][2] * matrix[2][0]); @@ -697,7 +697,7 @@ void func_802B6540(Mat3 dest, f32 arg1, f32 arg2, f32 arg3, s16 arg4) { } -// include in func_802B6540 +// include in calculate_orientation_matrix UNUSED void func_802B68F8(Mat3 matrix, f32 arg1, f32 arg2, f32 arg3) { s32 i, j; f32 a; @@ -720,15 +720,15 @@ UNUSED void func_802B68F8(Mat3 matrix, f32 arg1, f32 arg2, f32 arg3) { } matrix[1][1] = -1.0f; } else { - a = (f32) -(360.0 - ((f64) (func_802B7CE8(arg2) * 180.0f) / M_PI)); + a = (f32) -(360.0 - ((f64) (calculate_vector_angle_xy(arg2) * 180.0f) / M_PI)); b = -arg3 / sqrtf((arg1 * arg1) + (arg3 * arg3)); c = 0; d = arg1 / sqrtf((arg1 * arg1) + (arg3 * arg3)); - func_802B6A84(matrix, a, b, c, d); + calculate_rotation_matrix(matrix, a, b, c, d); } } -void func_802B6A84(Mat3 arg0, s16 arg1, f32 arg2, f32 arg3, f32 arg4) { +void calculate_rotation_matrix(Mat3 destMatrix, s16 rotationAngle, f32 rotationX, f32 rotationY, f32 rotationZ) { f32 sinValue; f32 cossValue; f32 temp_f12; @@ -737,29 +737,29 @@ void func_802B6A84(Mat3 arg0, s16 arg1, f32 arg2, f32 arg3, f32 arg4) { f32 temp; UNUSED s32 pad[2]; - sinValue = sins((u16) arg1); - cossValue = coss((u16) arg1); + sinValue = sins((u16) rotationAngle); + cossValue = coss((u16) rotationAngle); temp_f12 = 1.0f - cossValue; - temp_f10 = (arg4 * arg2) * temp_f12; - temp_f2 = (arg3 * arg4) * temp_f12; - temp = ((arg2 * arg3) * temp_f12); + temp_f10 = (rotationZ * rotationX) * temp_f12; + temp_f2 = (rotationY * rotationZ) * temp_f12; + temp = ((rotationX * rotationY) * temp_f12); - temp_f12 = arg2 * arg2; - arg0[0][0] = ((1.0f - temp_f12) * cossValue) + temp_f12; - arg0[2][1] = temp_f2 - (arg2 * sinValue); - arg0[1][2] = temp_f2 + (arg2 * sinValue); + temp_f12 = rotationX * rotationX; + destMatrix[0][0] = ((1.0f - temp_f12) * cossValue) + temp_f12; + destMatrix[2][1] = temp_f2 - (rotationX * sinValue); + destMatrix[1][2] = temp_f2 + (rotationX * sinValue); - temp_f12 = arg3 * arg3; - arg0[1][1] = (((1.0f - temp_f12) * cossValue) + temp_f12); - arg0[2][0] = temp_f10 + (arg3 * sinValue); - arg0[0][2] = temp_f10 - (arg3 * sinValue); + temp_f12 = rotationY * rotationY; + destMatrix[1][1] = (((1.0f - temp_f12) * cossValue) + temp_f12); + destMatrix[2][0] = temp_f10 + (rotationY * sinValue); + destMatrix[0][2] = temp_f10 - (rotationY * sinValue); - temp_f12 = arg4 * arg4; - arg0[2][2] = (((1.0f - temp_f12) * cossValue) + temp_f12); - arg0[1][0] = temp - (arg4 * sinValue); - arg0[0][1] = temp + (arg4 * sinValue); + temp_f12 = rotationZ * rotationZ; + destMatrix[2][2] = (((1.0f - temp_f12) * cossValue) + temp_f12); + destMatrix[1][0] = temp - (rotationZ * sinValue); + destMatrix[0][1] = temp + (rotationZ * sinValue); } void func_802B6BC0(Mat4 arg0, s16 arg1, f32 arg2, f32 arg3, f32 arg4) { @@ -950,7 +950,7 @@ u16 atan2s(f32 x, f32 y) { return ret; } -f32 func_802B79B8(f32 arg0, f32 arg1) { +f32 atan2f(f32 arg0, f32 arg1) { return atan2s(arg0, arg1); } @@ -990,11 +990,11 @@ UNUSED f32 func_802B79F0(f32 arg0, f32 arg1) { } UNUSED u16 func_802B7B50(f32 arg0, f32 arg1) { - return ((func_802B79B8(arg0, arg1) * 32768.0f) / M_PI); + return ((atan2f(arg0, arg1) * 32768.0f) / M_PI); } UNUSED void func_802B7C18(f32 arg0) { - func_802B79B8(arg0, 1.0f); + atan2f(arg0, 1.0f); } s16 func_802B7C40(f32 arg0) { @@ -1002,19 +1002,19 @@ s16 func_802B7C40(f32 arg0) { } UNUSED void func_802B7C6C(f32 arg0) { - func_802B79B8(arg0, sqrtf(1.0 - (arg0 * arg0))); + atan2f(arg0, sqrtf(1.0 - (arg0 * arg0))); } s16 func_802B7CA8(f32 arg0) { return atan2s(arg0, sqrtf(1.0 - (arg0 * arg0))); } -f32 func_802B7CE8(f32 arg0) { - return func_802B79B8(sqrtf(1.0 - (arg0 * arg0)), arg0); +f32 calculate_vector_angle_xy(f32 vectorX) { + return atan2f(sqrtf(1.0 - (vectorX * vectorX)), vectorX); } UNUSED s16 func_802B7D28(f32 arg0) { - return func_802B79B8(sqrtf(1.0 - (f64)(arg0 * arg0)), arg0) * 32768.0f / M_PI; + return atan2f(sqrtf(1.0 - (f64)(arg0 * arg0)), arg0) * 32768.0f / M_PI; } u16 random_u16(void) { diff --git a/src/racing/math_util.h b/src/racing/math_util.h index 752b5d25c..38b20ebe0 100644 --- a/src/racing/math_util.h +++ b/src/racing/math_util.h @@ -43,18 +43,18 @@ void func_802B5F74(Mat4, Vec3f, Vec3s); void mtxf_translate_vec3f_mat3(Vec3f, Mat3); void mtxf_translate_vec3f_mat4(Vec3f, Mat4); void func_802B64C4(Vec3f, s16); -void func_802B6540(Mat3, f32, f32, f32, s16); -void func_802B6A84(Mat3, s16, f32, f32, f32); +void calculate_orientation_matrix(Mat3, f32, f32, f32, s16); +void calculate_rotation_matrix(Mat3, s16, f32, f32, f32); void func_802B6BC0(Mat4, s16, f32, f32, f32); void func_802B6D58(Mat4, Vec3f, Vec3f); void mtxf_multiplication(Mat4, Mat4, Mat4); void mtxf_to_mtx(Mtx*, Mat4); u16 atan2_lookup(f32, f32); u16 atan2s(f32, f32); -f32 func_802B79B8(f32, f32); +f32 atan2f(f32, f32); s16 func_802B7C40(f32); s16 func_802B7CA8(f32); -f32 func_802B7CE8(f32); +f32 calculate_vector_angle_xy(f32); u16 random_u16(void); u16 random_int(u16); s16 func_802B7F34(f32, f32, f32, f32); diff --git a/src/racing/race_logic.c b/src/racing/race_logic.c index 301461005..7a058164d 100644 --- a/src/racing/race_logic.c +++ b/src/racing/race_logic.c @@ -103,15 +103,15 @@ void update_player_battle_status(void) { for (playerIndex = 0; playerIndex < 4; playerIndex++) { player = &gPlayers[playerIndex]; - if (!(player->unk_000 & PLAYER_EXISTS)) { + if (!(player->type & PLAYER_EXISTS)) { continue; } - if (player->unk_000 & PLAYER_CINEMATIC_MODE) { + if (player->type & PLAYER_CINEMATIC_MODE) { continue; } // If player has no balloons left if (gPlayerBalloonCount[playerIndex] < 0) { - player->unk_000 |= PLAYER_CINEMATIC_MODE; + player->type |= PLAYER_CINEMATIC_MODE; playersDead[deadCounter] = (s16) (player - gPlayerOne); deadCounter++; func_800CA118((u8) playerIndex); // play sad character sound? @@ -136,7 +136,7 @@ void func_8028E298(void) { for (i = 0; i < 8; i++) { - if ((gPlayers[i].unk_000 & PLAYER_CINEMATIC_MODE)) { + if ((gPlayers[i].type & PLAYER_CINEMATIC_MODE)) { continue; } temp_a2 = gPathIndexByPlayerId[i]; @@ -496,13 +496,13 @@ void start_race(void) { for (i = 0; i < 8; i++) { - if ((gPlayers[i].unk_000 & PLAYER_EXISTS) == 0) { + if ((gPlayers[i].type & PLAYER_EXISTS) == 0) { continue; } // Sets player to human. - if (gPlayers[i].unk_000 & PLAYER_START_SEQUENCE) { - gPlayers[i].unk_000 ^= PLAYER_START_SEQUENCE; + if (gPlayers[i].type & PLAYER_START_SEQUENCE) { + gPlayers[i].type ^= PLAYER_START_SEQUENCE; } } @@ -517,7 +517,7 @@ f32 func_8028EE8C(s32 arg0) { } void func_8028EEF0(s32 i) { - gPlayers[i].unk_000 |= PLAYER_CINEMATIC_MODE; + gPlayers[i].type |= PLAYER_CINEMATIC_MODE; } void func_8028EF28(void) { @@ -528,7 +528,7 @@ void func_8028EF28(void) { { Player *player = &gPlayers[i]; - if ((gPlayers[i].unk_000 & PLAYER_EXISTS) == 0) { + if ((gPlayers[i].type & PLAYER_EXISTS) == 0) { continue; } @@ -537,12 +537,12 @@ void func_8028EF28(void) { } else if (gLapCountByPlayerId[i] > gPlayers[i].lapCount) { gPlayers[i].lapCount++; - if ((gPlayers[i].unk_000 & PLAYER_HUMAN) != 0) { + if ((gPlayers[i].type & PLAYER_HUMAN) != 0) { if (gPlayers[i].lapCount == 3) { func_8028EEF0(i); currentPosition = gPlayers[i].currentRank; - gPlayers[i].unk_000 |= PLAYER_CPU; + gPlayers[i].type |= PLAYER_CPU; if (currentPosition < 4) { D_80150120 = 1; @@ -557,7 +557,7 @@ void func_8028EF28(void) { if (gModeSelection == GRAND_PRIX && gPlayerCountSelection1 == 2 && D_802BA048 == 0) { D_802BA048 = 1; } - if ((gPlayers[i].unk_000 & PLAYER_INVISIBLE_OR_BOMB) == 0) { + if ((gPlayers[i].type & PLAYER_INVISIBLE_OR_BOMB) == 0) { D_800DC510 = 4; } if (gModeSelection == TIME_TRIALS) { @@ -581,7 +581,7 @@ void func_8028EF28(void) { D_800DC510 = 5; i = gPlayerPositionLUT[1]; gPlayers[i].statusEffects |= 0x200000; - gPlayers[i].unk_000 |= PLAYER_CPU; + gPlayers[i].type |= PLAYER_CPU; func_800CA118((u8)i); break; case 3: @@ -599,7 +599,7 @@ void func_8028EF28(void) { *(gNmiUnknown2 + i * 3 + 2) = 99; } gPlayers[i].statusEffects |= 0x200000; - gPlayers[i].unk_000 |= PLAYER_CPU; + gPlayers[i].type |= PLAYER_CPU; func_800CA118((u8)i); } break; @@ -614,7 +614,7 @@ void func_8028EF28(void) { D_800DC510 = 5; i = gPlayerPositionLUT[3]; gPlayers[i].statusEffects |= 0x200000; - gPlayers[i].unk_000 |= PLAYER_CPU; + gPlayers[i].type |= PLAYER_CPU; func_800CA118((u8)i); } break; @@ -623,7 +623,7 @@ void func_8028EF28(void) { } } else if (gPlayers[i].lapCount == 2) { - if ((gPlayers[i].unk_000 & 0x100) != 0) { + if ((gPlayers[i].type & 0x100) != 0) { return; } if ((D_802BA032 & 0x4000) == 0) { @@ -655,9 +655,9 @@ void update_race_position_data(void) { s16 position; for (i = 0; i < 8; i++) { - if (((gPlayers[i].unk_000 & PLAYER_EXISTS) != 0) && - ((gPlayers[i].unk_000 & PLAYER_CINEMATIC_MODE) == 0) && - ((gPlayers[i].unk_000 & PLAYER_INVISIBLE_OR_BOMB) == 0)) { + if (((gPlayers[i].type & PLAYER_EXISTS) != 0) && + ((gPlayers[i].type & PLAYER_CINEMATIC_MODE) == 0) && + ((gPlayers[i].type & PLAYER_INVISIBLE_OR_BOMB) == 0)) { position = gGPCurrentRaceRankByPlayerId[i]; gPlayers[i].currentRank = position; gPlayerPositionLUT[position] = i; @@ -810,8 +810,8 @@ void func_8028F970(void) { Player *player = &gPlayers[i]; struct Controller *controller = &gControllers[i]; - if (!(player->unk_000 & PLAYER_HUMAN)) { continue; } - if (player->unk_000 & PLAYER_CPU) { continue; } + if (!(player->type & PLAYER_HUMAN)) { continue; } + if (player->type & PLAYER_CPU) { continue; } if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) { if ((controller->buttonPressed & L_TRIG) && !(controller->button & R_TRIG)) { @@ -834,13 +834,13 @@ void func_8028F970(void) { func_800C9F90(1); D_80162DF0 = 1; if (gModeSelection == TIME_TRIALS) { - if (gPlayerOne->unk_000 & (PLAYER_EXISTS | PLAYER_INVISIBLE_OR_BOMB)) { + if (gPlayerOne->type & (PLAYER_EXISTS | PLAYER_INVISIBLE_OR_BOMB)) { func_80005AE8(gPlayerOne); } - if (gPlayerTwo->unk_000 & (PLAYER_EXISTS | PLAYER_INVISIBLE_OR_BOMB)) { + if (gPlayerTwo->type & (PLAYER_EXISTS | PLAYER_INVISIBLE_OR_BOMB)) { func_80005AE8(gPlayerTwo); } - if (gPlayerThree->unk_000 & (PLAYER_EXISTS | PLAYER_INVISIBLE_OR_BOMB)) { + if (gPlayerThree->type & (PLAYER_EXISTS | PLAYER_INVISIBLE_OR_BOMB)) { func_80005AE8(gPlayerThree); } } @@ -939,10 +939,10 @@ void func_8028FCBC(void) { func_8005C64C(&D_8018D2AC); } for (i = 0; i < 8; i++) { - if ((ply->unk_000 & PLAYER_EXISTS) == 0) { + if ((ply->type & PLAYER_EXISTS) == 0) { continue; } - ply->unk_000 |= PLAYER_START_SEQUENCE; + ply->type |= PLAYER_START_SEQUENCE; ply++; } D_800DC5B8 = 1; @@ -1013,7 +1013,7 @@ void func_8028FCBC(void) { break; case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: - if (((gPlayerOne->unk_000 & PLAYER_CINEMATIC_MODE) != 0) && ((gPlayerTwo->unk_000 & PLAYER_CINEMATIC_MODE) != 0)) { + if (((gPlayerOne->type & PLAYER_CINEMATIC_MODE) != 0) && ((gPlayerTwo->type & PLAYER_CINEMATIC_MODE) != 0)) { if (gPlayerOne->currentRank < gPlayerTwo->currentRank) { @@ -1134,9 +1134,9 @@ void func_802903D8(Player *playerOne, Player *playerTwo) { sp60[1] = (playerOne->pos[1] - playerOne->boundingBoxSize) - (playerTwo->pos[1] - playerTwo->boundingBoxSize); sp60[2] = playerOne->pos[2] - playerTwo->pos[2]; - sp54[0] = playerTwo->unk_034[0] - playerOne->unk_034[0]; - sp54[1] = playerTwo->unk_034[1] - playerOne->unk_034[1]; - sp54[2] = playerTwo->unk_034[2] - playerOne->unk_034[2]; + sp54[0] = playerTwo->velocity[0] - playerOne->velocity[0]; + sp54[1] = playerTwo->velocity[1] - playerOne->velocity[1]; + sp54[2] = playerTwo->velocity[2] - playerOne->velocity[2]; temp_f0 = sqrtf((sp60[0] * sp60[0]) + (sp60[1] * sp60[1]) + (sp60[2] * sp60[2])); @@ -1146,32 +1146,32 @@ void func_802903D8(Player *playerOne, Player *playerTwo) { if (sp74 > 0) { return; } - if (playerOne->unk_000 & PLAYER_UNKNOWN_0x40) { - if (playerTwo->unk_000 & PLAYER_UNKNOWN_0x40) { + if (playerOne->type & PLAYER_UNKNOWN_0x40) { + if (playerTwo->type & PLAYER_UNKNOWN_0x40) { func_8008FC1C(playerOne); func_8008FC1C(playerTwo); func_800C9060((playerTwo - gPlayerOne), 0x19008001U); return; } else { - playerTwo->statusEffects |= 0x400000; + playerTwo->statusEffects |= REVERSE_EFFECT; func_8008FC1C(playerOne); func_800C9060((playerTwo - gPlayerOne), 0x19008001U); } - } else if (playerTwo->unk_000 & PLAYER_UNKNOWN_0x40) { - playerOne->statusEffects |= 0x400000; + } else if (playerTwo->type & PLAYER_UNKNOWN_0x40) { + playerOne->statusEffects |= REVERSE_EFFECT; func_8008FC1C(playerTwo); func_800C9060(playerOne - gPlayerOne, 0x19008001U); return; } - if (playerOne->unk_0BC & 0x200) { - if (!(playerTwo->unk_0BC & 0x200)) { - playerTwo->statusEffects |= 0x01000000; + if (playerOne->effects & 0x200) { + if (!(playerTwo->effects & 0x200)) { + playerTwo->statusEffects |= HIT_BY_ITEM_EFFECT; } - } else if (playerTwo->unk_0BC & 0x200) { - playerOne->statusEffects |= 0x01000000; + } else if (playerTwo->effects & 0x200) { + playerOne->statusEffects |= HIT_BY_ITEM_EFFECT; } else { - playerOne->unk_0BC |= 0x8000; - playerTwo->unk_0BC |= 0x8000; + playerOne->effects |= 0x8000; + playerTwo->effects |= 0x8000; } temp_f0_2 = sqrtf((sp54[0] * sp54[0]) + (sp54[1] * sp54[1]) + (sp54[2] * sp54[2])); sp60[0] /= temp_f0; @@ -1190,29 +1190,29 @@ void func_802903D8(Player *playerOne, Player *playerTwo) { temp_f16 = ((sp60[0] * sp54[0]) + (sp60[1] * sp54[1]) + (sp60[2] * sp54[2])) / temp_f0_2; } temp_f0_2 = temp_f0_2 * temp_f16 * 0.85; - if ((playerOne->unk_0BC & 0x200) != 0x200) { + if ((playerOne->effects & 0x200) != 0x200) { temp_f2 = (temp_f0_2 * sp20) / sp24; - playerOne->unk_034[0] += sp60[0] * temp_f2; - playerOne->unk_034[1] += sp60[1] * temp_f2; - playerOne->unk_034[2] += sp60[2] * temp_f2; + playerOne->velocity[0] += sp60[0] * temp_f2; + playerOne->velocity[1] += sp60[1] * temp_f2; + playerOne->velocity[2] += sp60[2] * temp_f2; playerOne->pos[0] -= sp60[0] * sp74 * 0.5f; playerOne->pos[1] -= sp60[1] * sp74 * 0.5f; playerOne->pos[2] -= sp60[2] * sp74 * 0.5f; } - if ((playerTwo->unk_0BC & 0x200) != 0x200) { + if ((playerTwo->effects & 0x200) != 0x200) { temp_f2 = (temp_f0_2 * sp24) / sp20; - playerTwo->unk_034[0] -= sp60[0] * temp_f2; - playerTwo->unk_034[1] -= sp60[1] * temp_f2; - playerTwo->unk_034[2] -= sp60[2] * temp_f2; + playerTwo->velocity[0] -= sp60[0] * temp_f2; + playerTwo->velocity[1] -= sp60[1] * temp_f2; + playerTwo->velocity[2] -= sp60[2] * temp_f2; playerTwo->pos[0] += sp60[0] * sp74 * 0.5f; playerTwo->pos[1] += sp60[1] * sp74 * 0.5f; playerTwo->pos[2] += sp60[2] * sp74 * 0.5f; } - if (playerOne->unk_000 & PLAYER_HUMAN) { + if (playerOne->type & PLAYER_HUMAN) { func_800C9060((playerOne - gPlayerOne), 0x19008001U); return; } - if (playerTwo->unk_000 & PLAYER_HUMAN) { + if (playerTwo->type & PLAYER_HUMAN) { func_800C9060((playerTwo - gPlayerOne), 0x19008001U); } } @@ -1226,18 +1226,18 @@ void func_802909F0(void) { for (i = 0; i < 7; i++) { ply = &gPlayers[i]; - if ((ply->unk_000 & PLAYER_EXISTS) && - (!(ply->unk_0BC & 0x80000000)) && - (!(ply->unk_000 & PLAYER_INVISIBLE_OR_BOMB)) && - (!(ply->unk_0BC & 0x4000000))) { + if ((ply->type & PLAYER_EXISTS) && + (!(ply->effects & 0x80000000)) && + (!(ply->type & PLAYER_INVISIBLE_OR_BOMB)) && + (!(ply->effects & 0x4000000))) { for (k = i + 1; k < 8; k++) { ply2 = &gPlayers[k]; - if ((ply2->unk_000 & PLAYER_EXISTS) && - (!(ply2->unk_0BC & 0x80000000)) && - (!(ply2->unk_000 & PLAYER_INVISIBLE_OR_BOMB)) && - (!(ply2->unk_0BC & 0x4000000))) { + if ((ply2->type & PLAYER_EXISTS) && + (!(ply2->effects & 0x80000000)) && + (!(ply2->type & PLAYER_INVISIBLE_OR_BOMB)) && + (!(ply2->effects & 0x4000000))) { func_802903D8(ply, ply2); } diff --git a/src/racing/render_courses.c b/src/racing/render_courses.c index 1e72853a1..c89facc4e 100644 --- a/src/racing/render_courses.c +++ b/src/racing/render_courses.c @@ -134,7 +134,7 @@ void load_surface_map(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) { } else { switch(gCurrentCourseId) { - case 2: + case COURSE_BOWSER_CASTLE: if ((temp_v0_3 >= 0x11) && (temp_v0_3 < 0x18)) { temp_v1 = temp_v0_3; } else if ((temp_v0_3 == 255) && (sp1E != 255)) { @@ -145,7 +145,7 @@ void load_surface_map(uintptr_t addr, struct UnkStruct_800DC5EC *arg1) { temp_v1 = arg1->pathCounter; } break; - case 1: + case COURSE_CHOCO_MOUNTAIN: if ((temp_v0_3 >= 0xE) && (temp_v0_3 < 0x16)) { temp_v1 = temp_v0_3; } else if ((temp_v0_3 == 255) && (sp1E != 255)) { @@ -230,7 +230,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 arg1) { render_set_position(matrix, 0); switch (gCurrentCourseId) { case COURSE_BOWSER_CASTLE: - if (gActiveScreenMode != 0) { return; } + if (gActiveScreenMode != SCREEN_MODE_1P) { return; } if (pathCounter < 6) { return; } if (pathCounter > 9) { return; } if (pathCounter == 9) { diff --git a/src/spawn_players.c b/src/spawn_players.c index 0de730e72..b41f7fdb0 100644 --- a/src/spawn_players.c +++ b/src/spawn_players.c @@ -25,7 +25,7 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC f32 ret; s8 idx; - player->unk_000 = PLAYER_INACTIVE; + player->type = PLAYER_INACTIVE; player->unk_08C = 0; player->characterId = characterId; player->unk_0B6 = 0; @@ -39,7 +39,7 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC player->unk_084 = D_800E2400[gCCSelection][player->characterId]; player->unk_088 = D_800E24B4[gCCSelection][player->characterId]; player->unk_210 = D_800E2568[gCCSelection][player->characterId]; - player->unk_214 = D_800E261C[gCCSelection][player->characterId]; + player->topSpeed = gTopSpeedTable[gCCSelection][player->characterId]; break; // Uses 100CC values @@ -47,14 +47,14 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC player->unk_084 = D_800E2400[1][player->characterId]; player->unk_088 = D_800E24B4[1][player->characterId]; player->unk_210 = D_800E2568[1][player->characterId]; - player->unk_214 = D_800E261C[1][player->characterId]; + player->topSpeed = gTopSpeedTable[1][player->characterId]; break; case BATTLE: player->unk_084 = D_800E2400[4][player->characterId]; player->unk_088 = D_800E24B4[4][player->characterId]; player->unk_210 = D_800E2568[4][player->characterId]; - player->unk_214 = D_800E261C[4][player->characterId]; + player->topSpeed = gTopSpeedTable[4][player->characterId]; break; } @@ -73,15 +73,15 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC player->unk_05C = 1.0f; player->unk_058 = 0.0f; player->unk_060 = 0.0f; - player->unk_034[0] = 0.0f; - player->unk_034[1] = 0.0f; - player->unk_034[2] = 0.0f; + player->velocity[0] = 0.0f; + player->velocity[1] = 0.0f; + player->velocity[2] = 0.0f; player->unk_02C[1] = arg5; player->unk_02C[2] = 0; player->unk_0FA = 0; player->unk_002 = 0; - player->unk_0BC = 0; + player->effects = 0; player->unk_0C0 = 0; player->unk_07C = 0; player->unk_07A = 0; @@ -91,7 +91,7 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC player->unk_090 = 0.0f; player->unk_094 = 0.0f; player->unk_074 = 0.0f; - player->unk_000 = playerType; + player->type = playerType; player->unk_0CA = 0; player->unk_0DE = 0; player->unk_10C = 0; @@ -99,7 +99,7 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC player->unk_0E8 = 0.0f; player->unk_0A0 = 0.0f; player->unk_104 = 0.0f; - player->unk_09C = 0.0f; + player->currentSpeed = 0.0f; player->unk_20C = 0.0f; player->unk_DAC = 0.0f; player->unk_044 = 0; @@ -109,7 +109,7 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC player->unk_206 = 0; - player->unk_0C4 = 0; + player->slopeAccel = 0; player->unk_D98 = 0; player->unk_D9A = 0; player->unk_DA4 = 0; @@ -153,7 +153,7 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC player->unk_240 = 0; player->unk_256 = 0; - player->unk_224 = 1.0f; + player->size = 1.0f; player->unk_DAC = 1.0f; player->unk_064[0] = 0.0f; @@ -175,7 +175,7 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC player->unk_090 = 0.0f; player->unk_094 = 0.0f; player->unk_098 = 0.0f; - player->unk_09C = 0.0f; + player->currentSpeed = 0.0f; player->unk_0A0 = 0.0f; player->unk_0A4 = 0.0f; player->unk_0B8 = 0.0f; @@ -218,7 +218,7 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC D_80165420[idx] = 0; D_80165440[idx] = 0; - D_80165460[idx] = 0; + gIsPlayerTripleAButtonCombo[idx] = FALSE; D_80165480[idx] = 0; D_801654E0[idx] = 0; D_80165500[idx] = 0; @@ -310,8 +310,8 @@ void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingC if (gModeSelection == BATTLE) { func_8006B7E4(player, playerIndex); } - func_802B6540(player->unk_150, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1]); - func_802B6540(player->unk_174, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1]); + calculate_orientation_matrix(player->unk_150, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1]); + calculate_orientation_matrix(player->orientationMatrix, player->unk_058, player->unk_05C, player->unk_060, player->unk_02C[1]); } void func_80039AE4(void) { @@ -1018,29 +1018,29 @@ void func_8003CD78(void) { func_8003BE30(); } -void func_8003CD98(Player *player, Camera *camera, s8 arg2, s8 arg3) { - if (player->unk_000 & PLAYER_EXISTS) { +void func_8003CD98(Player *player, Camera *camera, s8 playerId, s8 arg3) { + if (player->type & PLAYER_EXISTS) { if (arg3 == 0) { - func_8002D268(player, camera, arg3, arg2); + func_8002D268(player, camera, arg3, playerId); } - func_8002934C(player, camera, arg3, arg2); + func_8002934C(player, camera, arg3, playerId); if ((arg3 == 0) || (arg3 == 1)) { - func_80027A20(player, arg2, arg3, 0); - func_80027A20(player, arg2, arg3, 1); - func_80027040(player, arg2, arg3, arg3, 0); - mio0decode((u8 *) &D_802DFB80[0][arg3][arg2], (u8 *) &D_802BFB80[0][arg3][arg2]); + load_kart_palette(player, playerId, arg3, 0); + load_kart_palette(player, playerId, arg3, 1); + load_kart_texture(player, playerId, arg3, arg3, 0); + mio0decode((u8 *) &D_802DFB80[0][arg3][playerId], (u8 *) &D_802BFB80[0][arg3][playerId]); } else { - func_80027A20(player, arg2, arg3, 0); - func_80027A20(player, arg2, arg3, 1); - func_80027040(player, (s8) (arg2 + 4), arg3, (s8) (arg3 - 2), 0); - mio0decode((u8 *) &D_802DFB80[0][arg3 - 2][arg2 + 4], (u8 *) &D_802BFB80[0][arg3 - 2][arg2 + 4]); + load_kart_palette(player, playerId, arg3, 0); + load_kart_palette(player, playerId, arg3, 1); + load_kart_texture(player, (s8) (playerId + 4), arg3, (s8) (arg3 - 2), 0); + mio0decode((u8 *) &D_802DFB80[0][arg3 - 2][playerId + 4], (u8 *) &D_802BFB80[0][arg3 - 2][playerId + 4]); } - D_801650D0[arg3][arg2] = player->unk_244[arg3]; - D_80165110[arg3][arg2] = player->unk_24C[arg3]; - D_80165150[arg3][arg2] = player->unk_0A8; - D_801651D0[arg3][arg2] = 0; - func_800267AC(player, arg2, arg3); + D_801650D0[arg3][playerId] = player->animFrameSelector[arg3]; + D_80165110[arg3][playerId] = player->animGroupSelector[arg3]; + D_80165150[arg3][playerId] = player->unk_0A8; + D_801651D0[arg3][playerId] = 0; + func_800267AC(player, playerId, arg3); } } @@ -1059,7 +1059,7 @@ void func_8003D080(void) { case SCREEN_MODE_1P: switch (gModeSelection) { case GRAND_PRIX: - if (gCurrentCourseId == 10) { + if (gCurrentCourseId == COURSE_TOADS_TURNPIKE) { camera_init(0.0f, player->pos[1], D_8016524C, player->unk_02C[1], 8, 0); } else { camera_init((D_80165210[7] + D_80165210[6]) / 2, player->pos[1], D_8016524C, player->unk_02C[1], 8, 0); @@ -1150,14 +1150,14 @@ void func_8003D080(void) { switch (gActiveScreenMode) { case SCREEN_MODE_1P: - func_8003CD98(gPlayerOneCopy, camera1, 0, 0); // sic - func_8003CD98(gPlayerTwo, camera1, 1, 0); - func_8003CD98(gPlayerThree, camera1, 2, 0); - func_8003CD98(gPlayerFour, camera1, 3, 0); - func_8003CD98(gPlayerFive, camera1, 4, 0); - func_8003CD98(gPlayerSix, camera1, 5, 0); - func_8003CD98(gPlayerSeven, camera1, 6, 0); - func_8003CD98(gPlayerEight, camera1, 7, 0); + func_8003CD98(gPlayerOneCopy, camera1, 0, 0); // sic + func_8003CD98(gPlayerTwo, camera1, 1, 0); + func_8003CD98(gPlayerThree, camera1, 2, 0); + func_8003CD98(gPlayerFour, camera1, 3, 0); + func_8003CD98(gPlayerFive, camera1, 4, 0); + func_8003CD98(gPlayerSix, camera1, 5, 0); + func_8003CD98(gPlayerSeven, camera1, 6, 0); + func_8003CD98(gPlayerEight, camera1, 7, 0); break; case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: @@ -1203,13 +1203,13 @@ void func_8003D080(void) { void func_8003DB5C(void) { Player *player = gPlayerOne; - s32 i; + s32 playerId; camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 3, 0); camera_init(player->pos[0], player->pos[1], player->pos[2], player->unk_02C[1], 3, 1); - for (i = 0; i < 8; i++, player++) { - func_80027A20(player, i, 1, 0); - func_80027A20(player, i, 1, 1); + for (playerId = 0; playerId < 8; playerId++, player++) { + load_kart_palette(player, playerId, 1, 0); + load_kart_palette(player, playerId, 1, 1); } } diff --git a/src/staff_ghosts.c b/src/staff_ghosts.c index e152d7fc8..cf221d884 100644 --- a/src/staff_ghosts.c +++ b/src/staff_ghosts.c @@ -179,7 +179,6 @@ void func_800052A4(void) { void func_80005310(void) { - // if time trials if (gModeSelection == TIME_TRIALS) { set_staff_ghost(); @@ -231,7 +230,7 @@ void func_8000546C(void) { s16 phi_v0 = 0; if (D_80162DB0 >= 0x1000) { - gPlayerOne->unk_000 = PLAYER_CINEMATIC_MODE | PLAYER_START_SEQUENCE | PLAYER_CPU; + gPlayerOne->type = PLAYER_CINEMATIC_MODE | PLAYER_START_SEQUENCE | PLAYER_CPU; return; } @@ -461,8 +460,8 @@ void func_8000599C(void) { // sets player to AI? (unconfirmed) void func_80005AE8(Player *ply) { - if (((ply->unk_000 & PLAYER_INVISIBLE_OR_BOMB) != 0) && (ply != gPlayerOne)) { - ply->unk_000 = PLAYER_CINEMATIC_MODE | PLAYER_START_SEQUENCE | PLAYER_CPU; + if (((ply->type & PLAYER_INVISIBLE_OR_BOMB) != 0) && (ply != gPlayerOne)) { + ply->type = PLAYER_CINEMATIC_MODE | PLAYER_START_SEQUENCE | PLAYER_CPU; } } @@ -507,7 +506,7 @@ void func_80005B18(void) { D_80162D84 = D_80162D86; D_80162DDC = 1; } - if ((gPlayerOne->unk_000 & 0x800) == 0x800) { + if ((gPlayerOne->type & 0x800) == 0x800) { func_80005AE8(gPlayerTwo); func_80005AE8(gPlayerThree); } else { @@ -515,14 +514,14 @@ void func_80005B18(void) { if (D_80162DEC >= 0x65) { D_80162DEC = 0x00000064; } - if ((gModeSelection == 1) && (gActiveScreenMode == 0)) { + if ((gModeSelection == 1) && (gActiveScreenMode == SCREEN_MODE_1P)) { if ((D_80162DD4 == 0) && (gLapCountByPlayerId[1] != 3)) { func_800057DC(); } if ((D_80162DD6 == 0) && (gLapCountByPlayerId[2] != 3)) { func_8000561C(); } - if (!(gPlayerOne->unk_000 & 0x800)) { + if (!(gPlayerOne->type & 0x800)) { func_8000599C(); } } @@ -539,7 +538,7 @@ void func_80005E6C(void) { if ((D_80162DD6 == 0) && (D_80164398 != 3)) { func_8000561C(); //2 } - if ((gPlayerOne->unk_000 & PLAYER_CINEMATIC_MODE) != PLAYER_CINEMATIC_MODE) { + if ((gPlayerOne->type & PLAYER_CINEMATIC_MODE) != PLAYER_CINEMATIC_MODE) { func_8000546C(); //1 return; }