diff --git a/asm/non_matchings/game/func_8006DCF8.s b/asm/non_matchings/game/func_8006DCF8.s index 0a3b77f5..48f071f2 100644 --- a/asm/non_matchings/game/func_8006DCF8.s +++ b/asm/non_matchings/game/func_8006DCF8.s @@ -72,10 +72,10 @@ glabel func_8006DCF8 /* 06E9F0 8006DDF0 AC400004 */ sw $zero, 4($v0) /* 06E9F4 8006DDF4 AC4D0000 */ sw $t5, ($v0) /* 06E9F8 8006DDF8 8FAE002C */ lw $t6, 0x2c($sp) -/* 06E9FC 8006DDFC 3C088012 */ lui $t0, %hi(D_801234F4) # $t0, 0x8012 -/* 06EA00 8006DE00 250834F4 */ addiu $t0, %lo(D_801234F4) # addiu $t0, $t0, 0x34f4 +/* 06E9FC 8006DDFC 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012 +/* 06EA00 8006DE00 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4 /* 06EA04 8006DE04 31C4007F */ andi $a0, $t6, 0x7f -/* 06EA08 8006DE08 0C01AC2B */ jal func_8006B0AC +/* 06EA08 8006DE08 0C01AC2B */ jal get_map_default_vehicle /* 06EA0C 8006DE0C AD040000 */ sw $a0, ($t0) /* 06EA10 8006DE10 3C098012 */ lui $t1, %hi(D_80123504) # $t1, 0x8012 /* 06EA14 8006DE14 3C0A8012 */ lui $t2, %hi(gLevelDefaultVehicleID) # $t2, 0x8012 @@ -94,8 +94,8 @@ glabel func_8006DCF8 /* 06EA48 8006DE48 3C018012 */ lui $at, %hi(gPostRaceViewPort) # $at, 0x8012 /* 06EA4C 8006DE4C A0203516 */ sb $zero, %lo(gPostRaceViewPort)($at) /* 06EA50 8006DE50 3C038012 */ lui $v1, %hi(D_80123500) # $v1, 0x8012 -/* 06EA54 8006DE54 3C088012 */ lui $t0, %hi(D_801234F4) # $t0, 0x8012 -/* 06EA58 8006DE58 250834F4 */ addiu $t0, %lo(D_801234F4) # addiu $t0, $t0, 0x34f4 +/* 06EA54 8006DE54 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012 +/* 06EA58 8006DE58 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4 /* 06EA5C 8006DE5C 24633500 */ addiu $v1, %lo(D_80123500) # addiu $v1, $v1, 0x3500 /* 06EA60 8006DE60 8C650000 */ lw $a1, ($v1) /* 06EA64 8006DE64 8D040000 */ lw $a0, ($t0) @@ -140,12 +140,12 @@ glabel L8006DEE8 /* 06EAF8 8006DEF8 100000F8 */ b .L8006E2DC /* 06EAFC 8006DEFC 8FBF0024 */ lw $ra, 0x24($sp) glabel L8006DF00 -/* 06EB00 8006DF00 3C088012 */ lui $t0, %hi(D_801234F4) # $t0, 0x8012 +/* 06EB00 8006DF00 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012 /* 06EB04 8006DF04 3C098012 */ lui $t1, %hi(D_80123504) # $t1, 0x8012 /* 06EB08 8006DF08 3C0B8012 */ lui $t3, %hi(D_80123508) # $t3, 0x8012 /* 06EB0C 8006DF0C 256B3508 */ addiu $t3, %lo(D_80123508) # addiu $t3, $t3, 0x3508 /* 06EB10 8006DF10 25293504 */ addiu $t1, %lo(D_80123504) # addiu $t1, $t1, 0x3504 -/* 06EB14 8006DF14 250834F4 */ addiu $t0, %lo(D_801234F4) # addiu $t0, $t0, 0x34f4 +/* 06EB14 8006DF14 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4 /* 06EB18 8006DF18 240F0064 */ li $t7, 100 /* 06EB1C 8006DF1C AD000000 */ sw $zero, ($t0) /* 06EB20 8006DF20 AD200000 */ sw $zero, ($t1) @@ -172,12 +172,12 @@ glabel L8006DF70 /* 06EB70 8006DF70 3C058012 */ lui $a1, %hi(D_80121250) # $a1, 0x8012 /* 06EB74 8006DF74 24A51250 */ addiu $a1, %lo(D_80121250) # addiu $a1, $a1, 0x1250 /* 06EB78 8006DF78 80B80000 */ lb $t8, ($a1) -/* 06EB7C 8006DF7C 3C088012 */ lui $t0, %hi(D_801234F4) # $t0, 0x8012 +/* 06EB7C 8006DF7C 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012 /* 06EB80 8006DF80 3C098012 */ lui $t1, %hi(D_80123504) # $t1, 0x8012 /* 06EB84 8006DF84 3C0B8012 */ lui $t3, %hi(D_80123508) # $t3, 0x8012 /* 06EB88 8006DF88 256B3508 */ addiu $t3, %lo(D_80123508) # addiu $t3, $t3, 0x3508 /* 06EB8C 8006DF8C 25293504 */ addiu $t1, %lo(D_80123504) # addiu $t1, $t1, 0x3504 -/* 06EB90 8006DF90 250834F4 */ addiu $t0, %lo(D_801234F4) # addiu $t0, $t0, 0x34f4 +/* 06EB90 8006DF90 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4 /* 06EB94 8006DF94 24190064 */ li $t9, 100 /* 06EB98 8006DF98 AD200000 */ sw $zero, ($t1) /* 06EB9C 8006DF9C AD790000 */ sw $t9, ($t3) @@ -214,12 +214,12 @@ glabel L8006E00C /* 06EC0C 8006E00C 3C018012 */ lui $at, %hi(sRenderContext) # $at, 0x8012 /* 06EC10 8006E010 AC2034EC */ sw $zero, %lo(sRenderContext)($at) /* 06EC14 8006E014 3C038012 */ lui $v1, %hi(D_80123500) # $v1, 0x8012 -/* 06EC18 8006E018 3C088012 */ lui $t0, %hi(D_801234F4) # $t0, 0x8012 +/* 06EC18 8006E018 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012 /* 06EC1C 8006E01C 3C098012 */ lui $t1, %hi(D_80123504) # $t1, 0x8012 /* 06EC20 8006E020 3C0A8012 */ lui $t2, %hi(gLevelDefaultVehicleID) # $t2, 0x8012 /* 06EC24 8006E024 254A3518 */ addiu $t2, %lo(gLevelDefaultVehicleID) # addiu $t2, $t2, 0x3518 /* 06EC28 8006E028 25293504 */ addiu $t1, %lo(D_80123504) # addiu $t1, $t1, 0x3504 -/* 06EC2C 8006E02C 250834F4 */ addiu $t0, %lo(D_801234F4) # addiu $t0, $t0, 0x34f4 +/* 06EC2C 8006E02C 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4 /* 06EC30 8006E030 24633500 */ addiu $v1, %lo(D_80123500) # addiu $v1, $v1, 0x3500 /* 06EC34 8006E034 8C650000 */ lw $a1, ($v1) /* 06EC38 8006E038 8D040000 */ lw $a0, ($t0) @@ -239,21 +239,21 @@ glabel L8006E054 /* 06EC6C 8006E06C 00AFC021 */ addu $t8, $a1, $t7 /* 06EC70 8006E070 80AE000F */ lb $t6, 0xf($a1) /* 06EC74 8006E074 83190008 */ lb $t9, 8($t8) -/* 06EC78 8006E078 3C088012 */ lui $t0, %hi(D_801234F4) # $t0, 0x8012 +/* 06EC78 8006E078 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012 /* 06EC7C 8006E07C 3C098012 */ lui $t1, %hi(D_80123504) # $t1, 0x8012 /* 06EC80 8006E080 3C0B8012 */ lui $t3, %hi(D_80123508) # $t3, 0x8012 /* 06EC84 8006E084 256B3508 */ addiu $t3, %lo(D_80123508) # addiu $t3, $t3, 0x3508 /* 06EC88 8006E088 25293504 */ addiu $t1, %lo(D_80123504) # addiu $t1, $t1, 0x3504 -/* 06EC8C 8006E08C 250834F4 */ addiu $t0, %lo(D_801234F4) # addiu $t0, $t0, 0x34f4 +/* 06EC8C 8006E08C 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4 /* 06EC90 8006E090 AD040000 */ sw $a0, ($t0) /* 06EC94 8006E094 AD2E0000 */ sw $t6, ($t1) -/* 06EC98 8006E098 0C01AC2B */ jal func_8006B0AC +/* 06EC98 8006E098 0C01AC2B */ jal get_map_default_vehicle /* 06EC9C 8006E09C AD790000 */ sw $t9, ($t3) /* 06ECA0 8006E0A0 3C038012 */ lui $v1, %hi(D_80123500) # $v1, 0x8012 -/* 06ECA4 8006E0A4 3C088012 */ lui $t0, %hi(D_801234F4) # $t0, 0x8012 +/* 06ECA4 8006E0A4 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012 /* 06ECA8 8006E0A8 3C098012 */ lui $t1, %hi(D_80123504) # $t1, 0x8012 /* 06ECAC 8006E0AC 25293504 */ addiu $t1, %lo(D_80123504) # addiu $t1, $t1, 0x3504 -/* 06ECB0 8006E0B0 250834F4 */ addiu $t0, %lo(D_801234F4) # addiu $t0, $t0, 0x34f4 +/* 06ECB0 8006E0B0 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4 /* 06ECB4 8006E0B4 24633500 */ addiu $v1, %lo(D_80123500) # addiu $v1, $v1, 0x3500 /* 06ECB8 8006E0B8 3C0A8012 */ lui $t2, %hi(gLevelDefaultVehicleID) # $t2, 0x8012 /* 06ECBC 8006E0BC 254A3518 */ addiu $t2, %lo(gLevelDefaultVehicleID) # addiu $t2, $t2, 0x3518 @@ -299,9 +299,9 @@ glabel L8006E0E0 /* 06ED4C 8006E14C 3C058012 */ lui $a1, %hi(D_80121250) # $a1, 0x8012 /* 06ED50 8006E150 244C0008 */ addiu $t4, $v0, 8 /* 06ED54 8006E154 AE0C0000 */ sw $t4, ($s0) -/* 06ED58 8006E158 3C088012 */ lui $t0, %hi(D_801234F4) # $t0, 0x8012 +/* 06ED58 8006E158 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012 /* 06ED5C 8006E15C 3C0DB800 */ lui $t5, 0xb800 -/* 06ED60 8006E160 250834F4 */ addiu $t0, %lo(D_801234F4) # addiu $t0, $t0, 0x34f4 +/* 06ED60 8006E160 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4 /* 06ED64 8006E164 24A51250 */ addiu $a1, %lo(D_80121250) # addiu $a1, $a1, 0x1250 /* 06ED68 8006E168 AC4D0000 */ sw $t5, ($v0) /* 06ED6C 8006E16C AC400004 */ sw $zero, 4($v0) @@ -327,11 +327,11 @@ glabel L8006E0E0 /* 06EDBC 8006E1BC 3C108012 */ lui $s0, %hi(gSettingsPtr) # $s0, 0x8012 /* 06EDC0 8006E1C0 26103510 */ addiu $s0, %lo(gSettingsPtr) # addiu $s0, $s0, 0x3510 /* 06EDC4 8006E1C4 8E0D0000 */ lw $t5, ($s0) -/* 06EDC8 8006E1C8 3C088012 */ lui $t0, %hi(D_801234F4) # $t0, 0x8012 +/* 06EDC8 8006E1C8 3C088012 */ lui $t0, %hi(gPlayableMapId) # $t0, 0x8012 /* 06EDCC 8006E1CC 91AE004A */ lbu $t6, 0x4a($t5) /* 06EDD0 8006E1D0 3C098012 */ lui $t1, %hi(D_80123504) # $t1, 0x8012 /* 06EDD4 8006E1D4 25293504 */ addiu $t1, %lo(D_80123504) # addiu $t1, $t1, 0x3504 -/* 06EDD8 8006E1D8 250834F4 */ addiu $t0, %lo(D_801234F4) # addiu $t0, $t0, 0x34f4 +/* 06EDD8 8006E1D8 250834F4 */ addiu $t0, %lo(gPlayableMapId) # addiu $t0, $t0, 0x34f4 /* 06EDDC 8006E1DC 3C038012 */ lui $v1, %hi(D_80123500) # $v1, 0x8012 /* 06EDE0 8006E1E0 24633500 */ addiu $v1, %lo(D_80123500) # addiu $v1, $v1, 0x3500 /* 06EDE4 8006E1E4 8D040000 */ lw $a0, ($t0) diff --git a/asm/non_matchings/game/load_level.s b/asm/non_matchings/game/load_level.s index c6e75ad2..249265f2 100644 --- a/asm/non_matchings/game/load_level.s +++ b/asm/non_matchings/game/load_level.s @@ -307,9 +307,9 @@ glabel load_level /* 06C2B4 8006B6B4 0C0032F0 */ jal func_8000CBC0 /* 06C2B8 8006B6B8 00000000 */ nop /* 06C2BC 8006B6BC 8FAC0060 */ lw $t4, 0x60($sp) -/* 06C2C0 8006B6C0 3C018012 */ lui $at, %hi(D_80121164) # $at, 0x8012 +/* 06C2C0 8006B6C0 3C018012 */ lui $at, %hi(gMapId) # $at, 0x8012 /* 06C2C4 8006B6C4 00001825 */ move $v1, $zero -/* 06C2C8 8006B6C8 AC2C1164 */ sw $t4, %lo(D_80121164)($at) +/* 06C2C8 8006B6C8 AC2C1164 */ sw $t4, %lo(gMapId)($at) .L8006B6CC: /* 06C2CC 8006B6CC 8E390000 */ lw $t9, ($s1) /* 06C2D0 8006B6D0 2401FFFF */ li $at, -1 diff --git a/asm/non_matchings/game_ui/func_800A8474.s b/asm/non_matchings/game_ui/func_800A8474.s index 32af15ec..9116e5e6 100644 --- a/asm/non_matchings/game_ui/func_800A8474.s +++ b/asm/non_matchings/game_ui/func_800A8474.s @@ -186,7 +186,7 @@ glabel func_800A8474 /* 0A92DC 800A86DC 00000000 */ nop /* 0A92E0 800A86E0 3C018012 */ lui $at, %hi(D_80126D60) # $at, 0x8012 /* 0A92E4 800A86E4 AC226D60 */ sw $v0, %lo(D_80126D60)($at) -/* 0A92E8 800A86E8 0C006EA4 */ jal func_8001BA90 +/* 0A92E8 800A86E8 0C006EA4 */ jal get_racer_objects_by_port /* 0A92EC 800A86EC 27A40140 */ addiu $a0, $sp, 0x140 /* 0A92F0 800A86F0 8FAC0160 */ lw $t4, 0x160($sp) /* 0A92F4 800A86F4 AFA20150 */ sw $v0, 0x150($sp) @@ -1256,8 +1256,8 @@ glabel func_800A8474 /* 0AA2C0 800A96C0 26526CDC */ addiu $s2, %lo(D_80126CDC) # addiu $s2, $s2, 0x6cdc /* 0AA2C4 800A96C4 10400012 */ beqz $v0, .L800A9710 /* 0AA2C8 800A96C8 2413FFFF */ li $s3, -1 -/* 0AA2CC 800A96CC 3C058012 */ lui $a1, %hi(D_80126D80) # $a1, 0x8012 -/* 0AA2D0 800A96D0 24A56D80 */ addiu $a1, %lo(D_80126D80) # addiu $a1, $a1, 0x6d80 +/* 0AA2CC 800A96CC 3C058012 */ lui $a1, %hi(gHudSprites) # $a1, 0x8012 +/* 0AA2D0 800A96D0 24A56D80 */ addiu $a1, %lo(gHudSprites) # addiu $a1, $a1, 0x6d80 /* 0AA2D4 800A96D4 000268C0 */ sll $t5, $v0, 3 /* 0AA2D8 800A96D8 00AD7021 */ addu $t6, $a1, $t5 /* 0AA2DC 800A96DC ADC00000 */ sw $zero, ($t6) diff --git a/asm/non_matchings/game_ui/func_800AA600.s b/asm/non_matchings/game_ui/func_800AA600.s index 80b65dee..831a8490 100644 --- a/asm/non_matchings/game_ui/func_800AA600.s +++ b/asm/non_matchings/game_ui/func_800AA600.s @@ -411,9 +411,9 @@ glabel func_800AA600 /* 0AB7EC 800AABEC 8C422834 */ lw $v0, %lo(D_800E2834)($v0) /* 0AB7F0 800AABF0 2401FFFE */ li $at, -2 /* 0AB7F4 800AABF4 3C058012 */ lui $a1, %hi(D_80127180) # $a1, 0x8012 -/* 0AB7F8 800AABF8 3C0D8012 */ lui $t5, %hi(D_80126D80) # $t5, 0x8012 +/* 0AB7F8 800AABF8 3C0D8012 */ lui $t5, %hi(gHudSprites) # $t5, 0x8012 /* 0AB7FC 800AABFC 24A57180 */ addiu $a1, %lo(D_80127180) # addiu $a1, $a1, 0x7180 -/* 0AB800 800AAC00 25AD6D80 */ addiu $t5, %lo(D_80126D80) # addiu $t5, $t5, 0x6d80 +/* 0AB800 800AAC00 25AD6D80 */ addiu $t5, %lo(gHudSprites) # addiu $t5, $t5, 0x6d80 /* 0AB804 800AAC04 0000C012 */ mflo $t8 /* 0AB808 800AAC08 00781821 */ addu $v1, $v1, $t8 /* 0AB80C 800AAC0C 1441001B */ bne $v0, $at, .L800AAC7C diff --git a/asm/non_matchings/game_ui/render_rain_splashes.s b/asm/non_matchings/game_ui/render_rain_splashes.s index 65223117..906aeee9 100644 --- a/asm/non_matchings/game_ui/render_rain_splashes.s +++ b/asm/non_matchings/game_ui/render_rain_splashes.s @@ -21,7 +21,7 @@ glabel render_rain_splashes /* 0AE2A4 800AD6A4 29014001 */ slti $at, $t0, 0x4001 /* 0AE2A8 800AD6A8 142000C0 */ bnez $at, .L800AD9AC /* 0AE2AC 800AD6AC 00000000 */ nop -/* 0AE2B0 800AD6B0 0C006EC6 */ jal func_8001BB18 +/* 0AE2B0 800AD6B0 0C006EC6 */ jal get_racer_object_by_port /* 0AE2B4 800AD6B4 AFA8007C */ sw $t0, 0x7c($sp) /* 0AE2B8 800AD6B8 3C06800E */ lui $a2, %hi(D_800E2C84) # $a2, 0x800e /* 0AE2BC 800AD6BC 24C62C84 */ addiu $a2, %lo(D_800E2C84) # addiu $a2, $a2, 0x2c84 diff --git a/asm/non_matchings/menu/func_80081218.s b/asm/non_matchings/menu/func_80081218.s index 7ae5bbfc..1539a3e3 100644 --- a/asm/non_matchings/menu/func_80081218.s +++ b/asm/non_matchings/menu/func_80081218.s @@ -17,48 +17,48 @@ glabel func_80081218 /* 081E54 80081254 AFAE0028 */ sw $t6, 0x28($sp) /* 081E58 80081258 0C01C327 */ jal allocate_from_main_pool_safe /* 081E5C 8008125C 2405FFFF */ li $a1, -1 -/* 081E60 80081260 3C048012 */ lui $a0, %hi(D_80126530) # $a0, 0x8012 -/* 081E64 80081264 24846530 */ addiu $a0, %lo(D_80126530) # addiu $a0, $a0, 0x6530 +/* 081E60 80081260 3C048012 */ lui $a0, %hi(gSavefileData) # $a0, 0x8012 +/* 081E64 80081264 24846530 */ addiu $a0, %lo(gSavefileData) # addiu $a0, $a0, 0x6530 /* 081E68 80081268 AC820000 */ sw $v0, ($a0) -/* 081E6C 8008126C 3C018012 */ lui $at, %hi(D_80126530+4) # $at, 0x8012 -/* 081E70 80081270 AC226530 */ sw $v0, %lo(D_80126530)($at) -/* 081E74 80081274 3C098012 */ lui $t1, %hi(D_80126530) # $t1, 0x8012 -/* 081E78 80081278 8D296530 */ lw $t1, %lo(D_80126530)($t1) +/* 081E6C 8008126C 3C018012 */ lui $at, %hi(gSavefileData+4) # $at, 0x8012 +/* 081E70 80081270 AC226530 */ sw $v0, %lo(gSavefileData)($at) +/* 081E74 80081274 3C098012 */ lui $t1, %hi(gSavefileData) # $t1, 0x8012 +/* 081E78 80081278 8D296530 */ lw $t1, %lo(gSavefileData)($t1) /* 081E7C 8008127C 8FA60028 */ lw $a2, 0x28($sp) /* 081E80 80081280 8FA70020 */ lw $a3, 0x20($sp) /* 081E84 80081284 252A0118 */ addiu $t2, $t1, 0x118 -/* 081E88 80081288 3C0B8012 */ lui $t3, %hi(D_80126530) # $t3, 0x8012 +/* 081E88 80081288 3C0B8012 */ lui $t3, %hi(gSavefileData) # $t3, 0x8012 /* 081E8C 8008128C AD2A0004 */ sw $t2, 4($t1) -/* 081E90 80081290 8D6B6530 */ lw $t3, %lo(D_80126530)($t3) -/* 081E94 80081294 3C188012 */ lui $t8, %hi(D_80126530+4) # $t8, 0x8012 +/* 081E90 80081290 8D6B6530 */ lw $t3, %lo(gSavefileData)($t3) +/* 081E94 80081294 3C188012 */ lui $t8, %hi(gSavefileData+4) # $t8, 0x8012 /* 081E98 80081298 8D6C0004 */ lw $t4, 4($t3) -/* 081E9C 8008129C 3C088012 */ lui $t0, %hi(D_80126530+4) # $t0, 0x8012 +/* 081E9C 8008129C 3C088012 */ lui $t0, %hi(gSavefileData+4) # $t0, 0x8012 /* 081EA0 800812A0 01866821 */ addu $t5, $t4, $a2 /* 081EA4 800812A4 AD6D0000 */ sw $t5, ($t3) /* 081EA8 800812A8 8C8E0000 */ lw $t6, ($a0) /* 081EAC 800812AC 00E71821 */ addu $v1, $a3, $a3 /* 081EB0 800812B0 01C77821 */ addu $t7, $t6, $a3 -/* 081EB4 800812B4 AC2F6534 */ sw $t7, %lo(D_80126530+4)($at) -/* 081EB8 800812B8 8F186534 */ lw $t8, %lo(D_80126530+4)($t8) -/* 081EBC 800812BC 3C018012 */ lui $at, %hi(D_80126530+12) # $at, 0x8012 +/* 081EB4 800812B4 AC2F6534 */ sw $t7, %lo(gSavefileData+4)($at) +/* 081EB8 800812B8 8F186534 */ lw $t8, %lo(gSavefileData+4)($t8) +/* 081EBC 800812BC 3C018012 */ lui $at, %hi(gSavefileData+12) # $at, 0x8012 /* 081EC0 800812C0 27190118 */ addiu $t9, $t8, 0x118 /* 081EC4 800812C4 AF190004 */ sw $t9, 4($t8) -/* 081EC8 800812C8 8D086534 */ lw $t0, %lo(D_80126530+4)($t0) -/* 081ECC 800812CC 3C0B8012 */ lui $t3, %hi(D_80126530+8) # $t3, 0x8012 +/* 081EC8 800812C8 8D086534 */ lw $t0, %lo(gSavefileData+4)($t0) +/* 081ECC 800812CC 3C0B8012 */ lui $t3, %hi(gSavefileData+8) # $t3, 0x8012 /* 081ED0 800812D0 8D0A0004 */ lw $t2, 4($t0) -/* 081ED4 800812D4 3C0F8012 */ lui $t7, %hi(D_80126530+8) # $t7, 0x8012 +/* 081ED4 800812D4 3C0F8012 */ lui $t7, %hi(gSavefileData+8) # $t7, 0x8012 /* 081ED8 800812D8 01464821 */ addu $t1, $t2, $a2 /* 081EDC 800812DC AD090000 */ sw $t1, ($t0) /* 081EE0 800812E0 8C8C0000 */ lw $t4, ($a0) -/* 081EE4 800812E4 3C088012 */ lui $t0, %hi(D_80126530+12) # $t0, 0x8012 +/* 081EE4 800812E4 3C088012 */ lui $t0, %hi(gSavefileData+12) # $t0, 0x8012 /* 081EE8 800812E8 01836821 */ addu $t5, $t4, $v1 -/* 081EEC 800812EC AC2D6538 */ sw $t5, %lo(D_80126530+8)($at) -/* 081EF0 800812F0 8D6B6538 */ lw $t3, %lo(D_80126530+8)($t3) +/* 081EEC 800812EC AC2D6538 */ sw $t5, %lo(gSavefileData+8)($at) +/* 081EF0 800812F0 8D6B6538 */ lw $t3, %lo(gSavefileData+8)($t3) /* 081EF4 800812F4 00671821 */ addu $v1, $v1, $a3 /* 081EF8 800812F8 256E0118 */ addiu $t6, $t3, 0x118 /* 081EFC 800812FC AD6E0004 */ sw $t6, 4($t3) -/* 081F00 80081300 8DEF6538 */ lw $t7, %lo(D_80126530+8)($t7) -/* 081F04 80081304 3C0D8012 */ lui $t5, %hi(D_80126530+12) # $t5, 0x8012 +/* 081F00 80081300 8DEF6538 */ lw $t7, %lo(gSavefileData+8)($t7) +/* 081F04 80081304 3C0D8012 */ lui $t5, %hi(gSavefileData+12) # $t5, 0x8012 /* 081F08 80081308 8DF90004 */ lw $t9, 4($t7) /* 081F0C 8008130C 00000000 */ nop /* 081F10 80081310 0326C021 */ addu $t8, $t9, $a2 @@ -66,12 +66,12 @@ glabel func_80081218 /* 081F18 80081318 8C8A0000 */ lw $t2, ($a0) /* 081F1C 8008131C 24040041 */ li $a0, 65 /* 081F20 80081320 01434821 */ addu $t1, $t2, $v1 -/* 081F24 80081324 AC29653C */ sw $t1, %lo(D_80126530+12)($at) -/* 081F28 80081328 8D08653C */ lw $t0, %lo(D_80126530+12)($t0) +/* 081F24 80081324 AC29653C */ sw $t1, %lo(gSavefileData+12)($at) +/* 081F28 80081328 8D08653C */ lw $t0, %lo(gSavefileData+12)($t0) /* 081F2C 8008132C 00000000 */ nop /* 081F30 80081330 250C0118 */ addiu $t4, $t0, 0x118 /* 081F34 80081334 AD0C0004 */ sw $t4, 4($t0) -/* 081F38 80081338 8DAD653C */ lw $t5, %lo(D_80126530+12)($t5) +/* 081F38 80081338 8DAD653C */ lw $t5, %lo(gSavefileData+12)($t5) /* 081F3C 8008133C 00000000 */ nop /* 081F40 80081340 8DAE0004 */ lw $t6, 4($t5) /* 081F44 80081344 00000000 */ nop diff --git a/asm/non_matchings/menu/func_800853D0.s b/asm/non_matchings/menu/func_800853D0.s index 945138fa..0446a13e 100644 --- a/asm/non_matchings/menu/func_800853D0.s +++ b/asm/non_matchings/menu/func_800853D0.s @@ -28,10 +28,10 @@ glabel L8008541C /* 086020 80085420 2739FC10 */ addiu $t9, %lo(D_800DFC10) # addiu $t9, $t9, -0x3f0 /* 086024 80085424 AFB90068 */ sw $t9, 0x68($sp) /* 086028 80085428 92030006 */ lbu $v1, 6($s0) -/* 08602C 8008542C 3C028012 */ lui $v0, %hi(D_80126530) # $v0, 0x8012 +/* 08602C 8008542C 3C028012 */ lui $v0, %hi(gSavefileData) # $v0, 0x8012 /* 086030 80085430 00035080 */ sll $t2, $v1, 2 /* 086034 80085434 004A1021 */ addu $v0, $v0, $t2 -/* 086038 80085438 8C426530 */ lw $v0, %lo(D_80126530)($v0) +/* 086038 80085438 8C426530 */ lw $v0, %lo(gSavefileData)($v0) /* 08603C 8008543C 3C088012 */ lui $t0, %hi(D_80126550) # $t0, 0x8012 /* 086040 80085440 904B004B */ lbu $t3, 0x4b($v0) /* 086044 80085444 8D08665C */ lw $t0, %lo(D_80126550 + 0x10C)($t0) @@ -51,10 +51,10 @@ glabel L8008541C /* 08607C 8008547C 27AC0050 */ addiu $t4, $sp, 0x50 /* 086080 80085480 AFAC0064 */ sw $t4, 0x64($sp) /* 086084 80085484 920D0006 */ lbu $t5, 6($s0) -/* 086088 80085488 3C028012 */ lui $v0, %hi(D_80126530) # $v0, 0x8012 +/* 086088 80085488 3C028012 */ lui $v0, %hi(gSavefileData) # $v0, 0x8012 /* 08608C 8008548C 000D7080 */ sll $t6, $t5, 2 /* 086090 80085490 004E1021 */ addu $v0, $v0, $t6 -/* 086094 80085494 8C426530 */ lw $v0, %lo(D_80126530)($v0) +/* 086094 80085494 8C426530 */ lw $v0, %lo(gSavefileData)($v0) /* 086098 80085498 2404000A */ li $a0, 10 /* 08609C 8008549C 8C4F0000 */ lw $t7, ($v0) /* 0860A0 800854A0 8FA8004C */ lw $t0, 0x4c($sp) @@ -347,10 +347,10 @@ glabel L80085828 /* 0864C8 800858C8 14410050 */ bne $v0, $at, .L80085A0C /* 0864CC 800858CC 8FAA0068 */ lw $t2, 0x68($sp) /* 0864D0 800858D0 92180006 */ lbu $t8, 6($s0) -/* 0864D4 800858D4 3C198012 */ lui $t9, %hi(D_80126530) # $t9, 0x8012 +/* 0864D4 800858D4 3C198012 */ lui $t9, %hi(gSavefileData) # $t9, 0x8012 /* 0864D8 800858D8 00185080 */ sll $t2, $t8, 2 /* 0864DC 800858DC 032AC821 */ addu $t9, $t9, $t2 -/* 0864E0 800858E0 8F396530 */ lw $t9, %lo(D_80126530)($t9) +/* 0864E0 800858E0 8F396530 */ lw $t9, %lo(gSavefileData)($t9) /* 0864E4 800858E4 00000000 */ nop /* 0864E8 800858E8 932B004B */ lbu $t3, 0x4b($t9) /* 0864EC 800858EC 00000000 */ nop diff --git a/asm/non_matchings/menu/func_800862C4.s b/asm/non_matchings/menu/func_800862C4.s index c3cbd4d8..07175729 100644 --- a/asm/non_matchings/menu/func_800862C4.s +++ b/asm/non_matchings/menu/func_800862C4.s @@ -3,9 +3,9 @@ glabel func_800862C4 /* 086EC8 800862C8 AFB60038 */ sw $s6, 0x38($sp) /* 086ECC 800862CC AFB20028 */ sw $s2, 0x28($sp) /* 086ED0 800862D0 3C128012 */ lui $s2, %hi(D_80126A08) # $s2, 0x8012 -/* 086ED4 800862D4 3C168012 */ lui $s6, %hi(D_80126530+12) # $s6, 0x8012 +/* 086ED4 800862D4 3C168012 */ lui $s6, %hi(gSavefileData+12) # $s6, 0x8012 /* 086ED8 800862D8 26526A08 */ addiu $s2, %lo(D_80126A08) # addiu $s2, $s2, 0x6a08 -/* 086EDC 800862DC 8ED6653C */ lw $s6, %lo(D_80126530+12)($s6) +/* 086EDC 800862DC 8ED6653C */ lw $s6, %lo(gSavefileData+12)($s6) /* 086EE0 800862E0 AE400000 */ sw $zero, ($s2) /* 086EE4 800862E4 3C018012 */ lui $at, %hi(D_80126BD4) # $at, 0x8012 /* 086EE8 800862E8 44802000 */ mtc1 $zero, $f4 @@ -15,14 +15,14 @@ glabel func_800862C4 /* 086EF8 800862F8 AFB3002C */ sw $s3, 0x2c($sp) /* 086EFC 800862FC AFB00020 */ sw $s0, 0x20($sp) /* 086F00 80086300 3C018012 */ lui $at, %hi(D_80126BDC) # $at, 0x8012 -/* 086F04 80086304 3C118012 */ lui $s1, %hi(D_80126530) # $s1, 0x8012 +/* 086F04 80086304 3C118012 */ lui $s1, %hi(gSavefileData) # $s1, 0x8012 /* 086F08 80086308 3C148012 */ lui $s4, %hi(D_80126A0C) # $s4, 0x8012 /* 086F0C 8008630C AFBF0044 */ sw $ra, 0x44($sp) /* 086F10 80086310 AFBE0040 */ sw $fp, 0x40($sp) /* 086F14 80086314 AFB7003C */ sw $s7, 0x3c($sp) /* 086F18 80086318 AFB50034 */ sw $s5, 0x34($sp) /* 086F1C 8008631C 26946A0C */ addiu $s4, %lo(D_80126A0C) # addiu $s4, $s4, 0x6a0c -/* 086F20 80086320 26316530 */ addiu $s1, %lo(D_80126530) # addiu $s1, $s1, 0x6530 +/* 086F20 80086320 26316530 */ addiu $s1, %lo(gSavefileData) # addiu $s1, $s1, 0x6530 /* 086F24 80086324 00008025 */ move $s0, $zero /* 086F28 80086328 24130001 */ li $s3, 1 /* 086F2C 8008632C E4246BDC */ swc1 $f4, %lo(D_80126BDC)($at) diff --git a/asm/non_matchings/menu/func_80086AFC.s b/asm/non_matchings/menu/func_80086AFC.s index 447528df..56b10a19 100644 --- a/asm/non_matchings/menu/func_80086AFC.s +++ b/asm/non_matchings/menu/func_80086AFC.s @@ -58,9 +58,9 @@ glabel L80086B54 /* 0877C0 80086BC0 0018C900 */ sll $t9, $t8, 4 /* 0877C4 80086BC4 01D95021 */ addu $t2, $t6, $t9 /* 0877C8 80086BC8 914C0006 */ lbu $t4, 6($t2) -/* 0877CC 80086BCC 3C038012 */ lui $v1, %hi(D_80126530) # $v1, 0x8012 +/* 0877CC 80086BCC 3C038012 */ lui $v1, %hi(gSavefileData) # $v1, 0x8012 /* 0877D0 80086BD0 8FA60028 */ lw $a2, 0x28($sp) -/* 0877D4 80086BD4 24636530 */ addiu $v1, %lo(D_80126530) # addiu $v1, $v1, 0x6530 +/* 0877D4 80086BD4 24636530 */ addiu $v1, %lo(gSavefileData) # addiu $v1, $v1, 0x6530 /* 0877D8 80086BD8 000C5880 */ sll $t3, $t4, 2 /* 0877DC 80086BDC 006B6821 */ addu $t5, $v1, $t3 /* 0877E0 80086BE0 8DB80000 */ lw $t8, ($t5) @@ -120,8 +120,8 @@ glabel L80086B54 /* 0878B0 80086CB0 00196100 */ sll $t4, $t9, 4 /* 0878B4 80086CB4 030C7021 */ addu $t6, $t8, $t4 /* 0878B8 80086CB8 91CA0006 */ lbu $t2, 6($t6) -/* 0878BC 80086CBC 3C038012 */ lui $v1, %hi(D_80126530) # $v1, 0x8012 -/* 0878C0 80086CC0 24636530 */ addiu $v1, %lo(D_80126530) # addiu $v1, $v1, 0x6530 +/* 0878BC 80086CBC 3C038012 */ lui $v1, %hi(gSavefileData) # $v1, 0x8012 +/* 0878C0 80086CC0 24636530 */ addiu $v1, %lo(gSavefileData) # addiu $v1, $v1, 0x6530 /* 0878C4 80086CC4 000A5880 */ sll $t3, $t2, 2 /* 0878C8 80086CC8 006B7821 */ addu $t7, $v1, $t3 /* 0878CC 80086CCC 8DF90000 */ lw $t9, ($t7) @@ -176,7 +176,7 @@ glabel L80086D54 /* 087984 80086D84 10410075 */ beq $v0, $at, .L80086F5C /* 087988 80086D88 24010008 */ li $at, 8 /* 08798C 80086D8C 1041005B */ beq $v0, $at, .L80086EFC -/* 087990 80086D90 3C038012 */ lui $v1, %hi(D_80126530) # $v1, 0x8012 +/* 087990 80086D90 3C038012 */ lui $v1, %hi(gSavefileData) # $v1, 0x8012 /* 087994 80086D94 1000010D */ b .L800871CC /* 087998 80086D98 8FBF0014 */ lw $ra, 0x14($sp) .L80086D9C: @@ -224,9 +224,9 @@ glabel L80086D54 /* 087A3C 80086E3C 00187100 */ sll $t6, $t8, 4 /* 087A40 80086E40 018E5021 */ addu $t2, $t4, $t6 /* 087A44 80086E44 914B0006 */ lbu $t3, 6($t2) -/* 087A48 80086E48 3C038012 */ lui $v1, %hi(D_80126530) # $v1, 0x8012 +/* 087A48 80086E48 3C038012 */ lui $v1, %hi(gSavefileData) # $v1, 0x8012 /* 087A4C 80086E4C 8FA60028 */ lw $a2, 0x28($sp) -/* 087A50 80086E50 24636530 */ addiu $v1, %lo(D_80126530) # addiu $v1, $v1, 0x6530 +/* 087A50 80086E50 24636530 */ addiu $v1, %lo(gSavefileData) # addiu $v1, $v1, 0x6530 /* 087A54 80086E54 000B7880 */ sll $t7, $t3, 2 /* 087A58 80086E58 006F6821 */ addu $t5, $v1, $t7 /* 087A5C 80086E5C 8DB80000 */ lw $t8, ($t5) @@ -270,18 +270,18 @@ glabel L80086D54 /* 087AF4 80086EF4 100000B4 */ b .L800871C8 /* 087AF8 80086EF8 AF2F0050 */ sw $t7, 0x50($t9) .L80086EFC: -/* 087AFC 80086EFC 24636530 */ addiu $v1, %lo(D_80126530) # addiu $v1, $v1, 0x6530 +/* 087AFC 80086EFC 24636530 */ addiu $v1, %lo(gSavefileData) # addiu $v1, $v1, 0x6530 /* 087B00 80086F00 8C66000C */ lw $a2, 0xc($v1) /* 087B04 80086F04 90E40006 */ lbu $a0, 6($a3) /* 087B08 80086F08 8CE50008 */ lw $a1, 8($a3) /* 087B0C 80086F0C 0C01CF87 */ jal read_game_data_from_controller_pak /* 087B10 80086F10 00000000 */ nop -/* 087B14 80086F14 3C038012 */ lui $v1, %hi(D_80126530) # $v1, 0x8012 +/* 087B14 80086F14 3C038012 */ lui $v1, %hi(gSavefileData) # $v1, 0x8012 /* 087B18 80086F18 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 /* 087B1C 80086F1C 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 /* 087B20 80086F20 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 /* 087B24 80086F24 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 087B28 80086F28 24636530 */ addiu $v1, %lo(D_80126530) # addiu $v1, $v1, 0x6530 +/* 087B28 80086F28 24636530 */ addiu $v1, %lo(gSavefileData) # addiu $v1, $v1, 0x6530 /* 087B2C 80086F2C 144000A6 */ bnez $v0, .L800871C8 /* 087B30 80086F30 AFA20038 */ sw $v0, 0x38($sp) /* 087B34 80086F34 8D380000 */ lw $t8, ($t1) diff --git a/asm/non_matchings/menu/func_800904E8.s b/asm/non_matchings/menu/func_800904E8.s index a24a1650..40f4581e 100644 --- a/asm/non_matchings/menu/func_800904E8.s +++ b/asm/non_matchings/menu/func_800904E8.s @@ -198,7 +198,7 @@ glabel func_800904E8 /* 0913C4 800907C4 8D6B69CC */ lw $t3, %lo(D_801269CC)($t3) /* 0913C8 800907C8 AC3969F4 */ sw $t9, %lo(gSelectedTrackX)($at) /* 0913CC 800907CC 3C018012 */ lui $at, %hi(gSelectedTrackY) # $at, 0x8012 -/* 0913D0 800907D0 0C01AC2B */ jal func_8006B0AC +/* 0913D0 800907D0 0C01AC2B */ jal get_map_default_vehicle /* 0913D4 800907D4 AC2B69F8 */ sw $t3, %lo(gSelectedTrackY)($at) /* 0913D8 800907D8 0C01B6C5 */ jal set_level_default_vehicle /* 0913DC 800907DC 00402025 */ move $a0, $v0 diff --git a/asm/non_matchings/menu/func_80092188.s b/asm/non_matchings/menu/func_80092188.s index 831c59b2..3ed5805d 100644 --- a/asm/non_matchings/menu/func_80092188.s +++ b/asm/non_matchings/menu/func_80092188.s @@ -180,7 +180,7 @@ glabel func_80092188 /* 093010 80092410 172001F0 */ bnez $t9, .L80092BD4 /* 093014 80092414 8FBF001C */ lw $ra, 0x1c($sp) /* 093018 80092418 8C84F4C4 */ lw $a0, %lo(gTrackIdForPreview)($a0) -/* 09301C 8009241C 0C01AC3E */ jal func_8006B0F8 +/* 09301C 8009241C 0C01AC3E */ jal get_map_available_vehicles /* 093020 80092420 00000000 */ nop /* 093024 80092424 3C0C8012 */ lui $t4, %hi(D_801263E0) # $t4, 0x8012 /* 093028 80092428 258C63E0 */ addiu $t4, %lo(D_801263E0) # addiu $t4, $t4, 0x63e0 diff --git a/asm/non_matchings/menu/func_80092E94.s b/asm/non_matchings/menu/func_80092E94.s index 9eccc62e..7cb229c1 100644 --- a/asm/non_matchings/menu/func_80092E94.s +++ b/asm/non_matchings/menu/func_80092E94.s @@ -47,7 +47,7 @@ glabel func_80092E94 /* 093B44 80092F44 102001A9 */ beqz $at, .L800935EC /* 093B48 80092F48 8FBF0034 */ lw $ra, 0x34($sp) /* 093B4C 80092F4C 8FA40058 */ lw $a0, 0x58($sp) -/* 093B50 80092F50 0C01AC3E */ jal func_8006B0F8 +/* 093B50 80092F50 0C01AC3E */ jal get_map_available_vehicles /* 093B54 80092F54 00000000 */ nop /* 093B58 80092F58 8FA40058 */ lw $a0, 0x58($sp) /* 093B5C 80092F5C 0C01AF77 */ jal get_level_name @@ -299,7 +299,7 @@ glabel func_80092E94 /* 093F24 80093324 29C10002 */ slti $at, $t6, 2 /* 093F28 80093328 10200008 */ beqz $at, .L8009334C /* 093F2C 8009332C 240200FF */ li $v0, 255 -/* 093F30 80093330 0C01AC2B */ jal func_8006B0AC +/* 093F30 80093330 0C01AC2B */ jal get_map_default_vehicle /* 093F34 80093334 00000000 */ nop /* 093F38 80093338 10500004 */ beq $v0, $s0, .L8009334C /* 093F3C 8009333C 240200FF */ li $v0, 255 diff --git a/asm/non_matchings/menu/menu_trophy_race_round_init.s b/asm/non_matchings/menu/menu_trophy_race_round_init.s index 9c0516bd..be73be21 100644 --- a/asm/non_matchings/menu/menu_trophy_race_round_init.s +++ b/asm/non_matchings/menu/menu_trophy_race_round_init.s @@ -53,7 +53,7 @@ glabel menu_trophy_race_round_init /* 098F28 80098328 3C128012 */ lui $s2, %hi(gPlayerSelectVehicle) # $s2, 0x8012 /* 098F2C 8009832C 265269C0 */ addiu $s2, %lo(gPlayerSelectVehicle) # addiu $s2, $s2, 0x69c0 .L80098330: -/* 098F30 80098330 0C01AC2B */ jal func_8006B0AC +/* 098F30 80098330 0C01AC2B */ jal get_map_default_vehicle /* 098F34 80098334 02002025 */ move $a0, $s0 /* 098F38 80098338 8E6A0000 */ lw $t2, ($s3) /* 098F3C 8009833C 26310001 */ addiu $s1, $s1, 1 @@ -62,7 +62,7 @@ glabel menu_trophy_race_round_init /* 098F48 80098348 1420FFF9 */ bnez $at, .L80098330 /* 098F4C 8009834C A242FFFF */ sb $v0, -1($s2) .L80098350: -/* 098F50 80098350 0C01AC2B */ jal func_8006B0AC +/* 098F50 80098350 0C01AC2B */ jal get_map_default_vehicle /* 098F54 80098354 02002025 */ move $a0, $s0 /* 098F58 80098358 0C01B6C5 */ jal set_level_default_vehicle /* 098F5C 8009835C 00402025 */ move $a0, $v0 diff --git a/asm/non_matchings/menu/render_track_select_setup_ui.s b/asm/non_matchings/menu/render_track_select_setup_ui.s index acff7622..34c03a1b 100644 --- a/asm/non_matchings/menu/render_track_select_setup_ui.s +++ b/asm/non_matchings/menu/render_track_select_setup_ui.s @@ -130,7 +130,7 @@ glabel render_track_select_setup_ui /* 091CF8 800910F8 AFC00000 */ sw $zero, ($fp) .L800910FC: /* 091CFC 800910FC 8C84F4C4 */ lw $a0, %lo(gTrackIdForPreview)($a0) -/* 091D00 80091100 0C01AC3E */ jal func_8006B0F8 +/* 091D00 80091100 0C01AC3E */ jal get_map_available_vehicles /* 091D04 80091104 00000000 */ nop /* 091D08 80091108 3C04800E */ lui $a0, %hi(gTrackIdForPreview) # $a0, 0x800e /* 091D0C 8009110C 8C84F4C4 */ lw $a0, %lo(gTrackIdForPreview)($a0) diff --git a/asm/non_matchings/objects/func_8000BADC.s b/asm/non_matchings/objects/func_8000BADC.s index dacbc328..0b3c85b9 100644 --- a/asm/non_matchings/objects/func_8000BADC.s +++ b/asm/non_matchings/objects/func_8000BADC.s @@ -57,8 +57,8 @@ glabel func_8000BADC /* 00C77C 8000BB7C 24630001 */ addiu $v1, $v1, 1 /* 00C780 8000BB80 1420FFF3 */ bnez $at, .L8000BB50 /* 00C784 8000BB84 A06AFFFF */ sb $t2, -1($v1) -/* 00C788 8000BB88 3C0E8012 */ lui $t6, %hi(gObjectCount) # $t6, 0x8012 -/* 00C78C 8000BB8C 8DCEAEF0 */ lw $t6, %lo(gObjectCount)($t6) +/* 00C788 8000BB88 3C0E8012 */ lui $t6, %hi(gNumRacers) # $t6, 0x8012 +/* 00C78C 8000BB8C 8DCEAEF0 */ lw $t6, %lo(gNumRacers)($t6) /* 00C790 8000BB90 00004025 */ move $t0, $zero /* 00C794 8000BB94 19C000DD */ blez $t6, .L8000BF0C /* 00C798 8000BB98 00009025 */ move $s2, $zero @@ -66,10 +66,10 @@ glabel func_8000BADC /* 00C7A0 8000BBA0 44819000 */ mtc1 $at, $f18 /* 00C7A4 8000BBA4 44912000 */ mtc1 $s1, $f4 /* 00C7A8 8000BBA8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 00C7AC 8000BBAC 3C138012 */ lui $s3, %hi(gObjectStructArrayPtr) # $s3, 0x8012 +/* 00C7AC 8000BBAC 3C138012 */ lui $s3, %hi(gRacers) # $s3, 0x8012 /* 00C7B0 8000BBB0 44817000 */ mtc1 $at, $f14 /* 00C7B4 8000BBB4 44806000 */ mtc1 $zero, $f12 -/* 00C7B8 8000BBB8 2673AEE4 */ addiu $s3, %lo(gObjectStructArrayPtr) # addiu $s3, $s3, -0x511c +/* 00C7B8 8000BBB8 2673AEE4 */ addiu $s3, %lo(gRacers) # addiu $s3, $s3, -0x511c /* 00C7BC 8000BBBC 24090002 */ li $t1, 2 /* 00C7C0 8000BBC0 46802420 */ cvt.s.w $f16, $f4 .L8000BBC4: @@ -269,7 +269,7 @@ glabel func_8000BADC /* 00CA98 8000BE98 A0580001 */ sb $t8, 1($v0) /* 00CA9C 8000BE9C A04C0002 */ sb $t4, 2($v0) /* 00CAA0 8000BEA0 820D0175 */ lb $t5, 0x175($s0) -/* 00CAA4 8000BEA4 3C0C8012 */ lui $t4, %hi(gObjectCount) # $t4, 0x8012 +/* 00CAA4 8000BEA4 3C0C8012 */ lui $t4, %hi(gNumRacers) # $t4, 0x8012 /* 00CAA8 8000BEA8 11A0000B */ beqz $t5, .L8000BED8 /* 00CAAC 8000BEAC 00000000 */ nop /* 00CAB0 8000BEB0 904F0003 */ lbu $t7, 3($v0) @@ -294,7 +294,7 @@ glabel func_8000BADC .L8000BEF4: /* 00CAF4 8000BEF4 A0400003 */ sb $zero, 3($v0) .L8000BEF8: -/* 00CAF8 8000BEF8 8D8CAEF0 */ lw $t4, %lo(gObjectCount)($t4) +/* 00CAF8 8000BEF8 8D8CAEF0 */ lw $t4, %lo(gNumRacers)($t4) /* 00CAFC 8000BEFC 25080001 */ addiu $t0, $t0, 1 /* 00CB00 8000BF00 010C082A */ slt $at, $t0, $t4 /* 00CB04 8000BF04 1420FF2F */ bnez $at, .L8000BBC4 diff --git a/asm/non_matchings/objects/func_8000CC7C.s b/asm/non_matchings/objects/func_8000CC7C.s index fd30e7cb..0a596168 100644 --- a/asm/non_matchings/objects/func_8000CC7C.s +++ b/asm/non_matchings/objects/func_8000CC7C.s @@ -22,13 +22,13 @@ glabel func_8000CC7C /* 00D898 8000CC98 A020ADC4 */ sb $zero, %lo(D_8011ADC4)($at) /* 00D89C 8000CC9C 3C118012 */ lui $s1, %hi(D_8011AF00) # $s1, 0x8012 /* 00D8A0 8000CCA0 AFBE0038 */ sw $fp, 0x38($sp) -/* 00D8A4 8000CCA4 3C018012 */ lui $at, %hi(gObjectCount) # $at, 0x8012 +/* 00D8A4 8000CCA4 3C018012 */ lui $at, %hi(gNumRacers) # $at, 0x8012 /* 00D8A8 8000CCA8 0080F025 */ move $fp, $a0 /* 00D8AC 8000CCAC 2631AF00 */ addiu $s1, %lo(D_8011AF00) # addiu $s1, $s1, -0x5100 /* 00D8B0 8000CCB0 AFBF003C */ sw $ra, 0x3c($sp) /* 00D8B4 8000CCB4 AFB30024 */ sw $s3, 0x24($sp) /* 00D8B8 8000CCB8 AFB00018 */ sw $s0, 0x18($sp) -/* 00D8BC 8000CCBC AC20AEF0 */ sw $zero, %lo(gObjectCount)($at) +/* 00D8BC 8000CCBC AC20AEF0 */ sw $zero, %lo(gNumRacers)($at) /* 00D8C0 8000CCC0 00A08025 */ move $s0, $a1 /* 00D8C4 8000CCC4 00C09825 */ move $s3, $a2 /* 00D8C8 8000CCC8 AFB70034 */ sw $s7, 0x34($sp) @@ -214,11 +214,11 @@ glabel func_8000CC7C /* 00DB74 8000CF74 81780000 */ lb $t8, ($t3) /* 00DB78 8000CF78 3C10800E */ lui $s0, %hi(D_800DC740) # $s0, 0x800e /* 00DB7C 8000CF7C 240D0008 */ li $t5, 8 -/* 00DB80 8000CF80 3C018012 */ lui $at, %hi(gObjectCount) # $at, 0x8012 +/* 00DB80 8000CF80 3C018012 */ lui $at, %hi(gNumRacers) # $at, 0x8012 /* 00DB84 8000CF84 A5980000 */ sh $t8, ($t4) /* 00DB88 8000CF88 2610C740 */ addiu $s0, %lo(D_800DC740) # addiu $s0, $s0, -0x38c0 /* 00DB8C 8000CF8C 26620001 */ addiu $v0, $s3, 1 -/* 00DB90 8000CF90 AC2DAEF0 */ sw $t5, %lo(gObjectCount)($at) +/* 00DB90 8000CF90 AC2DAEF0 */ sw $t5, %lo(gNumRacers)($at) /* 00DB94 8000CF94 AFA20144 */ sw $v0, 0x144($sp) /* 00DB98 8000CF98 A2000000 */ sb $zero, ($s0) /* 00DB9C 8000CF9C 0C01B067 */ jal func_8006C19C @@ -258,9 +258,9 @@ glabel func_8000CC7C /* 00DC18 8000D018 24010002 */ li $at, 2 .L8000D01C: /* 00DC1C 8000D01C 8FAD0144 */ lw $t5, 0x144($sp) -/* 00DC20 8000D020 3C018012 */ lui $at, %hi(gObjectCount) # $at, 0x8012 +/* 00DC20 8000D020 3C018012 */ lui $at, %hi(gNumRacers) # $at, 0x8012 /* 00DC24 8000D024 0C01B0BC */ jal func_8006C2F0 -/* 00DC28 8000D028 AC2DAEF0 */ sw $t5, %lo(gObjectCount)($at) +/* 00DC28 8000D028 AC2DAEF0 */ sw $t5, %lo(gNumRacers)($at) /* 00DC2C 8000D02C 14400010 */ bnez $v0, .L8000D070 /* 00DC30 8000D030 3C03800E */ lui $v1, %hi(D_800DC708) # $v1, 0x800e /* 00DC34 8000D034 2463C708 */ addiu $v1, %lo(D_800DC708) # addiu $v1, $v1, -0x38f8 @@ -277,23 +277,23 @@ glabel func_8000CC7C /* 00DC5C 8000D05C 8FB80064 */ lw $t8, 0x64($sp) /* 00DC60 8000D060 0C027110 */ jal get_multiplayer_racer_count /* 00DC64 8000D064 00000000 */ nop -/* 00DC68 8000D068 3C018012 */ lui $at, %hi(gObjectCount) # $at, 0x8012 -/* 00DC6C 8000D06C AC22AEF0 */ sw $v0, %lo(gObjectCount)($at) +/* 00DC68 8000D068 3C018012 */ lui $at, %hi(gNumRacers) # $at, 0x8012 +/* 00DC6C 8000D06C AC22AEF0 */ sw $v0, %lo(gNumRacers)($at) .L8000D070: /* 00DC70 8000D070 8FB80064 */ lw $t8, 0x64($sp) .L8000D074: /* 00DC74 8000D074 3C058012 */ lui $a1, %hi(D_8011AD3C) # $a1, 0x8012 /* 00DC78 8000D078 13000005 */ beqz $t8, .L8000D090 /* 00DC7C 8000D07C 24A5AD3C */ addiu $a1, %lo(D_8011AD3C) # addiu $a1, $a1, -0x52c4 -/* 00DC80 8000D080 3C068012 */ lui $a2, %hi(gObjectCount) # $a2, 0x8012 -/* 00DC84 8000D084 24C6AEF0 */ addiu $a2, %lo(gObjectCount) # addiu $a2, $a2, -0x5110 +/* 00DC80 8000D080 3C068012 */ lui $a2, %hi(gNumRacers) # $a2, 0x8012 +/* 00DC84 8000D084 24C6AEF0 */ addiu $a2, %lo(gNumRacers) # addiu $a2, $a2, -0x5110 /* 00DC88 8000D088 240D0004 */ li $t5, 4 /* 00DC8C 8000D08C ACCD0000 */ sw $t5, ($a2) .L8000D090: /* 00DC90 8000D090 8FB90068 */ lw $t9, 0x68($sp) -/* 00DC94 8000D094 3C068012 */ lui $a2, %hi(gObjectCount) # $a2, 0x8012 +/* 00DC94 8000D094 3C068012 */ lui $a2, %hi(gNumRacers) # $a2, 0x8012 /* 00DC98 8000D098 24010008 */ li $at, 8 -/* 00DC9C 8000D09C 24C6AEF0 */ addiu $a2, %lo(gObjectCount) # addiu $a2, $a2, -0x5110 +/* 00DC9C 8000D09C 24C6AEF0 */ addiu $a2, %lo(gNumRacers) # addiu $a2, $a2, -0x5110 /* 00DCA0 8000D0A0 17210006 */ bne $t9, $at, .L8000D0BC /* 00DCA4 8000D0A4 A0A00000 */ sb $zero, ($a1) /* 00DCA8 8000D0A8 24070001 */ li $a3, 1 @@ -512,11 +512,11 @@ glabel func_8000CC7C /* 00DF80 8000D380 24190001 */ li $t9, 1 /* 00DF84 8000D384 01F50019 */ multu $t7, $s5 /* 00DF88 8000D388 A0590000 */ sb $t9, ($v0) -/* 00DF8C 8000D38C 3C038012 */ lui $v1, %hi(gObjectCount) # $v1, 0x8012 +/* 00DF8C 8000D38C 3C038012 */ lui $v1, %hi(gNumRacers) # $v1, 0x8012 /* 00DF90 8000D390 0000C012 */ mflo $t8 /* 00DF94 8000D394 02F86821 */ addu $t5, $s7, $t8 /* 00DF98 8000D398 A1B2005A */ sb $s2, 0x5a($t5) -/* 00DF9C 8000D39C 8C63AEF0 */ lw $v1, %lo(gObjectCount)($v1) +/* 00DF9C 8000D39C 8C63AEF0 */ lw $v1, %lo(gNumRacers)($v1) /* 00DFA0 8000D3A0 00000000 */ nop /* 00DFA4 8000D3A4 00609025 */ move $s2, $v1 .L8000D3A8: @@ -544,7 +544,7 @@ glabel func_8000CC7C /* 00DFF4 8000D3F4 832E004D */ lb $t6, 0x4d($t9) /* 00DFF8 8000D3F8 2419FFFF */ li $t9, -1 /* 00DFFC 8000D3FC 15C00004 */ bnez $t6, .L8000D410 -/* 00E000 8000D400 3C038012 */ lui $v1, %hi(gObjectCount) # $v1, 0x8012 +/* 00E000 8000D400 3C038012 */ lui $v1, %hi(gNumRacers) # $v1, 0x8012 /* 00E004 8000D404 3C018012 */ lui $at, %hi(gIsNonCarRacers) # $at, 0x8012 /* 00E008 8000D408 10000004 */ b .L8000D41C /* 00E00C 8000D40C A020AE02 */ sb $zero, %lo(gIsNonCarRacers)($at) @@ -554,7 +554,7 @@ glabel func_8000CC7C /* 00E018 8000D418 A02FAE02 */ sb $t7, %lo(gIsNonCarRacers)($at) .L8000D41C: /* 00E01C 8000D41C 8FB80078 */ lw $t8, 0x78($sp) -/* 00E020 8000D420 8C63AEF0 */ lw $v1, %lo(gObjectCount)($v1) +/* 00E020 8000D420 8C63AEF0 */ lw $v1, %lo(gNumRacers)($v1) /* 00E024 8000D424 830D00B8 */ lb $t5, 0xb8($t8) /* 00E028 8000D428 3C018012 */ lui $at, %hi(D_8011AD24+1) # $at, 0x8012 /* 00E02C 8000D42C A3B90127 */ sb $t9, 0x127($sp) @@ -628,20 +628,20 @@ glabel func_8000CC7C /* 00E120 8000D520 3C188012 */ lui $t8, %hi(D_8011AD24+1) # $t8, 0x8012 /* 00E124 8000D524 3C0E8012 */ lui $t6, %hi(D_8011AD24+1) # $t6, 0x8012 /* 00E128 8000D528 81CEAD25 */ lb $t6, %lo(D_8011AD24+1)($t6) -# Indexing into D_800DC820 only reading the MSB? -/* 00E12C 8000D52C 3C1E800E */ lui $fp, %hi(D_800DC820) # $fp, 0x800e +# Indexing into gBossVehicles only reading the MSB? +/* 00E12C 8000D52C 3C1E800E */ lui $fp, %hi(gBossVehicles) # $fp, 0x800e /* 00E130 8000D530 000E7840 */ sll $t7, $t6, 1 /* 00E134 8000D534 03CFF021 */ addu $fp, $fp, $t7 -/* 00E138 8000D538 83DEC820 */ lb $fp, %lo(D_800DC820)($fp) +/* 00E138 8000D538 83DEC820 */ lb $fp, %lo(gBossVehicles)($fp) /* 00E13C 8000D53C 10000028 */ b .L8000D5E0 /* 00E140 8000D540 00000000 */ nop .L8000D544: /* 00E144 8000D544 8318AD25 */ lb $t8, %lo(D_8011AD24+1)($t8) -# Indexing into D_800DC820 only reading the LSB? -/* 00E148 8000D548 3C1E800E */ lui $fp, %hi(D_800DC820) # $fp, 0x800e +# Indexing into gBossVehicles only reading the LSB? +/* 00E148 8000D548 3C1E800E */ lui $fp, %hi(gBossVehicles) # $fp, 0x800e /* 00E14C 8000D54C 00186840 */ sll $t5, $t8, 1 /* 00E150 8000D550 03CDF021 */ addu $fp, $fp, $t5 -/* 00E154 8000D554 83DEC821 */ lb $fp, %lo(D_800DC820+1)($fp) +/* 00E154 8000D554 83DEC821 */ lb $fp, %lo(gBossVehicles+1)($fp) /* 00E158 8000D558 10000021 */ b .L8000D5E0 /* 00E15C 8000D55C 00000000 */ nop .L8000D560: @@ -803,17 +803,17 @@ glabel func_8000CC7C /* 00E394 8000D794 8FA60054 */ lw $a2, 0x54($sp) /* 00E398 8000D798 8F0F0000 */ lw $t7, ($t8) /* 00E39C 8000D79C 8FA7005C */ lw $a3, 0x5c($sp) -/* 00E3A0 8000D7A0 3C0D8012 */ lui $t5, %hi(gObjectStructArrayPtr) # $t5, 0x8012 +/* 00E3A0 8000D7A0 3C0D8012 */ lui $t5, %hi(gRacers) # $t5, 0x8012 /* 00E3A4 8000D7A4 A44F0000 */ sh $t7, ($v0) -/* 00E3A8 8000D7A8 8DADAEE4 */ lw $t5, %lo(gObjectStructArrayPtr)($t5) -/* 00E3AC 8000D7AC 3C198012 */ lui $t9, %hi(D_8011AEE8) # $t9, 0x8012 +/* 00E3A8 8000D7A8 8DADAEE4 */ lw $t5, %lo(gRacers)($t5) +/* 00E3AC 8000D7AC 3C198012 */ lui $t9, %hi(gRacersByPosition) # $t9, 0x8012 /* 00E3B0 8000D7B0 01A67021 */ addu $t6, $t5, $a2 /* 00E3B4 8000D7B4 ADC20000 */ sw $v0, ($t6) -/* 00E3B8 8000D7B8 8F39AEE8 */ lw $t9, %lo(D_8011AEE8)($t9) -/* 00E3BC 8000D7BC 3C0F8012 */ lui $t7, %hi(D_8011AEEC) # $t7, 0x8012 +/* 00E3B8 8000D7B8 8F39AEE8 */ lw $t9, %lo(gRacersByPosition)($t9) +/* 00E3BC 8000D7BC 3C0F8012 */ lui $t7, %hi(gRacersByPort) # $t7, 0x8012 /* 00E3C0 8000D7C0 0326C021 */ addu $t8, $t9, $a2 /* 00E3C4 8000D7C4 AF020000 */ sw $v0, ($t8) -/* 00E3C8 8000D7C8 8DEFAEEC */ lw $t7, %lo(D_8011AEEC)($t7) +/* 00E3C8 8000D7C8 8DEFAEEC */ lw $t7, %lo(gRacersByPort)($t7) /* 00E3CC 8000D7CC 00146880 */ sll $t5, $s4, 2 /* 00E3D0 8000D7D0 01ED7021 */ addu $t6, $t7, $t5 /* 00E3D4 8000D7D4 ADC20000 */ sw $v0, ($t6) @@ -946,8 +946,8 @@ glabel L8000D98C /* 00E58C 8000D98C 8FA40068 */ lw $a0, 0x68($sp) /* 00E590 8000D990 24020005 */ li $v0, 5 .L8000D994: -/* 00E594 8000D994 3C038012 */ lui $v1, %hi(gObjectCount) # $v1, 0x8012 -/* 00E598 8000D998 8C63AEF0 */ lw $v1, %lo(gObjectCount)($v1) +/* 00E594 8000D994 3C038012 */ lui $v1, %hi(gNumRacers) # $v1, 0x8012 +/* 00E598 8000D998 8C63AEF0 */ lw $v1, %lo(gNumRacers)($v1) /* 00E59C 8000D99C 26100001 */ addiu $s0, $s0, 1 /* 00E5A0 8000D9A0 0203082A */ slt $at, $s0, $v1 /* 00E5A4 8000D9A4 1420FEA6 */ bnez $at, .L8000D440 @@ -1148,16 +1148,16 @@ glabel L8000D98C /* 00E888 8000DC88 00000000 */ nop /* 00E88C 8000DC8C A26D01F7 */ sb $t5, 0x1f7($s3) .L8000DC90: -/* 00E890 8000DC90 3C0E8012 */ lui $t6, %hi(gObjectCount) # $t6, 0x8012 -/* 00E894 8000DC94 8DCEAEF0 */ lw $t6, %lo(gObjectCount)($t6) +/* 00E890 8000DC90 3C0E8012 */ lui $t6, %hi(gNumRacers) # $t6, 0x8012 +/* 00E894 8000DC94 8DCEAEF0 */ lw $t6, %lo(gNumRacers)($t6) /* 00E898 8000DC98 24180064 */ li $t8, 100 /* 00E89C 8000DC9C 3C018012 */ lui $at, %hi(D_8011ADB0) # $at, 0x8012 /* 00E8A0 8000DCA0 19C00068 */ blez $t6, .L8000DE44 /* 00E8A4 8000DCA4 AC38ADB0 */ sw $t8, %lo(D_8011ADB0)($at) /* 00E8A8 8000DCA8 0000A825 */ move $s5, $zero .L8000DCAC: -/* 00E8AC 8000DCAC 3C198012 */ lui $t9, %hi(gObjectStructArrayPtr) # $t9, 0x8012 -/* 00E8B0 8000DCB0 8F39AEE4 */ lw $t9, %lo(gObjectStructArrayPtr)($t9) +/* 00E8AC 8000DCAC 3C198012 */ lui $t9, %hi(gRacers) # $t9, 0x8012 +/* 00E8B0 8000DCB0 8F39AEE4 */ lw $t9, %lo(gRacers)($t9) /* 00E8B4 8000DCB4 00008025 */ move $s0, $zero /* 00E8B8 8000DCB8 03357821 */ addu $t7, $t9, $s5 /* 00E8BC 8000DCBC 8DF10000 */ lw $s1, ($t7) @@ -1259,10 +1259,10 @@ glabel L8000D98C .L8000DE1C: /* 00EA1C 8000DE1C 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 00EA20 8000DE20 44810000 */ mtc1 $at, $f0 -/* 00EA24 8000DE24 3C0D8012 */ lui $t5, %hi(gObjectCount) # $t5, 0x8012 +/* 00EA24 8000DE24 3C0D8012 */ lui $t5, %hi(gNumRacers) # $t5, 0x8012 /* 00EA28 8000DE28 E6600090 */ swc1 $f0, 0x90($s3) /* 00EA2C 8000DE2C E660008C */ swc1 $f0, 0x8c($s3) -/* 00EA30 8000DE30 8DADAEF0 */ lw $t5, %lo(gObjectCount)($t5) +/* 00EA30 8000DE30 8DADAEF0 */ lw $t5, %lo(gNumRacers)($t5) /* 00EA34 8000DE34 26520001 */ addiu $s2, $s2, 1 /* 00EA38 8000DE38 024D082A */ slt $at, $s2, $t5 /* 00EA3C 8000DE3C 1420FF9B */ bnez $at, .L8000DCAC diff --git a/asm/non_matchings/objects/func_80010994.s b/asm/non_matchings/objects/func_80010994.s index 8f606e4f..6f6dbe9c 100644 --- a/asm/non_matchings/objects/func_80010994.s +++ b/asm/non_matchings/objects/func_80010994.s @@ -39,7 +39,7 @@ glabel func_80010994 /* 011624 80010A24 00000000 */ nop .L80010A28: /* 011628 80010A28 1C400003 */ bgtz $v0, .L80010A38 -/* 01162C 80010A2C 3C048012 */ lui $a0, %hi(gObjectCount) # $a0, 0x8012 +/* 01162C 80010A2C 3C048012 */ lui $a0, %hi(gNumRacers) # $a0, 0x8012 /* 011630 80010A30 3C018012 */ lui $at, %hi(D_8011ADB0) # $at, 0x8012 /* 011634 80010A34 AC20ADB0 */ sw $zero, %lo(D_8011ADB0)($at) .L80010A38: @@ -54,13 +54,13 @@ glabel func_80010994 /* 011658 80010A58 804B0000 */ lb $t3, ($v0) /* 01165C 80010A5C 3C018012 */ lui $at, %hi(D_8011AD22) # $at, 0x8012 /* 011660 80010A60 002B0821 */ addu $at, $at, $t3 -/* 011664 80010A64 2484AEF0 */ addiu $a0, %lo(gObjectCount) # addiu $a0, $a0, -0x5110 +/* 011664 80010A64 2484AEF0 */ addiu $a0, %lo(gNumRacers) # addiu $a0, $a0, -0x5110 /* 011668 80010A68 A020AD22 */ sb $zero, %lo(D_8011AD22)($at) /* 01166C 80010A6C 8C8C0000 */ lw $t4, ($a0) /* 011670 80010A70 00009825 */ move $s3, $zero /* 011674 80010A74 19800021 */ blez $t4, .L80010AFC -/* 011678 80010A78 3C158012 */ lui $s5, %hi(gObjectStructArrayPtr) # $s5, 0x8012 -/* 01167C 80010A7C 26B5AEE4 */ addiu $s5, %lo(gObjectStructArrayPtr) # addiu $s5, $s5, -0x511c +/* 011678 80010A78 3C158012 */ lui $s5, %hi(gRacers) # $s5, 0x8012 +/* 01167C 80010A7C 26B5AEE4 */ addiu $s5, %lo(gRacers) # addiu $s5, $s5, -0x511c /* 011680 80010A80 00001825 */ move $v1, $zero .L80010A84: /* 011684 80010A84 8EAD0000 */ lw $t5, ($s5) @@ -94,9 +94,9 @@ glabel func_80010994 /* 0116F4 80010AF4 1420FFE3 */ bnez $at, .L80010A84 /* 0116F8 80010AF8 00000000 */ nop .L80010AFC: -/* 0116FC 80010AFC 3C158012 */ lui $s5, %hi(gObjectStructArrayPtr) # $s5, 0x8012 +/* 0116FC 80010AFC 3C158012 */ lui $s5, %hi(gRacers) # $s5, 0x8012 /* 011700 80010B00 0C0050AE */ jal func_800142B8 -/* 011704 80010B04 26B5AEE4 */ addiu $s5, %lo(gObjectStructArrayPtr) # addiu $s5, $s5, -0x511c +/* 011704 80010B04 26B5AEE4 */ addiu $s5, %lo(gRacers) # addiu $s5, $s5, -0x511c /* 011708 80010B08 0C00556E */ jal func_800155B8 /* 01170C 80010B0C 00000000 */ nop /* 011710 80010B10 0C007A27 */ jal func_8001E89C @@ -237,8 +237,8 @@ glabel func_80010994 /* 0118F8 80010CF8 1420FFBB */ bnez $at, .L80010BE8 /* 0118FC 80010CFC 00000000 */ nop .L80010D00: -/* 011900 80010D00 3C0C8012 */ lui $t4, %hi(gObjectCount) # $t4, 0x8012 -/* 011904 80010D04 8D8CAEF0 */ lw $t4, %lo(gObjectCount)($t4) +/* 011900 80010D00 3C0C8012 */ lui $t4, %hi(gNumRacers) # $t4, 0x8012 +/* 011904 80010D04 8D8CAEF0 */ lw $t4, %lo(gNumRacers)($t4) /* 011908 80010D08 3C168012 */ lui $s6, %hi(gObjPtrList) # $s6, 0x8012 /* 01190C 80010D0C 26D6AE58 */ addiu $s6, %lo(gObjPtrList) # addiu $s6, $s6, -0x51a8 /* 011910 80010D10 1980000E */ blez $t4, .L80010D4C @@ -251,8 +251,8 @@ glabel func_80010994 /* 011928 80010D28 8DC40000 */ lw $a0, ($t6) /* 01192C 80010D2C 0C01378E */ jal update_player_racer /* 011930 80010D30 00000000 */ nop -/* 011934 80010D34 3C0F8012 */ lui $t7, %hi(gObjectCount) # $t7, 0x8012 -/* 011938 80010D38 8DEFAEF0 */ lw $t7, %lo(gObjectCount)($t7) +/* 011934 80010D34 3C0F8012 */ lui $t7, %hi(gNumRacers) # $t7, 0x8012 +/* 011938 80010D38 8DEFAEF0 */ lw $t7, %lo(gNumRacers)($t7) /* 01193C 80010D3C 26310001 */ addiu $s1, $s1, 1 /* 011940 80010D40 022F082A */ slt $at, $s1, $t7 /* 011944 80010D44 1420FFF5 */ bnez $at, .L80010D1C @@ -261,13 +261,13 @@ glabel func_80010994 /* 01194C 80010D4C 0C01AF66 */ jal get_current_level_race_type /* 011950 80010D50 00000000 */ nop /* 011954 80010D54 1440001C */ bnez $v0, .L80010DC8 -/* 011958 80010D58 3C078012 */ lui $a3, %hi(gObjectCount) # $a3, 0x8012 -/* 01195C 80010D5C 8CE7AEF0 */ lw $a3, %lo(gObjectCount)($a3) +/* 011958 80010D58 3C078012 */ lui $a3, %hi(gNumRacers) # $a3, 0x8012 +/* 01195C 80010D5C 8CE7AEF0 */ lw $a3, %lo(gNumRacers)($a3) /* 011960 80010D60 00008825 */ move $s1, $zero /* 011964 80010D64 18E00018 */ blez $a3, .L80010DC8 /* 011968 80010D68 2412FFFF */ li $s2, -1 -/* 01196C 80010D6C 3C108012 */ lui $s0, %hi(D_8011AEE8) # $s0, 0x8012 -/* 011970 80010D70 2610AEE8 */ addiu $s0, %lo(D_8011AEE8) # addiu $s0, $s0, -0x5118 +/* 01196C 80010D6C 3C108012 */ lui $s0, %hi(gRacersByPosition) # $s0, 0x8012 +/* 011970 80010D70 2610AEE8 */ addiu $s0, %lo(gRacersByPosition) # addiu $s0, $s0, -0x5118 .L80010D74: /* 011974 80010D74 8E180000 */ lw $t8, ($s0) /* 011978 80010D78 0011C880 */ sll $t9, $s1, 2 @@ -282,8 +282,8 @@ glabel func_80010994 /* 01199C 80010D9C 26310001 */ addiu $s1, $s1, 1 /* 0119A0 80010DA0 0C010FB3 */ jal func_80043ECC /* 0119A4 80010DA4 02803025 */ move $a2, $s4 -/* 0119A8 80010DA8 3C078012 */ lui $a3, %hi(gObjectCount) # $a3, 0x8012 -/* 0119AC 80010DAC 8CE7AEF0 */ lw $a3, %lo(gObjectCount)($a3) +/* 0119A8 80010DA8 3C078012 */ lui $a3, %hi(gNumRacers) # $a3, 0x8012 +/* 0119AC 80010DAC 8CE7AEF0 */ lw $a3, %lo(gNumRacers)($a3) /* 0119B0 80010DB0 00000000 */ nop /* 0119B4 80010DB4 00E08825 */ move $s1, $a3 /* 0119B8 80010DB8 26310001 */ addiu $s1, $s1, 1 @@ -428,8 +428,8 @@ glabel func_80010994 /* 011BAC 80010FAC 0C007A4F */ jal func_8001E93C /* 011BB0 80010FB0 00000000 */ nop .L80010FB4: -/* 011BB4 80010FB4 3C078012 */ lui $a3, %hi(gObjectCount) # $a3, 0x8012 -/* 011BB8 80010FB8 8CE7AEF0 */ lw $a3, %lo(gObjectCount)($a3) +/* 011BB4 80010FB4 3C078012 */ lui $a3, %hi(gNumRacers) # $a3, 0x8012 +/* 011BB8 80010FB8 8CE7AEF0 */ lw $a3, %lo(gNumRacers)($a3) /* 011BBC 80010FBC 3C098012 */ lui $t1, %hi(D_8011AD4E) # $t1, 0x8012 /* 011BC0 80010FC0 10E00010 */ beqz $a3, .L80011004 /* 011BC4 80010FC4 00000000 */ nop @@ -439,19 +439,19 @@ glabel func_80010994 /* 011BD4 80010FD4 00000000 */ nop /* 011BD8 80010FD8 0C006602 */ jal func_80019808 /* 011BDC 80010FDC 02802025 */ move $a0, $s4 -/* 011BE0 80010FE0 3C078012 */ lui $a3, %hi(gObjectCount) # $a3, 0x8012 -/* 011BE4 80010FE4 8CE7AEF0 */ lw $a3, %lo(gObjectCount)($a3) +/* 011BE0 80010FE0 3C078012 */ lui $a3, %hi(gNumRacers) # $a3, 0x8012 +/* 011BE4 80010FE4 8CE7AEF0 */ lw $a3, %lo(gNumRacers)($a3) /* 011BE8 80010FE8 10000006 */ b .L80011004 /* 011BEC 80010FEC 00000000 */ nop .L80010FF0: /* 011BF0 80010FF0 0C006A3D */ jal func_8001A8F4 /* 011BF4 80010FF4 02802025 */ move $a0, $s4 -/* 011BF8 80010FF8 3C078012 */ lui $a3, %hi(gObjectCount) # $a3, 0x8012 -/* 011BFC 80010FFC 8CE7AEF0 */ lw $a3, %lo(gObjectCount)($a3) +/* 011BF8 80010FF8 3C078012 */ lui $a3, %hi(gNumRacers) # $a3, 0x8012 +/* 011BFC 80010FFC 8CE7AEF0 */ lw $a3, %lo(gNumRacers)($a3) /* 011C00 80011000 00000000 */ nop .L80011004: -/* 011C04 80011004 3C048012 */ lui $a0, %hi(D_8011AEEC) # $a0, 0x8012 -/* 011C08 80011008 8C84AEEC */ lw $a0, %lo(D_8011AEEC)($a0) +/* 011C04 80011004 3C048012 */ lui $a0, %hi(gRacersByPort) # $a0, 0x8012 +/* 011C08 80011008 8C84AEEC */ lw $a0, %lo(gRacersByPort)($a0) /* 011C0C 8001100C 00E02825 */ move $a1, $a3 /* 011C10 80011010 0C00210E */ jal func_80008438 /* 011C14 80011014 02803025 */ move $a2, $s4 diff --git a/asm/non_matchings/objects/func_80016DE8.s b/asm/non_matchings/objects/func_80016DE8.s index 7d4a684e..6d0e1efd 100644 --- a/asm/non_matchings/objects/func_80016DE8.s +++ b/asm/non_matchings/objects/func_80016DE8.s @@ -1,8 +1,8 @@ glabel func_80016DE8 /* 0179E8 80016DE8 27BDFF48 */ addiu $sp, $sp, -0xb8 /* 0179EC 80016DEC AFB6004C */ sw $s6, 0x4c($sp) -/* 0179F0 80016DF0 3C168012 */ lui $s6, %hi(gObjectCount) # $s6, 0x8012 -/* 0179F4 80016DF4 26D6AEF0 */ addiu $s6, %lo(gObjectCount) # addiu $s6, $s6, -0x5110 +/* 0179F0 80016DF0 3C168012 */ lui $s6, %hi(gNumRacers) # $s6, 0x8012 +/* 0179F4 80016DF4 26D6AEF0 */ addiu $s6, %lo(gNumRacers) # addiu $s6, $s6, -0x5110 /* 0179F8 80016DF8 8EC20000 */ lw $v0, ($s6) /* 0179FC 80016DFC E7BA002C */ swc1 $f26, 0x2c($sp) /* 017A00 80016E00 E7B6001C */ swc1 $f22, 0x1c($sp) @@ -28,10 +28,10 @@ glabel func_80016DE8 /* 017A50 80016E50 0000A025 */ move $s4, $zero /* 017A54 80016E54 1840003C */ blez $v0, .L80016F48 /* 017A58 80016E58 00008825 */ move $s1, $zero -/* 017A5C 80016E5C 3C138012 */ lui $s3, %hi(gObjectStructArrayPtr) # $s3, 0x8012 +/* 017A5C 80016E5C 3C138012 */ lui $s3, %hi(gRacers) # $s3, 0x8012 /* 017A60 80016E60 8FB500C8 */ lw $s5, 0xc8($sp) /* 017A64 80016E64 8FB000CC */ lw $s0, 0xcc($sp) -/* 017A68 80016E68 2673AEE4 */ addiu $s3, %lo(gObjectStructArrayPtr) # addiu $s3, $s3, -0x511c +/* 017A68 80016E68 2673AEE4 */ addiu $s3, %lo(gRacers) # addiu $s3, $s3, -0x511c /* 017A6C 80016E6C 00009025 */ move $s2, $zero /* 017A70 80016E70 27B70098 */ addiu $s7, $sp, 0x98 .L80016E74: diff --git a/asm/non_matchings/objects/func_80019808.s b/asm/non_matchings/objects/func_80019808.s index 56758ea8..3471c056 100644 --- a/asm/non_matchings/objects/func_80019808.s +++ b/asm/non_matchings/objects/func_80019808.s @@ -27,8 +27,8 @@ glabel func_80019808 /* 01A46C 8001986C 11C003D0 */ beqz $t6, .L8001A7B0 /* 01A470 80019870 24010042 */ li $at, 66 /* 01A474 80019874 14610008 */ bne $v1, $at, .L80019898 -/* 01A478 80019878 3C0B8012 */ lui $t3, %hi(gObjectStructArrayPtr) # $t3, 0x8012 -/* 01A47C 8001987C 256BAEE4 */ addiu $t3, %lo(gObjectStructArrayPtr) # addiu $t3, $t3, -0x511c +/* 01A478 80019878 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 01A47C 8001987C 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c /* 01A480 80019880 8D640000 */ lw $a0, ($t3) /* 01A484 80019884 AFBF0064 */ sw $ra, 0x64($sp) /* 01A488 80019888 0C01144A */ jal func_80045128 @@ -38,11 +38,11 @@ glabel func_80019808 .L80019898: /* 01A498 80019898 3C0F8012 */ lui $t7, %hi(D_8011ADB4) # $t7, 0x8012 /* 01A49C 8001989C 8DEFADB4 */ lw $t7, %lo(D_8011ADB4)($t7) -/* 01A4A0 800198A0 3C0B8012 */ lui $t3, %hi(gObjectStructArrayPtr) # $t3, 0x8012 +/* 01A4A0 800198A0 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 /* 01A4A4 800198A4 15E003C2 */ bnez $t7, .L8001A7B0 -/* 01A4A8 800198A8 256BAEE4 */ addiu $t3, %lo(gObjectStructArrayPtr) # addiu $t3, $t3, -0x511c -/* 01A4AC 800198AC 3C128012 */ lui $s2, %hi(gObjectCount) # $s2, 0x8012 -/* 01A4B0 800198B0 2652AEF0 */ addiu $s2, %lo(gObjectCount) # addiu $s2, $s2, -0x5110 +/* 01A4A8 800198A8 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c +/* 01A4AC 800198AC 3C128012 */ lui $s2, %hi(gNumRacers) # $s2, 0x8012 +/* 01A4B0 800198B0 2652AEF0 */ addiu $s2, %lo(gNumRacers) # addiu $s2, $s2, -0x5110 /* 01A4B4 800198B4 8E470000 */ lw $a3, ($s2) /* 01A4B8 800198B8 00008025 */ move $s0, $zero /* 01A4BC 800198BC 18E00066 */ blez $a3, .L80019A58 @@ -86,8 +86,8 @@ glabel func_80019808 /* 01A550 80019950 AFAA0044 */ sw $t2, 0x44($sp) /* 01A554 80019954 0C001AB2 */ jal func_80006AC8 /* 01A558 80019958 AFA5004C */ sw $a1, 0x4c($sp) -/* 01A55C 8001995C 3C0B8012 */ lui $t3, %hi(gObjectStructArrayPtr) # $t3, 0x8012 -/* 01A560 80019960 256BAEE4 */ addiu $t3, %lo(gObjectStructArrayPtr) # addiu $t3, $t3, -0x511c +/* 01A55C 8001995C 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 01A560 80019960 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c /* 01A564 80019964 8FAA0044 */ lw $t2, 0x44($sp) /* 01A568 80019968 8D6E0000 */ lw $t6, ($t3) /* 01A56C 8001996C 8FA5004C */ lw $a1, 0x4c($sp) @@ -478,13 +478,13 @@ glabel func_80019808 /* 01AAD4 80019ED4 10000236 */ b .L8001A7B0 /* 01AAD8 80019ED8 AC34ADB4 */ sw $s4, %lo(D_8011ADB4)($at) .L80019EDC: -/* 01AADC 80019EDC 3C078012 */ lui $a3, %hi(gObjectCount) # $a3, 0x8012 -/* 01AAE0 80019EE0 3C128012 */ lui $s2, %hi(gObjectCount) # $s2, 0x8012 -/* 01AAE4 80019EE4 3C0B8012 */ lui $t3, %hi(gObjectStructArrayPtr) # $t3, 0x8012 -/* 01AAE8 80019EE8 8CE7AEF0 */ lw $a3, %lo(gObjectCount)($a3) +/* 01AADC 80019EDC 3C078012 */ lui $a3, %hi(gNumRacers) # $a3, 0x8012 +/* 01AAE0 80019EE0 3C128012 */ lui $s2, %hi(gNumRacers) # $s2, 0x8012 +/* 01AAE4 80019EE4 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 01AAE8 80019EE8 8CE7AEF0 */ lw $a3, %lo(gNumRacers)($a3) /* 01AAEC 80019EEC 00008025 */ move $s0, $zero -/* 01AAF0 80019EF0 256BAEE4 */ addiu $t3, %lo(gObjectStructArrayPtr) # addiu $t3, $t3, -0x511c -/* 01AAF4 80019EF4 2652AEF0 */ addiu $s2, %lo(gObjectCount) # addiu $s2, $s2, -0x5110 +/* 01AAF0 80019EF0 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c +/* 01AAF4 80019EF4 2652AEF0 */ addiu $s2, %lo(gNumRacers) # addiu $s2, $s2, -0x5110 /* 01AAF8 80019EF8 00005025 */ move $t2, $zero /* 01AAFC 80019EFC 240D000A */ li $t5, 10 .L80019F00: @@ -608,11 +608,11 @@ glabel func_80019808 /* 01ACB0 8001A0B0 AFAA0044 */ sw $t2, 0x44($sp) /* 01ACB4 8001A0B4 8FA80080 */ lw $t0, 0x80($sp) /* 01ACB8 8001A0B8 8FAA0044 */ lw $t2, 0x44($sp) -/* 01ACBC 8001A0BC 3C0B8012 */ lui $t3, %hi(gObjectStructArrayPtr) # $t3, 0x8012 +/* 01ACBC 8001A0BC 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 /* 01ACC0 8001A0C0 8FBF0064 */ lw $ra, 0x64($sp) /* 01ACC4 8001A0C4 24010004 */ li $at, 4 /* 01ACC8 8001A0C8 10410019 */ beq $v0, $at, .L8001A130 -/* 01ACCC 8001A0CC 256BAEE4 */ addiu $t3, %lo(gObjectStructArrayPtr) # addiu $t3, $t3, -0x511c +/* 01ACCC 8001A0CC 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c /* 01ACD0 8001A0D0 A11401D8 */ sb $s4, 0x1d8($t0) /* 01ACD4 8001A0D4 8E380000 */ lw $t8, ($s1) /* 01ACD8 8001A0D8 00000000 */ nop @@ -629,12 +629,12 @@ glabel func_80019808 /* 01AD04 8001A104 AFA80080 */ sw $t0, 0x80($sp) /* 01AD08 8001A108 0C000741 */ jal play_sound_global /* 01AD0C 8001A10C AFAA0044 */ sw $t2, 0x44($sp) -/* 01AD10 8001A110 3C0B8012 */ lui $t3, %hi(gObjectStructArrayPtr) # $t3, 0x8012 +/* 01AD10 8001A110 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 /* 01AD14 8001A114 8FA80080 */ lw $t0, 0x80($sp) /* 01AD18 8001A118 8FAA0044 */ lw $t2, 0x44($sp) /* 01AD1C 8001A11C 8FBF0064 */ lw $ra, 0x64($sp) /* 01AD20 8001A120 8E220000 */ lw $v0, ($s1) -/* 01AD24 8001A124 256BAEE4 */ addiu $t3, %lo(gObjectStructArrayPtr) # addiu $t3, $t3, -0x511c +/* 01AD24 8001A124 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c .L8001A128: /* 01AD28 8001A128 244E0001 */ addiu $t6, $v0, 1 .L8001A12C: @@ -667,9 +667,9 @@ glabel func_80019808 /* 01AD88 8001A188 0143082A */ slt $at, $t2, $v1 /* 01AD8C 8001A18C 1420FFB5 */ bnez $at, .L8001A064 /* 01AD90 8001A190 00000000 */ nop -/* 01AD94 8001A194 3C098012 */ lui $t1, %hi(D_8011AEE8) # $t1, 0x8012 +/* 01AD94 8001A194 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 /* 01AD98 8001A198 00008025 */ move $s0, $zero -/* 01AD9C 8001A19C 2529AEE8 */ addiu $t1, %lo(D_8011AEE8) # addiu $t1, $t1, -0x5118 +/* 01AD9C 8001A19C 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 /* 01ADA0 8001A1A0 00005025 */ move $t2, $zero .L8001A1A4: /* 01ADA4 8001A1A4 8D380000 */ lw $t8, ($t1) @@ -781,8 +781,8 @@ glabel func_80019808 /* 01AF20 8001A320 8FA50094 */ lw $a1, 0x94($sp) /* 01AF24 8001A324 26100001 */ addiu $s0, $s0, 1 /* 01AF28 8001A328 2A010004 */ slti $at, $s0, 4 -/* 01AF2C 8001A32C 3C0B8012 */ lui $t3, %hi(gObjectStructArrayPtr) # $t3, 0x8012 -/* 01AF30 8001A330 256BAEE4 */ addiu $t3, %lo(gObjectStructArrayPtr) # addiu $t3, $t3, -0x511c +/* 01AF2C 8001A32C 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 01AF30 8001A330 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c /* 01AF34 8001A334 1420FFF7 */ bnez $at, .L8001A314 /* 01AF38 8001A338 00A22825 */ or $a1, $a1, $v0 /* 01AF3C 8001A33C 3C198012 */ lui $t9, %hi(D_8011AEF6) # $t9, 0x8012 @@ -829,23 +829,23 @@ glabel func_80019808 /* 01AFD8 8001A3D8 8FBF0034 */ lw $ra, 0x34($sp) /* 01AFDC 8001A3DC 0C027B20 */ jal is_in_two_player_adventure /* 01AFE0 8001A3E0 A3A0005B */ sb $zero, 0x5b($sp) -/* 01AFE4 8001A3E4 3C098012 */ lui $t1, %hi(D_8011AEE8) # $t1, 0x8012 +/* 01AFE4 8001A3E4 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 /* 01AFE8 8001A3E8 10400010 */ beqz $v0, .L8001A42C -/* 01AFEC 8001A3EC 2529AEE8 */ addiu $t1, %lo(D_8011AEE8) # addiu $t1, $t1, -0x5118 +/* 01AFEC 8001A3EC 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 /* 01AFF0 8001A3F0 87AF0088 */ lh $t7, 0x88($sp) /* 01AFF4 8001A3F4 00000000 */ nop /* 01AFF8 8001A3F8 19E0000D */ blez $t7, .L8001A430 /* 01AFFC 8001A3FC 87AE0088 */ lh $t6, 0x88($sp) /* 01B000 8001A400 0C02658B */ jal get_trophy_race_world_id /* 01B004 8001A404 00000000 */ nop -/* 01B008 8001A408 3C098012 */ lui $t1, %hi(D_8011AEE8) # $t1, 0x8012 +/* 01B008 8001A408 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 /* 01B00C 8001A40C 14400007 */ bnez $v0, .L8001A42C -/* 01B010 8001A410 2529AEE8 */ addiu $t1, %lo(D_8011AEE8) # addiu $t1, $t1, -0x5118 +/* 01B010 8001A410 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 /* 01B014 8001A414 0C0069F6 */ jal func_8001A7D8 /* 01B018 8001A418 02C02025 */ move $a0, $s6 -/* 01B01C 8001A41C 3C098012 */ lui $t1, %hi(D_8011AEE8) # $t1, 0x8012 +/* 01B01C 8001A41C 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 /* 01B020 8001A420 10400002 */ beqz $v0, .L8001A42C -/* 01B024 8001A424 2529AEE8 */ addiu $t1, %lo(D_8011AEE8) # addiu $t1, $t1, -0x5118 +/* 01B024 8001A424 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 /* 01B028 8001A428 A3B4005B */ sb $s4, 0x5b($sp) .L8001A42C: /* 01B02C 8001A42C 87AE0088 */ lh $t6, 0x88($sp) @@ -897,10 +897,10 @@ glabel func_80019808 /* 01B0D0 8001A4D0 0C01A73F */ jal func_80069CFC /* 01B0D4 8001A4D4 00000000 */ nop /* 01B0D8 8001A4D8 8FA80080 */ lw $t0, 0x80($sp) -/* 01B0DC 8001A4DC 3C098012 */ lui $t1, %hi(D_8011AEE8) # $t1, 0x8012 +/* 01B0DC 8001A4DC 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 /* 01B0E0 8001A4E0 8FAA0044 */ lw $t2, 0x44($sp) /* 01B0E4 8001A4E4 240F0005 */ li $t7, 5 -/* 01B0E8 8001A4E8 2529AEE8 */ addiu $t1, %lo(D_8011AEE8) # addiu $t1, $t1, -0x5118 +/* 01B0E8 8001A4E8 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 /* 01B0EC 8001A4EC A44F0036 */ sh $t7, 0x36($v0) .L8001A4F0: /* 01B0F0 8001A4F0 A11401D8 */ sb $s4, 0x1d8($t0) @@ -971,9 +971,9 @@ glabel func_80019808 /* 01B1D8 8001A5D8 A2600000 */ sb $zero, ($s3) /* 01B1DC 8001A5DC 0C027B20 */ jal is_in_two_player_adventure /* 01B1E0 8001A5E0 A3A4005A */ sb $a0, 0x5a($sp) -/* 01B1E4 8001A5E4 3C098012 */ lui $t1, %hi(D_8011AEE8) # $t1, 0x8012 +/* 01B1E4 8001A5E4 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 /* 01B1E8 8001A5E8 10400008 */ beqz $v0, .L8001A60C -/* 01B1EC 8001A5EC 2529AEE8 */ addiu $t1, %lo(D_8011AEE8) # addiu $t1, $t1, -0x5118 +/* 01B1EC 8001A5EC 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 /* 01B1F0 8001A5F0 82D90072 */ lb $t9, 0x72($s6) /* 01B1F4 8001A5F4 82D8005A */ lb $t8, 0x5a($s6) /* 01B1F8 8001A5F8 00000000 */ nop diff --git a/asm/non_matchings/objects/func_8001A7D8.s b/asm/non_matchings/objects/func_8001A7D8.s index 60477af2..6505e73f 100644 --- a/asm/non_matchings/objects/func_8001A7D8.s +++ b/asm/non_matchings/objects/func_8001A7D8.s @@ -1,6 +1,6 @@ glabel func_8001A7D8 -/* 01B3D8 8001A7D8 3C0E8012 */ lui $t6, %hi(D_8011AEE8) # $t6, 0x8012 -/* 01B3DC 8001A7DC 8DCEAEE8 */ lw $t6, %lo(D_8011AEE8)($t6) +/* 01B3D8 8001A7D8 3C0E8012 */ lui $t6, %hi(gRacersByPosition) # $t6, 0x8012 +/* 01B3DC 8001A7DC 8DCEAEE8 */ lw $t6, %lo(gRacersByPosition)($t6) /* 01B3E0 8001A7E0 2401FFFF */ li $at, -1 /* 01B3E4 8001A7E4 8DCF0000 */ lw $t7, ($t6) /* 01B3E8 8001A7E8 3C038012 */ lui $v1, %hi(D_8011ADC4) # $v1, 0x8012 diff --git a/asm/non_matchings/objects/func_8001A8F4.s b/asm/non_matchings/objects/func_8001A8F4.s index 0ed8cde4..33225fdf 100644 --- a/asm/non_matchings/objects/func_8001A8F4.s +++ b/asm/non_matchings/objects/func_8001A8F4.s @@ -37,15 +37,15 @@ glabel func_8001A8F4 /* 01B578 8001A978 860A0000 */ lh $t2, ($s0) /* 01B57C 8001A97C 2401FFFF */ li $at, -1 /* 01B580 8001A980 1541006D */ bne $t2, $at, .L8001AB38 -/* 01B584 8001A984 3C118012 */ lui $s1, %hi(gObjectCount) # $s1, 0x8012 -/* 01B588 8001A988 2631AEF0 */ addiu $s1, %lo(gObjectCount) # addiu $s1, $s1, -0x5110 +/* 01B584 8001A984 3C118012 */ lui $s1, %hi(gNumRacers) # $s1, 0x8012 +/* 01B588 8001A988 2631AEF0 */ addiu $s1, %lo(gNumRacers) # addiu $s1, $s1, -0x5110 /* 01B58C 8001A98C 8E2B0000 */ lw $t3, ($s1) /* 01B590 8001A990 00008025 */ move $s0, $zero /* 01B594 8001A994 19600029 */ blez $t3, .L8001AA3C /* 01B598 8001A998 00001825 */ move $v1, $zero .L8001A99C: -/* 01B59C 8001A99C 3C0C8012 */ lui $t4, %hi(gObjectStructArrayPtr) # $t4, 0x8012 -/* 01B5A0 8001A9A0 8D8CAEE4 */ lw $t4, %lo(gObjectStructArrayPtr)($t4) +/* 01B59C 8001A99C 3C0C8012 */ lui $t4, %hi(gRacers) # $t4, 0x8012 +/* 01B5A0 8001A9A0 8D8CAEE4 */ lw $t4, %lo(gRacers)($t4) /* 01B5A4 8001A9A4 2401FFFF */ li $at, -1 /* 01B5A8 8001A9A8 01836821 */ addu $t5, $t4, $v1 /* 01B5AC 8001A9AC 8DAE0000 */ lw $t6, ($t5) @@ -89,19 +89,19 @@ glabel func_8001A8F4 /* 01B638 8001AA38 24630004 */ addiu $v1, $v1, 4 .L8001AA3C: /* 01B63C 8001AA3C 8FA30030 */ lw $v1, 0x30($sp) -/* 01B640 8001AA40 3C028012 */ lui $v0, %hi(gObjectStructArrayPtr) # $v0, 0x8012 -/* 01B644 8001AA44 8C42AEE4 */ lw $v0, %lo(gObjectStructArrayPtr)($v0) +/* 01B640 8001AA40 3C028012 */ lui $v0, %hi(gRacers) # $v0, 0x8012 +/* 01B644 8001AA44 8C42AEE4 */ lw $v0, %lo(gRacers)($v0) /* 01B648 8001AA48 00034880 */ sll $t1, $v1, 2 /* 01B64C 8001AA4C 00495021 */ addu $t2, $v0, $t1 /* 01B650 8001AA50 8D4B0000 */ lw $t3, ($t2) /* 01B654 8001AA54 8C460000 */ lw $a2, ($v0) -/* 01B658 8001AA58 3C0C8012 */ lui $t4, %hi(gObjectStructArrayPtr) # $t4, 0x8012 +/* 01B658 8001AA58 3C0C8012 */ lui $t4, %hi(gRacers) # $t4, 0x8012 /* 01B65C 8001AA5C AC4B0000 */ sw $t3, ($v0) -/* 01B660 8001AA60 8D8CAEE4 */ lw $t4, %lo(gObjectStructArrayPtr)($t4) -/* 01B664 8001AA64 3C0E8012 */ lui $t6, %hi(gObjectStructArrayPtr) # $t6, 0x8012 +/* 01B660 8001AA60 8D8CAEE4 */ lw $t4, %lo(gRacers)($t4) +/* 01B664 8001AA64 3C0E8012 */ lui $t6, %hi(gRacers) # $t6, 0x8012 /* 01B668 8001AA68 01896821 */ addu $t5, $t4, $t1 /* 01B66C 8001AA6C ADA60000 */ sw $a2, ($t5) -/* 01B670 8001AA70 8DCEAEE4 */ lw $t6, %lo(gObjectStructArrayPtr)($t6) +/* 01B670 8001AA70 8DCEAEE4 */ lw $t6, %lo(gRacers)($t6) /* 01B674 8001AA74 00000000 */ nop /* 01B678 8001AA78 8DC40000 */ lw $a0, ($t6) /* 01B67C 8001AA7C 0C001AB2 */ jal func_80006AC8 @@ -120,10 +120,10 @@ glabel func_8001A8F4 /* 01B6B0 8001AAB0 00002025 */ move $a0, $zero /* 01B6B4 8001AAB4 0C01994B */ jal set_active_viewports_and_object_stack_cap /* 01B6B8 8001AAB8 00002025 */ move $a0, $zero -/* 01B6BC 8001AABC 3C0F8012 */ lui $t7, %hi(gObjectStructArrayPtr) # $t7, 0x8012 -/* 01B6C0 8001AAC0 8DEFAEE4 */ lw $t7, %lo(gObjectStructArrayPtr)($t7) -/* 01B6C4 8001AAC4 3C078012 */ lui $a3, %hi(D_8011AEEC) # $a3, 0x8012 -/* 01B6C8 8001AAC8 24E7AEEC */ addiu $a3, %lo(D_8011AEEC) # addiu $a3, $a3, -0x5114 +/* 01B6BC 8001AABC 3C0F8012 */ lui $t7, %hi(gRacers) # $t7, 0x8012 +/* 01B6C0 8001AAC0 8DEFAEE4 */ lw $t7, %lo(gRacers)($t7) +/* 01B6C4 8001AAC4 3C078012 */ lui $a3, %hi(gRacersByPort) # $a3, 0x8012 +/* 01B6C8 8001AAC8 24E7AEEC */ addiu $a3, %lo(gRacersByPort) # addiu $a3, $a3, -0x5114 /* 01B6CC 8001AACC 8CE40000 */ lw $a0, ($a3) /* 01B6D0 8001AAD0 8DE30000 */ lw $v1, ($t7) /* 01B6D4 8001AAD4 8C860000 */ lw $a2, ($a0) @@ -153,10 +153,10 @@ glabel func_8001A8F4 /* 01B730 8001AB30 A02AAD50 */ sb $t2, %lo(D_8011AD50)($at) /* 01B734 8001AB34 24020001 */ li $v0, 1 .L8001AB38: -/* 01B738 8001AB38 3C118012 */ lui $s1, %hi(gObjectCount) # $s1, 0x8012 +/* 01B738 8001AB38 3C118012 */ lui $s1, %hi(gNumRacers) # $s1, 0x8012 /* 01B73C 8001AB3C 24010001 */ li $at, 1 /* 01B740 8001AB40 14410055 */ bne $v0, $at, .L8001AC98 -/* 01B744 8001AB44 2631AEF0 */ addiu $s1, %lo(gObjectCount) # addiu $s1, $s1, -0x5110 +/* 01B744 8001AB44 2631AEF0 */ addiu $s1, %lo(gNumRacers) # addiu $s1, $s1, -0x5110 /* 01B748 8001AB48 0C02AC75 */ jal func_800AB1D4 /* 01B74C 8001AB4C 00002025 */ move $a0, $zero /* 01B750 8001AB50 3C078012 */ lui $a3, %hi(D_8011AD51) # $a3, 0x8012 @@ -172,10 +172,10 @@ glabel func_8001A8F4 /* 01B778 8001AB78 8E240000 */ lw $a0, ($s1) /* 01B77C 8001AB7C 00008025 */ move $s0, $zero /* 01B780 8001AB80 18800015 */ blez $a0, .L8001ABD8 -/* 01B784 8001AB84 3C058012 */ lui $a1, %hi(D_8011AEE8) # $a1, 0x8012 -/* 01B788 8001AB88 3C0D8012 */ lui $t5, %hi(gObjectStructArrayPtr) # $t5, 0x8012 -/* 01B78C 8001AB8C 8DADAEE4 */ lw $t5, %lo(gObjectStructArrayPtr)($t5) -/* 01B790 8001AB90 24A5AEE8 */ addiu $a1, %lo(D_8011AEE8) # addiu $a1, $a1, -0x5118 +/* 01B784 8001AB84 3C058012 */ lui $a1, %hi(gRacersByPosition) # $a1, 0x8012 +/* 01B788 8001AB88 3C0D8012 */ lui $t5, %hi(gRacers) # $t5, 0x8012 +/* 01B78C 8001AB8C 8DADAEE4 */ lw $t5, %lo(gRacers)($t5) +/* 01B790 8001AB90 24A5AEE8 */ addiu $a1, %lo(gRacersByPosition) # addiu $a1, $a1, -0x5118 /* 01B794 8001AB94 8CA20000 */ lw $v0, ($a1) /* 01B798 8001AB98 00067080 */ sll $t6, $a2, 2 /* 01B79C 8001AB9C 01AE7821 */ addu $t7, $t5, $t6 @@ -195,10 +195,10 @@ glabel func_8001A8F4 /* 01B7D0 8001ABD0 1543FFF8 */ bne $t2, $v1, .L8001ABB4 /* 01B7D4 8001ABD4 00000000 */ nop .L8001ABD8: -/* 01B7D8 8001ABD8 3C058012 */ lui $a1, %hi(D_8011AEE8) # $a1, 0x8012 +/* 01B7D8 8001ABD8 3C058012 */ lui $a1, %hi(gRacersByPosition) # $a1, 0x8012 /* 01B7DC 8001ABDC 0204082A */ slt $at, $s0, $a0 /* 01B7E0 8001ABE0 10200013 */ beqz $at, .L8001AC30 -/* 01B7E4 8001ABE4 24A5AEE8 */ addiu $a1, %lo(D_8011AEE8) # addiu $a1, $a1, -0x5118 +/* 01B7E4 8001ABE4 24A5AEE8 */ addiu $a1, %lo(gRacersByPosition) # addiu $a1, $a1, -0x5118 /* 01B7E8 8001ABE8 248BFFFF */ addiu $t3, $a0, -1 /* 01B7EC 8001ABEC 020B082A */ slt $at, $s0, $t3 /* 01B7F0 8001ABF0 1020000F */ beqz $at, .L8001AC30 @@ -219,8 +219,8 @@ glabel func_8001A8F4 /* 01B828 8001AC28 80E60000 */ lb $a2, ($a3) /* 01B82C 8001AC2C 00000000 */ nop .L8001AC30: -/* 01B830 8001AC30 3C188012 */ lui $t8, %hi(gObjectStructArrayPtr) # $t8, 0x8012 -/* 01B834 8001AC34 8F18AEE4 */ lw $t8, %lo(gObjectStructArrayPtr)($t8) +/* 01B830 8001AC30 3C188012 */ lui $t8, %hi(gRacers) # $t8, 0x8012 +/* 01B834 8001AC34 8F18AEE4 */ lw $t8, %lo(gRacers)($t8) /* 01B838 8001AC38 0006C880 */ sll $t9, $a2, 2 /* 01B83C 8001AC3C 03194821 */ addu $t1, $t8, $t9 /* 01B840 8001AC40 8D240000 */ lw $a0, ($t1) @@ -229,8 +229,8 @@ glabel func_8001A8F4 /* 01B84C 8001AC4C 3C078012 */ lui $a3, %hi(D_8011AD51) # $a3, 0x8012 /* 01B850 8001AC50 24E7AD51 */ addiu $a3, %lo(D_8011AD51) # addiu $a3, $a3, -0x52af /* 01B854 8001AC54 80EB0000 */ lb $t3, ($a3) -/* 01B858 8001AC58 3C0A8012 */ lui $t2, %hi(gObjectStructArrayPtr) # $t2, 0x8012 -/* 01B85C 8001AC5C 8D4AAEE4 */ lw $t2, %lo(gObjectStructArrayPtr)($t2) +/* 01B858 8001AC58 3C0A8012 */ lui $t2, %hi(gRacers) # $t2, 0x8012 +/* 01B85C 8001AC5C 8D4AAEE4 */ lw $t2, %lo(gRacers)($t2) /* 01B860 8001AC60 000B6080 */ sll $t4, $t3, 2 /* 01B864 8001AC64 014C6821 */ addu $t5, $t2, $t4 /* 01B868 8001AC68 ADA00000 */ sw $zero, ($t5) @@ -250,8 +250,8 @@ glabel func_8001A8F4 /* 01B898 8001AC98 24010002 */ li $at, 2 .L8001AC9C: /* 01B89C 8001AC9C 14410016 */ bne $v0, $at, .L8001ACF8 -/* 01B8A0 8001ACA0 3C198012 */ lui $t9, %hi(gObjectStructArrayPtr) # $t9, 0x8012 -/* 01B8A4 8001ACA4 8F39AEE4 */ lw $t9, %lo(gObjectStructArrayPtr)($t9) +/* 01B8A0 8001ACA0 3C198012 */ lui $t9, %hi(gRacers) # $t9, 0x8012 +/* 01B8A4 8001ACA4 8F39AEE4 */ lw $t9, %lo(gRacers)($t9) /* 01B8A8 8001ACA8 00000000 */ nop /* 01B8AC 8001ACAC 8F240000 */ lw $a0, ($t9) /* 01B8B0 8001ACB0 00000000 */ nop diff --git a/asm/non_matchings/objects/func_8001AE64.s b/asm/non_matchings/objects/func_8001AE64.s index accfde5f..615e208a 100644 --- a/asm/non_matchings/objects/func_8001AE64.s +++ b/asm/non_matchings/objects/func_8001AE64.s @@ -9,11 +9,11 @@ glabel func_8001AE64 /* 01BA80 8001AE80 A0400114 */ sb $zero, 0x114($v0) /* 01BA84 8001AE84 A0400116 */ sb $zero, 0x116($v0) /* 01BA88 8001AE88 A0400115 */ sb $zero, 0x115($v0) -/* 01BA8C 8001AE8C 3C0E8012 */ lui $t6, %hi(D_8011AEE8) # $t6, 0x8012 -/* 01BA90 8001AE90 8DCEAEE8 */ lw $t6, %lo(D_8011AEE8)($t6) -/* 01BA94 8001AE94 3C198012 */ lui $t9, %hi(gObjectCount) # $t9, 0x8012 +/* 01BA8C 8001AE8C 3C0E8012 */ lui $t6, %hi(gRacersByPosition) # $t6, 0x8012 +/* 01BA90 8001AE90 8DCEAEE8 */ lw $t6, %lo(gRacersByPosition)($t6) +/* 01BA94 8001AE94 3C198012 */ lui $t9, %hi(gNumRacers) # $t9, 0x8012 /* 01BA98 8001AE98 8DCF0000 */ lw $t7, ($t6) -/* 01BA9C 8001AE9C 8F39AEF0 */ lw $t9, %lo(gObjectCount)($t9) +/* 01BA9C 8001AE9C 8F39AEF0 */ lw $t9, %lo(gNumRacers)($t9) /* 01BAA0 8001AEA0 8DF80064 */ lw $t8, 0x64($t7) /* 01BAA4 8001AEA4 00404025 */ move $t0, $v0 /* 01BAA8 8001AEA8 34108CA1 */ li $s0, 36001 @@ -23,8 +23,8 @@ glabel func_8001AE64 /* 01BAB8 8001AEB8 AFB80034 */ sw $t8, 0x34($sp) /* 01BABC 8001AEBC 00006025 */ move $t4, $zero .L8001AEC0: -/* 01BAC0 8001AEC0 3C0E8012 */ lui $t6, %hi(D_8011AEE8) # $t6, 0x8012 -/* 01BAC4 8001AEC4 8DCEAEE8 */ lw $t6, %lo(D_8011AEE8)($t6) +/* 01BAC0 8001AEC0 3C0E8012 */ lui $t6, %hi(gRacersByPosition) # $t6, 0x8012 +/* 01BAC4 8001AEC4 8DCEAEE8 */ lw $t6, %lo(gRacersByPosition)($t6) /* 01BAC8 8001AEC8 00000000 */ nop /* 01BACC 8001AECC 01CC7821 */ addu $t7, $t6, $t4 /* 01BAD0 8001AED0 8DF80000 */ lw $t8, ($t7) @@ -109,8 +109,8 @@ glabel func_8001AE64 /* 01BC00 8001B000 A1190114 */ sb $t9, 0x114($t0) /* 01BC04 8001B004 AFA70034 */ sw $a3, 0x34($sp) .L8001B008: -/* 01BC08 8001B008 3C0E8012 */ lui $t6, %hi(gObjectCount) # $t6, 0x8012 -/* 01BC0C 8001B00C 8DCEAEF0 */ lw $t6, %lo(gObjectCount)($t6) +/* 01BC08 8001B008 3C0E8012 */ lui $t6, %hi(gNumRacers) # $t6, 0x8012 +/* 01BC0C 8001B00C 8DCEAEF0 */ lw $t6, %lo(gNumRacers)($t6) /* 01BC10 8001B010 25AD0001 */ addiu $t5, $t5, 1 /* 01BC14 8001B014 01AE082A */ slt $at, $t5, $t6 /* 01BC18 8001B018 1420FFA9 */ bnez $at, .L8001AEC0 diff --git a/asm/non_matchings/objects/func_8001B2F0.s b/asm/non_matchings/objects/func_8001B2F0.s index 27a68e56..0fbdc915 100644 --- a/asm/non_matchings/objects/func_8001B2F0.s +++ b/asm/non_matchings/objects/func_8001B2F0.s @@ -1,7 +1,7 @@ glabel func_8001B2F0 /* 01BEF0 8001B2F0 27BDFFD8 */ addiu $sp, $sp, -0x28 /* 01BEF4 8001B2F4 AFBF0014 */ sw $ra, 0x14($sp) -/* 01BEF8 8001B2F8 0C01AC2B */ jal func_8006B0AC +/* 01BEF8 8001B2F8 0C01AC2B */ jal get_map_default_vehicle /* 01BEFC 8001B2FC AFA40028 */ sw $a0, 0x28($sp) /* 01BF00 8001B300 3C058012 */ lui $a1, %hi(D_8011AE84) # $a1, 0x8012 /* 01BF04 8001B304 24A5AE84 */ addiu $a1, %lo(D_8011AE84) # addiu $a1, $a1, -0x517c diff --git a/asm/non_matchings/objects/func_8001B4FC.s b/asm/non_matchings/objects/func_8001B4FC.s index 59e3f811..e0b2591d 100644 --- a/asm/non_matchings/objects/func_8001B4FC.s +++ b/asm/non_matchings/objects/func_8001B4FC.s @@ -9,7 +9,7 @@ glabel func_8001B4FC /* 01C118 8001B518 0C01BAA4 */ jal get_settings /* 01C11C 8001B51C A020C734 */ sb $zero, %lo(D_800DC734)($at) /* 01C120 8001B520 AFA20020 */ sw $v0, 0x20($sp) -/* 01C124 8001B524 0C01AC2B */ jal func_8006B0AC +/* 01C124 8001B524 0C01AC2B */ jal get_map_default_vehicle /* 01C128 8001B528 02002025 */ move $a0, $s0 /* 01C12C 8001B52C 3C0E8012 */ lui $t6, %hi(D_8011AE82) # $t6, 0x8012 /* 01C130 8001B530 85CEAE82 */ lh $t6, %lo(D_8011AE82)($t6) diff --git a/asm/non_matchings/objects/func_80021104.s b/asm/non_matchings/objects/func_80021104.s index 180f26ab..71661ed9 100644 --- a/asm/non_matchings/objects/func_80021104.s +++ b/asm/non_matchings/objects/func_80021104.s @@ -57,8 +57,8 @@ glabel func_80021104 /* 021DD8 800211D8 1420001C */ bnez $at, .L8002124C /* 021DDC 800211DC 28810012 */ slti $at, $a0, 0x12 /* 021DE0 800211E0 1020001A */ beqz $at, .L8002124C -/* 021DE4 800211E4 3C188012 */ lui $t8, %hi(gObjectStructArrayPtr) # $t8, 0x8012 -/* 021DE8 800211E8 8F18AEE4 */ lw $t8, %lo(gObjectStructArrayPtr)($t8) +/* 021DE4 800211E4 3C188012 */ lui $t8, %hi(gRacers) # $t8, 0x8012 +/* 021DE8 800211E8 8F18AEE4 */ lw $t8, %lo(gRacers)($t8) /* 021DEC 800211EC 0004C880 */ sll $t9, $a0, 2 /* 021DF0 800211F0 03194021 */ addu $t0, $t8, $t9 /* 021DF4 800211F4 8D02FFD8 */ lw $v0, -0x28($t0) diff --git a/asm/non_matchings/objects/func_80022948.s b/asm/non_matchings/objects/func_80022948.s index a7fdafbc..182a8aa0 100644 --- a/asm/non_matchings/objects/func_80022948.s +++ b/asm/non_matchings/objects/func_80022948.s @@ -22,7 +22,7 @@ glabel func_80022948 /* 023598 80022998 AC29AEFC */ sw $t1, %lo(D_8011AEFC)($at) /* 02359C 8002299C A04A0052 */ sb $t2, 0x52($v0) /* 0235A0 800229A0 A44B0054 */ sh $t3, 0x54($v0) -/* 0235A4 800229A4 0C006EB2 */ jal get_object_struct +/* 0235A4 800229A4 0C006EB2 */ jal get_racer_object /* 0235A8 800229A8 00002025 */ move $a0, $zero /* 0235AC 800229AC 8C500064 */ lw $s0, 0x64($v0) /* 0235B0 800229B0 3C018012 */ lui $at, %hi(D_8011AEF6) # $at, 0x8012 @@ -166,21 +166,21 @@ glabel func_80022948 /* 0237CC 80022BCC 27A40058 */ addiu $a0, $sp, 0x58 /* 0237D0 80022BD0 0C003A95 */ jal spawn_object /* 0237D4 80022BD4 24050001 */ li $a1, 1 -/* 0237D8 80022BD8 3C0B8012 */ lui $t3, %hi(gObjectStructArrayPtr) # $t3, 0x8012 -/* 0237DC 80022BDC 8D6BAEE4 */ lw $t3, %lo(gObjectStructArrayPtr)($t3) -/* 0237E0 80022BE0 3C0D8012 */ lui $t5, %hi(D_8011AEE8) # $t5, 0x8012 +/* 0237D8 80022BD8 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 0237DC 80022BDC 8D6BAEE4 */ lw $t3, %lo(gRacers)($t3) +/* 0237E0 80022BE0 3C0D8012 */ lui $t5, %hi(gRacersByPosition) # $t5, 0x8012 /* 0237E4 80022BE4 AD620004 */ sw $v0, 4($t3) -/* 0237E8 80022BE8 8DADAEE8 */ lw $t5, %lo(D_8011AEE8)($t5) -/* 0237EC 80022BEC 3C0C8012 */ lui $t4, %hi(D_8011AEEC) # $t4, 0x8012 +/* 0237E8 80022BE8 8DADAEE8 */ lw $t5, %lo(gRacersByPosition)($t5) +/* 0237EC 80022BEC 3C0C8012 */ lui $t4, %hi(gRacersByPort) # $t4, 0x8012 /* 0237F0 80022BF0 ADA20004 */ sw $v0, 4($t5) -/* 0237F4 80022BF4 8D8CAEEC */ lw $t4, %lo(D_8011AEEC)($t4) +/* 0237F4 80022BF4 8D8CAEEC */ lw $t4, %lo(gRacersByPort)($t4) /* 0237F8 80022BF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0237FC 80022BFC 44810000 */ mtc1 $at, $f0 /* 023800 80022C00 AD820004 */ sw $v0, 4($t4) /* 023804 80022C04 AC40003C */ sw $zero, 0x3c($v0) -/* 023808 80022C08 3C018012 */ lui $at, %hi(gObjectCount) # $at, 0x8012 +/* 023808 80022C08 3C018012 */ lui $at, %hi(gNumRacers) # $at, 0x8012 /* 02380C 80022C0C 240E0002 */ li $t6, 2 -/* 023810 80022C10 AC2EAEF0 */ sw $t6, %lo(gObjectCount)($at) +/* 023810 80022C10 AC2EAEF0 */ sw $t6, %lo(gNumRacers)($at) /* 023814 80022C14 8C500064 */ lw $s0, 0x64($v0) /* 023818 80022C18 2418000A */ li $t8, 10 /* 02381C 80022C1C A21801D6 */ sb $t8, 0x1d6($s0) diff --git a/asm/non_matchings/objects/func_80022E18.s b/asm/non_matchings/objects/func_80022E18.s index ab4be0b8..92fec4ad 100644 --- a/asm/non_matchings/objects/func_80022E18.s +++ b/asm/non_matchings/objects/func_80022E18.s @@ -13,11 +13,11 @@ glabel func_80022E18 /* 023A44 80022E44 24040001 */ li $a0, 1 /* 023A48 80022E48 0C02AC6B */ jal func_800AB1AC /* 023A4C 80022E4C A4580054 */ sh $t8, 0x54($v0) -/* 023A50 80022E50 3C078012 */ lui $a3, %hi(gObjectStructArrayPtr) # $a3, 0x8012 -/* 023A54 80022E54 3C068012 */ lui $a2, %hi(gObjectCount) # $a2, 0x8012 +/* 023A50 80022E50 3C078012 */ lui $a3, %hi(gRacers) # $a3, 0x8012 +/* 023A54 80022E54 3C068012 */ lui $a2, %hi(gNumRacers) # $a2, 0x8012 /* 023A58 80022E58 00002825 */ move $a1, $zero -/* 023A5C 80022E5C 24C6AEF0 */ addiu $a2, %lo(gObjectCount) # addiu $a2, $a2, -0x5110 -/* 023A60 80022E60 24E7AEE4 */ addiu $a3, %lo(gObjectStructArrayPtr) # addiu $a3, $a3, -0x511c +/* 023A5C 80022E5C 24C6AEF0 */ addiu $a2, %lo(gNumRacers) # addiu $a2, $a2, -0x5110 +/* 023A60 80022E60 24E7AEE4 */ addiu $a3, %lo(gRacers) # addiu $a3, $a3, -0x511c /* 023A64 80022E64 00001025 */ move $v0, $zero .L80022E68: /* 023A68 80022E68 8CF90000 */ lw $t9, ($a3) @@ -41,14 +41,14 @@ glabel func_80022E18 /* 023AB0 80022EB0 8D640004 */ lw $a0, 4($t3) /* 023AB4 80022EB4 0C003FEE */ jal gParticlePtrList_addObject /* 023AB8 80022EB8 00000000 */ nop -/* 023ABC 80022EBC 3C078012 */ lui $a3, %hi(gObjectStructArrayPtr) # $a3, 0x8012 -/* 023AC0 80022EC0 24E7AEE4 */ addiu $a3, %lo(gObjectStructArrayPtr) # addiu $a3, $a3, -0x511c +/* 023ABC 80022EBC 3C078012 */ lui $a3, %hi(gRacers) # $a3, 0x8012 +/* 023AC0 80022EC0 24E7AEE4 */ addiu $a3, %lo(gRacers) # addiu $a3, $a3, -0x511c /* 023AC4 80022EC4 8CEC0000 */ lw $t4, ($a3) -/* 023AC8 80022EC8 3C0E8012 */ lui $t6, %hi(D_8011AEE8) # $t6, 0x8012 -/* 023ACC 80022ECC 8DCEAEE8 */ lw $t6, %lo(D_8011AEE8)($t6) +/* 023AC8 80022EC8 3C0E8012 */ lui $t6, %hi(gRacersByPosition) # $t6, 0x8012 +/* 023ACC 80022ECC 8DCEAEE8 */ lw $t6, %lo(gRacersByPosition)($t6) /* 023AD0 80022ED0 8D8D0000 */ lw $t5, ($t4) -/* 023AD4 80022ED4 3C068012 */ lui $a2, %hi(gObjectCount) # $a2, 0x8012 -/* 023AD8 80022ED8 24C6AEF0 */ addiu $a2, %lo(gObjectCount) # addiu $a2, $a2, -0x5110 +/* 023AD4 80022ED4 3C068012 */ lui $a2, %hi(gNumRacers) # $a2, 0x8012 +/* 023AD8 80022ED8 24C6AEF0 */ addiu $a2, %lo(gNumRacers) # addiu $a2, $a2, -0x5110 /* 023ADC 80022EDC 240F0001 */ li $t7, 1 /* 023AE0 80022EE0 ADCD0000 */ sw $t5, ($t6) /* 023AE4 80022EE4 ACCF0000 */ sw $t7, ($a2) diff --git a/asm/non_matchings/racer/func_800576E0.s b/asm/non_matchings/racer/drop_bananas.s similarity index 99% rename from asm/non_matchings/racer/func_800576E0.s rename to asm/non_matchings/racer/drop_bananas.s index dda42a5b..4424eeb7 100644 --- a/asm/non_matchings/racer/func_800576E0.s +++ b/asm/non_matchings/racer/drop_bananas.s @@ -1,4 +1,4 @@ -glabel func_800576E0 +glabel drop_bananas /* 0582E0 800576E0 27BDFF70 */ addiu $sp, $sp, -0x90 /* 0582E4 800576E4 AFBF005C */ sw $ra, 0x5c($sp) /* 0582E8 800576E8 AFB20048 */ sw $s2, 0x48($sp) diff --git a/asm/non_matchings/racer/func_80042D20.s b/asm/non_matchings/racer/func_80042D20.s index 85869499..eb4f5b23 100644 --- a/asm/non_matchings/racer/func_80042D20.s +++ b/asm/non_matchings/racer/func_80042D20.s @@ -46,7 +46,7 @@ glabel func_80042D20 /* 043954 80042D54 0C01AF6C */ jal get_current_level_header /* 043958 80042D58 AFA20044 */ sw $v0, 0x44($sp) /* 04395C 80042D5C AFA20050 */ sw $v0, 0x50($sp) -/* 043960 80042D60 0C006EAB */ jal func_8001BAAC +/* 043960 80042D60 0C006EAB */ jal get_racer_objects_by_position /* 043964 80042D64 27A40068 */ addiu $a0, $sp, 0x68 /* 043968 80042D68 0C01B063 */ jal func_8006C18C /* 04396C 80042D6C AFA20060 */ sw $v0, 0x60($sp) diff --git a/asm/non_matchings/racer/func_8004447C.s b/asm/non_matchings/racer/func_8004447C.s index b5fdc63e..c2323c13 100644 --- a/asm/non_matchings/racer/func_8004447C.s +++ b/asm/non_matchings/racer/func_8004447C.s @@ -296,7 +296,7 @@ glabel L800446AC /* 045498 80044898 A7A70048 */ sh $a3, 0x48($sp) /* 04549C 8004489C A7A8004A */ sh $t0, 0x4a($sp) /* 0454A0 800448A0 A7A90046 */ sh $t1, 0x46($sp) -/* 0454A4 800448A4 0C006EB2 */ jal get_object_struct +/* 0454A4 800448A4 0C006EB2 */ jal get_racer_object /* 0454A8 800448A8 A7AA004C */ sh $t2, 0x4c($sp) /* 0454AC 800448AC 87A90046 */ lh $t1, 0x46($sp) /* 0454B0 800448B0 87A50052 */ lh $a1, 0x52($sp) @@ -356,7 +356,7 @@ glabel L800446AC /* 045580 80044980 87A8004A */ lh $t0, 0x4a($sp) /* 045584 80044984 1440000A */ bnez $v0, .L800449B0 /* 045588 80044988 00C02025 */ move $a0, $a2 -/* 04558C 8004498C 0C006EB2 */ jal get_object_struct +/* 04558C 8004498C 0C006EB2 */ jal get_racer_object /* 045590 80044990 A7A8004A */ sh $t0, 0x4a($sp) /* 045594 80044994 8C430064 */ lw $v1, 0x64($v0) /* 045598 80044998 87A8004A */ lh $t0, 0x4a($sp) @@ -654,7 +654,7 @@ glabel L80044ADC /* 0459B4 80044DB4 AFA20058 */ sw $v0, 0x58($sp) .L80044DB8: /* 0459B8 80044DB8 820401CF */ lb $a0, 0x1cf($s0) -/* 0459BC 80044DBC 0C006EB2 */ jal get_object_struct +/* 0459BC 80044DBC 0C006EB2 */ jal get_racer_object /* 0459C0 80044DC0 00000000 */ nop /* 0459C4 80044DC4 8C430064 */ lw $v1, 0x64($v0) /* 0459C8 80044DC8 2401FFFF */ li $at, -1 @@ -795,7 +795,7 @@ glabel L80044F54 /* 045BA8 80044FA8 00A02025 */ move $a0, $a1 /* 045BAC 80044FAC 10AC0054 */ beq $a1, $t4, .L80045100 /* 045BB0 80044FB0 00000000 */ nop -/* 045BB4 80044FB4 0C006EB2 */ jal get_object_struct +/* 045BB4 80044FB4 0C006EB2 */ jal get_racer_object /* 045BB8 80044FB8 A7A50052 */ sh $a1, 0x52($sp) /* 045BBC 80044FBC 8C430064 */ lw $v1, 0x64($v0) /* 045BC0 80044FC0 87A50052 */ lh $a1, 0x52($sp) diff --git a/asm/non_matchings/racer/func_800452A0.s b/asm/non_matchings/racer/func_800452A0.s index 40e60118..1689db3e 100644 --- a/asm/non_matchings/racer/func_800452A0.s +++ b/asm/non_matchings/racer/func_800452A0.s @@ -434,7 +434,7 @@ glabel L800456DC /* 046468 80045868 2401FFFF */ li $at, -1 /* 04646C 8004586C 12210004 */ beq $s1, $at, .L80045880 /* 046470 80045870 00000000 */ nop -/* 046474 80045874 0C006EB2 */ jal get_object_struct +/* 046474 80045874 0C006EB2 */ jal get_racer_object /* 046478 80045878 02202025 */ move $a0, $s1 /* 04647C 8004587C 0040F025 */ move $fp, $v0 .L80045880: diff --git a/asm/non_matchings/save_data/func_80073588.s b/asm/non_matchings/save_data/func_80073588.s index 6a835110..f4570049 100644 --- a/asm/non_matchings/save_data/func_80073588.s +++ b/asm/non_matchings/save_data/func_80073588.s @@ -52,7 +52,7 @@ glabel func_80073588 /* 074248 80073648 02202025 */ move $a0, $s1 /* 07424C 8007364C 14400031 */ bnez $v0, .L80073714 /* 074250 80073650 8FAC0040 */ lw $t4, 0x40($sp) -/* 074254 80073654 0C01AC3E */ jal func_8006B0F8 +/* 074254 80073654 0C01AC3E */ jal get_map_available_vehicles /* 074258 80073658 02202025 */ move $a0, $s1 /* 07425C 8007365C 00029400 */ sll $s2, $v0, 0x10 /* 074260 80073660 00127403 */ sra $t6, $s2, 0x10 @@ -149,7 +149,7 @@ glabel func_80073588 /* 0743AC 800737AC 02202025 */ move $a0, $s1 /* 0743B0 800737B0 14400031 */ bnez $v0, .L80073878 /* 0743B4 800737B4 8FAB0040 */ lw $t3, 0x40($sp) -/* 0743B8 800737B8 0C01AC3E */ jal func_8006B0F8 +/* 0743B8 800737B8 0C01AC3E */ jal get_map_available_vehicles /* 0743BC 800737BC 02202025 */ move $a0, $s1 /* 0743C0 800737C0 00029400 */ sll $s2, $v0, 0x10 /* 0743C4 800737C4 00126C03 */ sra $t5, $s2, 0x10 diff --git a/asm/non_matchings/save_data/func_800738A4.s b/asm/non_matchings/save_data/func_800738A4.s index 4fc58b74..35d9b858 100644 --- a/asm/non_matchings/save_data/func_800738A4.s +++ b/asm/non_matchings/save_data/func_800738A4.s @@ -31,7 +31,7 @@ glabel func_800738A4 /* 074514 80073914 02202025 */ move $a0, $s1 /* 074518 80073918 1440003B */ bnez $v0, .L80073A08 /* 07451C 8007391C 8FAF0048 */ lw $t7, 0x48($sp) -/* 074520 80073920 0C01AC3E */ jal func_8006B0F8 +/* 074520 80073920 0C01AC3E */ jal get_map_available_vehicles /* 074524 80073924 02202025 */ move $a0, $s1 /* 074528 80073928 00029C00 */ sll $s3, $v0, 0x10 /* 07452C 8007392C 0013CC03 */ sra $t9, $s3, 0x10 @@ -144,7 +144,7 @@ glabel func_800738A4 /* 0746B8 80073AB8 02202025 */ move $a0, $s1 /* 0746BC 80073ABC 14400033 */ bnez $v0, .L80073B8C /* 0746C0 80073AC0 8FAB0048 */ lw $t3, 0x48($sp) -/* 0746C4 80073AC4 0C01AC3E */ jal func_8006B0F8 +/* 0746C4 80073AC4 0C01AC3E */ jal get_map_available_vehicles /* 0746C8 80073AC8 02202025 */ move $a0, $s1 /* 0746CC 80073ACC 00029C00 */ sll $s3, $v0, 0x10 /* 0746D0 80073AD0 00136C03 */ sra $t5, $s3, 0x10 diff --git a/asm/non_matchings/unknown_0255E0/render_scene.s b/asm/non_matchings/unknown_0255E0/render_scene.s index ad6fcd6e..bf7480b8 100644 --- a/asm/non_matchings/unknown_0255E0/render_scene.s +++ b/asm/non_matchings/unknown_0255E0/render_scene.s @@ -346,7 +346,7 @@ glabel render_scene /* 025E60 80025260 0C02B288 */ jal func_800ACA20 /* 025E64 80025264 00403825 */ move $a3, $v0 /* 025E68 80025268 8E040000 */ lw $a0, ($s0) -/* 025E6C 8002526C 0C006EC6 */ jal func_8001BB18 +/* 025E6C 8002526C 0C006EC6 */ jal get_racer_object_by_port /* 025E70 80025270 00000000 */ nop /* 025E74 80025274 8FAD00A0 */ lw $t5, 0xa0($sp) /* 025E78 80025278 3C068012 */ lui $a2, %hi(gSceneCurrVertexList) # $a2, 0x8012 diff --git a/asm/non_matchings/unknown_032760/func_8003F0F8.s b/asm/non_matchings/unknown_032760/func_8003F0F8.s index b6282e73..7f652878 100644 --- a/asm/non_matchings/unknown_032760/func_8003F0F8.s +++ b/asm/non_matchings/unknown_032760/func_8003F0F8.s @@ -15,7 +15,7 @@ glabel func_8003F0F8 /* 03FD2C 8003F12C E7B40024 */ swc1 $f20, 0x24($sp) /* 03FD30 8003F130 AFA60078 */ sw $a2, 0x78($sp) /* 03FD34 8003F134 0000A025 */ move $s4, $zero -/* 03FD38 8003F138 0C006EA4 */ jal func_8001BA90 +/* 03FD38 8003F138 0C006EA4 */ jal get_racer_objects_by_port /* 03FD3C 8003F13C 27A40060 */ addiu $a0, $sp, 0x60 /* 03FD40 8003F140 8FAE0060 */ lw $t6, 0x60($sp) /* 03FD44 8003F144 00008025 */ move $s0, $zero diff --git a/asm/non_matchings/unknown_032760/obj_loop_bridge_whaleramp.s b/asm/non_matchings/unknown_032760/obj_loop_bridge_whaleramp.s index d41b84b6..b67a0073 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_bridge_whaleramp.s +++ b/asm/non_matchings/unknown_032760/obj_loop_bridge_whaleramp.s @@ -211,7 +211,7 @@ glabel obj_loop_bridge_whaleramp .L8003CD6C: /* 03D96C 8003CD6C AE090078 */ sw $t1, 0x78($s0) /* 03D970 8003CD70 AFA8005C */ sw $t0, 0x5c($sp) -/* 03D974 8003CD74 0C006EB2 */ jal get_object_struct +/* 03D974 8003CD74 0C006EB2 */ jal get_racer_object /* 03D978 8003CD78 00002025 */ move $a0, $zero /* 03D97C 8003CD7C 8FA8005C */ lw $t0, 0x5c($sp) /* 03D980 8003CD80 10400013 */ beqz $v0, .L8003CDD0 diff --git a/asm/non_matchings/unknown_032760/obj_loop_collectegg.s b/asm/non_matchings/unknown_032760/obj_loop_collectegg.s index 22a2eb0b..d9f6be4c 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_collectegg.s +++ b/asm/non_matchings/unknown_032760/obj_loop_collectegg.s @@ -185,7 +185,7 @@ glabel obj_loop_collectegg /* 0360F4 800354F4 A22F000A */ sb $t7, 0xa($s1) /* 0360F8 800354F8 24180003 */ li $t8, 3 /* 0360FC 800354FC 8224000A */ lb $a0, 0xa($s1) -/* 036100 80035500 0C006EB2 */ jal get_object_struct +/* 036100 80035500 0C006EB2 */ jal get_racer_object /* 036104 80035504 A238000B */ sb $t8, 0xb($s1) /* 036108 80035508 44800000 */ mtc1 $zero, $f0 /* 03610C 8003550C 10400007 */ beqz $v0, .L8003552C @@ -205,7 +205,7 @@ glabel obj_loop_collectegg /* 03613C 8003553C 862A0008 */ lh $t2, 8($s1) /* 036140 80035540 8224000A */ lb $a0, 0xa($s1) /* 036144 80035544 01455823 */ subu $t3, $t2, $a1 -/* 036148 80035548 0C006EB2 */ jal get_object_struct +/* 036148 80035548 0C006EB2 */ jal get_racer_object /* 03614C 8003554C A62B0008 */ sh $t3, 8($s1) /* 036150 80035550 10400004 */ beqz $v0, .L80035564 /* 036154 80035554 00403825 */ move $a3, $v0 @@ -254,7 +254,7 @@ glabel obj_loop_collectegg /* 0361F0 800355F0 A0C801CF */ sb $t0, 0x1cf($a2) .L800355F4: /* 0361F4 800355F4 8224000A */ lb $a0, 0xa($s1) -/* 0361F8 800355F8 0C006EB2 */ jal get_object_struct +/* 0361F8 800355F8 0C006EB2 */ jal get_racer_object /* 0361FC 800355FC 00000000 */ nop /* 036200 80035600 10400009 */ beqz $v0, .L80035628 /* 036204 80035604 240B0080 */ li $t3, 128 diff --git a/asm/non_matchings/unknown_032760/obj_loop_levelname.s b/asm/non_matchings/unknown_032760/obj_loop_levelname.s index be1c6e56..32d43e39 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_levelname.s +++ b/asm/non_matchings/unknown_032760/obj_loop_levelname.s @@ -5,7 +5,7 @@ glabel obj_loop_levelname /* 04369C 80042A9C AFB00020 */ sw $s0, 0x20($sp) /* 0436A0 80042AA0 AFA5005C */ sw $a1, 0x5c($sp) /* 0436A4 80042AA4 AFA60058 */ sw $a2, 0x58($sp) -/* 0436A8 80042AA8 0C006EC6 */ jal func_8001BB18 +/* 0436A8 80042AA8 0C006EC6 */ jal get_racer_object_by_port /* 0436AC 80042AAC 00002025 */ move $a0, $zero /* 0436B0 80042AB0 8FA3005C */ lw $v1, 0x5c($sp) /* 0436B4 80042AB4 8FA60058 */ lw $a2, 0x58($sp) diff --git a/asm/non_matchings/unknown_032760/obj_loop_parkwarden.s b/asm/non_matchings/unknown_032760/obj_loop_parkwarden.s index 607636b6..600f71ee 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_parkwarden.s +++ b/asm/non_matchings/unknown_032760/obj_loop_parkwarden.s @@ -68,7 +68,7 @@ glabel obj_loop_parkwarden /* 039FDC 800393DC 00002025 */ move $a0, $zero /* 039FE0 800393E0 E7A0009C */ swc1 $f0, 0x9c($sp) /* 039FE4 800393E4 E600001C */ swc1 $f0, 0x1c($s0) -/* 039FE8 800393E8 0C006EB2 */ jal get_object_struct +/* 039FE8 800393E8 0C006EB2 */ jal get_racer_object /* 039FEC 800393EC E6000024 */ swc1 $f0, 0x24($s0) /* 039FF0 800393F0 00401825 */ move $v1, $v0 /* 039FF4 800393F4 10400019 */ beqz $v0, .L8003945C diff --git a/asm/non_matchings/unknown_032760/obj_loop_stopwatchman.s b/asm/non_matchings/unknown_032760/obj_loop_stopwatchman.s index 587d6fb6..c4376f49 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_stopwatchman.s +++ b/asm/non_matchings/unknown_032760/obj_loop_stopwatchman.s @@ -55,7 +55,7 @@ glabel obj_loop_stopwatchman /* 036E80 80036280 E7A00070 */ swc1 $f0, 0x70($sp) /* 036E84 80036284 00002025 */ move $a0, $zero /* 036E88 80036288 E600001C */ swc1 $f0, 0x1c($s0) -/* 036E8C 8003628C 0C006EB2 */ jal get_object_struct +/* 036E8C 8003628C 0C006EB2 */ jal get_racer_object /* 036E90 80036290 E6000024 */ swc1 $f0, 0x24($s0) /* 036E94 80036294 00402825 */ move $a1, $v0 /* 036E98 80036298 10400042 */ beqz $v0, .L800363A4 diff --git a/asm/non_matchings/unknown_032760/obj_loop_treasuresucker.s b/asm/non_matchings/unknown_032760/obj_loop_treasuresucker.s index 3a59e628..d5831c68 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_treasuresucker.s +++ b/asm/non_matchings/unknown_032760/obj_loop_treasuresucker.s @@ -9,7 +9,7 @@ glabel obj_loop_treasuresucker /* 03DC60 8003D060 AFA5004C */ sw $a1, 0x4c($sp) /* 03DC64 8003D064 00803025 */ move $a2, $a0 /* 03DC68 8003D068 8C840078 */ lw $a0, 0x78($a0) -/* 03DC6C 8003D06C 0C006EB2 */ jal get_object_struct +/* 03DC6C 8003D06C 0C006EB2 */ jal get_racer_object /* 03DC70 8003D070 AFA60048 */ sw $a2, 0x48($sp) /* 03DC74 8003D074 8FA60048 */ lw $a2, 0x48($sp) /* 03DC78 8003D078 10400088 */ beqz $v0, .L8003D29C diff --git a/asm/non_matchings/unknown_032760/obj_loop_trophycab.s b/asm/non_matchings/unknown_032760/obj_loop_trophycab.s index 4fb5dd74..d1ab0d92 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_trophycab.s +++ b/asm/non_matchings/unknown_032760/obj_loop_trophycab.s @@ -70,7 +70,7 @@ glabel obj_loop_trophycab /* 035B8C 80034F8C 8E0D0054 */ lw $t5, 0x54($s0) /* 035B90 80034F90 00002025 */ move $a0, $zero /* 035B94 80034F94 E5A60028 */ swc1 $f6, 0x28($t5) -/* 035B98 80034F98 0C006EB2 */ jal get_object_struct +/* 035B98 80034F98 0C006EB2 */ jal get_racer_object /* 035B9C 80034F9C AFA30054 */ sw $v1, 0x54($sp) /* 035BA0 80034FA0 8FA30054 */ lw $v1, 0x54($sp) /* 035BA4 80034FA4 1040009E */ beqz $v0, .L80035220 diff --git a/asm/non_matchings/unknown_05CEF0/func_8005C364.s b/asm/non_matchings/unknown_05CEF0/func_8005C364.s index 03a931f8..726ebfed 100644 --- a/asm/non_matchings/unknown_05CEF0/func_8005C364.s +++ b/asm/non_matchings/unknown_05CEF0/func_8005C364.s @@ -348,7 +348,7 @@ glabel func_8005C364 /* 05D458 8005C858 10000001 */ b .L8005C860 /* 05D45C 8005C85C 24052500 */ li $a1, 9472 .L8005C860: -/* 05D460 8005C860 0C006EB2 */ jal get_object_struct +/* 05D460 8005C860 0C006EB2 */ jal get_racer_object /* 05D464 8005C864 AFA50038 */ sw $a1, 0x38($sp) /* 05D468 8005C868 AFA20030 */ sw $v0, 0x30($sp) /* 05D46C 8005C86C C626000C */ lwc1 $f6, 0xc($s1) diff --git a/asm/non_matchings/unknown_05DCD0/func_8005D0D0.s b/asm/non_matchings/unknown_05DCD0/func_8005D0D0.s index cf901d65..ccd595a1 100644 --- a/asm/non_matchings/unknown_05DCD0/func_8005D0D0.s +++ b/asm/non_matchings/unknown_05DCD0/func_8005D0D0.s @@ -397,7 +397,7 @@ glabel func_8005D0D0 /* 05E274 8005D674 02002825 */ move $a1, $s0 /* 05E278 8005D678 0C017412 */ jal func_8005D048 /* 05E27C 8005D67C 24060028 */ li $a2, 40 -/* 05E280 8005D680 0C006EB2 */ jal get_object_struct +/* 05E280 8005D680 0C006EB2 */ jal get_racer_object /* 05E284 8005D684 00002025 */ move $a0, $zero /* 05E288 8005D688 AFA20034 */ sw $v0, 0x34($sp) /* 05E28C 8005D68C C626000C */ lwc1 $f6, 0xc($s1) diff --git a/asm/non_matchings/unknown_05DCD0/func_8005D820.s b/asm/non_matchings/unknown_05DCD0/func_8005D820.s index 5e5a5e08..3af34fb4 100644 --- a/asm/non_matchings/unknown_05DCD0/func_8005D820.s +++ b/asm/non_matchings/unknown_05DCD0/func_8005D820.s @@ -599,7 +599,7 @@ glabel L8005DCE8 /* 05EC70 8005E070 02002825 */ move $a1, $s0 /* 05EC74 8005E074 0C017412 */ jal func_8005D048 /* 05EC78 8005E078 24060028 */ li $a2, 40 -/* 05EC7C 8005E07C 0C006EB2 */ jal get_object_struct +/* 05EC7C 8005E07C 0C006EB2 */ jal get_racer_object /* 05EC80 8005E080 00002025 */ move $a0, $zero /* 05EC84 8005E084 AFA20034 */ sw $v0, 0x34($sp) /* 05EC88 8005E088 C62A000C */ lwc1 $f10, 0xc($s1) diff --git a/asm/non_matchings/unknown_05F0C0/func_8005E4C0.s b/asm/non_matchings/unknown_05F0C0/func_8005E4C0.s index fe6fb819..33f46eb8 100644 --- a/asm/non_matchings/unknown_05F0C0/func_8005E4C0.s +++ b/asm/non_matchings/unknown_05F0C0/func_8005E4C0.s @@ -291,7 +291,7 @@ glabel func_8005E4C0 /* 05F4EC 8005E8EC 10000001 */ b .L8005E8F4 /* 05F4F0 8005E8F0 24052500 */ li $a1, 9472 .L8005E8F4: -/* 05F4F4 8005E8F4 0C006EB2 */ jal get_object_struct +/* 05F4F4 8005E8F4 0C006EB2 */ jal get_racer_object /* 05F4F8 8005E8F8 AFA50038 */ sw $a1, 0x38($sp) /* 05F4FC 8005E8FC AFA20030 */ sw $v0, 0x30($sp) /* 05F500 8005E900 C632000C */ lwc1 $f18, 0xc($s1) diff --git a/asm/non_matchings/unknown_05F690/func_8005EA90.s b/asm/non_matchings/unknown_05F690/func_8005EA90.s index 6a09ced2..fcbc435f 100644 --- a/asm/non_matchings/unknown_05F690/func_8005EA90.s +++ b/asm/non_matchings/unknown_05F690/func_8005EA90.s @@ -571,7 +571,7 @@ glabel L8005EF98 /* 05FE80 8005F280 02002825 */ move $a1, $s0 /* 05FE84 8005F284 0C017412 */ jal func_8005D048 /* 05FE88 8005F288 24060028 */ li $a2, 40 -/* 05FE8C 8005F28C 0C006EB2 */ jal get_object_struct +/* 05FE8C 8005F28C 0C006EB2 */ jal get_racer_object /* 05FE90 8005F290 00002025 */ move $a0, $zero /* 05FE94 8005F294 8C43004C */ lw $v1, 0x4c($v0) /* 05FE98 8005F298 8C500064 */ lw $s0, 0x64($v0) diff --git a/asm/non_matchings/unknown_05FF10/func_8005F310.s b/asm/non_matchings/unknown_05FF10/func_8005F310.s index de86a943..acd530f9 100644 --- a/asm/non_matchings/unknown_05FF10/func_8005F310.s +++ b/asm/non_matchings/unknown_05FF10/func_8005F310.s @@ -326,7 +326,7 @@ glabel func_8005F310 /* 0603C4 8005F7C4 0C002DD4 */ jal func_8000B750 /* 0603C8 8005F7C8 24070001 */ li $a3, 1 .L8005F7CC: -/* 0603CC 8005F7CC 0C006EB2 */ jal get_object_struct +/* 0603CC 8005F7CC 0C006EB2 */ jal get_racer_object /* 0603D0 8005F7D0 00002025 */ move $a0, $zero /* 0603D4 8005F7D4 8C43004C */ lw $v1, 0x4c($v0) /* 0603D8 8005F7D8 8C470064 */ lw $a3, 0x64($v0) diff --git a/include/enums.h b/include/enums.h index 5dafdc14..a5b1529c 100644 --- a/include/enums.h +++ b/include/enums.h @@ -3,9 +3,20 @@ #include "sound_ids.h" #include "sequence_ids.h" +#include "asset_enums.h" /* All the enums defined here can be used in asset files */ +// Alias for brevity. +typedef AssetLevelHeadersEnum MapId; + +// There are a few instances of comparing MapId with special, negative values. +typedef enum SpecialMapId { + SPECIAL_MAP_ID_UNK_NEG10 = -10, + SPECIAL_MAP_ID_UNK_NEG2 = -2, + SPECIAL_MAP_ID_NO_LEVEL = -1, +} SpecialMapId; + typedef enum Vehicle { VEHICLE_CAR, VEHICLE_HOVERCRAFT, diff --git a/include/level_object_entries.h b/include/level_object_entries.h index 0d344e87..ec9a4ec8 100644 --- a/include/level_object_entries.h +++ b/include/level_object_entries.h @@ -41,11 +41,37 @@ typedef struct LevelObjectEntry_Smoke { typedef struct LevelObjectEntry_Exit { /* 0x00 */ LevelObjectEntryCommon common; - /* 0x08 */ u8 pad8[8]; + /* 0x08 */ u8 destinationMapId; + /* 0x09 */ u8 pad9; + + // Defines the location in overworld the player will spawn at. + // Only used if the exit goes to overworld. + // 0: Future Fun Land exit (also game start spawn) + // 2: Dino Domain exit + // 3: Snowflake Mountain exit + // 4: Sherbet Island exit + // 6: Dragon Forest exit + // 7: Wizpig head exit + /* 0x0A */ s8 overworldSpawnIndex; + + /* 0x0B */ u8 padB[5]; /* 0x10 */ u8 unk10; /* 0x11 */ u8 unk11; - /* 0x12 */ u8 pad12[6]; - /* 0x18 */ s8 unk18; + /* 0x12 */ u8 pad12[5]; + + // Defines the location in a hub world the player will spawn at when exiting `destinationMapId`. + // Only used if the exit goes to a race. + // 0: Hub exit door + // 1-4: One of the 4 race doors + // 5: Boss door + // 6: Minigame door + // 7: Wizpig head + /* 0x17 */ u8 returnSpawnIndex; + + // -1: Doesn't warp to a boss race + // 0: Warps to a boss 1 race + // 1: Warps to a boss 2 race + /* 0x18 */ s8 bossFlag; } LevelObjectEntry_Exit; typedef struct LevelObjectEntry_Audio { @@ -114,6 +140,12 @@ typedef struct LevelObjectEntry_Door { typedef struct LevelObjectEntry_FogChanger { /* 0x00 */ LevelObjectEntryCommon common; /* 0x08 */ u8 unk8; + /* 0x09 */ u8 unk9; + /* 0x0A */ u8 unkA; + /* 0x0B */ u8 unkB; + /* 0x0C */ s16 unkC; + /* 0x0E */ s16 unkE; + /* 0x10 */ s16 unk10; } LevelObjectEntry_FogChanger; typedef struct LevelObjectEntry_AiNode { @@ -204,6 +236,12 @@ typedef struct LevelObjectEntry_Buoy_PirateShip { typedef struct LevelObjectEntry_Weather { /* 0x00 */ LevelObjectEntryCommon common; /* 0x08 */ s16 unk8; + /* 0x0A */ s16 unkA; + /* 0x0C */ s16 unkC; + /* 0x0E */ s16 unkE; + /* 0x10 */ u8 unk10; + /* 0x11 */ u8 unk11; + /* 0x12 */ s16 unk12; } LevelObjectEntry_Weather; typedef struct LevelObjectEntry_Bridge_WhaleRamp { @@ -387,6 +425,12 @@ typedef struct LevelObjectEntry_DynamicLightingObject { typedef struct LevelObjectEntry_EffectBox { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u8 unk8; + /* 0x09 */ u8 unk9; + /* 0x0A */ u8 unkA; + /* 0x0B */ u8 unkB; + /* 0x0C */ u8 unkC; + /* 0x0D */ u8 unkD; } LevelObjectEntry_EffectBox; typedef struct LevelObjectEntry_TrophyCab { @@ -468,6 +512,7 @@ typedef struct LevelObjectEntry_Snowball { typedef struct LevelObjectEntry_Teleport { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ s8 unk8; } LevelObjectEntry_Teleport; typedef struct LevelObjectEntry_Lighthouse_RocketSignpost { @@ -483,6 +528,8 @@ typedef struct LevelObjectEntry_Windsail { typedef struct LevelObjectEntry_RangeTrigger { /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u16 unk8; + /* 0x0A */ u16 unkA; } LevelObjectEntry_RangeTrigger; typedef struct LevelObjectEntry_Fireball_Octoweapon { @@ -543,4 +590,102 @@ typedef struct LevelObjectEntry8000E2B4 { s16 unkE; } LevelObjectEntry8000E2B4; +typedef struct LevelObjectEntry80011AD0 { + LevelObjectEntryCommon common; + u8 pad8[0x6]; + u8 unkD; +} LevelObjectEntry80011AD0; + +typedef struct LevelObjectEntry { + union { + LevelObjectEntry_Racer racer; + LevelObjectEntry_Scenery scenery; + LevelObjectEntry_Fish fish; + LevelObjectEntry_Animator animator; + LevelObjectEntry_Weapon weapon; + LevelObjectEntry_Smoke smoke; + LevelObjectEntry_Exit exit; + LevelObjectEntry_Audio audio; + LevelObjectEntry_AudioLine audioLine; + LevelObjectEntry_CameraControl cameraControl; + LevelObjectEntry_SetupPoint setupPoint; + LevelObjectEntry_Dino_Whale dino_whale; + LevelObjectEntry_Checkpoint checkpoint; + LevelObjectEntry_Door door; + LevelObjectEntry_FogChanger fogChanger; + LevelObjectEntry_AiNode aiNode; + LevelObjectEntry_WeaponBalloon weaponBalloon; + LevelObjectEntry_AudioSeqLine audioSeqLine; + LevelObjectEntry_BombExplosion bombExplosion; + LevelObjectEntry_WBalloonPop balloonPop; + LevelObjectEntry_Unknown25 unk25; + LevelObjectEntry_SkyControl skyControl; + LevelObjectEntry_AudioReverb audioReverb; + LevelObjectEntry_Torch_Mist torch_mist; + LevelObjectEntry_TexScroll texScroll; + LevelObjectEntry_ModeChange modeChange; + LevelObjectEntry_StopWatchMan tt; + LevelObjectEntry_Banana banana; + LevelObjectEntry_RgbaLight rgbaLighting; + LevelObjectEntry_Buoy_PirateShip buoy_pirateShip; + LevelObjectEntry_Weather weather; + LevelObjectEntry_Bridge_WhaleRamp bridge_whaleRamp; + LevelObjectEntry_RampSwitch rampSwitch; + LevelObjectEntry_SeaMonster seaMonster; + LevelObjectEntry_Bonus bonus; + LevelObjectEntry_LensFlare lensFlare; + LevelObjectEntry_LensFlareSwitch lensFlareSwitch; + LevelObjectEntry_CollectEgg collectEgg; + LevelObjectEntry_EggCreator eggCreator; + LevelObjectEntry_CharacterFlag characterFlag; + LevelObjectEntry_Animation animation; + LevelObjectEntry_InfoPoint infoPoint; + LevelObjectEntry_Trigger trigger; + LevelObjectEntry_AirZippers_WaterZippers airzipper_waterzipper; + LevelObjectEntry_Unknown58 unk58; + LevelObjectEntry_WaveGenerator waverGenerator; + LevelObjectEntry_Butterfly butterfly; + LevelObjectEntry_Parkwarden taj; + LevelObjectEntry_WorldKey worldKey; + LevelObjectEntry_BananaCreator bananaCreator; + LevelObjectEntry_TreasureSucker treasureSucker; + LevelObjectEntry_Log log; + LevelObjectEntry_LavaSpurt lavaSpurt; + LevelObjectEntry_PosArrow posArrow; + LevelObjectEntry_HitTester hitTester; + LevelObjectEntry_MidiFade midiFade; + LevelObjectEntry_DynamicLightingObject dynamicLighting; + LevelObjectEntry_EffectBox effectBox; + LevelObjectEntry_TrophyCab trophyCabinet; + LevelObjectEntry_Bubbler bubbler; + LevelObjectEntry_FlyCoin flyCoin; + LevelObjectEntry_GoldenBalloon goldenBalloon; + LevelObjectEntry_Laserbolt laserbolt; + LevelObjectEntry_Lasergun lasergun; + LevelObjectEntry_GroundZipper groundZipper; + LevelObjectEntry_OverridePos overridePos; + LevelObjectEntry_WizpigShip wizpigShip; + LevelObjectEntry_SilverCoin silverCoin; + LevelObjectEntry_Boost boost; + LevelObjectEntry_WardenSmoke tajSmoke; + LevelObjectEntry_Unknown94 unk94; + LevelObjectEntry_Unknown96 unk96; + LevelObjectEntry_Snowball snowball; + LevelObjectEntry_Teleport teleport; + LevelObjectEntry_Lighthouse_RocketSignpost lighthouse_signpost; + LevelObjectEntry_Windsail windsail; + LevelObjectEntry_RangeTrigger rangeTrigger; + LevelObjectEntry_Fireball_Octoweapon fireball_octoweapon; + LevelObjectEntry_Frog frog; + LevelObjectEntry_SilverCoinAdv2 silverCoinAdv2; + LevelObjectEntry_TTDoor ttDoor; + LevelObjectEntry_MidiFadePoint midiFadePoint; + LevelObjectEntry_OctoBubble octoBubble; + LevelObjectEntry_LevelName levelName; + LevelObjectEntry_Midichset midichset; + LevelObjectEntry8000E2B4 unk8000E2B4; + LevelObjectEntry80011AD0 unk80011AD0; + }; +} LevelObjectEntry; + #endif diff --git a/include/structs.h b/include/structs.h index f5f8df2c..84252d4b 100644 --- a/include/structs.h +++ b/include/structs.h @@ -5,6 +5,7 @@ #include "types.h" #include "enums.h" +#include "level_object_entries.h" // Stolen from PD // This hacky structure allows coords to be accessed using @@ -162,50 +163,91 @@ typedef struct Settings4C { /* Size: 0x118 bytes */ typedef struct Settings { + // Balloon indices: + // 0 = Total balloons + // 1 = Dino Domain balloons + // 2 = Sherbet Island balloons + // 3 = Snowflake Mountain balloons + // 4 = Dragon Forest balloons + // 5 = Future Fun Land balloons /* 0x0000 */ s16 *balloonsPtr; + + // Course flag bits: + // 0x1 = Map has been visited. + // 0x2 = Map has been completed. + // 0x4 = Map's silver coin challenge has been completed. + // 0x00000000-0xFFFF0000 = Used as bit fields for hub worlds to indicate whether or not a door can open when the player gets near it. /* 0x0004 */ s32 *courseFlagsPtr; + + // Key bits: + // 0x02 = Dino Domain key + // 0x04 = Sherbet Island key + // 0x08 = Snowflake Mountain key + // 0x10 = Dragon Forest key /* 0x0008 */ u16 keys; + /* 0x000A */ u16 unkA; + + // Boss bits: + // 0x001 = Wizpig 1 + // 0x002 = Tricky 1 + // 0x004 = Bubbler 1 + // 0x008 = Bluey 1 + // 0x010 = Smokey 1 + // 0x020 = Wizpig 2 + // 0x080 = Tricky 2 + // 0x100 = Bubbler 2 + // 0x200 = Bluey 2 + // 0x400 = Smokey 2 /* 0x000C */ u16 bosses; + + // Trophy bits: + // Bit field 0b00-0b11 = Empty, 3rd, 2nd, and 1st place trophies. + // `trophies` consists of 5 of these bit fields, from LSB to MSB, Dino, Sherbet, Snowflake, Dragon, and FFL. /* 0x000E */ u16 trophies; + + // Cutscene flags: + // 0x1 = Lighthouse rocket cutscene + // 0x2 = T.T. help prompt + // 0x4 = Adventure 2 flag? + // 0x8 = Dino domain boss cutscene + // 0x10 = Sherbet island boss cutscene + // 0x20 = Snowflake mountain boss cutscene + // 0x40 = Dragon forest boss cutscene + // 0x80 = Future Fun Land boss cutscene + // 0x100 = Dino domain boss cutscene 2 + // 0x200 = Shertbet island boss cutscene 2 + // 0x400 = Snowflake mountain boss cutscene 2 + // 0x800 = Dragon forest boss cutscene 2 + // 0x2000 = Wizpig face cutscene + // 0x4000 = Dino domain key cutscene + // 0x8000 = Sherbet Island key cutscene + // 0x10000 = Snowflake mountain key cutscene + // 0x20000 = Dragon forest key cutscene /* 0x0010 */ u32 cutsceneFlags; - /* Cutscene flags: - * 0x1 = Lighthouse rocket cutscene - * 0x2 = T.T. help prompt - * 0x4 = Adventure 2 flag? - * 0x8 = Dino domain boss cutscene - * 0x10 = Sherbet island boss cutscene - * 0x20 = Snowflake mountain boss cutscene - * 0x40 = Dragon forest boss cutscene - * 0x80 = Future Fun Land boss cutscene - * 0x100 = Dino domain boss cutscene 2 - * 0x200 = Shertbet island boss cutscene 2 - * 0x400 = Snowflake mountain boss cutscene 2 - * 0x800 = Dragon forest boss cutscene 2 - * 0x2000 = Wizpig face cutscene - * 0x4000 = Dino domain key cutscene - * 0x8000 = Sherbet Island key cutscene - * 0x10000 = Snowflake mountain key cutscene - * 0x20000 = Dragon forest key cutscene - */ + + // Taj flags: + // 0x1 = Car challenge unlocked + // 0x2 = Hover challenge unlocked + // 0x4 = Plane challenge unlocked + // 0x8 = Car challenge completed + // 0x10 = Hover challenge completed + // 0x20 = Plane challenge completed /* 0x0014 */ u16 tajFlags; - /* Taj flags: - * 0x1 = Car challenge unlocked - * 0x2 = Hover challenge unlocked - * 0x4 = Plane challenge unlocked - * 0x8 = Car challenge completed - * 0x10 = Hover challenge completed - * 0x20 = Plane challenge completed - */ + + // Not a bitfield, just a counter from 0-4. /* 0x0016 */ u8 ttAmulet; + + // Not a bitfield, just a counter from 0-4. /* 0x0017 */ u8 wizpigAmulet; + /* 0x0018 */ u16 *flapInitialsPtr[3]; /* 0x0024 */ u16 *flapTimesPtr[3]; /* 0x0030 */ u16 *courseInitialsPtr[3]; /* 0x003C */ u16 *courseTimesPtr[3]; /* 0x0048 */ u8 worldId; /* 0x0049 */ u8 courseId; - /* 0x004A */ u8 gObjectCount; + /* 0x004A */ u8 gNumRacers; /* 0x004B */ u8 newGame; /* 0x004C */ Settings4C *unk4C; /* 0x0050 */ u32 filename; @@ -513,16 +555,6 @@ typedef struct LevelModel { /* 0x48 */ s32 modelSize; } LevelModel; -typedef struct Object_3C { - u8 pad0[0x2]; - s16 unk2; - s16 unk4; - s16 unk6; - s8 unk8; - u8 pad9[0x4]; - u8 unkD; -} Object_3C; - typedef enum { OBJECT_MODEL_TYPE_3D_MODEL, OBJECT_MODEL_TYPE_SPRITE_BILLBOARD, @@ -966,8 +998,8 @@ typedef struct Object_Racer { /* 0x18C */ s16 unk18C; /* 0x18E */ s16 shieldTimer; /* 0x190 */ s16 unk190; - /* 0x192 */ s8 unk192; - /* 0x193 */ s8 lapCount; + /* 0x192 */ s8 checkpoint; + /* 0x193 */ s8 lap; /* 0x194 */ s8 unk194; /* 0x195 */ s8 unk195; /* 0x196 */ s16 unk196; @@ -1111,7 +1143,7 @@ typedef struct Object_Door { /* 0x11 */ u8 unk11; /* 0x12 */ u8 unk12; /* 0x13 */ u8 unk13; - /* 0x14 */ u8 unk14; + /* 0x14 */ s8 unk14; } Object_Door; typedef struct Object_Trigger { @@ -1346,7 +1378,7 @@ typedef struct ObjectSegment { /* 0x003B */ s8 unk3B; union { - /* 0x003C */ Object_3C* unk3C; + /* 0x003C */ LevelObjectEntry* level_entry; /* 0x003C */ f32 unk3C_f; } unk3C_a; diff --git a/src/game.c b/src/game.c index 358f0d95..66fe83ff 100644 --- a/src/game.c +++ b/src/game.c @@ -123,7 +123,7 @@ extern s32 gShowControllerPakMenu; /************ .bss ************/ s32 *gTempAssetTable; -s32 D_80121164; +MapId gMapId; LevelHeader *gCurrentLevelHeader; u8 **gLevelNames; s32 gNumberOfLevelHeaders; @@ -152,7 +152,8 @@ UNUSED u8 D_80121268[0x2000]; // 0x2000 / 8192 bytes Padding? s32 gSPTaskNum; s32 sRenderContext; s32 D_801234F0; -s32 D_801234F4; +// Similar to gMapId, but is 0 if not currently playing a level (e.g. start menu). +MapId gPlayableMapId; s32 D_801234F8; s32 D_801234FC; s32 D_80123500; @@ -163,8 +164,8 @@ Settings *gSettingsPtr; s8 gIsLoading; s8 gIsPaused; s8 gPostRaceViewPort; -s32 gLevelDefaultVehicleID; -s32 D_8012351C; // Looks to be the current level's vehicle ID. +Vehicle gLevelDefaultVehicleID; +Vehicle D_8012351C; // Looks to be the current level's vehicle ID. s32 sBootDelayTimer; s8 D_80123524; s8 D_80123525; @@ -298,16 +299,16 @@ s32 func_8006B054(s8 arg0) { return out; } -s32 func_8006B0AC(s32 arg0) { - if (arg0 > 0 && arg0 < gNumberOfLevelHeaders) { - return D_8012117C[arg0].unk2 & 0xF; +Vehicle get_map_default_vehicle(MapId mapId) { + if (mapId > 0 && mapId < gNumberOfLevelHeaders) { + return D_8012117C[mapId].unk2 & 0xF; } - return 0; + return VEHICLE_CAR; } -s32 func_8006B0F8(s32 arg0) { - if (arg0 > 0 && arg0 < gNumberOfLevelHeaders) { - s32 temp = D_8012117C[arg0].unk2; +s32 get_map_available_vehicles(MapId mapId) { + if (mapId > 0 && mapId < gNumberOfLevelHeaders) { + s32 temp = D_8012117C[mapId].unk2; if (temp != 0) { return (temp >> 4) & 0xF; } @@ -315,21 +316,21 @@ s32 func_8006B0F8(s32 arg0) { return 1; } -s8 func_8006B14C(s32 arg0) { - if (arg0 >= 0 && arg0 < gNumberOfLevelHeaders) { - return D_8012117C[arg0].unk1; +s8 func_8006B14C(MapId mapId) { + if (mapId >= 0 && mapId < gNumberOfLevelHeaders) { + return D_8012117C[mapId].unk1; } return -1; } -s8 func_8006B190(s32 arg0) { - if (arg0 >= 0 && arg0 < gNumberOfLevelHeaders) { - return D_8012117C[arg0].unk0; +s8 func_8006B190(MapId mapId) { + if (mapId >= 0 && mapId < gNumberOfLevelHeaders) { + return D_8012117C[mapId].unk0; } return 0; } -s32 get_hub_area_id(s32 worldId) { +MapId get_hub_area_id(s32 worldId) { s8 *hubAreaIds; if (worldId < 0 || worldId >= gNumberOfWorlds) { @@ -352,9 +353,9 @@ s32 func_8006B240(void) { // This isn't matching, but there shouldn't be any issues (hopefully). #ifdef NON_EQUIVALENT -void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId, s32 cutsceneId) { +void load_level(MapId levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId) { s32 maxLevelCount; - s32 sp44; + MapId sp44; s32 noPlayers; s32 phi_s0; s32 vehicle; @@ -393,7 +394,7 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId, } maxLevelCount--; if (levelId >= maxLevelCount) { - levelId = 0; + levelId = ASSET_LEVEL_CENTRALAREAHUB; } offset = gTempAssetTable[levelId]; size = gTempAssetTable[levelId + 1] - offset; @@ -473,7 +474,7 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId, free_from_memory_pool(gTempAssetTable); func_8006BFC8(&gCurrentLevelHeader->unk20); func_8000CBC0(); - D_80121164 = levelId; + gMapId = levelId; for (i = 0; i < 7; i++) { if ((s32)gCurrentLevelHeader->unk74[i] != -1) { gCurrentLevelHeader->unk74[i] = get_misc_asset((s32)gCurrentLevelHeader->unk74[i]); @@ -611,8 +612,8 @@ void func_8006BD10(f32 arg0) { } } -s32 func_8006BD88(void) { - return D_80121164; +MapId func_8006BD88(void) { + return gMapId; } /** @@ -640,7 +641,7 @@ UNUSED u8 get_total_level_header_count(void) { /** * Returns the name of the level from the passed ID */ -u8 *get_level_name(s32 levelId) { +u8 *get_level_name(MapId levelId) { u8 *levelName; u8 numberOfNullPointers = 0; @@ -764,7 +765,7 @@ s8 func_8006C19C(void) { } // Push a stack onto D_801211C8 -void func_8006C1AC(s32 levelId, s32 entranceId, s32 vehicleId, s32 cutsceneId) { +void func_8006C1AC(MapId levelId, s32 entranceId, Vehicle vehicleId, s32 cutsceneId) { D_801211C8[D_800DD328++] = levelId; D_801211C8[D_800DD328++] = entranceId; D_801211C8[D_800DD328++] = vehicleId; @@ -1015,14 +1016,14 @@ void main_game_loop(void) { } } -void func_8006CAE4(s32 arg0, s32 arg1, s32 arg2) { +void func_8006CAE4(s32 arg0, s32 arg1, Vehicle vehicle) { D_80123500 = arg0 - 1; if (arg1 == -1) { - D_801234F4 = get_track_id_to_load(); + gPlayableMapId = get_track_id_to_load(); } else { - D_801234F4 = arg1; + gPlayableMapId = arg1; } - load_level_2(D_801234F4, D_80123500, D_80123504, arg2); + load_level_2(gPlayableMapId, D_80123500, D_80123504, vehicle); } /** @@ -1030,7 +1031,7 @@ void func_8006CAE4(s32 arg0, s32 arg1, s32 arg2) { * which is the value at D_80123508. Also does some other stuff. * Needs a better name! */ -void load_level_2(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId) { +void load_level_2(MapId levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId) { func_8006ECFC(numberOfPlayers); set_free_queue_state(0); func_80065EA0(); @@ -1222,7 +1223,7 @@ void ingame_logic_loop(s32 updateRate) { render_second_multiplayer_borders(&gCurrDisplayList); if (D_800DD39C != 0) { if (func_800214C4() != 0) { - D_801234F4 = 0x23; + gPlayableMapId = ASSET_LEVEL_FUTUREFUNLANDHUB; D_801234F8 = 1; D_80123504 = 0; D_800DD39C = 0; @@ -1233,8 +1234,8 @@ void ingame_logic_loop(s32 updateRate) { D_800DD390 -= updateRate; if (D_800DD390 <= 0) { D_800DD390 = 0; - func_8006C1AC(0, 0, 0, 0); - func_8006C1AC(0x2B, 0, -1, 0xA); + func_8006C1AC(ASSET_LEVEL_CENTRALAREAHUB, 0, VEHICLE_CAR, 0); + func_8006C1AC(ASSET_LEVEL_WIZPIGAMULETSEQUENCE, 0, -1, 0xA); sp3C = TRUE; } } @@ -1257,7 +1258,7 @@ void ingame_logic_loop(s32 updateRate) { // fall-through case 4: D_801234F8 = 1; - D_801234F4 = D_80123525; + gPlayableMapId = D_80123525; D_80123504 = 0; D_80123508 = 0; buttonHeldInputs = 0; @@ -1269,11 +1270,11 @@ void ingame_logic_loop(s32 updateRate) { } if (sp3C) { if (func_8006C2F0() != 0) { - func_8006C22C(&D_801234F4, &D_80123504, &i, &D_80123508); + func_8006C22C(&gPlayableMapId, &D_80123504, &i, &D_80123508); func_8006F42C(); - if (D_801234F4 < 0) { - if (D_801234F4 == -1 || D_801234F4 == -10) { - if (D_801234F4 == -10 && is_in_two_player_adventure()) { + if (gPlayableMapId < 0) { + if (gPlayableMapId == (MapId)SPECIAL_MAP_ID_NO_LEVEL || gPlayableMapId == (MapId)SPECIAL_MAP_ID_UNK_NEG10) { + if (gPlayableMapId == (MapId)SPECIAL_MAP_ID_UNK_NEG10 && is_in_two_player_adventure()) { func_8006F398(); } buttonHeldInputs |= L_TRIG; @@ -1299,10 +1300,10 @@ void ingame_logic_loop(s32 updateRate) { func_80000B28(); } func_8006F42C(); - func_8006C22C(&D_801234F4, &D_80123504, &i, &D_80123508); - if (D_801234F4 < 0) { - if (D_801234F4 == -1 || D_801234F4 == -10) { - if (D_801234F4 == -10 && is_in_two_player_adventure()) { + func_8006C22C(&gPlayableMapId, &D_80123504, &i, &D_80123508); + if (gPlayableMapId < 0) { + if (gPlayableMapId == -1 || gPlayableMapId == -10) { + if (gPlayableMapId == -10 && is_in_two_player_adventure()) { func_8006F398(); } buttonHeldInputs |= L_TRIG; @@ -1375,15 +1376,15 @@ void ingame_logic_loop(s32 updateRate) { } } else if (!(buttonHeldInputs & R_TRIG)) { if (!(buttonHeldInputs & Z_TRIG)) { - D_801234F4 = D_80121250[0]; + gPlayableMapId = D_80121250[0]; D_80123504 = D_80121250[15]; D_80123508 = D_80121250[D_80121250[1] + 8]; - gLevelDefaultVehicleID = func_8006B0AC(D_801234F4); + gLevelDefaultVehicleID = get_map_default_vehicle(gPlayableMapId); if (D_80123508 < 0) { D_80123508 = 0x64; } } - load_level_2(D_801234F4, D_80123500, D_80123504, gLevelDefaultVehicleID); + load_level_2(gPlayableMapId, D_80123500, D_80123504, gLevelDefaultVehicleID); } else { func_8006EC48(get_save_file_index()); load_menu_with_level_background(MENU_TITLE, -1, 0); @@ -1393,7 +1394,7 @@ void ingame_logic_loop(s32 updateRate) { if (D_801234F8 != 0) { gPostRaceViewPort = NULL; func_8006CC14(); - load_level_2(D_801234F4, D_80123500, D_80123504, gLevelDefaultVehicleID); + load_level_2(gPlayableMapId, D_80123500, D_80123504, gLevelDefaultVehicleID); func_8006EC48(get_save_file_index()); D_801234F8 = 0; } @@ -1413,7 +1414,7 @@ void func_8006D8E0(s32 arg0) { void func_8006D8F0(UNUSED s32 arg0) { s32 temp; if (sRenderContext != DRAW_UNK_04) { - D_801234F4 = D_80121250[0]; + gPlayableMapId = D_80121250[0]; D_80123504 = 0; D_80123508 = 0x64; temp = D_80121250[1]; @@ -1430,7 +1431,7 @@ void func_8006D8F0(UNUSED s32 arg0) { void func_8006D968(s8 *arg0) { s32 i; if (sRenderContext != DRAW_UNK_04) { - D_80121250[0] = D_801234F4; + D_80121250[0] = gPlayableMapId; for (i = 0; i < 2; i++) { D_80121250[i + 2] = arg0[i + 8]; D_80121250[i + 4] = arg0[i + 10]; @@ -1468,7 +1469,7 @@ void load_menu_with_level_background(s32 menuId, s32 levelId, s32 cutsceneId) { if (levelId < 0) { gIsLoading = TRUE; } else { - load_level_3(levelId, -1, 0, 2, cutsceneId); + load_level_3(levelId, -1, 0, VEHICLE_PLANE, cutsceneId); } } if (menuId == MENU_UNUSED_2 || menuId == MENU_LOGOS || menuId == MENU_TITLE) { @@ -1481,18 +1482,18 @@ void load_menu_with_level_background(s32 menuId, s32 levelId, s32 cutsceneId) { /** * Set the default vehicle option from the current loaded level. */ -void set_level_default_vehicle(s32 vehicleID) { +void set_level_default_vehicle(Vehicle vehicleID) { gLevelDefaultVehicleID = vehicleID; } -void func_8006DB20(s32 vehicleId) { +void func_8006DB20(Vehicle vehicleId) { D_8012351C = vehicleId; } /** * Get the default vehicle option, set by a loaded level. */ -s32 get_level_default_vehicle(void) { +Vehicle get_level_default_vehicle(void) { return gLevelDefaultVehicleID; } @@ -1500,7 +1501,7 @@ s32 get_level_default_vehicle(void) { * Calls load_level() with the same arguments, but also does some other stuff. * Needs a better name! */ -void load_level_3(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId, s32 cutsceneId) { +void load_level_3(MapId levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId) { set_free_queue_state(0); func_80065EA0(); func_800C3048(); @@ -1560,14 +1561,14 @@ void func_8006DCF8(s32 updateRate) { gCurrDisplayList = gDisplayLists[gSPTaskNum]; gDPFullSync(gCurrDisplayList++); gSPEndDisplayList(gCurrDisplayList++); - D_801234F4 = menuLoopResult & 0x7F; - gLevelDefaultVehicleID = func_8006B0AC(D_801234F4); + gPlayableMapId = menuLoopResult & 0x7F; + gLevelDefaultVehicleID = get_map_default_vehicle(gPlayableMapId); D_80123504 = 0; D_80123508 = 0x64; sRenderContext = DRAW_GAME; gIsPaused = FALSE; gPostRaceViewPort = NULL; - load_level_2(D_801234F4, D_80123500, D_80123504, gLevelDefaultVehicleID); + load_level_2(gPlayableMapId, D_80123500, D_80123504, gLevelDefaultVehicleID); func_8006EC48(get_save_file_index()); return; } @@ -1580,17 +1581,17 @@ void func_8006DCF8(s32 updateRate) { load_menu_with_level_background(MENU_TRACK_SELECT, -1, 1); break; case 14: - D_801234F4 = 0; + gPlayableMapId = ASSET_LEVEL_CENTRALAREAHUB; D_80123504 = 0; D_80123508 = 0x64; sRenderContext = DRAW_GAME; - load_level_2(D_801234F4, D_80123500, D_80123504, gLevelDefaultVehicleID); + load_level_2(gPlayableMapId, D_80123500, D_80123504, gLevelDefaultVehicleID); func_8006EC48(get_save_file_index()); break; case 1: D_80123504 = 0; D_80123508 = 0x64; - D_801234F4 = D_80121250[0]; + gPlayableMapId = D_80121250[0]; sRenderContext = DRAW_GAME; // Minor issue with these 2 if statements temp2 = D_80121250[D_80121250[1] + 8]; @@ -1601,20 +1602,20 @@ void func_8006DCF8(s32 updateRate) { if (temp2 >= 0) { D_80123508 = temp2; } - load_level_2(D_801234F4, D_80123500, D_80123504, gLevelDefaultVehicleID); + load_level_2(gPlayableMapId, D_80123500, D_80123504, gLevelDefaultVehicleID); func_8006EC48(get_save_file_index()); break; case 2: sRenderContext = DRAW_GAME; - load_level_2(D_801234F4, D_80123500, D_80123504, gLevelDefaultVehicleID); + load_level_2(gPlayableMapId, D_80123500, D_80123504, gLevelDefaultVehicleID); break; case 3: sRenderContext = DRAW_GAME; - D_801234F4 = D_80121250[0]; + gPlayableMapId = D_80121250[0]; D_80123504 = D_80121250[15]; D_80123508 = D_80121250[D_80121250[1] + 8]; - gLevelDefaultVehicleID = func_8006B0AC(D_801234F4); - load_level_2(D_801234F4, D_80123500, D_80123504, gLevelDefaultVehicleID); + gLevelDefaultVehicleID = get_map_default_vehicle(gPlayableMapId); + load_level_2(gPlayableMapId, D_80123500, D_80123504, gLevelDefaultVehicleID); break; default: load_menu_with_level_background(MENU_TITLE, -1, 0); @@ -1630,14 +1631,14 @@ void func_8006DCF8(s32 updateRate) { gSPEndDisplayList(gCurrDisplayList++); temp = menuLoopResult & 0x7F; D_80121250[1] = temp; - D_80121250[0] = D_801234F4; - D_801234F4 = D_80121250[temp + 2]; + D_80121250[0] = gPlayableMapId; + gPlayableMapId = D_80121250[temp + 2]; D_80123504 = D_80121250[temp + 4]; sRenderContext = DRAW_GAME; D_80123508 = D_80121250[temp + 12]; temp = get_player_selected_vehicle(0); - D_80123500 = gSettingsPtr->gObjectCount - 1; - load_level_2(D_801234F4, D_80123500, D_80123504, temp); + D_80123500 = gSettingsPtr->gNumRacers - 1; + load_level_2(gPlayableMapId, D_80123500, D_80123504, temp); D_801234FC = 0; gLevelDefaultVehicleID = D_8012351C; return; @@ -1660,7 +1661,7 @@ void func_8006DCF8(s32 updateRate) { GLOBAL_ASM("asm/non_matchings/game/func_8006DCF8.s") #endif -void load_level_for_menu(s32 levelId, s32 numberOfPlayers, s32 cutsceneId) { +void load_level_for_menu(MapId levelId, s32 numberOfPlayers, s32 cutsceneId) { if (!gIsLoading) { func_8006DBE4(); if (get_thread30_level_id_to_load() == 0) { @@ -1669,8 +1670,8 @@ void load_level_for_menu(s32 levelId, s32 numberOfPlayers, s32 cutsceneId) { gSPEndDisplayList(gCurrDisplayList++); } } - if (levelId != -1) { - load_level_3(levelId, numberOfPlayers, 0, 2, cutsceneId); + if (levelId != (MapId)SPECIAL_MAP_ID_NO_LEVEL) { + load_level_3(levelId, numberOfPlayers, 0, VEHICLE_PLANE, cutsceneId); gIsLoading = FALSE; return; } @@ -1724,11 +1725,11 @@ void calc_and_alloc_heap_for_settings(void) { void func_8006E5BC(void) { s32 i, j; - gSettingsPtr->gObjectCount = get_number_of_active_players(); + gSettingsPtr->gNumRacers = get_number_of_active_players(); for (i = 0; i < 8; i++) { gSettingsPtr->racers[i].best_times = 0; gSettingsPtr->racers[i].character = get_character_id_from_slot(i); - if (gSettingsPtr->gObjectCount >= 2) { + if (gSettingsPtr->gNumRacers >= 2) { gSettingsPtr->racers[i].starting_position = i; } else if (is_in_two_player_adventure()) { gSettingsPtr->racers[i].starting_position = 5 - i; @@ -1830,8 +1831,8 @@ s32 is_reset_pressed(void) { return gNMIMesgBuf[0]; } -s32 func_8006EB14(void) { - return D_801234F4; +MapId func_8006EB14(void) { + return gPlayableMapId; } /* Unused? */ diff --git a/src/game.h b/src/game.h index 77890029..d5357f0f 100644 --- a/src/game.h +++ b/src/game.h @@ -84,25 +84,26 @@ void func_80070B04(s32 videoLastFrameBuffer, s32 VideoCurrFrameBuffer, s32 size) s16 func_8006ABB4(s32 arg0); s32 func_8006B018(s8 arg0); s32 func_8006B054(s8 arg0); -s32 func_8006B0AC(s32 arg0); -s32 func_8006B0F8(s32 arg0); -s8 func_8006B14C(s32 arg0); -s8 func_8006B190(s32 arg0); -s32 get_hub_area_id(s32 worldId); +Vehicle get_map_default_vehicle(MapId mapId); +// Returns bitfield with (1 << Vehicle) set for every available vehicle. +s32 get_map_available_vehicles(MapId mapId); +s8 func_8006B14C(MapId mapId); +s8 func_8006B190(MapId mapId); +MapId get_hub_area_id(s32 worldId); void get_number_of_levels_and_worlds(s32 *outLevelCount, s32 *outWorldCount); s32 func_8006B240(void); void func_8006BD10(f32 arg0); -s32 func_8006BD88(void); +MapId func_8006BD88(void); u8 get_current_level_race_type(void); LevelHeader *get_current_level_header(void); u8 get_total_level_header_count(void); -u8 *get_level_name(s32 levelId); +u8 *get_level_name(MapId levelId); void func_8006BEFC(void); void func_8006BFC8(s8 *arg0); void func_8006C164(void); TempStruct5 *func_8006C18C(void); s8 func_8006C19C(void); -void func_8006C1AC(s32 levelId, s32 entranceId, s32 vehicleId, s32 cutsceneId); +void func_8006C1AC(MapId levelId, s32 entranceId, Vehicle vehicleId, s32 cutsceneId); void func_8006C22C(s32 *levelId, s32 *entranceId, s32 *vehicleId, s32 *cutsceneId); void func_8006C2E4(void); s16 func_8006C2F0(void); @@ -110,8 +111,8 @@ s32 func_8006C300(void); void thread3_main(UNUSED void *unused); void init_game(void); void main_game_loop(void); -void func_8006CAE4(s32 arg0, s32 arg1, s32 arg2); -void load_level_2(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId); +void func_8006CAE4(s32 arg0, s32 arg1, Vehicle vehicle); +void load_level_2(MapId levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId); void func_8006CC14(void); void func_8006D8A4(void); void func_8006D8E0(s32 arg0); @@ -120,13 +121,13 @@ void func_8006D968(s8 *arg0); s32 get_render_context(void); UNUSED void func_8006DA1C(s32 arg0); void load_menu_with_level_background(s32 menuId, s32 levelId, s32 cutsceneId); -void set_level_default_vehicle(s32 arg0); -void func_8006DB20(s32 vehicleId); -s32 get_level_default_vehicle(void); -void load_level_3(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId, s32 cutsceneId); +void set_level_default_vehicle(Vehicle arg0); +void func_8006DB20(Vehicle vehicleId); +Vehicle get_level_default_vehicle(void); +void load_level_3(MapId levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId); void func_8006DBE4(void); void func_8006DC58(s32 arg0); -void load_level_for_menu(s32 levelId, s32 numberOfPlayers, s32 cutsceneId); +void load_level_for_menu(MapId levelId, s32 numberOfPlayers, s32 cutsceneId); void calc_and_alloc_heap_for_settings(void); void func_8006E5BC(void); void func_8006E770(Settings *settings, s32 arg1); @@ -136,7 +137,7 @@ Settings *get_settings(void); s8 is_game_paused(void); s8 func_8006EAB0(void); s32 is_reset_pressed(void); -s32 func_8006EB14(void); +MapId func_8006EB14(void); void func_8006EB24(void); void func_8006EB40(void); void func_8006EB5C(void); @@ -168,7 +169,7 @@ void ingame_logic_loop(s32 updateRate); void func_8006ECFC(s32 numberOfPlayers); void func_8006DCF8(s32 arg0); void func_8006EFDC(void); -void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleId, s32 cutsceneId); +void load_level(MapId levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicleId, s32 cutsceneId); void func_8006A6B0(void); void func_80010994(s32 updateRate); diff --git a/src/game_ui.c b/src/game_ui.c index 02bb2264..8e39f480 100644 --- a/src/game_ui.c +++ b/src/game_ui.c @@ -269,8 +269,7 @@ u8 D_80126D71; s32 D_80126D74; s32 D_80126D78; u16 D_80126D7C; -DrawTexture D_80126D80; -s32 D_80126D88[254]; +DrawTexture gHudSprites[128]; s32 D_80127180; s32 D_80127184; u8 D_80127188; @@ -305,12 +304,12 @@ void render_hud(Gfx **dList, Matrix **mtx, TriangleList **tris, Object *arg3, s3 D_80126D08 = get_object_render_stack_pos(); if (D_8012718A) { - arg3 = func_8001BB18(1 - D_80126D08); + arg3 = get_racer_object_by_port(1 - D_80126D08); } D_80126D60 = get_current_level_header(); if (arg3 == NULL) { if (func_8001E440() == 10) { - arg3 = func_8001BB18(0); + arg3 = get_racer_object_by_port(0); } } if (arg3 != NULL && !(D_80126D60->unkBC & 2)) { @@ -475,8 +474,8 @@ block_95: D_80126CD1 = 0; func_8007BF1C(TRUE); if (D_80127180) { - (&D_80126D80)[D_80127180].texture = NULL; - render_textured_rectangle(&gHUDCurrDisplayList, &D_80126D80, 0, 0, 255, 255, 255, 255); + gHudSprites[D_80127180].texture = NULL; + render_textured_rectangle(&gHUDCurrDisplayList, &gHudSprites, 0, 0, 255, 255, 255, 255); } *dList = gHUDCurrDisplayList; *mtx = gHUDCurrMatrix; @@ -865,7 +864,7 @@ void render_racer_bananas(Object_64 *obj, s32 updateRate) { s16 temp_v1; s32 temp_lo; u8 var_v1; - if(obj->racer.playerIndex == PLAYER_COMPUTER || ((gHUDNumPlayers < 1 || D_800E2794[gHUDNumPlayers][obj->racer.playerIndex] == 2 || D_80126D60->race_type == 0x41 || D_80126D60->race_type == 0x40) && obj->racer.raceFinished == FALSE) && (gHUDNumPlayers < 1 || (obj->racer.lapCount < 1) || obj->racer.lap_times[obj->racer.lapCount] >= 180 || D_80126D60->race_type & 0x40)) { + if(obj->racer.playerIndex == PLAYER_COMPUTER || ((gHUDNumPlayers < 1 || D_800E2794[gHUDNumPlayers][obj->racer.playerIndex] == 2 || D_80126D60->race_type == 0x41 || D_80126D60->race_type == 0x40) && obj->racer.raceFinished == FALSE) && (gHUDNumPlayers < 1 || (obj->racer.lap < 1) || obj->racer.lap_times[obj->racer.lap] >= 180 || D_80126D60->race_type & 0x40)) { func_800AA600(&gHUDCurrDisplayList, (Matrix *) &gHUDCurrMatrix, (TriangleList *) &gHUDCurrTriList, (unk80126CDC *) &D_80126CDC->unk240); bananas = obj->racer.bananas; var_v1 = D_80126CDC->unkF8; @@ -943,7 +942,7 @@ void func_800A45F0(Object_Racer* racer) { D_80126CD5 = FALSE; } for (i = 0; i < 10; i++) { - if (i >= racer->lapCount) { + if (i >= racer->lap) { D_800E2834 = 0x80808080; } D_80126CD5 = TRUE; @@ -1039,7 +1038,7 @@ GLOBAL_ASM("asm/non_matchings/game_ui/func_800A4C44.s") * In multiplayer, shows a cut down display, if the display setting is set to show laps. */ void render_lap_count(Object_64 *obj, s32 updateRate) { - if (obj->racer.raceFinished == FALSE && (gHUDNumPlayers <= 0 || obj->racer.lapCount <= 0 || obj->racer.lap_times[obj->racer.lapCount] >= 180) + if (obj->racer.raceFinished == FALSE && (gHUDNumPlayers <= 0 || obj->racer.lap <= 0 || obj->racer.lap_times[obj->racer.lap] >= 180) && (gHUDNumPlayers <= 0 || D_800E2794[gHUDNumPlayers][obj->racer.playerIndex] == 3)) { if (D_80126D60->laps == (0, obj->racer.unk194 + 1) && gHUDNumPlayers < 2) { D_80126CDC->unk21A += updateRate; @@ -1067,8 +1066,8 @@ void render_lap_count(Object_64 *obj, s32 updateRate) { func_8007BF1C(TRUE); } if (is_game_paused() == FALSE) { - if (obj->racer.lap_times[obj->racer.lapCount] < 30 && D_80126CDC->unk3DA == 0 && obj->racer.raceFinished == FALSE) { - if ((obj->racer.lapCount == 1) && D_80126D60->laps >= 3) { + if (obj->racer.lap_times[obj->racer.lap] < 30 && D_80126CDC->unk3DA == 0 && obj->racer.raceFinished == FALSE) { + if ((obj->racer.lap == 1) && D_80126D60->laps >= 3) { D_80126CDC->unk3DA = 2; D_80126CDC->unk3DB = 1; D_80126CDC->unk3DD = 0; @@ -1100,7 +1099,7 @@ void render_lap_count(Object_64 *obj, s32 updateRate) { } break; } - } else if (D_80126D60->laps == (0, obj->racer.lapCount + 1) && obj->racer.lapCount != 0) { + } else if (D_80126D60->laps == (0, obj->racer.lap + 1) && obj->racer.lap != 0) { D_80126CDC->unk3DA = 3; D_80126CDC->unk3DB = -1; D_80126CDC->unk3DD = 0; @@ -1147,7 +1146,7 @@ void render_lap_count(Object_64 *obj, s32 updateRate) { } else { D_80126CDC->unk3EC = D_80126CDC->unk3FC; } - if (obj->racer.lap_times[obj->racer.lapCount] >= 60) { + if (obj->racer.lap_times[obj->racer.lap] >= 60) { D_80126CDC->unk3DB = -1; play_sound_global(SOUND_WHOOSH1, NULL); } @@ -1180,7 +1179,7 @@ void render_lap_count(Object_64 *obj, s32 updateRate) { } else { D_80126CDC->unk3AC = D_80126CDC->unk3BC; } - if (obj->racer.lap_times[obj->racer.lapCount] >= 0x3C) { + if (obj->racer.lap_times[obj->racer.lap] >= 0x3C) { D_80126CDC->unk3DB = 1; play_sound_global(SOUND_WHOOSH1, NULL); } @@ -1436,11 +1435,11 @@ void render_race_time(Object_64* obj, s32 updateRate) { s32 countingDown; s32 timerHideCounter; - if (!(gHUDNumPlayers && D_800E2794[gHUDNumPlayers][obj->racer.playerIndex] != 1) || (gHUDNumPlayers > 0 && obj->racer.lapCount > 0 && obj->racer.lap_times[obj->racer.lapCount] < 180)) { + if (!(gHUDNumPlayers && D_800E2794[gHUDNumPlayers][obj->racer.playerIndex] != 1) || (gHUDNumPlayers > 0 && obj->racer.lap > 0 && obj->racer.lap_times[obj->racer.lap] < 180)) { if (obj->racer.raceFinished == FALSE) { timerHideCounter = D_80126CDC->unk15A + 127; - if (obj->racer.lapCount > 0 && obj->racer.lap_times[obj->racer.lapCount] < 180 && obj->racer.lapCount < D_80126D60->laps) { - stopwatchTimer = obj->racer.lap_times[obj->racer.lapCount - 1]; + if (obj->racer.lap > 0 && obj->racer.lap_times[obj->racer.lap] < 180 && obj->racer.lap < D_80126D60->laps) { + stopwatchTimer = obj->racer.lap_times[obj->racer.lap - 1]; countingDown = TRUE; if (timerHideCounter == 0) { timerHideCounter = 180; @@ -1590,7 +1589,7 @@ s32 func_800A8474(Gfx **dList, Matrix **mtx, TriangleList **triList, s32 updateR } } D_80126D60 = get_current_level_header(); - sp150 = func_8001BA90(&sp140); + sp150 = get_racer_objects_by_port(&sp140); gHUDCurrDisplayList = *dList; gHUDCurrMatrix = *mtx; gHUDCurrTriList = *triList; @@ -1765,8 +1764,8 @@ s32 func_800A8474(Gfx **dList, Matrix **mtx, TriangleList **triList, s32 updateR } } if (D_80127180 != 0) { - (&D_80126D80)[D_80127180].texture = NULL; - render_textured_rectangle(&gHUDCurrDisplayList, &D_80126D80, 0, 0, 255, 255, 255, 255); + gHudSprites[D_80127180].texture = NULL; + render_textured_rectangle(&gHUDCurrDisplayList, &gHudSprites, 0, 0, 255, 255, 255, 255); } *dList = gHUDCurrDisplayList; *mtx = gHUDCurrMatrix; diff --git a/src/game_ui.h b/src/game_ui.h index ebff0e51..79543118 100644 --- a/src/game_ui.h +++ b/src/game_ui.h @@ -216,12 +216,6 @@ typedef struct unk80126CDC { s8 unk704[0x1C]; } unk80126CDC; -typedef struct { - u8 unk0[0x4B]; - s8 numLaps; - s8 unk4C; -} unk80126D60; - typedef struct unk800E1E64 { s32 unk0; s32 unk4; diff --git a/src/memory.c b/src/memory.c index 4361c675..85f425ed 100644 --- a/src/memory.c +++ b/src/memory.c @@ -75,7 +75,7 @@ MemoryPoolSlot *new_sub_memory_pool(s32 poolDataSize, s32 numSlots) { return newPool; } -#ifdef NON_MATCHING +#ifdef NON_EQUIVALENT //Match found in Dinosaur Planet, and it's *really* close, but not yet there. MemoryPoolSlot *new_memory_pool(MemoryPoolSlot *slots, s32 poolSize, s32 numSlots) { MemoryPoolSlot *firstSlot; diff --git a/src/menu.c b/src/menu.c index 43bbd766..8291260f 100644 --- a/src/menu.c +++ b/src/menu.c @@ -136,7 +136,7 @@ s32 D_80126520; s32 D_80126524; s32 D_80126528; s32 D_8012652C; -Settings *D_80126530[4]; +Settings *gSavefileData[4]; s8 D_80126540; s8 D_80126541; s32 D_80126544; @@ -321,7 +321,7 @@ s32 D_800DF4B4 = 0; s32 gIsInTracksMode = 1; s32 gNumberOfActivePlayers = 1; s32 gIsInTwoPlayerAdventure = 0; -s32 gTrackIdForPreview = 0; +MapId gTrackIdForPreview = ASSET_LEVEL_CENTRALAREAHUB; s32 gTrackSelectRow = 0; // 1 = Dino Domain, 2 = Sherbet Island, etc. s32 gSaveFileIndex = 0; s32 D_800DF4D0 = 0; // Unused? @@ -1738,19 +1738,19 @@ void func_80081218(void) { get_number_of_levels_and_worlds(&numLevels, &numWorlds); sp20 = ((numLevels * 4) + (numWorlds * 2) + 0x11B) & ~3; sp28 = numLevels * 4; - D_80126530[0] = allocate_from_main_pool_safe(sp20 * 4, COLOUR_TAG_WHITE); - D_80126530[0] = D_80126530[0]; - D_80126530[0]->courseFlagsPtr = (u8 *)D_80126530[0] + sizeof(Settings); - D_80126530[0]->balloonsPtr = (u8 *)D_80126530[0]->courseFlagsPtr + sp28; - D_80126530[1] = (u8 *)D_80126530[0] + sp20; - D_80126530[1]->courseFlagsPtr = (u8 *)D_80126530[1] + sizeof(Settings); - D_80126530[1]->balloonsPtr = (u8 *)D_80126530[1]->courseFlagsPtr + sp28; - D_80126530[2] = (u8 *)D_80126530[1] + sp20; - D_80126530[2]->courseFlagsPtr = (u8 *)D_80126530[2] + sizeof(Settings); - D_80126530[2]->balloonsPtr = (u8 *)D_80126530[2]->courseFlagsPtr + sp28; - D_80126530[3] = (u8 *)D_80126530[2] + sp20; - D_80126530[3]->courseFlagsPtr = (u8 *)D_80126530[3] + sizeof(Settings); - D_80126530[3]->balloonsPtr = (u8 *)D_80126530[3]->courseFlagsPtr + sp28; + gSavefileData[0] = allocate_from_main_pool_safe(sp20 * 4, COLOUR_TAG_WHITE); + gSavefileData[0] = gSavefileData[0]; + gSavefileData[0]->courseFlagsPtr = (u8 *)gSavefileData[0] + sizeof(Settings); + gSavefileData[0]->balloonsPtr = (u8 *)gSavefileData[0]->courseFlagsPtr + sp28; + gSavefileData[1] = (u8 *)gSavefileData[0] + sp20; + gSavefileData[1]->courseFlagsPtr = (u8 *)gSavefileData[1] + sizeof(Settings); + gSavefileData[1]->balloonsPtr = (u8 *)gSavefileData[1]->courseFlagsPtr + sp28; + gSavefileData[2] = (u8 *)gSavefileData[1] + sp20; + gSavefileData[2]->courseFlagsPtr = (u8 *)gSavefileData[2] + sizeof(Settings); + gSavefileData[2]->balloonsPtr = (u8 *)gSavefileData[2]->courseFlagsPtr + sp28; + gSavefileData[3] = (u8 *)gSavefileData[2] + sp20; + gSavefileData[3]->courseFlagsPtr = (u8 *)gSavefileData[3] + sizeof(Settings); + gSavefileData[3]->balloonsPtr = (u8 *)gSavefileData[3]->courseFlagsPtr + sp28; gCheatsAssetData = get_misc_asset(MISC_ASSET_UNK41); gNumberOfCheats = (s32)(*gCheatsAssetData); gMenuText = allocate_from_main_pool_safe(1024 * sizeof(char *), COLOUR_TAG_WHITE); @@ -2271,7 +2271,7 @@ void func_800828B8(void) { for (i = 0; i < numLevels; i++) { settings->courseFlagsPtr[i] = 0; for (numWorlds = 0; numWorlds < 3; numWorlds++) { - settings->courseFlagsPtr[i] |= D_80126530[numWorlds]->courseFlagsPtr[i]; + settings->courseFlagsPtr[i] |= gSavefileData[numWorlds]->courseFlagsPtr[i]; } } @@ -2280,10 +2280,10 @@ void func_800828B8(void) { settings->bosses = 0; settings->cutsceneFlags = 0; for (i = 0; i < 3; i++) { - settings->trophies |= D_80126530[i]->trophies; - settings->keys |= D_80126530[i]->keys; - settings->bosses |= D_80126530[i]->bosses; - settings->cutsceneFlags |= D_80126530[i]->cutsceneFlags; + settings->trophies |= gSavefileData[i]->trophies; + settings->keys |= gSavefileData[i]->keys; + settings->bosses |= gSavefileData[i]->bosses; + settings->cutsceneFlags |= gSavefileData[i]->cutsceneFlags; } } @@ -2639,13 +2639,13 @@ s32 menu_title_screen_loop(s32 updateRate) { if (is_tt_unlocked()) { sp28 ^= 3; } - load_level_for_menu(0x16, -1, sp28); + load_level_for_menu(ASSET_LEVEL_CHARACTERSELECT, -1, sp28); func_8008AEB4(0, NULL); menu_init(3U); return 0; } D_800DF460 = 0; - load_level_for_menu(0x27, -1, 0); + load_level_for_menu(ASSET_LEVEL_OPTIONSBACKGROUND, -1, 0); menu_init(MENU_OPTIONS); return 0; } @@ -3202,7 +3202,7 @@ s32 func_800860A8(s32 controllerIndex, s32 *arg1, unk800861C8 *arg2, s32 *arg3, void func_800861C8(unk800861C8 *arg0, s32 *arg1) { s32 i; for (i = 0; i < 3; i++) { - if (D_80126530[i]->newGame != 0) { + if (gSavefileData[i]->newGame != 0) { arg0[*arg1].unk0 = 1; arg0[*arg1].unk1 = 0; arg0[*arg1].unk2 = 0; @@ -3933,7 +3933,7 @@ s32 menu_controller_pak_loop(s32 updateRate) { func_800895A4(); menu_init(MENU_LOGOS); - load_level_for_menu(21, -1, 0); + load_level_for_menu(ASSET_LEVEL_FRONTEND, -1, 0); } } return 0; @@ -4560,7 +4560,7 @@ s32 menu_character_select_loop(s32 updateRate) { gIsInTracksMode = 1; if (phi_t3 >= gNumberOfActivePlayers) { func_80000B18(); - load_level_for_menu(0x27, -1, 0); + load_level_for_menu(ASSET_LEVEL_OPTIONSBACKGROUND, -1, 0); if (gNumberOfActivePlayers == 1 && !gPlayerHasSeenCautionMenu) { menu_init(MENU_CAUTION); } else { @@ -4816,7 +4816,7 @@ s32 menu_game_select_loop(s32 updateRate) { func_80000B28(); gIsInTracksMode = TRUE; func_8006E5BC(); - load_level_for_menu(-1, -1, 0); + load_level_for_menu((MapId)SPECIAL_MAP_ID_NO_LEVEL, -1, 0); menu_init(MENU_TRACK_SELECT); } else { gIsInAdventureTwo = D_800DF460; @@ -4835,7 +4835,7 @@ s32 menu_game_select_loop(s32 updateRate) { if (is_tt_unlocked()) { charSelectScene ^= 3; } - load_level_for_menu(0x16, -1, charSelectScene); + load_level_for_menu(ASSET_LEVEL_CHARACTERSELECT, -1, charSelectScene); func_8008AEB4(0, 0); menu_init(MENU_CHARACTER_SELECT); return 0; @@ -5348,7 +5348,7 @@ s32 menu_file_select_loop(s32 updateRate) { if (gOpacityDecayTimer >= 3) { for (i = 0; i < 3; i++) { gSavefileInfo[i].isAdventure2 = 0; - if (D_80126530[i]->newGame) { + if (gSavefileData[i]->newGame) { gSavefileInfo[i].isStarted = 0; gSavefileInfo[i].balloonCount = 0; gSavefileInfo[i].name[0] = 'D'; @@ -5356,12 +5356,12 @@ s32 menu_file_select_loop(s32 updateRate) { gSavefileInfo[i].name[2] = 'R'; gSavefileInfo[i].name[3] = '\0'; } else { - if (D_80126530[i]->cutsceneFlags & CUTSCENE_ADVENTURE_TWO) { + if (gSavefileData[i]->cutsceneFlags & CUTSCENE_ADVENTURE_TWO) { gSavefileInfo[i].isAdventure2 = TRUE; } gSavefileInfo[i].isStarted = TRUE; - gSavefileInfo[i].balloonCount = *D_80126530[i]->balloonsPtr; - decompress_filename_string(D_80126530[i]->filename, gSavefileInfo[i].name, 3); + gSavefileInfo[i].balloonCount = *gSavefileData[i]->balloonsPtr; + decompress_filename_string(gSavefileData[i]->filename, gSavefileInfo[i].name, 3); } } gOpacityDecayTimer = 0; @@ -5506,7 +5506,7 @@ UNUSED s32 func_8008E790(void) { GLOBAL_ASM("asm/non_matchings/menu/menu_track_select_init.s") void func_8008F00C(s32 arg0) { - s32 temp_v0_2; + Vehicle vehicle; s32 i; s32 temp; @@ -5524,10 +5524,10 @@ void func_8008F00C(s32 arg0) { D_801269EC = gTrackSelectY; break; case 1: - temp_v0_2 = func_8006B0AC(gTrackIdForPreview); + vehicle = get_map_default_vehicle(gTrackIdForPreview); for (i = 0; i < gNumberOfActivePlayers; i++) { D_801269C4[i] = 0; - gPlayerSelectVehicle[i] = temp_v0_2; + gPlayerSelectVehicle[i] = vehicle; } gNumberOfReadyPlayers = 0; D_800E0980 = 1; @@ -5611,12 +5611,12 @@ s32 menu_track_select_loop(s32 updateRate) { if (is_tt_unlocked()) { cutsceneId ^= 3; } - load_level_for_menu(22, -1, cutsceneId); + load_level_for_menu(ASSET_LEVEL_CHARACTERSELECT, -1, cutsceneId); func_8008AEB4(0, NULL); menu_init(MENU_CHARACTER_SELECT); return 0; } - load_level_for_menu(0x27, -1, 0); + load_level_for_menu(ASSET_LEVEL_OPTIONSBACKGROUND, -1, 0); menu_init(MENU_GAME_SELECT); return 0; } @@ -5731,7 +5731,7 @@ void render_track_select_setup_ui(s32 updateRate) { if (sMenuGuiOpacity < 0) { sMenuGuiOpacity = 0; } - sp7C = func_8006B0F8(gTrackIdForPreview); + sp7C = get_map_available_vehicles(gTrackIdForPreview); set_text_font(ASSET_FONTS_BIGFONT); set_text_colour(192, 192, 255, 0, sMenuGuiOpacity); set_text_background_colour(0, 0, 0, 0); @@ -5976,7 +5976,7 @@ GLOBAL_ASM("asm/non_matchings/menu/render_track_select_setup_ui.s") GLOBAL_ASM("asm/non_matchings/menu/func_80092188.s") -s32 func_80092BE0(s32 arg0) { +s32 func_80092BE0(MapId mapId) { s8 *trackIdArray; s32 index; s32 temp; @@ -5987,7 +5987,7 @@ s32 func_80092BE0(s32 arg0) { temp = -1; if (trackIdArray[0] != -1) { while (temp < 0) { - if (arg0 == trackIdArray[index]) { + if (mapId == trackIdArray[index]) { temp = index; } index++; @@ -6010,24 +6010,24 @@ s32 func_80092BE0(s32 arg0) { void menu_5_init(void) { Settings *settings; s32 result; - s32 s0; + MapId mapId; s16 temp; settings = get_settings(); - gTrackIdForPreview = 0; + gTrackIdForPreview = ASSET_LEVEL_CENTRALAREAHUB; gOptionBlinkTimer = 0; gMenuDelay = 0; - s0 = settings->unk4C->unk2; - gPlayerSelectVehicle[PLAYER_ONE] = func_8006B0AC(s0); - result = func_8006B14C(s0); - if ((result == 5) || (result == 8) || (!(result & 0x40) && (!(settings->courseFlagsPtr[s0] & 2)))) { - temp = D_800E0758[s0]; + mapId = settings->unk4C->unk2; + gPlayerSelectVehicle[PLAYER_ONE] = get_map_default_vehicle(mapId); + result = func_8006B14C(mapId); + if ((result == 5) || (result == 8) || (!(result & 0x40) && (!(settings->courseFlagsPtr[mapId] & 2)))) { + temp = D_800E0758[mapId]; if (temp != -1) { func_80000FDC(temp, 0, 1.0f); } D_801263E0 = -1; } else { - temp = D_800E0758[s0]; + temp = D_800E0758[mapId]; if (temp != -1) { func_80000FDC(temp, 0, 0.5f); } @@ -6052,11 +6052,11 @@ void menu_5_init(void) { gMenuDelay = 0; D_800E0980 = 30; load_font(ASSET_FONTS_BIGFONT); - load_level_for_menu(s0, -1, 1); + load_level_for_menu(mapId, -1, 1); } assign_dialogue_box_id(7); - if (func_8006B14C(s0) & 0x40) { - func_800C31EC(func_8006B190(s0) + 0x3B); + if (func_8006B14C(mapId) & 0x40) { + func_800C31EC(func_8006B190(mapId) + 0x3B); } } @@ -6067,7 +6067,7 @@ s32 menu_5_loop(s32 updateRate) { s32 sp30; s32 vehicle2; s32 sp28; - s32 sp24; + MapId mapId; s32 sp20; s32 sp1C; Settings *settings; @@ -6076,16 +6076,16 @@ s32 menu_5_loop(s32 updateRate) { return gTrackIdForPreview | 0x80; } settings = get_settings(); - sp24 = ((Settings4C *)((u8 *)settings->unk4C + gTrackIdForPreview))->unk2; + mapId = ((Settings4C *)((u8 *)settings->unk4C + gTrackIdForPreview))->unk2; sp28 = FALSE; sp1C = 0; - if (settings->courseFlagsPtr[sp24] & 2) { + if (settings->courseFlagsPtr[mapId] & 2) { sp1C = 1; } - if (settings->courseFlagsPtr[sp24] & 4) { + if (settings->courseFlagsPtr[mapId] & 4) { sp1C = 2; } - if (func_8006B14C(sp24) & 0x40) { + if (func_8006B14C(mapId) & 0x40) { sp28 = TRUE; } sp20 = FALSE; @@ -6099,10 +6099,10 @@ s32 menu_5_loop(s32 updateRate) { gOptionBlinkTimer = (gOptionBlinkTimer + updateRate) & 0x3F; func_80092E94(updateRate, sp1C, sp20); if (sp1C < 2) { - gPlayerSelectVehicle[PLAYER_ONE] = func_8006B0AC(sp24); + gPlayerSelectVehicle[PLAYER_ONE] = get_map_default_vehicle(mapId); } vehicle = gPlayerSelectVehicle[PLAYER_ONE]; - sp30 = func_8006B0F8(sp24); + sp30 = get_map_available_vehicles(mapId); vehicle2 = vehicle; func_8008E4EC(); if (gMenuDelay == 0) { @@ -6927,7 +6927,7 @@ void func_80098208(void) { #ifdef NON_MATCHING void menu_trophy_race_round_init(void) { - s32 levelId; + MapId levelId; s32 i; Settings *settings; s8 *levelIds; @@ -6947,10 +6947,10 @@ void menu_trophy_race_round_init(void) { } for (i = 0; i < gNumberOfActivePlayers; i++) { - gPlayerSelectVehicle[i] = func_8006B0AC(levelId); + gPlayerSelectVehicle[i] = get_map_default_vehicle(levelId); } - set_level_default_vehicle(func_8006B0AC(levelId)); + set_level_default_vehicle(get_map_default_vehicle(levelId)); load_level_for_menu(levelId, -1, 1); gMenuDelay = 0; @@ -7701,7 +7701,7 @@ s32 get_multiplayer_racer_count(void) { } Settings **func_8009C490(void) { - return (Settings **)D_80126530; + return (Settings **)gSavefileData; } void func_8009C49C(void) { diff --git a/src/menu.h b/src/menu.h index 23e6a9ae..fbb34439 100644 --- a/src/menu.h +++ b/src/menu.h @@ -302,7 +302,7 @@ extern s32 D_800DF4B4; extern s32 gIsInTracksMode; extern s32 gNumberOfActivePlayers; extern s32 gIsInTwoPlayerAdventure; -extern s32 gTrackIdForPreview; +extern MapId gTrackIdForPreview; extern s32 gTrackSelectRow; extern s32 gSaveFileIndex; @@ -670,7 +670,7 @@ extern char *sInsertControllerPakMenuText[3]; extern char *sNoControllerPakMenuText[5]; extern char *sInsertRumblePakMenuText[4]; extern s32 *D_80126C2C; -extern Settings *D_80126530[4]; +extern Settings *gSavefileData[4]; extern DrawTexture D_800DFC10[2]; extern DrawTexture D_800DFC20[2]; @@ -766,7 +766,7 @@ void assign_vehicle_icon_textures(void); void func_8008E4B0(void); void func_8008F534(void); void func_80090ED8(s32 updateRate); -s32 func_80092BE0(s32 arg0); +s32 func_80092BE0(MapId mapId); void menu_5_init(void); void func_80093A0C(void); void n_alSynRemovePlayer(void); diff --git a/src/object_functions.c b/src/object_functions.c index b68698f7..54eeaab7 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -446,7 +446,7 @@ void obj_loop_effectbox(Object *obj, s32 speed) { Object **objList; Object_EffectBox *curObj64; s32 numberOfObjects; - Object_3C_80034B74 *obj3C; + LevelObjectEntry_EffectBox *level_entry; s32 i; f32 xDiff; f32 yDiff; @@ -458,13 +458,13 @@ void obj_loop_effectbox(Object *obj, s32 speed) { f32 temp4; f32 temp5; - obj3C = obj->segment.unk3C_a.unk3C; + level_entry = &obj->segment.unk3C_a.level_entry->effectBox; objList = get_racer_objects(&numberOfObjects); - temp0 = sine_s((obj3C->unkB << 8) * -1); - temp1 = cosine_s((obj3C->unkB << 8) * -1); - temp2 = obj3C->unk8 * 3; - temp3 = obj3C->unk9 * 3; - temp4 = obj3C->unkA * 3; + temp0 = sine_s((level_entry->unkB << 8) * -1); + temp1 = cosine_s((level_entry->unkB << 8) * -1); + temp2 = level_entry->unk8 * 3; + temp3 = level_entry->unk9 * 3; + temp4 = level_entry->unkA * 3; for (i = 0; i < numberOfObjects; i++) { xDiff = objList[i]->segment.trans.x_position - obj->segment.trans.x_position; @@ -476,8 +476,8 @@ void obj_loop_effectbox(Object *obj, s32 speed) { temp5 = (-xDiff * temp1) + (zDiff * temp0); if ((-temp4 < temp5) && (temp5 < temp4)) { curObj64 = &objList[i]->unk64->effect_box; - curObj64->unk1FE = obj3C->unkC; - curObj64->unk1FF = obj3C->unkD; + curObj64->unk1FE = level_entry->unkC; + curObj64->unk1FF = level_entry->unkD; temp5 = temp3 / 2; if ((temp5 < yDiff) && (curObj64->unk1FE == 1)) { temp5 = (1.0 - ((yDiff - temp5) / temp5)); @@ -552,13 +552,13 @@ void obj_loop_trophycab(Object *obj, s32 speed) { obj->unk7C.word = 1; if ((settings->trophies >> (((settings->worldId - 1) ^ 0) * 2)) & 3) { sp44.objectID = 128; - sp44.x = obj->segment.unk3C_a.unk3C->unk2; - sp44.y = obj->segment.unk3C_a.unk3C->unk4; - sp44.z = obj->segment.unk3C_a.unk3C->unk6; + sp44.x = obj->segment.unk3C_a.level_entry->trophyCabinet.common.x; + sp44.y = obj->segment.unk3C_a.level_entry->trophyCabinet.common.y; + sp44.z = obj->segment.unk3C_a.level_entry->trophyCabinet.common.z; sp44.size = 8; trophyObj = spawn_object(&sp44, 1); if (trophyObj) { - trophyObj->segment.unk3C_a.unk3C = (void *) 0; + trophyObj->segment.unk3C_a.level_entry = NULL; trophyObj->segment.trans.y_rotation = obj->segment.trans.y_rotation; } } @@ -568,7 +568,7 @@ void obj_loop_trophycab(Object *obj, s32 speed) { ((Object_54_80034E9C *) obj->unk54)->unk2C = 0.612f; ((Object_54_80034E9C *) obj->unk54)->unk28 = 0.0f; - playerObj = get_object_struct(0); + playerObj = get_racer_object(0); if (playerObj) { xDiff = obj->segment.trans.x_position - playerObj->segment.trans.x_position; zDiff = playerObj->segment.trans.z_position - obj->segment.trans.z_position; @@ -684,7 +684,7 @@ void obj_loop_eggcreator(Object *obj, UNUSED s32 speed) { Object_EggCreator *someObj64 = &someObj->unk64->egg_creator; someObj64->unk4 = obj; obj->unk78 = someObj; - someObj->segment.unk3C_a.unk3C = 0; + someObj->segment.unk3C_a.level_entry = NULL; } } } @@ -710,7 +710,7 @@ void obj_loop_rocketsignpost(Object *obj, UNUSED s32 speed) { Object *playerObj; Object_4C *obj4C; - playerObj = get_object_struct(0); + playerObj = get_racer_object(0); if (playerObj != NULL) { obj4C = obj->unk4C; if (obj4C->unk13 < 0xC8) { @@ -829,7 +829,7 @@ void obj_loop_groundzipper(Object *obj, UNUSED s32 speed) { obj->segment.trans.unk6 &= 0xBFFF; obj->segment.trans.unk6 |= 0x1000; - get_object_struct(0); // Unused. I guess the developers forgot to remove this? + get_racer_object(0); // Unused. I guess the developers forgot to remove this? if ((s32) obj->unk4C->unk13 < obj->unk78) { racerObjs = get_racer_objects(&numObjects); for (i = 0; i < numObjects; i++) { @@ -875,7 +875,7 @@ void obj_loop_unknown58(Object *obj, s32 speed) { } set_ghost_position_and_rotation(obj); func_800AFC3C(obj, speed); - someOtherObj = get_object_struct(0); + someOtherObj = get_racer_object(0); someOtherObj64 = &someOtherObj->unk64->unkid58; obj60 = obj->unk60; if (obj60->unk0 == 1) { @@ -910,7 +910,7 @@ void obj_loop_characterflag(Object *obj, UNUSED s32 speed) { Object_Racer *someObj64; if (obj->unk7C.word < 0) { - someObj = get_object_struct(obj->unk78); + someObj = get_racer_object(obj->unk78); if (someObj != NULL) { obj64 = &obj->unk64->character_flag; someObj64 = &someObj->unk64->racer; @@ -997,7 +997,7 @@ void obj_loop_posarrow(Object *obj, UNUSED s32 speed) { s32 numberOfObjects; obj->segment.trans.unk6 |= 0x4000; - someObjList = func_8001BAAC(&numberOfObjects); + someObjList = get_racer_objects_by_position(&numberOfObjects); if (obj->unk78 < numberOfObjects) { someObj = someObjList[obj->unk78]; someObj64 = &someObj->unk64->pos_arrow; @@ -1318,7 +1318,7 @@ void obj_loop_animcar(Object *obj, s32 speed) { temp_v0 = obj->unk78; someObj = NULL; if (temp_v0 != 0) { - someObj = get_object_struct(temp_v0 - 1); + someObj = get_racer_object(temp_v0 - 1); } obj->unk7C.word = func_8001F460(obj, speed, obj); obj->segment.trans.unk6 |= 0x4000; @@ -1441,12 +1441,12 @@ void obj_init_teleport(Object *obj, UNUSED LevelObjectEntry_Teleport *entry) { void obj_loop_teleport(Object *obj, UNUSED s32 speed) { if (obj->unk78 != 0) { - Object_3C_80038DC4 *temp = obj->segment.unk3C_a.unk3C; + LevelObjectEntry_Teleport *level_entry = &obj->segment.unk3C_a.level_entry->teleport; if (obj->unk4C->unk13 < 0x78) { - func_8006F338(temp->unk8); + func_8006F338(level_entry->unk8); obj->unk78 = 0; play_sound_global(SOUND_WHOOSH2, NULL); - func_80000FDC(0x12A, 0, 1.0f); + func_80000FDC(SOUND_VOICE_TT_FUTURE_FUN_LAND, 0, 1.0f); } } } @@ -1467,7 +1467,7 @@ void obj_init_exit(Object *obj, LevelObjectEntry_Exit *entry) { obj64->unk8 = sine_s(obj->segment.trans.y_rotation); obj64->unkC = -((obj64->unk0 * obj->segment.trans.x_position) + (obj64->unk8 * obj->segment.trans.z_position)); obj64->unk10 = entry->unk10; - obj64->unk14 = entry->unk18; + obj64->unk14 = entry->bossFlag; obj->unk4C->unk14 = 2; obj->unk4C->unk11 = 0; obj->unk4C->unk10 = entry->unk10; @@ -1484,21 +1484,21 @@ void obj_loop_exit(Object *obj, UNUSED s32 speed) { f32 dist; f32 yDiff; Object_Exit *obj64; - s32 someBool; + s32 enableWarp; Object** racerObjects; s32 i; f32 temp; obj64 = &obj->unk64->exit; - someBool = TRUE; + enableWarp = TRUE; settings = get_settings(); if ((obj64->unk14 == 0) && (settings->balloonsPtr[settings->worldId] == 8)) { - someBool = FALSE; + enableWarp = FALSE; } if ((obj64->unk14 == 1) && (settings->balloonsPtr[settings->worldId] < 8)) { - someBool = FALSE; + enableWarp = FALSE; } - if (someBool) { + if (enableWarp) { if (obj->unk4C->unk13 < obj64->unk10) { dist = obj64->unk10; racerObjects = get_racer_objects(&numberOfRacers); @@ -1749,7 +1749,7 @@ void obj_init_goldenballoon(Object *obj, LevelObjectEntry_GoldenBalloon *entry) } void obj_loop_goldenballoon(Object *obj, s32 speed) { - Object_3C *obj3C; + LevelObjectEntry *levelEntry; Object_4C *obj4C; Object_Racer *racer; Object_GoldenBalloon *obj64; @@ -1772,8 +1772,8 @@ void obj_loop_goldenballoon(Object *obj, s32 speed) { } speedf = sp2C; settings = get_settings(); - obj3C = obj->segment.unk3C_a.unk3C; - flag = 0x10000 << obj3C->unk8; + levelEntry = obj->segment.unk3C_a.level_entry; + flag = 0x10000 << levelEntry->goldenBalloon.unk8; if (settings->courseFlagsPtr[settings->courseId] & flag) { if (obj->unk7C.word > 0) { obj->unk74 = 2; @@ -2046,7 +2046,7 @@ void obj_loop_bananacreator(Object *obj, s32 speed) { newBananaObj = spawn_object(&newEntry, 1); obj->unk7C.word = 1; if (newBananaObj) { - newBananaObj->segment.unk3C_a.unk3C = 0; + newBananaObj->segment.unk3C_a.level_entry = NULL; newBananaObj64 = &newBananaObj->unk64->banana; newBananaObj64->spawner = obj; func_8003FC44(obj->segment.trans.x_position, obj->segment.trans.y_position - 14.0f, obj->segment.trans.z_position, 44, 34, 0.25f, 0); @@ -2272,7 +2272,7 @@ void func_8003FC44(f32 arg0, f32 arg1, f32 arg2, s32 arg3, s32 arg4, f32 arg5, s someObj = spawn_object(&sp24, 1); if (someObj != NULL) { someObj->segment.trans.scale *= 3.5 * arg5; - someObj->segment.unk3C_a.unk3C = NULL; + someObj->segment.unk3C_a.level_entry = NULL; someObj->segment.x_velocity = 0.0f; someObj->segment.y_velocity = 0.0f; someObj->segment.z_velocity = 0.0f; @@ -2413,21 +2413,6 @@ void obj_init_weather(Object *obj, LevelObjectEntry_Weather *entry) { #ifdef NON_EQUIVALENT void func_800ABC5C(s32, s32, s32, s32, s32, s32); /* extern */ -typedef struct Object_3C_Weather { - u8 pad0[0x2]; - s16 unk2; - s16 unk4; - s16 unk6; - s8 unk8; - u8 unk9; - s16 unkA; - s16 unkC; - s16 unkE; - u8 unk10; - u8 unk11; - s16 unk12; -} Object_3C_Weather; - // Has stack & regalloc issues. void obj_loop_weather(Object *obj, s32 speed) { s32 sp54; @@ -2436,7 +2421,7 @@ void obj_loop_weather(Object *obj, s32 speed) { Object **objects; Object **lastObj; Object *curObj; - Object_3C_Weather *obj3c; + LevelObjectEntry_Weather *level_entry; f32 temp_f0; f32 new_var; f32 temp_f2; @@ -2454,9 +2439,9 @@ void obj_loop_weather(Object *obj, s32 speed) { temp_f0 = obj->segment.trans.x_position - curObj->segment.trans.x_position; temp_f2 = obj->segment.trans.z_position - curObj->segment.trans.z_position; new_var = obj->unk78f; - obj3c = obj->segment.unk3C_a.unk3C; + level_entry = &obj->segment.unk3C_a.level_entry->weather; if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= (new_var * 1.0f)){ - func_800ABC5C(obj3c->unkA * 256, obj3c->unkC * 256, obj3c->unkE * 256, obj3c->unk10 * 257, obj3c->unk11 * 257, (s32) obj3c->unk12); + func_800ABC5C(level_entry->unkA * 256, level_entry->unkC * 256, level_entry->unkE * 256, level_entry->unk10 * 257, level_entry->unk11 * 257, (s32) level_entry->unk12); } } } @@ -2618,7 +2603,7 @@ void obj_loop_bubbler(Object *obj, s32 speed) { void obj_init_boost(Object *obj, LevelObjectEntry_Boost *entry) { obj->unk64 = (s32)get_misc_asset(MISC_ASSET_UNK14) + (entry->unk8[0] << 7); - obj->segment.unk3C_a.unk3C = NULL; + obj->segment.unk3C_a.level_entry = NULL; } void obj_init_unknown94(UNUSED Object *obj, UNUSED LevelObjectEntry_Unknown94 *entry, UNUSED s32 arg2) { @@ -2632,12 +2617,12 @@ void obj_init_rangetrigger(UNUSED Object *obj, UNUSED LevelObjectEntry_RangeTrig void obj_loop_rangetrigger(Object *obj, s32 speed) { UNUSED s32 temp; - Object_3C_80042178 *obj3C; + LevelObjectEntry_RangeTrigger *level_entry; unk80042178 sp20; - obj3C = obj->segment.unk3C_a.unk3C; - if (func_80016DE8(obj->segment.trans.x_position, 0, obj->segment.trans.z_position, (f32)obj3C->unk8, 1, &sp20) > 0) { - obj->unk74 = obj3C->unkA; + level_entry = &obj->segment.unk3C_a.level_entry->rangeTrigger; + if (func_80016DE8(obj->segment.trans.x_position, 0, obj->segment.trans.z_position, (f32)level_entry->unk8, 1, &sp20) > 0) { + obj->unk74 = level_entry->unkA; } else { obj->unk74 = 0; } diff --git a/src/object_functions.h b/src/object_functions.h index 1da61e4b..19dacc20 100644 --- a/src/object_functions.h +++ b/src/object_functions.h @@ -24,16 +24,6 @@ typedef struct unk80034B4C { s32 unk78; } unk80034B4C; -typedef struct Object_3C_80034B74 { - u8 pad0[0x8]; - u8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; - u8 unkC; - u8 unkD; -} Object_3C_80034B74; - typedef struct unk8003564C { s8 unk0; s8 unk1; @@ -92,11 +82,6 @@ typedef struct unk80038B74 { s8 unk8; } unk80038B74; -typedef struct Object_3C_80038DC4 { - u8 pad0[8]; - s8 unk8; -} Object_3C_80038DC4; - typedef struct unk80039160 { u8 pad0[0x78]; s32 unk78; @@ -186,12 +171,6 @@ typedef struct unk8004210C { s32 unk64; } unk8004210C; -typedef struct Object_3C_80042178 { - u8 pad0[8]; - u16 unk8; - u16 unkA; -} Object_3C_80042178; - typedef struct unk80042A1C { u8 pad0[0x78]; f32 unk78; diff --git a/src/objects.c b/src/objects.c index 7c435d19..5b84adf0 100644 --- a/src/objects.c +++ b/src/objects.c @@ -81,7 +81,7 @@ s16 D_800DC7B8[52] = { // A table of which vehicles to use for boss races. // https://www.youtube.com/watch?v=WQJAtns_rMk -s16 D_800DC820[16] = { +s16 gBossVehicles[16] = { 0x0005, 0x0106, 0x0207, 0x0005, 0x0106, 0x010B, 0x010B, 0x0207, 0x000C, 0x020D, 0x0101, 0x0101, @@ -142,7 +142,7 @@ s8 D_8011AD3D; s8 D_8011AD3E; Object *D_8011AD40; s8 D_8011AD44; -s8 D_8011AD45; +s8 gOverworldVehicle; s16 D_8011AD46; s16 D_8011AD48; s16 D_8011AD4A; @@ -223,10 +223,12 @@ s32 D_8011AED4; s16 D_8011AED8; u32 (*D_8011AEDC)[64]; // Not sure about the number of elements s32 D_8011AEE0; -Object *(*gObjectStructArrayPtr)[8]; -Object **D_8011AEE8; -s32 *D_8011AEEC; -s32 gObjectCount; +Object *(*gRacers)[8]; +// Similar to gRacers, but sorts the pointer by the players' current position in the race. +Object **gRacersByPosition; +// Similar to gRacers, but sorts the pointer by controller ports 1-4, then CPUs. +Object **gRacersByPort; +s32 gNumRacers; u8 gTimeTrialEnabled; u8 D_8011AEF5; u8 D_8011AEF6; @@ -337,9 +339,9 @@ void func_8000BF8C(void) { D_8011AE74 = (Object **)allocate_from_main_pool_safe(0x200, COLOUR_TAG_BLUE); D_8011AECC = (unknown8011AECC *)allocate_from_main_pool_safe(0xE10, COLOUR_TAG_BLUE); D_8011AEDC = (u32 *)allocate_from_main_pool_safe(0x50, COLOUR_TAG_BLUE); - gObjectStructArrayPtr = (Object *)allocate_from_main_pool_safe(0x28, COLOUR_TAG_BLUE); - D_8011AEEC = (s32 *)allocate_from_main_pool_safe(0x28, COLOUR_TAG_BLUE); - D_8011AEE8 = (Object **)allocate_from_main_pool_safe(0x28, COLOUR_TAG_BLUE); + gRacers = (Object *)allocate_from_main_pool_safe(0x28, COLOUR_TAG_BLUE); + gRacersByPort = (s32 *)allocate_from_main_pool_safe(0x28, COLOUR_TAG_BLUE); + gRacersByPosition = (Object **)allocate_from_main_pool_safe(0x28, COLOUR_TAG_BLUE); D_8011AF04 = (u32 *)allocate_from_main_pool_safe(0x200, COLOUR_TAG_BLUE); D_8011ADCC = (s8 *)allocate_from_main_pool_safe(8, COLOUR_TAG_BLUE); D_8011AFF4 = (unk800179D0 *)allocate_from_main_pool_safe(0x400, COLOUR_TAG_BLUE); @@ -415,7 +417,7 @@ void func_8000C460(void) { D_8011AE70 = 0; D_8011AED0 = 0; D_8011AED4 = 0; - gObjectCount = 0; + gNumRacers = 0; D_8011AE78 = 0; D_8011AD20[1] = 0; D_8011AD22[0] = 0; @@ -613,13 +615,13 @@ s8 check_if_silver_coin_race() { void func_8000E1EC(Object *object, s32 arg1) { D_8011AD40 = object; D_8011AD44 = 4; - D_8011AD45 = arg1; + gOverworldVehicle = arg1; D_8011AD46 = object->segment.trans.x_position; D_8011AD48 = object->segment.trans.y_position; D_8011AD4A = object->segment.trans.z_position; D_8011AD4C = object->segment.trans.y_rotation; gParticlePtrList_addObject(object); - gObjectCount = 0; + gNumRacers = 0; } void func_8000E2B4(void) { @@ -639,12 +641,12 @@ void func_8000E2B4(void) { settings = get_settings(); sp2C.unkE = 0; sp2C.common.size = 0x10; - if (D_8011AD45 < 5) { - object_id = ((s16*) D_800DC7A8)[settings->racers[0].character + D_8011AD45 * 10]; + if (gOverworldVehicle < 5) { + object_id = ((s16*) D_800DC7A8)[settings->racers[0].character + gOverworldVehicle * 10]; } else { - object_id = D_800DC7B8[D_8011AD45 + 37]; + object_id = D_800DC7B8[gOverworldVehicle + 37]; } - set_level_default_vehicle(D_8011AD45); + set_level_default_vehicle(gOverworldVehicle); sp2C.common.size = sp2C.common.size | ((s32) (object_id & 0x100) >> 1); sp2C.unkA = 0; sp2C.unk8 = 0; @@ -655,13 +657,13 @@ void func_8000E2B4(void) { sp2C.unkC = D_8011AD4C; func_800521B8(1); player = spawn_object(&sp2C, 0x11); - gObjectCount = 1; - (*gObjectStructArrayPtr)[0] = player; - *D_8011AEEC = player; - *D_8011AEE8 = player; + gNumRacers = 1; + (*gRacers)[0] = player; + gRacersByPort[0] = player; + *gRacersByPosition = player; player_64 = &player->unk64->racer; - player_64->unk1D6 = D_8011AD45; - player_64->unk1D7 = D_8011AD45; + player_64->unk1D6 = gOverworldVehicle; + player_64->unk1D7 = gOverworldVehicle; player_64->unk2 = 0; player_64->characterId = (s8) settings->racers[0].character; player_64->playerIndex = 0; @@ -672,7 +674,7 @@ void func_8000E2B4(void) { if (get_filtered_cheats() & CHEAT_SMALL_CHARACTERS) { player->segment.trans.scale *= 0.714f; } - player->segment.unk3C_a.unk3C = 0; + player->segment.unk3C_a.level_entry = NULL; player->segment.trans.y_rotation = D_8011AD4C; player->segment.trans.y_position = D_8011AD48; } @@ -700,10 +702,10 @@ GLOBAL_ASM("asm/non_matchings/objects/func_8000E4E8.s") s32 func_8000E558(Object *arg0){ s32 temp_v0; s32 new_var, new_var2; - if (arg0->segment.unk3C_a.unk3C == 0) { + if (arg0->segment.unk3C_a.level_entry == NULL) { return TRUE; } - temp_v0 = arg0->segment.unk3C_a.unk3C; + temp_v0 = arg0->segment.unk3C_a.level_entry; new_var2 = D_8011AE98[0]; if ((temp_v0 >= new_var2) && (((D_8011AEA0 * 8) + new_var2) >= temp_v0)) { return FALSE; @@ -1035,7 +1037,7 @@ void func_80011AD0(Object *this) { break; case 3: //L80011BB4 - tmp_f0 = this->segment.unk3C_a.unk3C->unkD; + tmp_f0 = this->segment.unk3C_a.level_entry->unk80011AD0.unkD; offset = (this->unk64->obj80011AD0.unkFC * 6); offset *= 5; offset *= 2; @@ -1465,10 +1467,10 @@ s32 func_8001B668(s32 arg0) { s16 sp2E; s16 sp2C; s32 temp_v0; - s32 sp24; + MapId mapId; - sp24 = func_800599A8(); - if ((func_8006BD88() != sp24) || (D_800DC728 != D_8011AE82)) { + mapId = func_800599A8(); + if ((func_8006BD88() != mapId) || (D_800DC728 != D_8011AE82)) { temp_v0 = func_800599B8(arg0, func_8006BD88(), D_8011AE82, &sp2E, &sp2C); if (temp_v0 == 0) { D_800DC728 = D_8011AE82; @@ -1497,10 +1499,10 @@ Object *func_8001B7A8(Object *arg0, s32 arg1, f32 *arg2) { s32 temp; Object *temp_v1; arg1 = (arg0->obj.obj8001B7A8.unk112 - arg1) - 1; - if ((arg1 < 0) || (arg1 >= gObjectCount)) { + if ((arg1 < 0) || (arg1 >= gNumRacers)) { return NULL; } - temp_v1 = D_8011AEE8[arg1]; + temp_v1 = gRacersByPosition[arg1]; if (temp_v1 == NULL) { return NULL; } @@ -1528,40 +1530,39 @@ s32 func_8001BA64() { return D_8011AED0; } -Object **get_racer_objects(s32 *cnt) { - *cnt = gObjectCount; - return *gObjectStructArrayPtr; +Object **get_racer_objects(s32 *numRacers) { + *numRacers = gNumRacers; + return *gRacers; } -s32 *func_8001BA90(s32 *arg0) { - *arg0 = gObjectCount; - return D_8011AEEC; +Object **get_racer_objects_by_port(s32 *numRacers) { + *numRacers = gNumRacers; + return gRacersByPort; } -Object **func_8001BAAC(s32 *numberOfObjects) { - *numberOfObjects = gObjectCount; - return D_8011AEE8; +Object **get_racer_objects_by_position(s32 *numRacers) { + *numRacers = gNumRacers; + return gRacersByPosition; } -Object *get_object_struct(s32 indx) { - if (gObjectCount == 0) { +Object *get_racer_object(s32 index) { + if (gNumRacers == 0) { return NULL; } - if (indx < 0 || indx >= gObjectCount) { + if (index < 0 || index >= gNumRacers) { return NULL; } - return (*gObjectStructArrayPtr)[indx]; + return (*gRacers)[index]; } -s32 func_8001BB18(s32 arg0) { - s32 temp_v0 = gObjectCount; - if (temp_v0 == 0) { - return 0; +Object *get_racer_object_by_port(s32 index) { + if (gNumRacers == 0) { + return NULL; } - if ((arg0 < 0) || (arg0 >= temp_v0)) { - return 0; + if (index < 0 || index >= gNumRacers) { + return NULL; } - return D_8011AEEC[arg0]; + return gRacersByPort[index]; } GLOBAL_ASM("asm/non_matchings/objects/func_8001BB68.s") @@ -1897,10 +1898,10 @@ void func_800228EC(s32 arg0) { Object_Racer *object_64; D_8011AEF7 = 3; - object_64 = &get_object_struct(0)->unk64->racer; + object_64 = &get_racer_object(0)->unk64->racer; object_64->unk190 = 0; - object_64->unk192 = 0; - object_64->lapCount = 0; + object_64->checkpoint = 0; + object_64->lap = 0; object_64->unk1BA = 0; func_80017E74(arg0); func_8006F388(10); diff --git a/src/objects.h b/src/objects.h index 9a7f5f02..973daa3d 100644 --- a/src/objects.h +++ b/src/objects.h @@ -256,7 +256,7 @@ extern u16 D_800DC7A8[8]; extern s16 D_800DC7B8[52]; -extern s16 D_800DC820[16]; +extern s16 gBossVehicles[16]; extern s8 D_800DC840[8]; @@ -331,10 +331,10 @@ f32 func_8001B834(Object *arg0, s32); unknown8011AECC *func_8001BA00(s32 arg0); unknown8011AECC *func_8001BA1C(s32 arg0, s32 arg1); s32 func_8001BA64(); -Object **get_racer_objects(s32 *cnt); -s32 *func_8001BA90(s32 *arg0); -Object **func_8001BAAC(s32 *numberOfObjects); -Object *get_object_struct(s32 indx); +Object **get_racer_objects(s32 *numRacers); +Object **get_racer_objects_by_port(s32 *numRacers); +Object **get_racer_objects_by_position(s32 *numRacers); +Object *get_racer_object(s32 index); void func_8001BC40(s32 arg0, s32 arg1, s32 arg2, s32 arg3); u32 func_8001BD94(s32 arg0); void func_8001D1AC(void); @@ -378,7 +378,7 @@ s16 func_8001C418(f32 yPos); void func_80021400(s32 arg0); s32 func_8001B668(s32 arg0); s32 func_80011570(Object *obj, f32 xPos, f32 yPos, f32 zPos); -s32 func_8001BB18(s32 arg0); +Object *get_racer_object_by_port(s32 index); void render_racer_shield(Gfx **dList, Mtx **mtx, VertexList **vtxList, Object *obj); void render_racer_magnet(Gfx **dList, Mtx **mtx, VertexList **vtxList, Object *obj); void set_and_normalize_D_8011AFE8(f32 arg0, f32 arg1, f32 arg2); diff --git a/src/racer.c b/src/racer.c index 7c9854d4..a6ecd8e4 100644 --- a/src/racer.c +++ b/src/racer.c @@ -360,7 +360,7 @@ void func_80045128(struct TempStruct2 *header) { for (i = 0; i < 4; i++) { obj = (Object_Racer *) header->unk0[i]->unk64; - D_8011D588[i] = obj->lapCount; + D_8011D588[i] = obj->lap; if (obj->unk1CF != 0) { D_8011D588[i] |= 0x40; } @@ -387,7 +387,7 @@ void func_80048C7C(Object* obj, Object_Racer* racer) { return; } if (racer->attackType != ATTACK_SQUISHED) { - func_800576E0(obj, racer, 2); + drop_bananas(obj, racer, 2); } play_random_character_voice(obj, SOUND_VOICE_CHARACTER_NEGATIVE, 8, 129); switch (racer->attackType) { @@ -670,7 +670,7 @@ void func_8004C140(Object *obj, Object_Racer *racer) { return; } if (attackType != ATTACK_SQUISHED) { - func_800576E0(obj, racer, 2); + drop_bananas(obj, racer, 2); } racer->unk18C = 360; if (racer->unk1C9 == 8) { @@ -1455,31 +1455,31 @@ void update_player_racer(Object* obj, s32 updateRate) { func_800050D0(obj, gCurrentButtonsPressed, gCurrentRacerInput, updateRate); } lastCheckpointDist = tempRacer->checkpoint_distance; - tempVar = func_800185E4(tempRacer->unk192, obj, xTemp, yTemp, zTemp, &tempRacer->checkpoint_distance, &tempRacer->unk1C8); + tempVar = func_800185E4(tempRacer->checkpoint, obj, xTemp, yTemp, zTemp, &tempRacer->checkpoint_distance, &tempRacer->unk1C8); if (tempVar == -100) { func_8005C270(tempRacer); } - temp_v0_16 = func_8001BA1C(tempRacer->unk192, tempRacer->unk1C8); + temp_v0_16 = func_8001BA1C(tempRacer->checkpoint, tempRacer->unk1C8); if (tempRacer->playerIndex == PLAYER_COMPUTER && temp_v0_16->unk36[tempRacer->unk1CA] == 5 && tempRacer->unk1E5) { tempRacer->unk1C8 = 1; } if (temp_v0_16->unk36[tempRacer->unk1CA] == 6) { - tempRacer->lapCount = header->laps + 1; + tempRacer->lap = header->laps + 1; } if (tempVar == 0) { if (tempRacer->playerIndex == PLAYER_COMPUTER && temp_v0_16->unk36[tempRacer->unk1CA] == 2) { tempRacer->unk1C8 = 1; } temp_v0_17 = func_8001BA64(); - tempRacer->unk192++; - if (tempRacer->unk192 >= temp_v0_17) { - tempRacer->unk192 = 0; + tempRacer->checkpoint++; + if (tempRacer->checkpoint >= temp_v0_17) { + tempRacer->checkpoint = 0; if (tempRacer->unk190 > 0) { - if (tempRacer->lapCount < 120) { - tempRacer->lapCount++; + if (tempRacer->lap < 120) { + tempRacer->lap++; } } - if (tempRacer->playerIndex != PLAYER_COMPUTER && tempRacer->lapCount + 1 == header->laps + if (tempRacer->playerIndex != PLAYER_COMPUTER && tempRacer->lap + 1 == header->laps && !D_8011D580 && get_current_level_race_type() == RACETYPE_DEFAULT) { func_800014BC(1.12f); D_8011D580 = 1; @@ -1487,7 +1487,7 @@ void update_player_racer(Object* obj, s32 updateRate) { } if (func_8002341C()) { if (gCurrentPlayerIndex != PLAYER_COMPUTER) { - temp_v0_16 = func_8001BA1C(tempRacer->unk192, tempRacer->unk1C8); + temp_v0_16 = func_8001BA1C(tempRacer->checkpoint, tempRacer->unk1C8); if (!tempRacer->unk15C) { newObject.x = 0; newObject.y = 0; @@ -1496,7 +1496,7 @@ void update_player_racer(Object* obj, s32 updateRate) { newObject.size = 8; tempRacer->unk15C = spawn_object(&newObject, 1); if (tempRacer->unk15C) { - tempRacer->unk15C->segment.unk3C_a.unk3C = 0; + tempRacer->unk15C->segment.unk3C_a.level_entry = NULL; tempRacer->unk15C->segment.unk38.half.lower = 128; } } @@ -1539,7 +1539,7 @@ void update_player_racer(Object* obj, s32 updateRate) { } } if (tempRacer->unk188 > 0) { - func_800576E0(obj, tempRacer, tempRacer->unk188); + drop_bananas(obj, tempRacer, tempRacer->unk188); } tempRacer->playerIndex = gCurrentPlayerIndex; update_player_camera(obj, tempRacer, delta); @@ -1648,8 +1648,8 @@ void update_player_racer(Object* obj, s32 updateRate) { } else { tempRacer->unk212 = 0; } - if (tempRacer->unk194 < tempRacer->lapCount) { - tempRacer->unk194 = tempRacer->lapCount; + if (tempRacer->unk194 < tempRacer->lap) { + tempRacer->unk194 = tempRacer->lap; } } } @@ -1788,7 +1788,7 @@ void func_800521C4(Object *obj, Object_Racer *racer, UNUSED s32 arg2) { foundObj = 0; if (func_80023568()) { - tempObj = get_object_struct(1); + tempObj = get_racer_object(1); foundObj = func_80052388(obj, racer, tempObj, 160000.0f); } if (!foundObj) { @@ -2318,7 +2318,7 @@ void racer_attack_handler(Object* obj, Object_Racer* racer, s32 updateRate) { } else { if ((racer->squish_timer == 0) || racer->attackType != 4) { if ((racer->attackType != 2) && (racer->attackType != 4)) { - func_800576E0(obj, racer, 2); + drop_bananas(obj, racer, 2); } racer->unk18C = 360; if (racer->unk1C9 == 8) { @@ -2963,7 +2963,7 @@ void func_800575EC(Object *obj, Object_Racer *racer) { guMtxXFMF(mf, 1.0f, 0.0f, 0.0f, &racer->ox3, &racer->oy3, &racer->oz3); } -GLOBAL_ASM("asm/non_matchings/racer/func_800576E0.s") +GLOBAL_ASM("asm/non_matchings/racer/drop_bananas.s") /** * Generate the steer velocity by taking the current steer velocity and getting the difference between the stick tilt. @@ -3423,8 +3423,8 @@ void func_80059080(UNUSED Object *obj, Object_Racer *racer, f32 *xVel, f32 *yVel if (magnitude < 0.0f) { magnitude = 0.0f; } - if (racer->unk192) {} - splinePos = racer->unk192 - 2; + if (racer->checkpoint) {} + splinePos = racer->checkpoint - 2; if (splinePos < 0) { splinePos += splineEnd; } @@ -3486,21 +3486,21 @@ void func_80059984(s32 arg0) { D_8011D5AC = arg0; } -s32 func_800599A8(void) { +MapId func_800599A8(void) { return D_8011D5AC; } -s32 func_800599B8(s32 arg0, s32 arg1, s16 arg2, s16 *arg3, s16 *arg4) { +s32 func_800599B8(s32 arg0, MapId mapId, s16 arg2, s16 *arg3, s16 *arg4) { s32 temp_v0; s32 temp_t8; s16 sp2E; temp_t8 = (D_8011D59C + 1) & 1; - temp_v0 = func_80074B34(arg0, (s16)arg1, arg2, arg3, arg4, &sp2E, gGhostData[temp_t8]); + temp_v0 = func_80074B34(arg0, (s16)mapId, arg2, arg3, arg4, &sp2E, gGhostData[temp_t8]); if (arg3 != 0) { if (temp_v0 == 0) { D_8011D5A0[temp_t8] = sp2E; - D_8011D5AC = arg1; + D_8011D5AC = mapId; } else { D_8011D5AC = -1; } @@ -3540,8 +3540,8 @@ void free_tt_ghost_data(void) { gGhostData[2] = NULL; } -s32 func_80059B7C(s32 controllerIndex, s32 arg1, s16 arg2, s16 arg3, s16 arg4) { - return func_80075000(controllerIndex, (s16)arg1, arg2, arg3, arg4, D_8011D5A0[D_8011D59C], gGhostData[D_8011D59C]); +s32 func_80059B7C(s32 controllerIndex, MapId mapId, s16 arg2, s16 arg3, s16 arg4) { + return func_80075000(controllerIndex, (s16)mapId, arg2, arg3, arg4, D_8011D5A0[D_8011D59C], gGhostData[D_8011D59C]); } GLOBAL_ASM("asm/non_matchings/racer/func_80059BF0.s") @@ -3623,7 +3623,7 @@ void racer_enter_door(Object_Racer* racer, s32 updateRate) { if (racer->transitionTimer > 0) { racer->transitionTimer -= updateRate; if (racer->transitionTimer <= 0) { - func_8006D968((s8* ) racer->unk108->segment.unk3C_a.unk3C); + func_8006D968((s8* ) racer->unk108->segment.unk3C_a.level_entry); racer->transitionTimer = 0; } } @@ -3798,12 +3798,12 @@ void func_8005A6F0(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR func_800050D0(obj, gCurrentButtonsPressed, gCurrentRacerInput, updateRate); } sp80 = racer->checkpoint_distance; - countOfObjects = racer->unk192; - var_t2 = func_800185E4(racer->unk192, obj, xPos, yPos, zPos, &racer->checkpoint_distance, &racer->unk1C8); + countOfObjects = racer->checkpoint; + var_t2 = func_800185E4(racer->checkpoint, obj, xPos, yPos, zPos, &racer->checkpoint_distance, &racer->unk1C8); if (var_t2 == -100) { func_8005C270(racer); } - temp_v0_9 = func_8001BA1C(racer->unk192, racer->unk1C8); + temp_v0_9 = func_8001BA1C(racer->checkpoint, racer->unk1C8); if (temp_v0_9->unk36[racer->unk1CA] == 5) { racer->unk201 = 30; if (racer->unk1E5 != 0) { @@ -3811,7 +3811,7 @@ void func_8005A6F0(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR } } if (temp_v0_9->unk36[racer->unk1CA] == 6) { - racer->lapCount = levelHeader->laps + 1; + racer->lap = levelHeader->laps + 1; } if (temp_v0_9->unk36[racer->unk1CA] == 4) { if (racer->velocity < -4.0) { @@ -3823,12 +3823,12 @@ void func_8005A6F0(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR racer->unk1C8 = 1; } temp_v0_10 = func_8001BA64(); - racer->unk192++; - if (racer->unk192 >= temp_v0_10) { - racer->unk192 = 0; + racer->checkpoint++; + if (racer->checkpoint >= temp_v0_10) { + racer->checkpoint = 0; if (racer->unk190 > 0) { - if (racer->lapCount < 120) { - racer->lapCount++; + if (racer->lap < 120) { + racer->lap++; } } } @@ -3859,7 +3859,7 @@ void func_8005A6F0(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR } func_80018CE0(obj, xPos, yPos, zPos, updateRate); if (racer->unk188 > 0) { - func_800576E0(obj, racer, racer->unk188); + drop_bananas(obj, racer, racer->unk188); } if (racer->unk148 != NULL) { racer->unk148 = NULL; @@ -4020,7 +4020,7 @@ void func_8005B818(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR racer->velocity += ((-var_f12 - racer->velocity) * 0.25); } var_a3 = &spD8; - var_a0 = racer->unk192 - 2; + var_a0 = racer->checkpoint - 2; var_t1 = &spB8; if (var_a0 < 0) { var_a0 += sp11C; @@ -4089,13 +4089,13 @@ void func_8005B818(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR } racer->checkpoint_distance = (1 - var_f22); if (var_s2 != 0) { - racer->unk192 += 1; - if (racer->unk192 >= sp11C) { - racer->unk192 = 0; + racer->checkpoint += 1; + if (racer->checkpoint >= sp11C) { + racer->checkpoint = 0; if (racer->unk190 > 0) { - temp_v0_3 = racer->lapCount; + temp_v0_3 = racer->lap; if (temp_v0_3 < 0x78) { - racer->lapCount = temp_v0_3 + 1; + racer->lap = temp_v0_3 + 1; } } } @@ -4183,11 +4183,11 @@ void antipiracy_modify_surface_traction_table(void) { void func_8005C270(Object_Racer *racer) { s32 temp = func_8001BA64(); - racer->unk192--; - if (racer->unk192 < 0) { - racer->unk192 += temp; - if (racer->lapCount > 0) { - racer->lapCount--; + racer->checkpoint--; + if (racer->checkpoint < 0) { + racer->checkpoint += temp; + if (racer->lap > 0) { + racer->lap--; } } diff --git a/src/racer.h b/src/racer.h index 305ee586..52f7ebc7 100644 --- a/src/racer.h +++ b/src/racer.h @@ -222,11 +222,11 @@ void get_timestamp_from_frames(s32 frameCount, s32 *minutes, s32 *seconds, s32 * void func_800598D0(void); void func_80059944(void); void func_80059984(s32 arg0); -s32 func_800599A8(void); -s32 func_800599B8(s32 arg0, s32 arg1, s16 arg2, s16 *arg3, s16 *arg4); +MapId func_800599A8(void); +s32 func_800599B8(s32 arg0, MapId mapId, s16 arg2, s16 *arg3, s16 *arg4); s32 load_tt_ghost(s32 ghostOffset, s32 size, s16 *outTime); void free_tt_ghost_data(void); -s32 func_80059B7C(s32 controllerIndex, s32 arg1, s16 arg2, s16 arg3, s16 arg4); +s32 func_80059B7C(s32 controllerIndex, MapId mapId, s16 arg2, s16 arg3, s16 arg4); s16 func_80059E20(void); void func_8005A3B0(void); void func_8005A3C0(void); @@ -266,7 +266,7 @@ void func_80042D20(Object *, Object_Racer *, s32); //Non Matching void set_ghost_position_and_rotation(Object *obj); -void func_800576E0(Object *obj, Object_Racer *racer, s32 arg2); +void drop_bananas(Object *obj, Object_Racer *racer, s32 numBananas); void func_80055EC0(Object *obj, Object_Racer *racer, s32); void func_80054FD0(Object *obj, Object_Racer *racer, s32); void func_80053750(Object *obj, Object_Racer *racer, f32); diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index c8c5abc2..65637519 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -182,7 +182,7 @@ s32 func_800249E0(s32 arg0) { #ifdef NON_EQUIVALENT void func_8002C0C4(s32 modelId); -void func_800249F0(u32 arg0, u32 arg1, s32 arg2, u32 arg3, u32 arg4, u32 arg5, u32 arg6) { +void func_800249F0(u32 arg0, u32 arg1, s32 arg2, Vehicle vehicle, u32 arg4, u32 arg5, u32 arg6) { s32 i; s32 tmp_a2; @@ -223,7 +223,7 @@ void func_800249F0(u32 arg0, u32 arg1, s32 arg2, u32 arg3, u32 arg4, u32 arg5, u func_8000C8F8(arg6, 0); func_8000C8F8(arg5, 1); D_8011D37C = arg2; - func_8000CC7C(arg3, arg4, arg2); + func_8000CC7C(vehicle, arg4, arg2); func_8000B020(72, 64); if (arg0 == 0 && arg4 == 0) { func_800C01D8(&D_800DC87C); @@ -365,7 +365,7 @@ void render_scene(Gfx** dList, Mtx** mtx, s16** vtx, s8** tris, s32 updateRate) } func_800AD030(func_80069D20()); func_800ACA20(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, func_80069D20()); - render_hud(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, func_8001BB18(D_8011B0B4), updateRate); + render_hud(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, get_racer_object_by_port(D_8011B0B4), updateRate); } if ((numViewports == 3) && (get_current_level_race_type() != RACETYPE_CHALLENGE_EGGS) && @@ -484,7 +484,7 @@ void func_80027FC4(s32 arg0) { sp20.objectID = arg0; D_8011B0B8 = spawn_object(&sp20, 2); if (D_8011B0B8 != 0) { - D_8011B0B8->segment.unk3C_a.unk3C = 0; + D_8011B0B8->segment.unk3C_a.level_entry = NULL; D_8011B0B8->unk4A = -1; } } @@ -1348,20 +1348,6 @@ void func_8003093C(s32 arg0) { #ifdef NON_EQUIVALENT //unk8011D388 D_8011D388[4]; -typedef struct Object_3C_FogChanger { - u8 pad0[0x2]; - s16 unk2; - s16 unk4; - s16 unk6; - s8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; - s16 unkC; - s16 unkE; - s16 unk10; -} Object_3C_FogChanger; - void obj_loop_fogchanger(Object* obj) { s32 temp_v0; s32 index; @@ -1372,13 +1358,13 @@ void obj_loop_fogchanger(Object* obj) { s32 temp_a3, temp_t0, temp_t1, temp_a1; s32 temp; Object **sp40; - Object_3C_FogChanger *sp44; + LevelObjectEntry_FogChanger *level_entry; Object *tempObj; unk8011D388 *temp_v0_3; ObjectSegment *phi_s3; sp40 = NULL; - sp44 = obj->segment.unk3C_a.unk3C; + level_entry = &obj->segment.unk3C_a.level_entry->fogChanger; phi_s3 = NULL; // check_if_showing_cutscene_camera() returns the bool gCutsceneCameraActive. 1 if camera is controlled by cutscene, 0 if controlled by racer. @@ -1408,15 +1394,15 @@ void obj_loop_fogchanger(Object* obj) { x -= obj->segment.trans.x_position; z -= obj->segment.trans.z_position; if (((x * x) + (z * z)) < obj->unk78f) { - phi_a0 = sp44->unkC; - phi_v1 = sp44->unkE; - temp_a3 = sp44->unk9; - temp_t0 = sp44->unkA; - temp_t1 = sp44->unkB; - temp_a1 = sp44->unk10; + phi_a0 = level_entry->unkC; + phi_v1 = level_entry->unkE; + temp_a3 = level_entry->unk9; + temp_t0 = level_entry->unkA; + temp_t1 = level_entry->unkB; + temp_a1 = level_entry->unk10; if (phi_v1 < phi_a0) { - phi_v1 = sp44->unkC; - phi_a0 = sp44->unkE; + phi_v1 = level_entry->unkC; + phi_a0 = level_entry->unkE; } if (phi_v1 >= 0x400) { phi_v1 = 0x3FF; diff --git a/src/unknown_05CEF0.c b/src/unknown_05CEF0.c index 33821494..ad482e9e 100644 --- a/src/unknown_05CEF0.c +++ b/src/unknown_05CEF0.c @@ -172,7 +172,7 @@ void func_8005C364(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r break; } - temp_v0_4 = get_object_struct(0); + temp_v0_4 = get_racer_object(0); temp_f20 = temp_v0_4->segment.trans.x_position - obj->segment.trans.x_position; temp_f14 = temp_v0_4->segment.trans.z_position - obj->segment.trans.z_position; if (sqrtf((temp_f20 * temp_f20) + (temp_f14 * temp_f14)) < 700.0) { @@ -250,9 +250,9 @@ void func_8005CB68(Object_Racer *racer, s8 *arg1) { s32 bossId; s32 racerUnk1AC; s8 *miscAsset67; - s32 miscAsset68Byte5; - s32 miscAsset68Byte6; - s32 miscAsset68Byte7; + MapId miscAsset68Byte5; + MapId miscAsset68Byte6; + MapId miscAsset68Byte7; s8 miscAsset67CourseByte; s32 var_t1; s32 i; @@ -295,21 +295,21 @@ void func_8005CB68(Object_Racer *racer, s8 *arg1) { } if (settings->worldId == WORLD_CENTRAL_AREA) { if (racerUnk1AC == 1) { - func_8006C1AC(-2, 0, 0, 0); + func_8006C1AC((MapId)SPECIAL_MAP_ID_UNK_NEG2, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset68Byte5, 0, -1, 0); func_8006C1AC(miscAsset67CourseByte, 0, -1, 1); } else { - func_8006C1AC(-10, 0, 0, 0); + func_8006C1AC((MapId)SPECIAL_MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset67CourseByte, 0, -1, 2); } } else if (racerUnk1AC == 1) { set_eeprom_settings_value(1); //Set Adventure Two Unlocked - func_8006C1AC(-2, 0, 0, 0); + func_8006C1AC((MapId)SPECIAL_MAP_ID_UNK_NEG2, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset68Byte7, 0, -1, 0); func_8006C1AC(miscAsset68Byte6, 0, -1, 0); func_8006C1AC(miscAsset67CourseByte, 0, -1, 1); } else { - func_8006C1AC(-10, 0, 0, 0); + func_8006C1AC((MapId)SPECIAL_MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset67CourseByte, 0, -1, 2); } if (racerUnk1AC == 1) { @@ -339,7 +339,7 @@ void func_8005CB68(Object_Racer *racer, s8 *arg1) { settings->courseFlagsPtr[settings->courseId] |= 2; if (!(settings->bosses & bossId)) { settings->bosses |= bossId; - func_8006C1AC(-1, 0, 0, 0); + func_8006C1AC((MapId)SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset67CourseByte, 4, -1, 4); } else if (!(settings->bosses & (bossId << 6))) { settings->bosses |= bossId << 6; @@ -352,21 +352,21 @@ void func_8005CB68(Object_Racer *racer, s8 *arg1) { settings->wizpigAmulet = var_t1; } if (var_t1 != 0) { - func_8006C1AC(-1, 0, 0, 0); + func_8006C1AC((MapId)SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, 0); func_8006C1AC(ASSET_LEVELNAME_WIZPIGAMULETSEQUENCE, 0, -1, settings->wizpigAmulet - 1); func_8006C1AC(miscAsset67CourseByte, 6, -1, 6); } else { - func_8006C1AC(-1, 0, 0, 0); + func_8006C1AC((MapId)SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset67CourseByte, 4, -1, 4); } } else { - func_8006C1AC(-1, 0, 0, 0); + func_8006C1AC((MapId)SPECIAL_MAP_ID_NO_LEVEL, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset67CourseByte, 4, -1, 4); } func_8006F140(4); func_8000E128(); } else { - func_8006C1AC(-10, 0, 0, 0); + func_8006C1AC((MapId)SPECIAL_MAP_ID_UNK_NEG10, 0, VEHICLE_CAR, 0); func_8006C1AC(miscAsset67CourseByte, 5, -1, 5); func_8006F140(3); } @@ -380,7 +380,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_05CEF0/func_8005CB68.s") #endif void func_8005D048(Object *object, Object_Racer *arg1, s32 arg2) { - Object *sp1C = get_object_struct(0); + Object *sp1C = get_racer_object(0); arg1->transparency = 0xFF; if (!func_8001139C()) { if ((object->segment.unk30 + arg2) < sp1C->segment.unk30) { diff --git a/src/unknown_05FF10.c b/src/unknown_05FF10.c index 4af13d12..1a7a949c 100644 --- a/src/unknown_05FF10.c +++ b/src/unknown_05FF10.c @@ -149,7 +149,7 @@ void func_8005F310(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r } } } - tempObj = get_object_struct(0); + tempObj = get_racer_object(0); obj64 = tempObj->unk64; if ((obj == tempObj->unk4C->unk0) && (tempObj->unk4C->unk14 & 8) && (obj->segment.unk3B == 1)) { obj64->racer.attackType = ATTACK_SQUISHED;