Match and label some track functions (#354)

* match render_scene and render_level_segment

* improve accuracy of a name

* labbie

* disregard libultra in documentation score

* Start on triangle batch flags

* Q

* more tracks.c stuff

* Update src/unknown_0255E0.c

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>

* Update unknown_0255E0.c

Co-authored-by: Ryan Myers <ryan.p.myers@gmail.com>
This commit is contained in:
Fazana
2023-01-06 19:39:37 +00:00
committed by GitHub
co-authored by Ryan Myers
parent 7f3ca2d017
commit b74f340fe3
33 changed files with 8639 additions and 9397 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ glabel func_8009ECF0
/* 09F90C 8009ED0C 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012
/* 09F910 8009ED10 24636D0C */ addiu $v1, %lo(gHUDNumPlayers) # addiu $v1, $v1, 0x6d0c
/* 09F914 8009ED14 AC620000 */ sw $v0, ($v1)
/* 09F918 8009ED18 0C01994B */ jal set_active_viewports_and_object_stack_cap
/* 09F918 8009ED18 0C01994B */ jal set_active_viewports_and_max
/* 09F91C 8009ED1C 00402025 */ move $a0, $v0
/* 09F920 8009ED20 3C018012 */ lui $at, %hi(gNumActivePlayers) # $at, 0x8012
/* 09F924 8009ED24 0C01BAA4 */ jal get_settings
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+159 -159
View File
@@ -1,159 +1,159 @@
glabel func_80016500
/* 017100 80016500 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 017104 80016504 AFBF001C */ sw $ra, 0x1c($sp)
/* 017108 80016508 AFB00018 */ sw $s0, 0x18($sp)
/* 01710C 8001650C AFA40040 */ sw $a0, 0x40($sp)
/* 017110 80016510 C4A4002C */ lwc1 $f4, 0x2c($a1)
/* 017114 80016514 00A08025 */ move $s0, $a1
/* 017118 80016518 E7A40030 */ swc1 $f4, 0x30($sp)
/* 01711C 8001651C 80AE01D6 */ lb $t6, 0x1d6($a1)
/* 017120 80016520 84A201A0 */ lh $v0, 0x1a0($a1)
/* 017124 80016524 15C0000B */ bnez $t6, .L80016554
/* 017128 80016528 00022023 */ negu $a0, $v0
/* 01712C 8001652C 80AF01E6 */ lb $t7, 0x1e6($a1)
/* 017130 80016530 00000000 */ nop
/* 017134 80016534 11E00007 */ beqz $t7, .L80016554
/* 017138 80016538 00022023 */ negu $a0, $v0
/* 01713C 8001653C 8CB8010C */ lw $t8, 0x10c($a1)
/* 017140 80016540 00000000 */ nop
/* 017144 80016544 00581021 */ addu $v0, $v0, $t8
/* 017148 80016548 0002CC00 */ sll $t9, $v0, 0x10
/* 01714C 8001654C 00191403 */ sra $v0, $t9, 0x10
/* 017150 80016550 00022023 */ negu $a0, $v0
.L80016554:
/* 017154 80016554 00044C00 */ sll $t1, $a0, 0x10
/* 017158 80016558 00092403 */ sra $a0, $t1, 0x10
/* 01715C 8001655C 0C01C1FE */ jal coss_f
/* 017160 80016560 AFA40020 */ sw $a0, 0x20($sp)
/* 017164 80016564 8FA40020 */ lw $a0, 0x20($sp)
/* 017168 80016568 0C01C1F1 */ jal sins_f
/* 01716C 8001656C E7A0002C */ swc1 $f0, 0x2c($sp)
/* 017170 80016570 8FAB0040 */ lw $t3, 0x40($sp)
/* 017174 80016574 C7A2002C */ lwc1 $f2, 0x2c($sp)
/* 017178 80016578 C566001C */ lwc1 $f6, 0x1c($t3)
/* 01717C 8001657C C56A0024 */ lwc1 $f10, 0x24($t3)
/* 017180 80016580 46023202 */ mul.s $f8, $f6, $f2
/* 017184 80016584 860D0000 */ lh $t5, ($s0)
/* 017188 80016588 2401FFFF */ li $at, -1
/* 01718C 8001658C 46005402 */ mul.s $f16, $f10, $f0
/* 017190 80016590 46104480 */ add.s $f18, $f8, $f16
/* 017194 80016594 E6120030 */ swc1 $f18, 0x30($s0)
/* 017198 80016598 8FAC0040 */ lw $t4, 0x40($sp)
/* 01719C 8001659C 00000000 */ nop
/* 0171A0 800165A0 C584001C */ lwc1 $f4, 0x1c($t4)
/* 0171A4 800165A4 C5880024 */ lwc1 $f8, 0x24($t4)
/* 0171A8 800165A8 46002187 */ neg.s $f6, $f4
/* 0171AC 800165AC 46003282 */ mul.s $f10, $f6, $f0
/* 0171B0 800165B0 00000000 */ nop
/* 0171B4 800165B4 46024402 */ mul.s $f16, $f8, $f2
/* 0171B8 800165B8 46105480 */ add.s $f18, $f10, $f16
/* 0171BC 800165BC 11A1005E */ beq $t5, $at, .L80016738
/* 0171C0 800165C0 E612002C */ swc1 $f18, 0x2c($s0)
/* 0171C4 800165C4 C7A40030 */ lwc1 $f4, 0x30($sp)
/* 0171C8 800165C8 C606002C */ lwc1 $f6, 0x2c($s0)
/* 0171CC 800165CC 3C014160 */ li $at, 0x41600000 # 14.000000
/* 0171D0 800165D0 44815000 */ mtc1 $at, $f10
/* 0171D4 800165D4 46062201 */ sub.s $f8, $f4, $f6
/* 0171D8 800165D8 460A4402 */ mul.s $f16, $f8, $f10
/* 0171DC 800165DC 444EF800 */ cfc1 $t6, $31
/* 0171E0 800165E0 00000000 */ nop
/* 0171E4 800165E4 35C10003 */ ori $at, $t6, 3
/* 0171E8 800165E8 38210002 */ xori $at, $at, 2
/* 0171EC 800165EC 44C1F800 */ ctc1 $at, $31
/* 0171F0 800165F0 00000000 */ nop
/* 0171F4 800165F4 460084A4 */ cvt.w.s $f18, $f16
/* 0171F8 800165F8 44029000 */ mfc1 $v0, $f18
/* 0171FC 800165FC 44CEF800 */ ctc1 $t6, $31
/* 017200 80016600 04410002 */ bgez $v0, .L8001660C
/* 017204 80016604 00000000 */ nop
/* 017208 80016608 00021023 */ negu $v0, $v0
.L8001660C:
/* 01720C 8001660C 24420023 */ addiu $v0, $v0, 0x23
/* 017210 80016610 28410080 */ slti $at, $v0, 0x80
/* 017214 80016614 14200002 */ bnez $at, .L80016620
/* 017218 80016618 2404000D */ li $a0, 13
/* 01721C 8001661C 2402007F */ li $v0, 127
.L80016620:
/* 017220 80016620 820301F6 */ lb $v1, 0x1f6($s0)
/* 017224 80016624 26050220 */ addiu $a1, $s0, 0x220
/* 017228 80016628 1460000B */ bnez $v1, .L80016658
/* 01722C 8001662C 00000000 */ nop
/* 017230 80016630 0C000741 */ jal play_sound_global
/* 017234 80016634 AFA20038 */ sw $v0, 0x38($sp)
/* 017238 80016638 8FA20038 */ lw $v0, 0x38($sp)
/* 01723C 8001663C 8E050220 */ lw $a1, 0x220($s0)
/* 017240 80016640 2404000D */ li $a0, 13
/* 017244 80016644 0C0007EE */ jal func_80001FB8
/* 017248 80016648 304600FF */ andi $a2, $v0, 0xff
/* 01724C 8001664C 8FA20038 */ lw $v0, 0x38($sp)
/* 017250 80016650 820301F6 */ lb $v1, 0x1f6($s0)
/* 017254 80016654 00000000 */ nop
.L80016658:
/* 017258 80016658 14600010 */ bnez $v1, .L8001669C
/* 01725C 8001665C 28410038 */ slti $at, $v0, 0x38
/* 017260 80016660 1420000F */ bnez $at, .L800166A0
/* 017264 80016664 28410038 */ slti $at, $v0, 0x38
/* 017268 80016668 820F01D8 */ lb $t7, 0x1d8($s0)
/* 01726C 8001666C 24050012 */ li $a1, 18
/* 017270 80016670 15E00006 */ bnez $t7, .L8001668C
/* 017274 80016674 00000000 */ nop
/* 017278 80016678 86040000 */ lh $a0, ($s0)
/* 01727C 8001667C 0C01C8D2 */ jal func_80072348
/* 017280 80016680 AFA20038 */ sw $v0, 0x38($sp)
/* 017284 80016684 8FA20038 */ lw $v0, 0x38($sp)
/* 017288 80016688 00000000 */ nop
.L8001668C:
/* 01728C 8001668C 921801F3 */ lbu $t8, 0x1f3($s0)
/* 017290 80016690 00000000 */ nop
/* 017294 80016694 37190008 */ ori $t9, $t8, 8
/* 017298 80016698 A21901F3 */ sb $t9, 0x1f3($s0)
.L8001669C:
/* 01729C 8001669C 28410038 */ slti $at, $v0, 0x38
.L800166A0:
/* 0172A0 800166A0 14200005 */ bnez $at, .L800166B8
/* 0172A4 800166A4 240501C2 */ li $a1, 450
/* 0172A8 800166A8 8FA40040 */ lw $a0, 0x40($sp)
/* 0172AC 800166AC 24060008 */ li $a2, 8
/* 0172B0 800166B0 0C015C2E */ jal play_random_character_voice
/* 0172B4 800166B4 24070001 */ li $a3, 1
.L800166B8:
/* 0172B8 800166B8 C7A40030 */ lwc1 $f4, 0x30($sp)
/* 0172BC 800166BC C606002C */ lwc1 $f6, 0x2c($s0)
/* 0172C0 800166C0 86040000 */ lh $a0, ($s0)
/* 0172C4 800166C4 46062201 */ sub.s $f8, $f4, $f6
/* 0172C8 800166C8 2409001E */ li $t1, 30
/* 0172CC 800166CC 4448F800 */ cfc1 $t0, $31
/* 0172D0 800166D0 00000000 */ nop
/* 0172D4 800166D4 35010003 */ ori $at, $t0, 3
/* 0172D8 800166D8 38210002 */ xori $at, $at, 2
/* 0172DC 800166DC 44C1F800 */ ctc1 $at, $31
/* 0172E0 800166E0 00000000 */ nop
/* 0172E4 800166E4 460042A4 */ cvt.w.s $f10, $f8
/* 0172E8 800166E8 44035000 */ mfc1 $v1, $f10
/* 0172EC 800166EC 44C8F800 */ ctc1 $t0, $31
/* 0172F0 800166F0 04610003 */ bgez $v1, .L80016700
/* 0172F4 800166F4 28610004 */ slti $at, $v1, 4
/* 0172F8 800166F8 00031823 */ negu $v1, $v1
/* 0172FC 800166FC 28610004 */ slti $at, $v1, 4
.L80016700:
/* 017300 80016700 14200002 */ bnez $at, .L8001670C
/* 017304 80016704 00000000 */ nop
/* 017308 80016708 24030003 */ li $v1, 3
.L8001670C:
/* 01730C 8001670C A20901F6 */ sb $t1, 0x1f6($s0)
/* 017310 80016710 0C01997A */ jal set_object_stack_pos
/* 017314 80016714 AFA3003C */ sw $v1, 0x3c($sp)
/* 017318 80016718 0C01A748 */ jal get_active_camera_segment
/* 01731C 8001671C 00000000 */ nop
/* 017320 80016720 8FA3003C */ lw $v1, 0x3c($sp)
/* 017324 80016724 00000000 */ nop
/* 017328 80016728 44838000 */ mtc1 $v1, $f16
/* 01732C 8001672C 00000000 */ nop
/* 017330 80016730 468084A0 */ cvt.s.w $f18, $f16
/* 017334 80016734 E4520030 */ swc1 $f18, 0x30($v0)
.L80016738:
/* 017338 80016738 8FBF001C */ lw $ra, 0x1c($sp)
/* 01733C 8001673C 8FB00018 */ lw $s0, 0x18($sp)
/* 017340 80016740 03E00008 */ jr $ra
/* 017344 80016744 27BD0040 */ addiu $sp, $sp, 0x40
glabel func_80016500
/* 017100 80016500 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 017104 80016504 AFBF001C */ sw $ra, 0x1c($sp)
/* 017108 80016508 AFB00018 */ sw $s0, 0x18($sp)
/* 01710C 8001650C AFA40040 */ sw $a0, 0x40($sp)
/* 017110 80016510 C4A4002C */ lwc1 $f4, 0x2c($a1)
/* 017114 80016514 00A08025 */ move $s0, $a1
/* 017118 80016518 E7A40030 */ swc1 $f4, 0x30($sp)
/* 01711C 8001651C 80AE01D6 */ lb $t6, 0x1d6($a1)
/* 017120 80016520 84A201A0 */ lh $v0, 0x1a0($a1)
/* 017124 80016524 15C0000B */ bnez $t6, .L80016554
/* 017128 80016528 00022023 */ negu $a0, $v0
/* 01712C 8001652C 80AF01E6 */ lb $t7, 0x1e6($a1)
/* 017130 80016530 00000000 */ nop
/* 017134 80016534 11E00007 */ beqz $t7, .L80016554
/* 017138 80016538 00022023 */ negu $a0, $v0
/* 01713C 8001653C 8CB8010C */ lw $t8, 0x10c($a1)
/* 017140 80016540 00000000 */ nop
/* 017144 80016544 00581021 */ addu $v0, $v0, $t8
/* 017148 80016548 0002CC00 */ sll $t9, $v0, 0x10
/* 01714C 8001654C 00191403 */ sra $v0, $t9, 0x10
/* 017150 80016550 00022023 */ negu $a0, $v0
.L80016554:
/* 017154 80016554 00044C00 */ sll $t1, $a0, 0x10
/* 017158 80016558 00092403 */ sra $a0, $t1, 0x10
/* 01715C 8001655C 0C01C1FE */ jal coss_f
/* 017160 80016560 AFA40020 */ sw $a0, 0x20($sp)
/* 017164 80016564 8FA40020 */ lw $a0, 0x20($sp)
/* 017168 80016568 0C01C1F1 */ jal sins_f
/* 01716C 8001656C E7A0002C */ swc1 $f0, 0x2c($sp)
/* 017170 80016570 8FAB0040 */ lw $t3, 0x40($sp)
/* 017174 80016574 C7A2002C */ lwc1 $f2, 0x2c($sp)
/* 017178 80016578 C566001C */ lwc1 $f6, 0x1c($t3)
/* 01717C 8001657C C56A0024 */ lwc1 $f10, 0x24($t3)
/* 017180 80016580 46023202 */ mul.s $f8, $f6, $f2
/* 017184 80016584 860D0000 */ lh $t5, ($s0)
/* 017188 80016588 2401FFFF */ li $at, -1
/* 01718C 8001658C 46005402 */ mul.s $f16, $f10, $f0
/* 017190 80016590 46104480 */ add.s $f18, $f8, $f16
/* 017194 80016594 E6120030 */ swc1 $f18, 0x30($s0)
/* 017198 80016598 8FAC0040 */ lw $t4, 0x40($sp)
/* 01719C 8001659C 00000000 */ nop
/* 0171A0 800165A0 C584001C */ lwc1 $f4, 0x1c($t4)
/* 0171A4 800165A4 C5880024 */ lwc1 $f8, 0x24($t4)
/* 0171A8 800165A8 46002187 */ neg.s $f6, $f4
/* 0171AC 800165AC 46003282 */ mul.s $f10, $f6, $f0
/* 0171B0 800165B0 00000000 */ nop
/* 0171B4 800165B4 46024402 */ mul.s $f16, $f8, $f2
/* 0171B8 800165B8 46105480 */ add.s $f18, $f10, $f16
/* 0171BC 800165BC 11A1005E */ beq $t5, $at, .L80016738
/* 0171C0 800165C0 E612002C */ swc1 $f18, 0x2c($s0)
/* 0171C4 800165C4 C7A40030 */ lwc1 $f4, 0x30($sp)
/* 0171C8 800165C8 C606002C */ lwc1 $f6, 0x2c($s0)
/* 0171CC 800165CC 3C014160 */ li $at, 0x41600000 # 14.000000
/* 0171D0 800165D0 44815000 */ mtc1 $at, $f10
/* 0171D4 800165D4 46062201 */ sub.s $f8, $f4, $f6
/* 0171D8 800165D8 460A4402 */ mul.s $f16, $f8, $f10
/* 0171DC 800165DC 444EF800 */ cfc1 $t6, $31
/* 0171E0 800165E0 00000000 */ nop
/* 0171E4 800165E4 35C10003 */ ori $at, $t6, 3
/* 0171E8 800165E8 38210002 */ xori $at, $at, 2
/* 0171EC 800165EC 44C1F800 */ ctc1 $at, $31
/* 0171F0 800165F0 00000000 */ nop
/* 0171F4 800165F4 460084A4 */ cvt.w.s $f18, $f16
/* 0171F8 800165F8 44029000 */ mfc1 $v0, $f18
/* 0171FC 800165FC 44CEF800 */ ctc1 $t6, $31
/* 017200 80016600 04410002 */ bgez $v0, .L8001660C
/* 017204 80016604 00000000 */ nop
/* 017208 80016608 00021023 */ negu $v0, $v0
.L8001660C:
/* 01720C 8001660C 24420023 */ addiu $v0, $v0, 0x23
/* 017210 80016610 28410080 */ slti $at, $v0, 0x80
/* 017214 80016614 14200002 */ bnez $at, .L80016620
/* 017218 80016618 2404000D */ li $a0, 13
/* 01721C 8001661C 2402007F */ li $v0, 127
.L80016620:
/* 017220 80016620 820301F6 */ lb $v1, 0x1f6($s0)
/* 017224 80016624 26050220 */ addiu $a1, $s0, 0x220
/* 017228 80016628 1460000B */ bnez $v1, .L80016658
/* 01722C 8001662C 00000000 */ nop
/* 017230 80016630 0C000741 */ jal play_sound_global
/* 017234 80016634 AFA20038 */ sw $v0, 0x38($sp)
/* 017238 80016638 8FA20038 */ lw $v0, 0x38($sp)
/* 01723C 8001663C 8E050220 */ lw $a1, 0x220($s0)
/* 017240 80016640 2404000D */ li $a0, 13
/* 017244 80016644 0C0007EE */ jal func_80001FB8
/* 017248 80016648 304600FF */ andi $a2, $v0, 0xff
/* 01724C 8001664C 8FA20038 */ lw $v0, 0x38($sp)
/* 017250 80016650 820301F6 */ lb $v1, 0x1f6($s0)
/* 017254 80016654 00000000 */ nop
.L80016658:
/* 017258 80016658 14600010 */ bnez $v1, .L8001669C
/* 01725C 8001665C 28410038 */ slti $at, $v0, 0x38
/* 017260 80016660 1420000F */ bnez $at, .L800166A0
/* 017264 80016664 28410038 */ slti $at, $v0, 0x38
/* 017268 80016668 820F01D8 */ lb $t7, 0x1d8($s0)
/* 01726C 8001666C 24050012 */ li $a1, 18
/* 017270 80016670 15E00006 */ bnez $t7, .L8001668C
/* 017274 80016674 00000000 */ nop
/* 017278 80016678 86040000 */ lh $a0, ($s0)
/* 01727C 8001667C 0C01C8D2 */ jal func_80072348
/* 017280 80016680 AFA20038 */ sw $v0, 0x38($sp)
/* 017284 80016684 8FA20038 */ lw $v0, 0x38($sp)
/* 017288 80016688 00000000 */ nop
.L8001668C:
/* 01728C 8001668C 921801F3 */ lbu $t8, 0x1f3($s0)
/* 017290 80016690 00000000 */ nop
/* 017294 80016694 37190008 */ ori $t9, $t8, 8
/* 017298 80016698 A21901F3 */ sb $t9, 0x1f3($s0)
.L8001669C:
/* 01729C 8001669C 28410038 */ slti $at, $v0, 0x38
.L800166A0:
/* 0172A0 800166A0 14200005 */ bnez $at, .L800166B8
/* 0172A4 800166A4 240501C2 */ li $a1, 450
/* 0172A8 800166A8 8FA40040 */ lw $a0, 0x40($sp)
/* 0172AC 800166AC 24060008 */ li $a2, 8
/* 0172B0 800166B0 0C015C2E */ jal play_random_character_voice
/* 0172B4 800166B4 24070001 */ li $a3, 1
.L800166B8:
/* 0172B8 800166B8 C7A40030 */ lwc1 $f4, 0x30($sp)
/* 0172BC 800166BC C606002C */ lwc1 $f6, 0x2c($s0)
/* 0172C0 800166C0 86040000 */ lh $a0, ($s0)
/* 0172C4 800166C4 46062201 */ sub.s $f8, $f4, $f6
/* 0172C8 800166C8 2409001E */ li $t1, 30
/* 0172CC 800166CC 4448F800 */ cfc1 $t0, $31
/* 0172D0 800166D0 00000000 */ nop
/* 0172D4 800166D4 35010003 */ ori $at, $t0, 3
/* 0172D8 800166D8 38210002 */ xori $at, $at, 2
/* 0172DC 800166DC 44C1F800 */ ctc1 $at, $31
/* 0172E0 800166E0 00000000 */ nop
/* 0172E4 800166E4 460042A4 */ cvt.w.s $f10, $f8
/* 0172E8 800166E8 44035000 */ mfc1 $v1, $f10
/* 0172EC 800166EC 44C8F800 */ ctc1 $t0, $31
/* 0172F0 800166F0 04610003 */ bgez $v1, .L80016700
/* 0172F4 800166F4 28610004 */ slti $at, $v1, 4
/* 0172F8 800166F8 00031823 */ negu $v1, $v1
/* 0172FC 800166FC 28610004 */ slti $at, $v1, 4
.L80016700:
/* 017300 80016700 14200002 */ bnez $at, .L8001670C
/* 017304 80016704 00000000 */ nop
/* 017308 80016708 24030003 */ li $v1, 3
.L8001670C:
/* 01730C 8001670C A20901F6 */ sb $t1, 0x1f6($s0)
/* 017310 80016710 0C01997A */ jal set_active_camera
/* 017314 80016714 AFA3003C */ sw $v1, 0x3c($sp)
/* 017318 80016718 0C01A748 */ jal get_active_camera_segment
/* 01731C 8001671C 00000000 */ nop
/* 017320 80016720 8FA3003C */ lw $v1, 0x3c($sp)
/* 017324 80016724 00000000 */ nop
/* 017328 80016728 44838000 */ mtc1 $v1, $f16
/* 01732C 8001672C 00000000 */ nop
/* 017330 80016730 468084A0 */ cvt.s.w $f18, $f16
/* 017334 80016734 E4520030 */ swc1 $f18, 0x30($v0)
.L80016738:
/* 017338 80016738 8FBF001C */ lw $ra, 0x1c($sp)
/* 01733C 8001673C 8FB00018 */ lw $s0, 0x18($sp)
/* 017340 80016740 03E00008 */ jr $ra
/* 017344 80016744 27BD0040 */ addiu $sp, $sp, 0x40
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+92 -92
View File
@@ -1,92 +1,92 @@
glabel func_80021104
/* 021D04 80021104 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 021D08 80021108 AFBF0014 */ sw $ra, 0x14($sp)
/* 021D0C 8002110C AFA60028 */ sw $a2, 0x28($sp)
/* 021D10 80021110 848E0048 */ lh $t6, 0x48($a0)
/* 021D14 80021114 8CA3001C */ lw $v1, 0x1c($a1)
/* 021D18 80021118 24010033 */ li $at, 51
/* 021D1C 8002111C 15C10009 */ bne $t6, $at, .L80021144
/* 021D20 80021120 3C028012 */ lui $v0, %hi(D_8011AD3E) # $v0, 0x8012
/* 021D24 80021124 2442AD3E */ addiu $v0, %lo(D_8011AD3E) # addiu $v0, $v0, -0x52c2
/* 021D28 80021128 804F0000 */ lb $t7, ($v0)
/* 021D2C 8002112C 00000000 */ nop
/* 021D30 80021130 A0AF0044 */ sb $t7, 0x44($a1)
/* 021D34 80021134 80580000 */ lb $t8, ($v0)
/* 021D38 80021138 00000000 */ nop
/* 021D3C 8002113C 27190001 */ addiu $t9, $t8, 1
/* 021D40 80021140 A0590000 */ sb $t9, ($v0)
.L80021144:
/* 021D44 80021144 8FA80028 */ lw $t0, 0x28($sp)
/* 021D48 80021148 24010012 */ li $at, 18
/* 021D4C 8002114C 81040022 */ lb $a0, 0x22($t0)
/* 021D50 80021150 00000000 */ nop
/* 021D54 80021154 14810020 */ bne $a0, $at, .L800211D8
/* 021D58 80021158 2881000A */ slti $at, $a0, 0xa
/* 021D5C 8002115C 80A40030 */ lb $a0, 0x30($a1)
/* 021D60 80021160 0C01997A */ jal set_object_stack_pos
/* 021D64 80021164 AFA30018 */ sw $v1, 0x18($sp)
/* 021D68 80021168 0C01A73F */ jal get_active_camera_segment_no_cutscenes
/* 021D6C 8002116C 00000000 */ nop
/* 021D70 80021170 8FA30018 */ lw $v1, 0x18($sp)
/* 021D74 80021174 C444000C */ lwc1 $f4, 0xc($v0)
/* 021D78 80021178 340A8000 */ li $t2, 32768
/* 021D7C 8002117C E464000C */ swc1 $f4, 0xc($v1)
/* 021D80 80021180 C4460010 */ lwc1 $f6, 0x10($v0)
/* 021D84 80021184 00000000 */ nop
/* 021D88 80021188 E4660010 */ swc1 $f6, 0x10($v1)
/* 021D8C 8002118C C4480014 */ lwc1 $f8, 0x14($v0)
/* 021D90 80021190 00000000 */ nop
/* 021D94 80021194 E4680014 */ swc1 $f8, 0x14($v1)
/* 021D98 80021198 84490000 */ lh $t1, ($v0)
/* 021D9C 8002119C 00000000 */ nop
/* 021DA0 800211A0 01495823 */ subu $t3, $t2, $t1
/* 021DA4 800211A4 A46B0000 */ sh $t3, ($v1)
/* 021DA8 800211A8 844C0002 */ lh $t4, 2($v0)
/* 021DAC 800211AC 00000000 */ nop
/* 021DB0 800211B0 000C6823 */ negu $t5, $t4
/* 021DB4 800211B4 A46D0002 */ sh $t5, 2($v1)
/* 021DB8 800211B8 844E0004 */ lh $t6, 4($v0)
/* 021DBC 800211BC 00000000 */ nop
/* 021DC0 800211C0 A46E0004 */ sh $t6, 4($v1)
/* 021DC4 800211C4 8FAF0028 */ lw $t7, 0x28($sp)
/* 021DC8 800211C8 00000000 */ nop
/* 021DCC 800211CC 81E40022 */ lb $a0, 0x22($t7)
/* 021DD0 800211D0 00000000 */ nop
/* 021DD4 800211D4 2881000A */ slti $at, $a0, 0xa
.L800211D8:
/* 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(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)
/* 021DF8 800211F8 00000000 */ nop
/* 021DFC 800211FC 10400014 */ beqz $v0, .L80021250
/* 021E00 80021200 8FBF0014 */ lw $ra, 0x14($sp)
/* 021E04 80021204 C44A000C */ lwc1 $f10, 0xc($v0)
/* 021E08 80021208 00000000 */ nop
/* 021E0C 8002120C E46A000C */ swc1 $f10, 0xc($v1)
/* 021E10 80021210 C4500010 */ lwc1 $f16, 0x10($v0)
/* 021E14 80021214 00000000 */ nop
/* 021E18 80021218 E4700010 */ swc1 $f16, 0x10($v1)
/* 021E1C 8002121C C4520014 */ lwc1 $f18, 0x14($v0)
/* 021E20 80021220 00000000 */ nop
/* 021E24 80021224 E4720014 */ swc1 $f18, 0x14($v1)
/* 021E28 80021228 844A0000 */ lh $t2, ($v0)
/* 021E2C 8002122C 00000000 */ nop
/* 021E30 80021230 A46A0000 */ sh $t2, ($v1)
/* 021E34 80021234 84490002 */ lh $t1, 2($v0)
/* 021E38 80021238 00000000 */ nop
/* 021E3C 8002123C A4690002 */ sh $t1, 2($v1)
/* 021E40 80021240 844B0004 */ lh $t3, 4($v0)
/* 021E44 80021244 00000000 */ nop
/* 021E48 80021248 A46B0004 */ sh $t3, 4($v1)
.L8002124C:
/* 021E4C 8002124C 8FBF0014 */ lw $ra, 0x14($sp)
.L80021250:
/* 021E50 80021250 27BD0020 */ addiu $sp, $sp, 0x20
/* 021E54 80021254 03E00008 */ jr $ra
/* 021E58 80021258 00000000 */ nop
glabel func_80021104
/* 021D04 80021104 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 021D08 80021108 AFBF0014 */ sw $ra, 0x14($sp)
/* 021D0C 8002110C AFA60028 */ sw $a2, 0x28($sp)
/* 021D10 80021110 848E0048 */ lh $t6, 0x48($a0)
/* 021D14 80021114 8CA3001C */ lw $v1, 0x1c($a1)
/* 021D18 80021118 24010033 */ li $at, 51
/* 021D1C 8002111C 15C10009 */ bne $t6, $at, .L80021144
/* 021D20 80021120 3C028012 */ lui $v0, %hi(D_8011AD3E) # $v0, 0x8012
/* 021D24 80021124 2442AD3E */ addiu $v0, %lo(D_8011AD3E) # addiu $v0, $v0, -0x52c2
/* 021D28 80021128 804F0000 */ lb $t7, ($v0)
/* 021D2C 8002112C 00000000 */ nop
/* 021D30 80021130 A0AF0044 */ sb $t7, 0x44($a1)
/* 021D34 80021134 80580000 */ lb $t8, ($v0)
/* 021D38 80021138 00000000 */ nop
/* 021D3C 8002113C 27190001 */ addiu $t9, $t8, 1
/* 021D40 80021140 A0590000 */ sb $t9, ($v0)
.L80021144:
/* 021D44 80021144 8FA80028 */ lw $t0, 0x28($sp)
/* 021D48 80021148 24010012 */ li $at, 18
/* 021D4C 8002114C 81040022 */ lb $a0, 0x22($t0)
/* 021D50 80021150 00000000 */ nop
/* 021D54 80021154 14810020 */ bne $a0, $at, .L800211D8
/* 021D58 80021158 2881000A */ slti $at, $a0, 0xa
/* 021D5C 8002115C 80A40030 */ lb $a0, 0x30($a1)
/* 021D60 80021160 0C01997A */ jal set_active_camera
/* 021D64 80021164 AFA30018 */ sw $v1, 0x18($sp)
/* 021D68 80021168 0C01A73F */ jal get_active_camera_segment_no_cutscenes
/* 021D6C 8002116C 00000000 */ nop
/* 021D70 80021170 8FA30018 */ lw $v1, 0x18($sp)
/* 021D74 80021174 C444000C */ lwc1 $f4, 0xc($v0)
/* 021D78 80021178 340A8000 */ li $t2, 32768
/* 021D7C 8002117C E464000C */ swc1 $f4, 0xc($v1)
/* 021D80 80021180 C4460010 */ lwc1 $f6, 0x10($v0)
/* 021D84 80021184 00000000 */ nop
/* 021D88 80021188 E4660010 */ swc1 $f6, 0x10($v1)
/* 021D8C 8002118C C4480014 */ lwc1 $f8, 0x14($v0)
/* 021D90 80021190 00000000 */ nop
/* 021D94 80021194 E4680014 */ swc1 $f8, 0x14($v1)
/* 021D98 80021198 84490000 */ lh $t1, ($v0)
/* 021D9C 8002119C 00000000 */ nop
/* 021DA0 800211A0 01495823 */ subu $t3, $t2, $t1
/* 021DA4 800211A4 A46B0000 */ sh $t3, ($v1)
/* 021DA8 800211A8 844C0002 */ lh $t4, 2($v0)
/* 021DAC 800211AC 00000000 */ nop
/* 021DB0 800211B0 000C6823 */ negu $t5, $t4
/* 021DB4 800211B4 A46D0002 */ sh $t5, 2($v1)
/* 021DB8 800211B8 844E0004 */ lh $t6, 4($v0)
/* 021DBC 800211BC 00000000 */ nop
/* 021DC0 800211C0 A46E0004 */ sh $t6, 4($v1)
/* 021DC4 800211C4 8FAF0028 */ lw $t7, 0x28($sp)
/* 021DC8 800211C8 00000000 */ nop
/* 021DCC 800211CC 81E40022 */ lb $a0, 0x22($t7)
/* 021DD0 800211D0 00000000 */ nop
/* 021DD4 800211D4 2881000A */ slti $at, $a0, 0xa
.L800211D8:
/* 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(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)
/* 021DF8 800211F8 00000000 */ nop
/* 021DFC 800211FC 10400014 */ beqz $v0, .L80021250
/* 021E00 80021200 8FBF0014 */ lw $ra, 0x14($sp)
/* 021E04 80021204 C44A000C */ lwc1 $f10, 0xc($v0)
/* 021E08 80021208 00000000 */ nop
/* 021E0C 8002120C E46A000C */ swc1 $f10, 0xc($v1)
/* 021E10 80021210 C4500010 */ lwc1 $f16, 0x10($v0)
/* 021E14 80021214 00000000 */ nop
/* 021E18 80021218 E4700010 */ swc1 $f16, 0x10($v1)
/* 021E1C 8002121C C4520014 */ lwc1 $f18, 0x14($v0)
/* 021E20 80021220 00000000 */ nop
/* 021E24 80021224 E4720014 */ swc1 $f18, 0x14($v1)
/* 021E28 80021228 844A0000 */ lh $t2, ($v0)
/* 021E2C 8002122C 00000000 */ nop
/* 021E30 80021230 A46A0000 */ sh $t2, ($v1)
/* 021E34 80021234 84490002 */ lh $t1, 2($v0)
/* 021E38 80021238 00000000 */ nop
/* 021E3C 8002123C A4690002 */ sh $t1, 2($v1)
/* 021E40 80021240 844B0004 */ lh $t3, 4($v0)
/* 021E44 80021244 00000000 */ nop
/* 021E48 80021248 A46B0004 */ sh $t3, 4($v1)
.L8002124C:
/* 021E4C 8002124C 8FBF0014 */ lw $ra, 0x14($sp)
.L80021250:
/* 021E50 80021250 27BD0020 */ addiu $sp, $sp, 0x20
/* 021E54 80021254 03E00008 */ jr $ra
/* 021E58 80021258 00000000 */ nop
File diff suppressed because it is too large Load Diff
+223 -223
View File
@@ -1,223 +1,223 @@
glabel func_800230D0
/* 023CD0 800230D0 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 023CD4 800230D4 3C028012 */ lui $v0, %hi(gNumberOfCheckpoints) # $v0, 0x8012
/* 023CD8 800230D8 8C42AED0 */ lw $v0, %lo(gNumberOfCheckpoints)($v0)
/* 023CDC 800230DC AFB10018 */ sw $s1, 0x18($sp)
/* 023CE0 800230E0 AFB00014 */ sw $s0, 0x14($sp)
/* 023CE4 800230E4 00808025 */ move $s0, $a0
/* 023CE8 800230E8 00A08825 */ move $s1, $a1
/* 023CEC 800230EC 14400032 */ bnez $v0, .L800231B8
/* 023CF0 800230F0 AFBF001C */ sw $ra, 0x1c($sp)
/* 023CF4 800230F4 3C078012 */ lui $a3, %hi(objCount) # $a3, 0x8012
/* 023CF8 800230F8 24E7AE5C */ addiu $a3, %lo(objCount) # addiu $a3, $a3, -0x51a4
/* 023CFC 800230FC 8CE40000 */ lw $a0, ($a3)
/* 023D00 80023100 00004025 */ move $t0, $zero
/* 023D04 80023104 1880002A */ blez $a0, .L800231B0
/* 023D08 80023108 00001025 */ move $v0, $zero
/* 023D0C 8002310C 3C058012 */ lui $a1, %hi(gObjPtrList) # $a1, 0x8012
/* 023D10 80023110 24A5AE58 */ addiu $a1, %lo(gObjPtrList) # addiu $a1, $a1, -0x51a8
/* 023D14 80023114 2406000B */ li $a2, 11
.L80023118:
/* 023D18 80023118 8CAE0000 */ lw $t6, ($a1)
/* 023D1C 8002311C 00027880 */ sll $t7, $v0, 2
/* 023D20 80023120 01CFC021 */ addu $t8, $t6, $t7
/* 023D24 80023124 8F030000 */ lw $v1, ($t8)
/* 023D28 80023128 00000000 */ nop
/* 023D2C 8002312C 84790006 */ lh $t9, 6($v1)
/* 023D30 80023130 00000000 */ nop
/* 023D34 80023134 33298000 */ andi $t1, $t9, 0x8000
/* 023D38 80023138 15200018 */ bnez $t1, .L8002319C
/* 023D3C 8002313C 00000000 */ nop
/* 023D40 80023140 846A0048 */ lh $t2, 0x48($v1)
/* 023D44 80023144 00000000 */ nop
/* 023D48 80023148 14CA0014 */ bne $a2, $t2, .L8002319C
/* 023D4C 8002314C 00000000 */ nop
/* 023D50 80023150 8C6B0078 */ lw $t3, 0x78($v1)
/* 023D54 80023154 00000000 */ nop
/* 023D58 80023158 15600011 */ bnez $t3, .L800231A0
/* 023D5C 8002315C 24420001 */ addiu $v0, $v0, 1
/* 023D60 80023160 C464000C */ lwc1 $f4, 0xc($v1)
/* 023D64 80023164 00000000 */ nop
/* 023D68 80023168 E604000C */ swc1 $f4, 0xc($s0)
/* 023D6C 8002316C C4660010 */ lwc1 $f6, 0x10($v1)
/* 023D70 80023170 00000000 */ nop
/* 023D74 80023174 E6060010 */ swc1 $f6, 0x10($s0)
/* 023D78 80023178 C4680014 */ lwc1 $f8, 0x14($v1)
/* 023D7C 8002317C 00000000 */ nop
/* 023D80 80023180 E6080014 */ swc1 $f8, 0x14($s0)
/* 023D84 80023184 846C002E */ lh $t4, 0x2e($v1)
/* 023D88 80023188 00000000 */ nop
/* 023D8C 8002318C A60C002E */ sh $t4, 0x2e($s0)
/* 023D90 80023190 8CE40000 */ lw $a0, ($a3)
/* 023D94 80023194 00000000 */ nop
/* 023D98 80023198 00801025 */ move $v0, $a0
.L8002319C:
/* 023D9C 8002319C 24420001 */ addiu $v0, $v0, 1
.L800231A0:
/* 023DA0 800231A0 0044082A */ slt $at, $v0, $a0
/* 023DA4 800231A4 1420FFDC */ bnez $at, .L80023118
/* 023DA8 800231A8 00000000 */ nop
/* 023DAC 800231AC AFA3002C */ sw $v1, 0x2c($sp)
.L800231B0:
/* 023DB0 800231B0 1000001E */ b .L8002322C
/* 023DB4 800231B4 8604002E */ lh $a0, 0x2e($s0)
.L800231B8:
/* 023DB8 800231B8 00026900 */ sll $t5, $v0, 4
/* 023DBC 800231BC 3C0E8012 */ lui $t6, %hi(gTrackCheckpoints) # $t6, 0x8012
/* 023DC0 800231C0 8DCEAECC */ lw $t6, %lo(gTrackCheckpoints)($t6)
/* 023DC4 800231C4 01A26823 */ subu $t5, $t5, $v0
/* 023DC8 800231C8 000D6880 */ sll $t5, $t5, 2
/* 023DCC 800231CC 3C01420C */ li $at, 0x420C0000 # 35.000000
/* 023DD0 800231D0 01AE4021 */ addu $t0, $t5, $t6
/* 023DD4 800231D4 44810000 */ mtc1 $at, $f0
/* 023DD8 800231D8 C510FFCC */ lwc1 $f16, -0x34($t0)
/* 023DDC 800231DC C50AFFD4 */ lwc1 $f10, -0x2c($t0)
/* 023DE0 800231E0 46008482 */ mul.s $f18, $f16, $f0
/* 023DE4 800231E4 2508FFC4 */ addiu $t0, $t0, -0x3c
/* 023DE8 800231E8 46125101 */ sub.s $f4, $f10, $f18
/* 023DEC 800231EC E604000C */ swc1 $f4, 0xc($s0)
/* 023DF0 800231F0 C5060014 */ lwc1 $f6, 0x14($t0)
/* 023DF4 800231F4 C60C000C */ lwc1 $f12, 0xc($s0)
/* 023DF8 800231F8 E6060010 */ swc1 $f6, 0x10($s0)
/* 023DFC 800231FC C5100000 */ lwc1 $f16, ($t0)
/* 023E00 80023200 C5080018 */ lwc1 $f8, 0x18($t0)
/* 023E04 80023204 46008282 */ mul.s $f10, $f16, $f0
/* 023E08 80023208 C60E0010 */ lwc1 $f14, 0x10($s0)
/* 023E0C 8002320C 460A4480 */ add.s $f18, $f8, $f10
/* 023E10 80023210 E6120014 */ swc1 $f18, 0x14($s0)
/* 023E14 80023214 8E060014 */ lw $a2, 0x14($s0)
/* 023E18 80023218 0C00A7C6 */ jal get_level_segment_index_from_position
/* 023E1C 8002321C AFA8005C */ sw $t0, 0x5c($sp)
/* 023E20 80023220 8FA8005C */ lw $t0, 0x5c($sp)
/* 023E24 80023224 A602002E */ sh $v0, 0x2e($s0)
/* 023E28 80023228 8604002E */ lh $a0, 0x2e($s0)
.L8002322C:
/* 023E2C 8002322C 8E05000C */ lw $a1, 0xc($s0)
/* 023E30 80023230 8E060014 */ lw $a2, 0x14($s0)
/* 023E34 80023234 AFA8005C */ sw $t0, 0x5c($sp)
/* 023E38 80023238 0C00AEAC */ jal func_8002BAB0
/* 023E3C 8002323C 27A70030 */ addiu $a3, $sp, 0x30
/* 023E40 80023240 8FA3002C */ lw $v1, 0x2c($sp)
/* 023E44 80023244 8FA8005C */ lw $t0, 0x5c($sp)
/* 023E48 80023248 10400005 */ beqz $v0, .L80023260
/* 023E4C 8002324C 00027880 */ sll $t7, $v0, 2
/* 023E50 80023250 03AFC021 */ addu $t8, $sp, $t7
/* 023E54 80023254 C704002C */ lwc1 $f4, 0x2c($t8)
/* 023E58 80023258 00000000 */ nop
/* 023E5C 8002325C E6040010 */ swc1 $f4, 0x10($s0)
.L80023260:
/* 023E60 80023260 C606000C */ lwc1 $f6, 0xc($s0)
/* 023E64 80023264 00000000 */ nop
/* 023E68 80023268 E626005C */ swc1 $f6, 0x5c($s1)
/* 023E6C 8002326C C6100010 */ lwc1 $f16, 0x10($s0)
/* 023E70 80023270 00000000 */ nop
/* 023E74 80023274 E6300060 */ swc1 $f16, 0x60($s1)
/* 023E78 80023278 C6080014 */ lwc1 $f8, 0x14($s0)
/* 023E7C 8002327C 11000008 */ beqz $t0, .L800232A0
/* 023E80 80023280 E6280064 */ swc1 $f8, 0x64($s1)
/* 023E84 80023284 C50C0000 */ lwc1 $f12, ($t0)
/* 023E88 80023288 C50E0008 */ lwc1 $f14, 8($t0)
/* 023E8C 8002328C 0C01C1D4 */ jal arctan2_f
/* 023E90 80023290 AFA8005C */ sw $t0, 0x5c($sp)
/* 023E94 80023294 8FA8005C */ lw $t0, 0x5c($sp)
/* 023E98 80023298 10000004 */ b .L800232AC
/* 023E9C 8002329C A62201A0 */ sh $v0, 0x1a0($s1)
.L800232A0:
/* 023EA0 800232A0 84790000 */ lh $t9, ($v1)
/* 023EA4 800232A4 00000000 */ nop
/* 023EA8 800232A8 A63901A0 */ sh $t9, 0x1a0($s1)
.L800232AC:
/* 023EAC 800232AC A2200192 */ sb $zero, 0x192($s1)
/* 023EB0 800232B0 3C0A8012 */ lui $t2, %hi(gNumberOfCheckpoints) # $t2, 0x8012
/* 023EB4 800232B4 8D4AAED0 */ lw $t2, %lo(gNumberOfCheckpoints)($t2)
/* 023EB8 800232B8 82290193 */ lb $t1, 0x193($s1)
/* 023EBC 800232BC 862C01A0 */ lh $t4, 0x1a0($s1)
/* 023EC0 800232C0 012A0019 */ multu $t1, $t2
/* 023EC4 800232C4 3C014170 */ li $at, 0x41700000 # 15.000000
/* 023EC8 800232C8 44810000 */ mtc1 $at, $f0
/* 023ECC 800232CC 2401FFFF */ li $at, -1
/* 023ED0 800232D0 00005812 */ mflo $t3
/* 023ED4 800232D4 A62B0190 */ sh $t3, 0x190($s1)
/* 023ED8 800232D8 C60A000C */ lwc1 $f10, 0xc($s0)
/* 023EDC 800232DC A60C0000 */ sh $t4, ($s0)
/* 023EE0 800232E0 E62A00D8 */ swc1 $f10, 0xd8($s1)
/* 023EE4 800232E4 C6120010 */ lwc1 $f18, 0x10($s0)
/* 023EE8 800232E8 00000000 */ nop
/* 023EEC 800232EC 46009100 */ add.s $f4, $f18, $f0
/* 023EF0 800232F0 E62400DC */ swc1 $f4, 0xdc($s1)
/* 023EF4 800232F4 C6060014 */ lwc1 $f6, 0x14($s0)
/* 023EF8 800232F8 00000000 */ nop
/* 023EFC 800232FC E62600E0 */ swc1 $f6, 0xe0($s1)
/* 023F00 80023300 C610000C */ lwc1 $f16, 0xc($s0)
/* 023F04 80023304 00000000 */ nop
/* 023F08 80023308 E63000E4 */ swc1 $f16, 0xe4($s1)
/* 023F0C 8002330C C6080010 */ lwc1 $f8, 0x10($s0)
/* 023F10 80023310 00000000 */ nop
/* 023F14 80023314 46004280 */ add.s $f10, $f8, $f0
/* 023F18 80023318 E62A00E8 */ swc1 $f10, 0xe8($s1)
/* 023F1C 8002331C C6120014 */ lwc1 $f18, 0x14($s0)
/* 023F20 80023320 00000000 */ nop
/* 023F24 80023324 E63200EC */ swc1 $f18, 0xec($s1)
/* 023F28 80023328 C604000C */ lwc1 $f4, 0xc($s0)
/* 023F2C 8002332C 00000000 */ nop
/* 023F30 80023330 E62400F0 */ swc1 $f4, 0xf0($s1)
/* 023F34 80023334 C6060010 */ lwc1 $f6, 0x10($s0)
/* 023F38 80023338 00000000 */ nop
/* 023F3C 8002333C 46003400 */ add.s $f16, $f6, $f0
/* 023F40 80023340 E63000F4 */ swc1 $f16, 0xf4($s1)
/* 023F44 80023344 C6080014 */ lwc1 $f8, 0x14($s0)
/* 023F48 80023348 00000000 */ nop
/* 023F4C 8002334C E62800F8 */ swc1 $f8, 0xf8($s1)
/* 023F50 80023350 C60A000C */ lwc1 $f10, 0xc($s0)
/* 023F54 80023354 00000000 */ nop
/* 023F58 80023358 E62A00FC */ swc1 $f10, 0xfc($s1)
/* 023F5C 8002335C C6120010 */ lwc1 $f18, 0x10($s0)
/* 023F60 80023360 00000000 */ nop
/* 023F64 80023364 46009100 */ add.s $f4, $f18, $f0
/* 023F68 80023368 44800000 */ mtc1 $zero, $f0
/* 023F6C 8002336C E6240100 */ swc1 $f4, 0x100($s1)
/* 023F70 80023370 C6060014 */ lwc1 $f6, 0x14($s0)
/* 023F74 80023374 00000000 */ nop
/* 023F78 80023378 E6260104 */ swc1 $f6, 0x104($s1)
/* 023F7C 8002337C 8E0D004C */ lw $t5, 0x4c($s0)
/* 023F80 80023380 C610000C */ lwc1 $f16, 0xc($s0)
/* 023F84 80023384 00000000 */ nop
/* 023F88 80023388 E5B00004 */ swc1 $f16, 4($t5)
/* 023F8C 8002338C 8E0E004C */ lw $t6, 0x4c($s0)
/* 023F90 80023390 C6080010 */ lwc1 $f8, 0x10($s0)
/* 023F94 80023394 00000000 */ nop
/* 023F98 80023398 E5C80008 */ swc1 $f8, 8($t6)
/* 023F9C 8002339C 8E0F004C */ lw $t7, 0x4c($s0)
/* 023FA0 800233A0 C60A0014 */ lwc1 $f10, 0x14($s0)
/* 023FA4 800233A4 00000000 */ nop
/* 023FA8 800233A8 E5EA000C */ swc1 $f10, 0xc($t7)
/* 023FAC 800233AC E620002C */ swc1 $f0, 0x2c($s1)
/* 023FB0 800233B0 E6200030 */ swc1 $f0, 0x30($s1)
/* 023FB4 800233B4 E600001C */ swc1 $f0, 0x1c($s0)
/* 023FB8 800233B8 E6000024 */ swc1 $f0, 0x24($s0)
/* 023FBC 800233BC 823801D7 */ lb $t8, 0x1d7($s1)
/* 023FC0 800233C0 86240000 */ lh $a0, ($s1)
/* 023FC4 800233C4 A23801D6 */ sb $t8, 0x1d6($s1)
/* 023FC8 800233C8 1081000F */ beq $a0, $at, .L80023408
/* 023FCC 800233CC 8FBF001C */ lw $ra, 0x1c($sp)
/* 023FD0 800233D0 0C01997A */ jal set_object_stack_pos
/* 023FD4 800233D4 AFA8005C */ sw $t0, 0x5c($sp)
/* 023FD8 800233D8 0C01A73F */ jal get_active_camera_segment_no_cutscenes
/* 023FDC 800233DC 00000000 */ nop
/* 023FE0 800233E0 C612000C */ lwc1 $f18, 0xc($s0)
/* 023FE4 800233E4 8FA8005C */ lw $t0, 0x5c($sp)
/* 023FE8 800233E8 E452000C */ swc1 $f18, 0xc($v0)
/* 023FEC 800233EC C6040010 */ lwc1 $f4, 0x10($s0)
/* 023FF0 800233F0 00000000 */ nop
/* 023FF4 800233F4 E4440010 */ swc1 $f4, 0x10($v0)
/* 023FF8 800233F8 C6060014 */ lwc1 $f6, 0x14($s0)
/* 023FFC 800233FC 00000000 */ nop
/* 024000 80023400 E4460014 */ swc1 $f6, 0x14($v0)
/* 024004 80023404 8FBF001C */ lw $ra, 0x1c($sp)
.L80023408:
/* 024008 80023408 8FB00014 */ lw $s0, 0x14($sp)
/* 02400C 8002340C 8FB10018 */ lw $s1, 0x18($sp)
/* 024010 80023410 27BD0060 */ addiu $sp, $sp, 0x60
/* 024014 80023414 03E00008 */ jr $ra
/* 024018 80023418 01001025 */ move $v0, $t0
glabel func_800230D0
/* 023CD0 800230D0 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 023CD4 800230D4 3C028012 */ lui $v0, %hi(gNumberOfCheckpoints) # $v0, 0x8012
/* 023CD8 800230D8 8C42AED0 */ lw $v0, %lo(gNumberOfCheckpoints)($v0)
/* 023CDC 800230DC AFB10018 */ sw $s1, 0x18($sp)
/* 023CE0 800230E0 AFB00014 */ sw $s0, 0x14($sp)
/* 023CE4 800230E4 00808025 */ move $s0, $a0
/* 023CE8 800230E8 00A08825 */ move $s1, $a1
/* 023CEC 800230EC 14400032 */ bnez $v0, .L800231B8
/* 023CF0 800230F0 AFBF001C */ sw $ra, 0x1c($sp)
/* 023CF4 800230F4 3C078012 */ lui $a3, %hi(objCount) # $a3, 0x8012
/* 023CF8 800230F8 24E7AE5C */ addiu $a3, %lo(objCount) # addiu $a3, $a3, -0x51a4
/* 023CFC 800230FC 8CE40000 */ lw $a0, ($a3)
/* 023D00 80023100 00004025 */ move $t0, $zero
/* 023D04 80023104 1880002A */ blez $a0, .L800231B0
/* 023D08 80023108 00001025 */ move $v0, $zero
/* 023D0C 8002310C 3C058012 */ lui $a1, %hi(gObjPtrList) # $a1, 0x8012
/* 023D10 80023110 24A5AE58 */ addiu $a1, %lo(gObjPtrList) # addiu $a1, $a1, -0x51a8
/* 023D14 80023114 2406000B */ li $a2, 11
.L80023118:
/* 023D18 80023118 8CAE0000 */ lw $t6, ($a1)
/* 023D1C 8002311C 00027880 */ sll $t7, $v0, 2
/* 023D20 80023120 01CFC021 */ addu $t8, $t6, $t7
/* 023D24 80023124 8F030000 */ lw $v1, ($t8)
/* 023D28 80023128 00000000 */ nop
/* 023D2C 8002312C 84790006 */ lh $t9, 6($v1)
/* 023D30 80023130 00000000 */ nop
/* 023D34 80023134 33298000 */ andi $t1, $t9, 0x8000
/* 023D38 80023138 15200018 */ bnez $t1, .L8002319C
/* 023D3C 8002313C 00000000 */ nop
/* 023D40 80023140 846A0048 */ lh $t2, 0x48($v1)
/* 023D44 80023144 00000000 */ nop
/* 023D48 80023148 14CA0014 */ bne $a2, $t2, .L8002319C
/* 023D4C 8002314C 00000000 */ nop
/* 023D50 80023150 8C6B0078 */ lw $t3, 0x78($v1)
/* 023D54 80023154 00000000 */ nop
/* 023D58 80023158 15600011 */ bnez $t3, .L800231A0
/* 023D5C 8002315C 24420001 */ addiu $v0, $v0, 1
/* 023D60 80023160 C464000C */ lwc1 $f4, 0xc($v1)
/* 023D64 80023164 00000000 */ nop
/* 023D68 80023168 E604000C */ swc1 $f4, 0xc($s0)
/* 023D6C 8002316C C4660010 */ lwc1 $f6, 0x10($v1)
/* 023D70 80023170 00000000 */ nop
/* 023D74 80023174 E6060010 */ swc1 $f6, 0x10($s0)
/* 023D78 80023178 C4680014 */ lwc1 $f8, 0x14($v1)
/* 023D7C 8002317C 00000000 */ nop
/* 023D80 80023180 E6080014 */ swc1 $f8, 0x14($s0)
/* 023D84 80023184 846C002E */ lh $t4, 0x2e($v1)
/* 023D88 80023188 00000000 */ nop
/* 023D8C 8002318C A60C002E */ sh $t4, 0x2e($s0)
/* 023D90 80023190 8CE40000 */ lw $a0, ($a3)
/* 023D94 80023194 00000000 */ nop
/* 023D98 80023198 00801025 */ move $v0, $a0
.L8002319C:
/* 023D9C 8002319C 24420001 */ addiu $v0, $v0, 1
.L800231A0:
/* 023DA0 800231A0 0044082A */ slt $at, $v0, $a0
/* 023DA4 800231A4 1420FFDC */ bnez $at, .L80023118
/* 023DA8 800231A8 00000000 */ nop
/* 023DAC 800231AC AFA3002C */ sw $v1, 0x2c($sp)
.L800231B0:
/* 023DB0 800231B0 1000001E */ b .L8002322C
/* 023DB4 800231B4 8604002E */ lh $a0, 0x2e($s0)
.L800231B8:
/* 023DB8 800231B8 00026900 */ sll $t5, $v0, 4
/* 023DBC 800231BC 3C0E8012 */ lui $t6, %hi(gTrackCheckpoints) # $t6, 0x8012
/* 023DC0 800231C0 8DCEAECC */ lw $t6, %lo(gTrackCheckpoints)($t6)
/* 023DC4 800231C4 01A26823 */ subu $t5, $t5, $v0
/* 023DC8 800231C8 000D6880 */ sll $t5, $t5, 2
/* 023DCC 800231CC 3C01420C */ li $at, 0x420C0000 # 35.000000
/* 023DD0 800231D0 01AE4021 */ addu $t0, $t5, $t6
/* 023DD4 800231D4 44810000 */ mtc1 $at, $f0
/* 023DD8 800231D8 C510FFCC */ lwc1 $f16, -0x34($t0)
/* 023DDC 800231DC C50AFFD4 */ lwc1 $f10, -0x2c($t0)
/* 023DE0 800231E0 46008482 */ mul.s $f18, $f16, $f0
/* 023DE4 800231E4 2508FFC4 */ addiu $t0, $t0, -0x3c
/* 023DE8 800231E8 46125101 */ sub.s $f4, $f10, $f18
/* 023DEC 800231EC E604000C */ swc1 $f4, 0xc($s0)
/* 023DF0 800231F0 C5060014 */ lwc1 $f6, 0x14($t0)
/* 023DF4 800231F4 C60C000C */ lwc1 $f12, 0xc($s0)
/* 023DF8 800231F8 E6060010 */ swc1 $f6, 0x10($s0)
/* 023DFC 800231FC C5100000 */ lwc1 $f16, ($t0)
/* 023E00 80023200 C5080018 */ lwc1 $f8, 0x18($t0)
/* 023E04 80023204 46008282 */ mul.s $f10, $f16, $f0
/* 023E08 80023208 C60E0010 */ lwc1 $f14, 0x10($s0)
/* 023E0C 8002320C 460A4480 */ add.s $f18, $f8, $f10
/* 023E10 80023210 E6120014 */ swc1 $f18, 0x14($s0)
/* 023E14 80023214 8E060014 */ lw $a2, 0x14($s0)
/* 023E18 80023218 0C00A7C6 */ jal get_level_segment_index_from_position
/* 023E1C 8002321C AFA8005C */ sw $t0, 0x5c($sp)
/* 023E20 80023220 8FA8005C */ lw $t0, 0x5c($sp)
/* 023E24 80023224 A602002E */ sh $v0, 0x2e($s0)
/* 023E28 80023228 8604002E */ lh $a0, 0x2e($s0)
.L8002322C:
/* 023E2C 8002322C 8E05000C */ lw $a1, 0xc($s0)
/* 023E30 80023230 8E060014 */ lw $a2, 0x14($s0)
/* 023E34 80023234 AFA8005C */ sw $t0, 0x5c($sp)
/* 023E38 80023238 0C00AEAC */ jal func_8002BAB0
/* 023E3C 8002323C 27A70030 */ addiu $a3, $sp, 0x30
/* 023E40 80023240 8FA3002C */ lw $v1, 0x2c($sp)
/* 023E44 80023244 8FA8005C */ lw $t0, 0x5c($sp)
/* 023E48 80023248 10400005 */ beqz $v0, .L80023260
/* 023E4C 8002324C 00027880 */ sll $t7, $v0, 2
/* 023E50 80023250 03AFC021 */ addu $t8, $sp, $t7
/* 023E54 80023254 C704002C */ lwc1 $f4, 0x2c($t8)
/* 023E58 80023258 00000000 */ nop
/* 023E5C 8002325C E6040010 */ swc1 $f4, 0x10($s0)
.L80023260:
/* 023E60 80023260 C606000C */ lwc1 $f6, 0xc($s0)
/* 023E64 80023264 00000000 */ nop
/* 023E68 80023268 E626005C */ swc1 $f6, 0x5c($s1)
/* 023E6C 8002326C C6100010 */ lwc1 $f16, 0x10($s0)
/* 023E70 80023270 00000000 */ nop
/* 023E74 80023274 E6300060 */ swc1 $f16, 0x60($s1)
/* 023E78 80023278 C6080014 */ lwc1 $f8, 0x14($s0)
/* 023E7C 8002327C 11000008 */ beqz $t0, .L800232A0
/* 023E80 80023280 E6280064 */ swc1 $f8, 0x64($s1)
/* 023E84 80023284 C50C0000 */ lwc1 $f12, ($t0)
/* 023E88 80023288 C50E0008 */ lwc1 $f14, 8($t0)
/* 023E8C 8002328C 0C01C1D4 */ jal arctan2_f
/* 023E90 80023290 AFA8005C */ sw $t0, 0x5c($sp)
/* 023E94 80023294 8FA8005C */ lw $t0, 0x5c($sp)
/* 023E98 80023298 10000004 */ b .L800232AC
/* 023E9C 8002329C A62201A0 */ sh $v0, 0x1a0($s1)
.L800232A0:
/* 023EA0 800232A0 84790000 */ lh $t9, ($v1)
/* 023EA4 800232A4 00000000 */ nop
/* 023EA8 800232A8 A63901A0 */ sh $t9, 0x1a0($s1)
.L800232AC:
/* 023EAC 800232AC A2200192 */ sb $zero, 0x192($s1)
/* 023EB0 800232B0 3C0A8012 */ lui $t2, %hi(gNumberOfCheckpoints) # $t2, 0x8012
/* 023EB4 800232B4 8D4AAED0 */ lw $t2, %lo(gNumberOfCheckpoints)($t2)
/* 023EB8 800232B8 82290193 */ lb $t1, 0x193($s1)
/* 023EBC 800232BC 862C01A0 */ lh $t4, 0x1a0($s1)
/* 023EC0 800232C0 012A0019 */ multu $t1, $t2
/* 023EC4 800232C4 3C014170 */ li $at, 0x41700000 # 15.000000
/* 023EC8 800232C8 44810000 */ mtc1 $at, $f0
/* 023ECC 800232CC 2401FFFF */ li $at, -1
/* 023ED0 800232D0 00005812 */ mflo $t3
/* 023ED4 800232D4 A62B0190 */ sh $t3, 0x190($s1)
/* 023ED8 800232D8 C60A000C */ lwc1 $f10, 0xc($s0)
/* 023EDC 800232DC A60C0000 */ sh $t4, ($s0)
/* 023EE0 800232E0 E62A00D8 */ swc1 $f10, 0xd8($s1)
/* 023EE4 800232E4 C6120010 */ lwc1 $f18, 0x10($s0)
/* 023EE8 800232E8 00000000 */ nop
/* 023EEC 800232EC 46009100 */ add.s $f4, $f18, $f0
/* 023EF0 800232F0 E62400DC */ swc1 $f4, 0xdc($s1)
/* 023EF4 800232F4 C6060014 */ lwc1 $f6, 0x14($s0)
/* 023EF8 800232F8 00000000 */ nop
/* 023EFC 800232FC E62600E0 */ swc1 $f6, 0xe0($s1)
/* 023F00 80023300 C610000C */ lwc1 $f16, 0xc($s0)
/* 023F04 80023304 00000000 */ nop
/* 023F08 80023308 E63000E4 */ swc1 $f16, 0xe4($s1)
/* 023F0C 8002330C C6080010 */ lwc1 $f8, 0x10($s0)
/* 023F10 80023310 00000000 */ nop
/* 023F14 80023314 46004280 */ add.s $f10, $f8, $f0
/* 023F18 80023318 E62A00E8 */ swc1 $f10, 0xe8($s1)
/* 023F1C 8002331C C6120014 */ lwc1 $f18, 0x14($s0)
/* 023F20 80023320 00000000 */ nop
/* 023F24 80023324 E63200EC */ swc1 $f18, 0xec($s1)
/* 023F28 80023328 C604000C */ lwc1 $f4, 0xc($s0)
/* 023F2C 8002332C 00000000 */ nop
/* 023F30 80023330 E62400F0 */ swc1 $f4, 0xf0($s1)
/* 023F34 80023334 C6060010 */ lwc1 $f6, 0x10($s0)
/* 023F38 80023338 00000000 */ nop
/* 023F3C 8002333C 46003400 */ add.s $f16, $f6, $f0
/* 023F40 80023340 E63000F4 */ swc1 $f16, 0xf4($s1)
/* 023F44 80023344 C6080014 */ lwc1 $f8, 0x14($s0)
/* 023F48 80023348 00000000 */ nop
/* 023F4C 8002334C E62800F8 */ swc1 $f8, 0xf8($s1)
/* 023F50 80023350 C60A000C */ lwc1 $f10, 0xc($s0)
/* 023F54 80023354 00000000 */ nop
/* 023F58 80023358 E62A00FC */ swc1 $f10, 0xfc($s1)
/* 023F5C 8002335C C6120010 */ lwc1 $f18, 0x10($s0)
/* 023F60 80023360 00000000 */ nop
/* 023F64 80023364 46009100 */ add.s $f4, $f18, $f0
/* 023F68 80023368 44800000 */ mtc1 $zero, $f0
/* 023F6C 8002336C E6240100 */ swc1 $f4, 0x100($s1)
/* 023F70 80023370 C6060014 */ lwc1 $f6, 0x14($s0)
/* 023F74 80023374 00000000 */ nop
/* 023F78 80023378 E6260104 */ swc1 $f6, 0x104($s1)
/* 023F7C 8002337C 8E0D004C */ lw $t5, 0x4c($s0)
/* 023F80 80023380 C610000C */ lwc1 $f16, 0xc($s0)
/* 023F84 80023384 00000000 */ nop
/* 023F88 80023388 E5B00004 */ swc1 $f16, 4($t5)
/* 023F8C 8002338C 8E0E004C */ lw $t6, 0x4c($s0)
/* 023F90 80023390 C6080010 */ lwc1 $f8, 0x10($s0)
/* 023F94 80023394 00000000 */ nop
/* 023F98 80023398 E5C80008 */ swc1 $f8, 8($t6)
/* 023F9C 8002339C 8E0F004C */ lw $t7, 0x4c($s0)
/* 023FA0 800233A0 C60A0014 */ lwc1 $f10, 0x14($s0)
/* 023FA4 800233A4 00000000 */ nop
/* 023FA8 800233A8 E5EA000C */ swc1 $f10, 0xc($t7)
/* 023FAC 800233AC E620002C */ swc1 $f0, 0x2c($s1)
/* 023FB0 800233B0 E6200030 */ swc1 $f0, 0x30($s1)
/* 023FB4 800233B4 E600001C */ swc1 $f0, 0x1c($s0)
/* 023FB8 800233B8 E6000024 */ swc1 $f0, 0x24($s0)
/* 023FBC 800233BC 823801D7 */ lb $t8, 0x1d7($s1)
/* 023FC0 800233C0 86240000 */ lh $a0, ($s1)
/* 023FC4 800233C4 A23801D6 */ sb $t8, 0x1d6($s1)
/* 023FC8 800233C8 1081000F */ beq $a0, $at, .L80023408
/* 023FCC 800233CC 8FBF001C */ lw $ra, 0x1c($sp)
/* 023FD0 800233D0 0C01997A */ jal set_active_camera
/* 023FD4 800233D4 AFA8005C */ sw $t0, 0x5c($sp)
/* 023FD8 800233D8 0C01A73F */ jal get_active_camera_segment_no_cutscenes
/* 023FDC 800233DC 00000000 */ nop
/* 023FE0 800233E0 C612000C */ lwc1 $f18, 0xc($s0)
/* 023FE4 800233E4 8FA8005C */ lw $t0, 0x5c($sp)
/* 023FE8 800233E8 E452000C */ swc1 $f18, 0xc($v0)
/* 023FEC 800233EC C6040010 */ lwc1 $f4, 0x10($s0)
/* 023FF0 800233F0 00000000 */ nop
/* 023FF4 800233F4 E4440010 */ swc1 $f4, 0x10($v0)
/* 023FF8 800233F8 C6060014 */ lwc1 $f6, 0x14($s0)
/* 023FFC 800233FC 00000000 */ nop
/* 024000 80023400 E4460014 */ swc1 $f6, 0x14($v0)
/* 024004 80023404 8FBF001C */ lw $ra, 0x1c($sp)
.L80023408:
/* 024008 80023408 8FB00014 */ lw $s0, 0x14($sp)
/* 02400C 8002340C 8FB10018 */ lw $s1, 0x18($sp)
/* 024010 80023410 27BD0060 */ addiu $sp, $sp, 0x60
/* 024014 80023414 03E00008 */ jr $ra
/* 024018 80023418 01001025 */ move $v0, $t0
File diff suppressed because it is too large Load Diff
+233 -233
View File
@@ -1,233 +1,233 @@
glabel func_800249F0
/* 0255F0 800249F0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 0255F4 800249F4 AFBF0024 */ sw $ra, 0x24($sp)
/* 0255F8 800249F8 AFB2001C */ sw $s2, 0x1c($sp)
/* 0255FC 800249FC AFB10018 */ sw $s1, 0x18($sp)
/* 025600 80024A00 00808825 */ move $s1, $a0
/* 025604 80024A04 00A09025 */ move $s2, $a1
/* 025608 80024A08 AFB30020 */ sw $s3, 0x20($sp)
/* 02560C 80024A0C AFB00014 */ sw $s0, 0x14($sp)
/* 025610 80024A10 AFA60030 */ sw $a2, 0x30($sp)
/* 025614 80024A14 0C01AF6C */ jal get_current_level_header
/* 025618 80024A18 AFA70034 */ sw $a3, 0x34($sp)
/* 02561C 80024A1C 3C048012 */ lui $a0, %hi(D_8011B0F8) # $a0, 0x8012
/* 025620 80024A20 3C05800E */ lui $a1, %hi(gCurrentLevelHeader2) # $a1, 0x800e
/* 025624 80024A24 24A5C91C */ addiu $a1, %lo(gCurrentLevelHeader2) # addiu $a1, $a1, -0x36e4
/* 025628 80024A28 2484B0F8 */ addiu $a0, %lo(D_8011B0F8) # addiu $a0, $a0, -0x4f08
/* 02562C 80024A2C ACA20000 */ sw $v0, ($a1)
/* 025630 80024A30 AC800000 */ sw $zero, ($a0)
/* 025634 80024A34 3C018012 */ lui $at, %hi(D_8011B100) # $at, 0x8012
/* 025638 80024A38 AC20B100 */ sw $zero, %lo(D_8011B100)($at)
/* 02563C 80024A3C 3C018012 */ lui $at, %hi(D_8011B104) # $at, 0x8012
/* 025640 80024A40 AC20B104 */ sw $zero, %lo(D_8011B104)($at)
/* 025644 80024A44 3C018012 */ lui $at, %hi(D_8011B108) # $at, 0x8012
/* 025648 80024A48 AC20B108 */ sw $zero, %lo(D_8011B108)($at)
/* 02564C 80024A4C 3C018012 */ lui $at, %hi(D_8011B10C) # $at, 0x8012
/* 025650 80024A50 AC20B10C */ sw $zero, %lo(D_8011B10C)($at)
/* 025654 80024A54 8CAE0000 */ lw $t6, ($a1)
/* 025658 80024A58 24010006 */ li $at, 6
/* 02565C 80024A5C 81C3004C */ lb $v1, 0x4c($t6)
/* 025660 80024A60 00000000 */ nop
/* 025664 80024A64 10610002 */ beq $v1, $at, .L80024A70
/* 025668 80024A68 24010007 */ li $at, 7
/* 02566C 80024A6C 14610002 */ bne $v1, $at, .L80024A78
.L80024A70:
/* 025670 80024A70 240F0001 */ li $t7, 1
/* 025674 80024A74 AC8F0000 */ sw $t7, ($a0)
.L80024A78:
/* 025678 80024A78 0C00B031 */ jal func_8002C0C4
/* 02567C 80024A7C 02202025 */ move $a0, $s1
/* 025680 80024A80 8FB80030 */ lw $t8, 0x30($sp)
/* 025684 80024A84 3C108012 */ lui $s0, %hi(D_8011D384) # $s0, 0x8012
/* 025688 80024A88 2610D384 */ addiu $s0, %lo(D_8011D384) # addiu $s0, $s0, -0x2c7c
/* 02568C 80024A8C 2B010002 */ slti $at, $t8, 2
/* 025690 80024A90 1020001E */ beqz $at, .L80024B0C
/* 025694 80024A94 AE000000 */ sw $zero, ($s0)
/* 025698 80024A98 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e
/* 02569C 80024A9C 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0)
/* 0256A0 80024AA0 00003025 */ move $a2, $zero
/* 0256A4 80024AA4 8444001A */ lh $a0, 0x1a($v0)
/* 0256A8 80024AA8 00001825 */ move $v1, $zero
/* 0256AC 80024AAC 18800017 */ blez $a0, .L80024B0C
/* 0256B0 80024AB0 24050001 */ li $a1, 1
.L80024AB4:
/* 0256B4 80024AB4 8C590004 */ lw $t9, 4($v0)
/* 0256B8 80024AB8 24C60001 */ addiu $a2, $a2, 1
/* 0256BC 80024ABC 03234021 */ addu $t0, $t9, $v1
/* 0256C0 80024AC0 8109002B */ lb $t1, 0x2b($t0)
/* 0256C4 80024AC4 00000000 */ nop
/* 0256C8 80024AC8 1120000E */ beqz $t1, .L80024B04
/* 0256CC 80024ACC 00C4082A */ slt $at, $a2, $a0
/* 0256D0 80024AD0 8E0A0000 */ lw $t2, ($s0)
/* 0256D4 80024AD4 00000000 */ nop
/* 0256D8 80024AD8 254B0001 */ addiu $t3, $t2, 1
/* 0256DC 80024ADC AE0B0000 */ sw $t3, ($s0)
/* 0256E0 80024AE0 8C4C0004 */ lw $t4, 4($v0)
/* 0256E4 80024AE4 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e
/* 0256E8 80024AE8 01836821 */ addu $t5, $t4, $v1
/* 0256EC 80024AEC A1A5002B */ sb $a1, 0x2b($t5)
/* 0256F0 80024AF0 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0)
/* 0256F4 80024AF4 00000000 */ nop
/* 0256F8 80024AF8 8444001A */ lh $a0, 0x1a($v0)
/* 0256FC 80024AFC 00000000 */ nop
/* 025700 80024B00 00C4082A */ slt $at, $a2, $a0
.L80024B04:
/* 025704 80024B04 1420FFEB */ bnez $at, .L80024AB4
/* 025708 80024B08 24630044 */ addiu $v1, $v1, 0x44
.L80024B0C:
/* 02570C 80024B0C 0C027B20 */ jal is_in_two_player_adventure
/* 025710 80024B10 00000000 */ nop
/* 025714 80024B14 1040000B */ beqz $v0, .L80024B44
/* 025718 80024B18 3C0E800E */ lui $t6, %hi(gCurrentLevelHeader2) # $t6, 0x800e
/* 02571C 80024B1C 8DCEC91C */ lw $t6, %lo(gCurrentLevelHeader2)($t6)
/* 025720 80024B20 00000000 */ nop
/* 025724 80024B24 81C3004C */ lb $v1, 0x4c($t6)
/* 025728 80024B28 00000000 */ nop
/* 02572C 80024B2C 10600003 */ beqz $v1, .L80024B3C
/* 025730 80024B30 306F0040 */ andi $t7, $v1, 0x40
/* 025734 80024B34 11E00004 */ beqz $t7, .L80024B48
/* 025738 80024B38 8FA60030 */ lw $a2, 0x30($sp)
.L80024B3C:
/* 02573C 80024B3C 10000004 */ b .L80024B50
/* 025740 80024B40 24060002 */ li $a2, 2
.L80024B44:
/* 025744 80024B44 8FA60030 */ lw $a2, 0x30($sp)
.L80024B48:
/* 025748 80024B48 00000000 */ nop
/* 02574C 80024B4C 24C60001 */ addiu $a2, $a2, 1
.L80024B50:
/* 025750 80024B50 8E180000 */ lw $t8, ($s0)
/* 025754 80024B54 00000000 */ nop
/* 025758 80024B58 13000006 */ beqz $t8, .L80024B74
/* 02575C 80024B5C 3C04800E */ lui $a0, %hi(gCurrentLevelModel) # $a0, 0x800e
/* 025760 80024B60 3C05800E */ lui $a1, %hi(gCurrentLevelHeader2) # $a1, 0x800e
/* 025764 80024B64 8CA5C91C */ lw $a1, %lo(gCurrentLevelHeader2)($a1)
/* 025768 80024B68 8C84C918 */ lw $a0, %lo(gCurrentLevelModel)($a0)
/* 02576C 80024B6C 0C02E0AD */ jal func_800B82B4
/* 025770 80024B70 00000000 */ nop
.L80024B74:
/* 025774 80024B74 8FA40030 */ lw $a0, 0x30($sp)
/* 025778 80024B78 0C01994B */ jal set_active_viewports_and_object_stack_cap
/* 02577C 80024B7C 00000000 */ nop
/* 025780 80024B80 0C009FF1 */ jal func_80027FC4
/* 025784 80024B84 02402025 */ move $a0, $s2
/* 025788 80024B88 3C018012 */ lui $at, %hi(D_8011B110) # $at, 0x8012
/* 02578C 80024B8C AC20B110 */ sw $zero, %lo(D_8011B110)($at)
/* 025790 80024B90 3C018012 */ lui $at, %hi(D_8011B114) # $at, 0x8012
/* 025794 80024B94 3C190001 */ lui $t9, 1
/* 025798 80024B98 0C0044E4 */ jal func_80011390
/* 02579C 80024B9C AC39B114 */ sw $t9, %lo(D_8011B114)($at)
/* 0257A0 80024BA0 8FA40040 */ lw $a0, 0x40($sp)
/* 0257A4 80024BA4 0C00323E */ jal func_8000C8F8
/* 0257A8 80024BA8 00002825 */ move $a1, $zero
/* 0257AC 80024BAC 8FA4003C */ lw $a0, 0x3c($sp)
/* 0257B0 80024BB0 0C00323E */ jal func_8000C8F8
/* 0257B4 80024BB4 24050001 */ li $a1, 1
/* 0257B8 80024BB8 8FB00038 */ lw $s0, 0x38($sp)
/* 0257BC 80024BBC 8FA80030 */ lw $t0, 0x30($sp)
/* 0257C0 80024BC0 3C138012 */ lui $s3, %hi(D_8011D37C) # $s3, 0x8012
/* 0257C4 80024BC4 2673D37C */ addiu $s3, %lo(D_8011D37C) # addiu $s3, $s3, -0x2c84
/* 0257C8 80024BC8 8FA40034 */ lw $a0, 0x34($sp)
/* 0257CC 80024BCC 8FA60030 */ lw $a2, 0x30($sp)
/* 0257D0 80024BD0 02002825 */ move $a1, $s0
/* 0257D4 80024BD4 0C00331F */ jal func_8000CC7C
/* 0257D8 80024BD8 AE680000 */ sw $t0, ($s3)
/* 0257DC 80024BDC 24040048 */ li $a0, 72
/* 0257E0 80024BE0 0C002C08 */ jal func_8000B020
/* 0257E4 80024BE4 24050040 */ li $a1, 64
/* 0257E8 80024BE8 16200008 */ bnez $s1, .L80024C0C
/* 0257EC 80024BEC 3C04800E */ lui $a0, %hi(D_800DC874) # $a0, 0x800e
/* 0257F0 80024BF0 16000006 */ bnez $s0, .L80024C0C
/* 0257F4 80024BF4 00000000 */ nop
/* 0257F8 80024BF8 3C04800E */ lui $a0, %hi(D_800DC87C) # $a0, 0x800e
/* 0257FC 80024BFC 0C030076 */ jal func_800C01D8
/* 025800 80024C00 2484C87C */ addiu $a0, %lo(D_800DC87C) # addiu $a0, $a0, -0x3784
/* 025804 80024C04 10000004 */ b .L80024C18
/* 025808 80024C08 8E640000 */ lw $a0, ($s3)
.L80024C0C:
/* 02580C 80024C0C 0C030076 */ jal func_800C01D8
/* 025810 80024C10 2484C874 */ addiu $a0, %lo(D_800DC874) # addiu $a0, $a0, -0x378c
/* 025814 80024C14 8E640000 */ lw $a0, ($s3)
.L80024C18:
/* 025818 80024C18 0C01994B */ jal set_active_viewports_and_object_stack_cap
/* 02581C 80024C1C 00000000 */ nop
/* 025820 80024C20 8E690000 */ lw $t1, ($s3)
/* 025824 80024C24 3C018012 */ lui $at, %hi(D_8011B0FC) # $at, 0x8012
/* 025828 80024C28 3C13FFFF */ lui $s3, (0xFFFF00FF >> 16) # lui $s3, 0xffff
/* 02582C 80024C2C 3C118012 */ lui $s1, %hi(D_8011D350) # $s1, 0x8012
/* 025830 80024C30 3C128012 */ lui $s2, %hi(D_8011D320) # $s2, 0x8012
/* 025834 80024C34 3C108012 */ lui $s0, %hi(D_8011D338) # $s0, 0x8012
/* 025838 80024C38 AC20B0FC */ sw $zero, %lo(D_8011B0FC)($at)
/* 02583C 80024C3C 2610D338 */ addiu $s0, %lo(D_8011D338) # addiu $s0, $s0, -0x2cc8
/* 025840 80024C40 2652D320 */ addiu $s2, %lo(D_8011D320) # addiu $s2, $s2, -0x2ce0
/* 025844 80024C44 2631D350 */ addiu $s1, %lo(D_8011D350) # addiu $s1, $s1, -0x2cb0
/* 025848 80024C48 367300FF */ ori $s3, (0xFFFF00FF & 0xFFFF) # ori $s3, $s3, 0xff
/* 02584C 80024C4C AFA90030 */ sw $t1, 0x30($sp)
.L80024C50:
/* 025850 80024C50 24040C80 */ li $a0, 3200
/* 025854 80024C54 0C01C327 */ jal allocate_from_main_pool_safe
/* 025858 80024C58 02602825 */ move $a1, $s3
/* 02585C 80024C5C AE220000 */ sw $v0, ($s1)
/* 025860 80024C60 24043200 */ li $a0, 12800
/* 025864 80024C64 0C01C327 */ jal allocate_from_main_pool_safe
/* 025868 80024C68 02602825 */ move $a1, $s3
/* 02586C 80024C6C AE420000 */ sw $v0, ($s2)
/* 025870 80024C70 24044E20 */ li $a0, 20000
/* 025874 80024C74 0C01C327 */ jal allocate_from_main_pool_safe
/* 025878 80024C78 02602825 */ move $a1, $s3
/* 02587C 80024C7C 3C0A8012 */ lui $t2, %hi(D_8011D348) # $t2, 0x8012
/* 025880 80024C80 254AD348 */ addiu $t2, %lo(D_8011D348) # addiu $t2, $t2, -0x2cb8
/* 025884 80024C84 26100004 */ addiu $s0, $s0, 4
/* 025888 80024C88 26310004 */ addiu $s1, $s1, 4
/* 02588C 80024C8C 26520004 */ addiu $s2, $s2, 4
/* 025890 80024C90 160AFFEF */ bne $s0, $t2, .L80024C50
/* 025894 80024C94 AE02FFFC */ sw $v0, -4($s0)
/* 025898 80024C98 3C108012 */ lui $s0, %hi(D_8011B0C8) # $s0, 0x8012
/* 02589C 80024C9C 2610B0C8 */ addiu $s0, %lo(D_8011B0C8) # addiu $s0, $s0, -0x4f38
/* 0258A0 80024CA0 AE000000 */ sw $zero, ($s0)
/* 0258A4 80024CA4 24040001 */ li $a0, 1
/* 0258A8 80024CA8 24050001 */ li $a1, 1
/* 0258AC 80024CAC 0C00B637 */ jal func_8002D8DC
/* 0258B0 80024CB0 00003025 */ move $a2, $zero
/* 0258B4 80024CB4 24040002 */ li $a0, 2
/* 0258B8 80024CB8 24050002 */ li $a1, 2
/* 0258BC 80024CBC 0C00B637 */ jal func_8002D8DC
/* 0258C0 80024CC0 00003025 */ move $a2, $zero
/* 0258C4 80024CC4 240B0001 */ li $t3, 1
/* 0258C8 80024CC8 AE0B0000 */ sw $t3, ($s0)
/* 0258CC 80024CCC 24040001 */ li $a0, 1
/* 0258D0 80024CD0 24050001 */ li $a1, 1
/* 0258D4 80024CD4 0C00B637 */ jal func_8002D8DC
/* 0258D8 80024CD8 00003025 */ move $a2, $zero
/* 0258DC 80024CDC 24040002 */ li $a0, 2
/* 0258E0 80024CE0 24050002 */ li $a1, 2
/* 0258E4 80024CE4 0C00B637 */ jal func_8002D8DC
/* 0258E8 80024CE8 00003025 */ move $a2, $zero
/* 0258EC 80024CEC AE000000 */ sw $zero, ($s0)
/* 0258F0 80024CF0 3C02800E */ lui $v0, %hi(gCurrentLevelHeader2) # $v0, 0x800e
/* 0258F4 80024CF4 8C42C91C */ lw $v0, %lo(gCurrentLevelHeader2)($v0)
/* 0258F8 80024CF8 3C018012 */ lui $at, %hi(D_8011B0E1) # $at, 0x8012
/* 0258FC 80024CFC 904C00B7 */ lbu $t4, 0xb7($v0)
/* 025900 80024D00 00000000 */ nop
/* 025904 80024D04 1180000D */ beqz $t4, .L80024D3C
/* 025908 80024D08 8FBF0024 */ lw $ra, 0x24($sp)
/* 02590C 80024D0C 904D00B4 */ lbu $t5, 0xb4($v0)
/* 025910 80024D10 8FA40030 */ lw $a0, 0x30($sp)
/* 025914 80024D14 A02DB0E1 */ sb $t5, %lo(D_8011B0E1)($at)
/* 025918 80024D18 904E00B5 */ lbu $t6, 0xb5($v0)
/* 02591C 80024D1C 3C018012 */ lui $at, %hi(D_8011B0E2) # $at, 0x8012
/* 025920 80024D20 A02EB0E2 */ sb $t6, %lo(D_8011B0E2)($at)
/* 025924 80024D24 904F00B6 */ lbu $t7, 0xb6($v0)
/* 025928 80024D28 3C018012 */ lui $at, %hi(D_8011B0E3) # $at, 0x8012
/* 02592C 80024D2C 24840001 */ addiu $a0, $a0, 1
/* 025930 80024D30 0C009544 */ jal func_80025510
/* 025934 80024D34 A02FB0E3 */ sb $t7, %lo(D_8011B0E3)($at)
/* 025938 80024D38 8FBF0024 */ lw $ra, 0x24($sp)
.L80024D3C:
/* 02593C 80024D3C 8FB00014 */ lw $s0, 0x14($sp)
/* 025940 80024D40 8FB10018 */ lw $s1, 0x18($sp)
/* 025944 80024D44 8FB2001C */ lw $s2, 0x1c($sp)
/* 025948 80024D48 8FB30020 */ lw $s3, 0x20($sp)
/* 02594C 80024D4C 03E00008 */ jr $ra
/* 025950 80024D50 27BD0028 */ addiu $sp, $sp, 0x28
glabel func_800249F0
/* 0255F0 800249F0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 0255F4 800249F4 AFBF0024 */ sw $ra, 0x24($sp)
/* 0255F8 800249F8 AFB2001C */ sw $s2, 0x1c($sp)
/* 0255FC 800249FC AFB10018 */ sw $s1, 0x18($sp)
/* 025600 80024A00 00808825 */ move $s1, $a0
/* 025604 80024A04 00A09025 */ move $s2, $a1
/* 025608 80024A08 AFB30020 */ sw $s3, 0x20($sp)
/* 02560C 80024A0C AFB00014 */ sw $s0, 0x14($sp)
/* 025610 80024A10 AFA60030 */ sw $a2, 0x30($sp)
/* 025614 80024A14 0C01AF6C */ jal get_current_level_header
/* 025618 80024A18 AFA70034 */ sw $a3, 0x34($sp)
/* 02561C 80024A1C 3C048012 */ lui $a0, %hi(D_8011B0F8) # $a0, 0x8012
/* 025620 80024A20 3C05800E */ lui $a1, %hi(gCurrentLevelHeader2) # $a1, 0x800e
/* 025624 80024A24 24A5C91C */ addiu $a1, %lo(gCurrentLevelHeader2) # addiu $a1, $a1, -0x36e4
/* 025628 80024A28 2484B0F8 */ addiu $a0, %lo(D_8011B0F8) # addiu $a0, $a0, -0x4f08
/* 02562C 80024A2C ACA20000 */ sw $v0, ($a1)
/* 025630 80024A30 AC800000 */ sw $zero, ($a0)
/* 025634 80024A34 3C018012 */ lui $at, %hi(D_8011B100) # $at, 0x8012
/* 025638 80024A38 AC20B100 */ sw $zero, %lo(D_8011B100)($at)
/* 02563C 80024A3C 3C018012 */ lui $at, %hi(D_8011B104) # $at, 0x8012
/* 025640 80024A40 AC20B104 */ sw $zero, %lo(D_8011B104)($at)
/* 025644 80024A44 3C018012 */ lui $at, %hi(D_8011B108) # $at, 0x8012
/* 025648 80024A48 AC20B108 */ sw $zero, %lo(D_8011B108)($at)
/* 02564C 80024A4C 3C018012 */ lui $at, %hi(D_8011B10C) # $at, 0x8012
/* 025650 80024A50 AC20B10C */ sw $zero, %lo(D_8011B10C)($at)
/* 025654 80024A54 8CAE0000 */ lw $t6, ($a1)
/* 025658 80024A58 24010006 */ li $at, 6
/* 02565C 80024A5C 81C3004C */ lb $v1, 0x4c($t6)
/* 025660 80024A60 00000000 */ nop
/* 025664 80024A64 10610002 */ beq $v1, $at, .L80024A70
/* 025668 80024A68 24010007 */ li $at, 7
/* 02566C 80024A6C 14610002 */ bne $v1, $at, .L80024A78
.L80024A70:
/* 025670 80024A70 240F0001 */ li $t7, 1
/* 025674 80024A74 AC8F0000 */ sw $t7, ($a0)
.L80024A78:
/* 025678 80024A78 0C00B031 */ jal func_8002C0C4
/* 02567C 80024A7C 02202025 */ move $a0, $s1
/* 025680 80024A80 8FB80030 */ lw $t8, 0x30($sp)
/* 025684 80024A84 3C108012 */ lui $s0, %hi(D_8011D384) # $s0, 0x8012
/* 025688 80024A88 2610D384 */ addiu $s0, %lo(D_8011D384) # addiu $s0, $s0, -0x2c7c
/* 02568C 80024A8C 2B010002 */ slti $at, $t8, 2
/* 025690 80024A90 1020001E */ beqz $at, .L80024B0C
/* 025694 80024A94 AE000000 */ sw $zero, ($s0)
/* 025698 80024A98 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e
/* 02569C 80024A9C 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0)
/* 0256A0 80024AA0 00003025 */ move $a2, $zero
/* 0256A4 80024AA4 8444001A */ lh $a0, 0x1a($v0)
/* 0256A8 80024AA8 00001825 */ move $v1, $zero
/* 0256AC 80024AAC 18800017 */ blez $a0, .L80024B0C
/* 0256B0 80024AB0 24050001 */ li $a1, 1
.L80024AB4:
/* 0256B4 80024AB4 8C590004 */ lw $t9, 4($v0)
/* 0256B8 80024AB8 24C60001 */ addiu $a2, $a2, 1
/* 0256BC 80024ABC 03234021 */ addu $t0, $t9, $v1
/* 0256C0 80024AC0 8109002B */ lb $t1, 0x2b($t0)
/* 0256C4 80024AC4 00000000 */ nop
/* 0256C8 80024AC8 1120000E */ beqz $t1, .L80024B04
/* 0256CC 80024ACC 00C4082A */ slt $at, $a2, $a0
/* 0256D0 80024AD0 8E0A0000 */ lw $t2, ($s0)
/* 0256D4 80024AD4 00000000 */ nop
/* 0256D8 80024AD8 254B0001 */ addiu $t3, $t2, 1
/* 0256DC 80024ADC AE0B0000 */ sw $t3, ($s0)
/* 0256E0 80024AE0 8C4C0004 */ lw $t4, 4($v0)
/* 0256E4 80024AE4 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e
/* 0256E8 80024AE8 01836821 */ addu $t5, $t4, $v1
/* 0256EC 80024AEC A1A5002B */ sb $a1, 0x2b($t5)
/* 0256F0 80024AF0 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0)
/* 0256F4 80024AF4 00000000 */ nop
/* 0256F8 80024AF8 8444001A */ lh $a0, 0x1a($v0)
/* 0256FC 80024AFC 00000000 */ nop
/* 025700 80024B00 00C4082A */ slt $at, $a2, $a0
.L80024B04:
/* 025704 80024B04 1420FFEB */ bnez $at, .L80024AB4
/* 025708 80024B08 24630044 */ addiu $v1, $v1, 0x44
.L80024B0C:
/* 02570C 80024B0C 0C027B20 */ jal is_in_two_player_adventure
/* 025710 80024B10 00000000 */ nop
/* 025714 80024B14 1040000B */ beqz $v0, .L80024B44
/* 025718 80024B18 3C0E800E */ lui $t6, %hi(gCurrentLevelHeader2) # $t6, 0x800e
/* 02571C 80024B1C 8DCEC91C */ lw $t6, %lo(gCurrentLevelHeader2)($t6)
/* 025720 80024B20 00000000 */ nop
/* 025724 80024B24 81C3004C */ lb $v1, 0x4c($t6)
/* 025728 80024B28 00000000 */ nop
/* 02572C 80024B2C 10600003 */ beqz $v1, .L80024B3C
/* 025730 80024B30 306F0040 */ andi $t7, $v1, 0x40
/* 025734 80024B34 11E00004 */ beqz $t7, .L80024B48
/* 025738 80024B38 8FA60030 */ lw $a2, 0x30($sp)
.L80024B3C:
/* 02573C 80024B3C 10000004 */ b .L80024B50
/* 025740 80024B40 24060002 */ li $a2, 2
.L80024B44:
/* 025744 80024B44 8FA60030 */ lw $a2, 0x30($sp)
.L80024B48:
/* 025748 80024B48 00000000 */ nop
/* 02574C 80024B4C 24C60001 */ addiu $a2, $a2, 1
.L80024B50:
/* 025750 80024B50 8E180000 */ lw $t8, ($s0)
/* 025754 80024B54 00000000 */ nop
/* 025758 80024B58 13000006 */ beqz $t8, .L80024B74
/* 02575C 80024B5C 3C04800E */ lui $a0, %hi(gCurrentLevelModel) # $a0, 0x800e
/* 025760 80024B60 3C05800E */ lui $a1, %hi(gCurrentLevelHeader2) # $a1, 0x800e
/* 025764 80024B64 8CA5C91C */ lw $a1, %lo(gCurrentLevelHeader2)($a1)
/* 025768 80024B68 8C84C918 */ lw $a0, %lo(gCurrentLevelModel)($a0)
/* 02576C 80024B6C 0C02E0AD */ jal func_800B82B4
/* 025770 80024B70 00000000 */ nop
.L80024B74:
/* 025774 80024B74 8FA40030 */ lw $a0, 0x30($sp)
/* 025778 80024B78 0C01994B */ jal set_active_viewports_and_max
/* 02577C 80024B7C 00000000 */ nop
/* 025780 80024B80 0C009FF1 */ jal func_80027FC4
/* 025784 80024B84 02402025 */ move $a0, $s2
/* 025788 80024B88 3C018012 */ lui $at, %hi(D_8011B110) # $at, 0x8012
/* 02578C 80024B8C AC20B110 */ sw $zero, %lo(D_8011B110)($at)
/* 025790 80024B90 3C018012 */ lui $at, %hi(D_8011B114) # $at, 0x8012
/* 025794 80024B94 3C190001 */ lui $t9, 1
/* 025798 80024B98 0C0044E4 */ jal func_80011390
/* 02579C 80024B9C AC39B114 */ sw $t9, %lo(D_8011B114)($at)
/* 0257A0 80024BA0 8FA40040 */ lw $a0, 0x40($sp)
/* 0257A4 80024BA4 0C00323E */ jal func_8000C8F8
/* 0257A8 80024BA8 00002825 */ move $a1, $zero
/* 0257AC 80024BAC 8FA4003C */ lw $a0, 0x3c($sp)
/* 0257B0 80024BB0 0C00323E */ jal func_8000C8F8
/* 0257B4 80024BB4 24050001 */ li $a1, 1
/* 0257B8 80024BB8 8FB00038 */ lw $s0, 0x38($sp)
/* 0257BC 80024BBC 8FA80030 */ lw $t0, 0x30($sp)
/* 0257C0 80024BC0 3C138012 */ lui $s3, %hi(D_8011D37C) # $s3, 0x8012
/* 0257C4 80024BC4 2673D37C */ addiu $s3, %lo(D_8011D37C) # addiu $s3, $s3, -0x2c84
/* 0257C8 80024BC8 8FA40034 */ lw $a0, 0x34($sp)
/* 0257CC 80024BCC 8FA60030 */ lw $a2, 0x30($sp)
/* 0257D0 80024BD0 02002825 */ move $a1, $s0
/* 0257D4 80024BD4 0C00331F */ jal func_8000CC7C
/* 0257D8 80024BD8 AE680000 */ sw $t0, ($s3)
/* 0257DC 80024BDC 24040048 */ li $a0, 72
/* 0257E0 80024BE0 0C002C08 */ jal func_8000B020
/* 0257E4 80024BE4 24050040 */ li $a1, 64
/* 0257E8 80024BE8 16200008 */ bnez $s1, .L80024C0C
/* 0257EC 80024BEC 3C04800E */ lui $a0, %hi(D_800DC874) # $a0, 0x800e
/* 0257F0 80024BF0 16000006 */ bnez $s0, .L80024C0C
/* 0257F4 80024BF4 00000000 */ nop
/* 0257F8 80024BF8 3C04800E */ lui $a0, %hi(D_800DC87C) # $a0, 0x800e
/* 0257FC 80024BFC 0C030076 */ jal func_800C01D8
/* 025800 80024C00 2484C87C */ addiu $a0, %lo(D_800DC87C) # addiu $a0, $a0, -0x3784
/* 025804 80024C04 10000004 */ b .L80024C18
/* 025808 80024C08 8E640000 */ lw $a0, ($s3)
.L80024C0C:
/* 02580C 80024C0C 0C030076 */ jal func_800C01D8
/* 025810 80024C10 2484C874 */ addiu $a0, %lo(D_800DC874) # addiu $a0, $a0, -0x378c
/* 025814 80024C14 8E640000 */ lw $a0, ($s3)
.L80024C18:
/* 025818 80024C18 0C01994B */ jal set_active_viewports_and_max
/* 02581C 80024C1C 00000000 */ nop
/* 025820 80024C20 8E690000 */ lw $t1, ($s3)
/* 025824 80024C24 3C018012 */ lui $at, %hi(D_8011B0FC) # $at, 0x8012
/* 025828 80024C28 3C13FFFF */ lui $s3, (0xFFFF00FF >> 16) # lui $s3, 0xffff
/* 02582C 80024C2C 3C118012 */ lui $s1, %hi(D_8011D350) # $s1, 0x8012
/* 025830 80024C30 3C128012 */ lui $s2, %hi(D_8011D320) # $s2, 0x8012
/* 025834 80024C34 3C108012 */ lui $s0, %hi(D_8011D338) # $s0, 0x8012
/* 025838 80024C38 AC20B0FC */ sw $zero, %lo(D_8011B0FC)($at)
/* 02583C 80024C3C 2610D338 */ addiu $s0, %lo(D_8011D338) # addiu $s0, $s0, -0x2cc8
/* 025840 80024C40 2652D320 */ addiu $s2, %lo(D_8011D320) # addiu $s2, $s2, -0x2ce0
/* 025844 80024C44 2631D350 */ addiu $s1, %lo(D_8011D350) # addiu $s1, $s1, -0x2cb0
/* 025848 80024C48 367300FF */ ori $s3, (0xFFFF00FF & 0xFFFF) # ori $s3, $s3, 0xff
/* 02584C 80024C4C AFA90030 */ sw $t1, 0x30($sp)
.L80024C50:
/* 025850 80024C50 24040C80 */ li $a0, 3200
/* 025854 80024C54 0C01C327 */ jal allocate_from_main_pool_safe
/* 025858 80024C58 02602825 */ move $a1, $s3
/* 02585C 80024C5C AE220000 */ sw $v0, ($s1)
/* 025860 80024C60 24043200 */ li $a0, 12800
/* 025864 80024C64 0C01C327 */ jal allocate_from_main_pool_safe
/* 025868 80024C68 02602825 */ move $a1, $s3
/* 02586C 80024C6C AE420000 */ sw $v0, ($s2)
/* 025870 80024C70 24044E20 */ li $a0, 20000
/* 025874 80024C74 0C01C327 */ jal allocate_from_main_pool_safe
/* 025878 80024C78 02602825 */ move $a1, $s3
/* 02587C 80024C7C 3C0A8012 */ lui $t2, %hi(D_8011D348) # $t2, 0x8012
/* 025880 80024C80 254AD348 */ addiu $t2, %lo(D_8011D348) # addiu $t2, $t2, -0x2cb8
/* 025884 80024C84 26100004 */ addiu $s0, $s0, 4
/* 025888 80024C88 26310004 */ addiu $s1, $s1, 4
/* 02588C 80024C8C 26520004 */ addiu $s2, $s2, 4
/* 025890 80024C90 160AFFEF */ bne $s0, $t2, .L80024C50
/* 025894 80024C94 AE02FFFC */ sw $v0, -4($s0)
/* 025898 80024C98 3C108012 */ lui $s0, %hi(D_8011B0C8) # $s0, 0x8012
/* 02589C 80024C9C 2610B0C8 */ addiu $s0, %lo(D_8011B0C8) # addiu $s0, $s0, -0x4f38
/* 0258A0 80024CA0 AE000000 */ sw $zero, ($s0)
/* 0258A4 80024CA4 24040001 */ li $a0, 1
/* 0258A8 80024CA8 24050001 */ li $a1, 1
/* 0258AC 80024CAC 0C00B637 */ jal func_8002D8DC
/* 0258B0 80024CB0 00003025 */ move $a2, $zero
/* 0258B4 80024CB4 24040002 */ li $a0, 2
/* 0258B8 80024CB8 24050002 */ li $a1, 2
/* 0258BC 80024CBC 0C00B637 */ jal func_8002D8DC
/* 0258C0 80024CC0 00003025 */ move $a2, $zero
/* 0258C4 80024CC4 240B0001 */ li $t3, 1
/* 0258C8 80024CC8 AE0B0000 */ sw $t3, ($s0)
/* 0258CC 80024CCC 24040001 */ li $a0, 1
/* 0258D0 80024CD0 24050001 */ li $a1, 1
/* 0258D4 80024CD4 0C00B637 */ jal func_8002D8DC
/* 0258D8 80024CD8 00003025 */ move $a2, $zero
/* 0258DC 80024CDC 24040002 */ li $a0, 2
/* 0258E0 80024CE0 24050002 */ li $a1, 2
/* 0258E4 80024CE4 0C00B637 */ jal func_8002D8DC
/* 0258E8 80024CE8 00003025 */ move $a2, $zero
/* 0258EC 80024CEC AE000000 */ sw $zero, ($s0)
/* 0258F0 80024CF0 3C02800E */ lui $v0, %hi(gCurrentLevelHeader2) # $v0, 0x800e
/* 0258F4 80024CF4 8C42C91C */ lw $v0, %lo(gCurrentLevelHeader2)($v0)
/* 0258F8 80024CF8 3C018012 */ lui $at, %hi(D_8011B0E1) # $at, 0x8012
/* 0258FC 80024CFC 904C00B7 */ lbu $t4, 0xb7($v0)
/* 025900 80024D00 00000000 */ nop
/* 025904 80024D04 1180000D */ beqz $t4, .L80024D3C
/* 025908 80024D08 8FBF0024 */ lw $ra, 0x24($sp)
/* 02590C 80024D0C 904D00B4 */ lbu $t5, 0xb4($v0)
/* 025910 80024D10 8FA40030 */ lw $a0, 0x30($sp)
/* 025914 80024D14 A02DB0E1 */ sb $t5, %lo(D_8011B0E1)($at)
/* 025918 80024D18 904E00B5 */ lbu $t6, 0xb5($v0)
/* 02591C 80024D1C 3C018012 */ lui $at, %hi(D_8011B0E2) # $at, 0x8012
/* 025920 80024D20 A02EB0E2 */ sb $t6, %lo(D_8011B0E2)($at)
/* 025924 80024D24 904F00B6 */ lbu $t7, 0xb6($v0)
/* 025928 80024D28 3C018012 */ lui $at, %hi(D_8011B0E3) # $at, 0x8012
/* 02592C 80024D2C 24840001 */ addiu $a0, $a0, 1
/* 025930 80024D30 0C009544 */ jal func_80025510
/* 025934 80024D34 A02FB0E3 */ sb $t7, %lo(D_8011B0E3)($at)
/* 025938 80024D38 8FBF0024 */ lw $ra, 0x24($sp)
.L80024D3C:
/* 02593C 80024D3C 8FB00014 */ lw $s0, 0x14($sp)
/* 025940 80024D40 8FB10018 */ lw $s1, 0x18($sp)
/* 025944 80024D44 8FB2001C */ lw $s2, 0x1c($sp)
/* 025948 80024D48 8FB30020 */ lw $s3, 0x20($sp)
/* 02594C 80024D4C 03E00008 */ jr $ra
/* 025950 80024D50 27BD0028 */ addiu $sp, $sp, 0x28
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,318 +0,0 @@
glabel render_level_segment
/* 02A258 80029658 27BDFF50 */ addiu $sp, $sp, -0xb0
/* 02A25C 8002965C 3C0E800E */ lui $t6, %hi(gCurrentLevelModel) # $t6, 0x800e
/* 02A260 80029660 8DCEC918 */ lw $t6, %lo(gCurrentLevelModel)($t6)
/* 02A264 80029664 AFBF003C */ sw $ra, 0x3c($sp)
/* 02A268 80029668 AFBE0038 */ sw $fp, 0x38($sp)
/* 02A26C 8002966C AFB70034 */ sw $s7, 0x34($sp)
/* 02A270 80029670 AFB60030 */ sw $s6, 0x30($sp)
/* 02A274 80029674 AFB5002C */ sw $s5, 0x2c($sp)
/* 02A278 80029678 AFB40028 */ sw $s4, 0x28($sp)
/* 02A27C 8002967C AFB30024 */ sw $s3, 0x24($sp)
/* 02A280 80029680 AFB20020 */ sw $s2, 0x20($sp)
/* 02A284 80029684 AFB1001C */ sw $s1, 0x1c($sp)
/* 02A288 80029688 AFB00018 */ sw $s0, 0x18($sp)
/* 02A28C 8002968C AFA500B4 */ sw $a1, 0xb4($sp)
/* 02A290 80029690 0004C100 */ sll $t8, $a0, 4
/* 02A294 80029694 8DCF0004 */ lw $t7, 4($t6)
/* 02A298 80029698 0304C021 */ addu $t8, $t8, $a0
/* 02A29C 8002969C 0018C080 */ sll $t8, $t8, 2
/* 02A2A0 800296A0 01F8C821 */ addu $t9, $t7, $t8
/* 02A2A4 800296A4 10A0000A */ beqz $a1, .L800296D0
/* 02A2A8 800296A8 AFB900AC */ sw $t9, 0xac($sp)
/* 02A2AC 800296AC 3C0C8012 */ lui $t4, %hi(D_8011D384) # $t4, 0x8012
/* 02A2B0 800296B0 8D8CD384 */ lw $t4, %lo(D_8011D384)($t4)
/* 02A2B4 800296B4 00000000 */ nop
/* 02A2B8 800296B8 11800005 */ beqz $t4, .L800296D0
/* 02A2BC 800296BC 00000000 */ nop
/* 02A2C0 800296C0 0C02E48A */ jal func_800B9228
/* 02A2C4 800296C4 03202025 */ move $a0, $t9
/* 02A2C8 800296C8 10000002 */ b .L800296D4
/* 02A2CC 800296CC AFA20078 */ sw $v0, 0x78($sp)
.L800296D0:
/* 02A2D0 800296D0 AFA00078 */ sw $zero, 0x78($sp)
.L800296D4:
/* 02A2D4 800296D4 8FAD00B4 */ lw $t5, 0xb4($sp)
/* 02A2D8 800296D8 8FB800AC */ lw $t8, 0xac($sp)
/* 02A2DC 800296DC 11A00007 */ beqz $t5, .L800296FC
/* 02A2E0 800296E0 3C1E8000 */ lui $fp, 0x8000
/* 02A2E4 800296E4 8FAE00AC */ lw $t6, 0xac($sp)
/* 02A2E8 800296E8 00000000 */ nop
/* 02A2EC 800296EC 85CF0020 */ lh $t7, 0x20($t6)
/* 02A2F0 800296F0 91C20040 */ lbu $v0, 0x40($t6)
/* 02A2F4 800296F4 10000004 */ b .L80029708
/* 02A2F8 800296F8 AFAF0070 */ sw $t7, 0x70($sp)
.L800296FC:
/* 02A2FC 800296FC 930B0040 */ lbu $t3, 0x40($t8)
/* 02A300 80029700 00001025 */ move $v0, $zero
/* 02A304 80029704 AFAB0070 */ sw $t3, 0x70($sp)
.L80029708:
/* 02A308 80029708 8FAC0070 */ lw $t4, 0x70($sp)
/* 02A30C 8002970C 00404825 */ move $t1, $v0
/* 02A310 80029710 004C082A */ slt $at, $v0, $t4
/* 02A314 80029714 102000EC */ beqz $at, .L80029AC8
/* 02A318 80029718 00025080 */ sll $t2, $v0, 2
/* 02A31C 8002971C 01425023 */ subu $t2, $t2, $v0
/* 02A320 80029720 3C128012 */ lui $s2, %hi(gSceneCurrDisplayList) # $s2, 0x8012
/* 02A324 80029724 2652B0A0 */ addiu $s2, %lo(gSceneCurrDisplayList) # addiu $s2, $s2, -0x4f60
/* 02A328 80029728 000A5080 */ sll $t2, $t2, 2
.L8002972C:
/* 02A32C 8002972C 8FB900AC */ lw $t9, 0xac($sp)
/* 02A330 80029730 00003025 */ move $a2, $zero
/* 02A334 80029734 8F2D000C */ lw $t5, 0xc($t9)
/* 02A338 80029738 00000000 */ nop
/* 02A33C 8002973C 01AA2821 */ addu $a1, $t5, $t2
/* 02A340 80029740 8CA30008 */ lw $v1, 8($a1)
/* 02A344 80029744 00000000 */ nop
/* 02A348 80029748 30620100 */ andi $v0, $v1, 0x100
/* 02A34C 8002974C 144000DA */ bnez $v0, .L80029AB8
/* 02A350 80029750 00608825 */ move $s1, $v1
/* 02A354 80029754 90A20000 */ lbu $v0, ($a1)
/* 02A358 80029758 240100FF */ li $at, 255
/* 02A35C 8002975C 14410003 */ bne $v0, $at, .L8002976C
/* 02A360 80029760 00002025 */ move $a0, $zero
/* 02A364 80029764 1000000B */ b .L80029794
/* 02A368 80029768 0000A825 */ move $s5, $zero
.L8002976C:
/* 02A36C 8002976C 3C0E800E */ lui $t6, %hi(gCurrentLevelModel) # $t6, 0x800e
/* 02A370 80029770 8DCEC918 */ lw $t6, %lo(gCurrentLevelModel)($t6)
/* 02A374 80029774 0002C0C0 */ sll $t8, $v0, 3
/* 02A378 80029778 8DCF0000 */ lw $t7, ($t6)
/* 02A37C 8002977C 00000000 */ nop
/* 02A380 80029780 01F85821 */ addu $t3, $t7, $t8
/* 02A384 80029784 8D750000 */ lw $s5, ($t3)
/* 02A388 80029788 00000000 */ nop
/* 02A38C 8002978C 86A60006 */ lh $a2, 6($s5)
/* 02A390 80029790 00000000 */ nop
.L80029794:
/* 02A394 80029794 362C000A */ ori $t4, $s1, 0xa
/* 02A398 80029798 31990010 */ andi $t9, $t4, 0x10
/* 02A39C 8002979C 17200007 */ bnez $t9, .L800297BC
/* 02A3A0 800297A0 01808825 */ move $s1, $t4
/* 02A3A4 800297A4 318D0800 */ andi $t5, $t4, 0x800
/* 02A3A8 800297A8 15A00004 */ bnez $t5, .L800297BC
/* 02A3AC 800297AC 3C0E8012 */ lui $t6, %hi(D_8011B0FC) # $t6, 0x8012
/* 02A3B0 800297B0 8DCEB0FC */ lw $t6, %lo(D_8011B0FC)($t6)
/* 02A3B4 800297B4 00000000 */ nop
/* 02A3B8 800297B8 018E8825 */ or $s1, $t4, $t6
.L800297BC:
/* 02A3BC 800297BC 30CF0004 */ andi $t7, $a2, 4
/* 02A3C0 800297C0 8FAC00B4 */ lw $t4, 0xb4($sp)
/* 02A3C4 800297C4 8FAD0078 */ lw $t5, 0x78($sp)
/* 02A3C8 800297C8 15E00002 */ bnez $t7, .L800297D4
/* 02A3CC 800297CC 32382000 */ andi $t8, $s1, 0x2000
/* 02A3D0 800297D0 13000003 */ beqz $t8, .L800297E0
.L800297D4:
/* 02A3D4 800297D4 322B0800 */ andi $t3, $s1, 0x800
/* 02A3D8 800297D8 11600002 */ beqz $t3, .L800297E4
/* 02A3DC 800297DC 00000000 */ nop
.L800297E0:
/* 02A3E0 800297E0 24040001 */ li $a0, 1
.L800297E4:
/* 02A3E4 800297E4 11800004 */ beqz $t4, .L800297F8
/* 02A3E8 800297E8 322E2000 */ andi $t6, $s1, 0x2000
/* 02A3EC 800297EC 24840001 */ addiu $a0, $a0, 1
/* 02A3F0 800297F0 30990001 */ andi $t9, $a0, 1
/* 02A3F4 800297F4 03202025 */ move $a0, $t9
.L800297F8:
/* 02A3F8 800297F8 11A00004 */ beqz $t5, .L8002980C
/* 02A3FC 800297FC 00000000 */ nop
/* 02A400 80029800 11C00002 */ beqz $t6, .L8002980C
/* 02A404 80029804 00000000 */ nop
/* 02A408 80029808 00002025 */ move $a0, $zero
.L8002980C:
/* 02A40C 8002980C 108000AB */ beqz $a0, .L80029ABC
/* 02A410 80029810 8FAF0070 */ lw $t7, 0x70($sp)
/* 02A414 80029814 84A20002 */ lh $v0, 2($a1)
/* 02A418 80029818 8FAB00AC */ lw $t3, 0xac($sp)
/* 02A41C 8002981C 84A30004 */ lh $v1, 4($a1)
/* 02A420 80029820 84AF000E */ lh $t7, 0xe($a1)
/* 02A424 80029824 84B80010 */ lh $t8, 0x10($a1)
/* 02A428 80029828 90A70007 */ lbu $a3, 7($a1)
/* 02A42C 8002982C 0002C880 */ sll $t9, $v0, 2
/* 02A430 80029830 8D6C0000 */ lw $t4, ($t3)
/* 02A434 80029834 8D6D0004 */ lw $t5, 4($t3)
/* 02A438 80029838 00112703 */ sra $a0, $s1, 0x1c
/* 02A43C 8002983C 0322C821 */ addu $t9, $t9, $v0
/* 02A440 80029840 01E29823 */ subu $s3, $t7, $v0
/* 02A444 80029844 0303A023 */ subu $s4, $t8, $v1
/* 02A448 80029848 0019C840 */ sll $t9, $t9, 1
/* 02A44C 8002984C 30980007 */ andi $t8, $a0, 7
/* 02A450 80029850 00037100 */ sll $t6, $v1, 4
/* 02A454 80029854 00077B80 */ sll $t7, $a3, 0xe
/* 02A458 80029858 01E03825 */ move $a3, $t7
/* 02A45C 8002985C 0199B021 */ addu $s6, $t4, $t9
/* 02A460 80029860 13000018 */ beqz $t8, .L800298C4
/* 02A464 80029864 01AEB821 */ addu $s7, $t5, $t6
/* 02A468 80029868 8E500000 */ lw $s0, ($s2)
/* 02A46C 8002986C 3C19FB00 */ lui $t9, 0xfb00
/* 02A470 80029870 260C0008 */ addiu $t4, $s0, 8
/* 02A474 80029874 AE4C0000 */ sw $t4, ($s2)
/* 02A478 80029878 3C0B800E */ lui $t3, %hi(gCurrentLevelHeader2) # $t3, 0x800e
/* 02A47C 8002987C AE190000 */ sw $t9, ($s0)
/* 02A480 80029880 8D6BC91C */ lw $t3, %lo(gCurrentLevelHeader2)($t3)
/* 02A484 80029884 00186880 */ sll $t5, $t8, 2
/* 02A488 80029888 016D7021 */ addu $t6, $t3, $t5
/* 02A48C 8002988C 8DC20070 */ lw $v0, 0x70($t6)
/* 02A490 80029890 00000000 */ nop
/* 02A494 80029894 90590010 */ lbu $t9, 0x10($v0)
/* 02A498 80029898 90580013 */ lbu $t8, 0x13($v0)
/* 02A49C 8002989C 00195E00 */ sll $t3, $t9, 0x18
/* 02A4A0 800298A0 904F0011 */ lbu $t7, 0x11($v0)
/* 02A4A4 800298A4 030B6825 */ or $t5, $t8, $t3
/* 02A4A8 800298A8 904B0012 */ lbu $t3, 0x12($v0)
/* 02A4AC 800298AC 000F6400 */ sll $t4, $t7, 0x10
/* 02A4B0 800298B0 01ACC825 */ or $t9, $t5, $t4
/* 02A4B4 800298B4 000B7200 */ sll $t6, $t3, 8
/* 02A4B8 800298B8 032E7825 */ or $t7, $t9, $t6
/* 02A4BC 800298BC 10000008 */ b .L800298E0
/* 02A4C0 800298C0 AE0F0004 */ sw $t7, 4($s0)
.L800298C4:
/* 02A4C4 800298C4 8E500000 */ lw $s0, ($s2)
/* 02A4C8 800298C8 3C0CFB00 */ lui $t4, 0xfb00
/* 02A4CC 800298CC 260D0008 */ addiu $t5, $s0, 8
/* 02A4D0 800298D0 AE4D0000 */ sw $t5, ($s2)
/* 02A4D4 800298D4 2418FF00 */ li $t8, -256
/* 02A4D8 800298D8 AE180004 */ sw $t8, 4($s0)
/* 02A4DC 800298DC AE0C0000 */ sw $t4, ($s0)
.L800298E0:
/* 02A4E0 800298E0 00115B40 */ sll $t3, $s1, 0xd
/* 02A4E4 800298E4 05610046 */ bgez $t3, .L80029A00
/* 02A4E8 800298E8 02402025 */ move $a0, $s2
/* 02A4EC 800298EC 3C19800E */ lui $t9, %hi(gCurrentLevelHeader2) # $t9, 0x800e
/* 02A4F0 800298F0 8F39C91C */ lw $t9, %lo(gCurrentLevelHeader2)($t9)
/* 02A4F4 800298F4 8E500000 */ lw $s0, ($s2)
/* 02A4F8 800298F8 8F2E00AC */ lw $t6, 0xac($t9)
/* 02A4FC 800298FC 260F0008 */ addiu $t7, $s0, 8
/* 02A500 80029900 8DC80008 */ lw $t0, 8($t6)
/* 02A504 80029904 AE4F0000 */ sw $t7, ($s2)
/* 02A508 80029908 310200FF */ andi $v0, $t0, 0xff
/* 02A50C 8002990C 00026600 */ sll $t4, $v0, 0x18
/* 02A510 80029910 0002C400 */ sll $t8, $v0, 0x10
/* 02A514 80029914 01985825 */ or $t3, $t4, $t8
/* 02A518 80029918 0002CA00 */ sll $t9, $v0, 8
/* 02A51C 8002991C 01797025 */ or $t6, $t3, $t9
/* 02A520 80029920 01C27825 */ or $t7, $t6, $v0
/* 02A524 80029924 3C0DFA00 */ lui $t5, 0xfa00
/* 02A528 80029928 AE0D0000 */ sw $t5, ($s0)
/* 02A52C 8002992C AE0F0004 */ sw $t7, 4($s0)
/* 02A530 80029930 AFAA0040 */ sw $t2, 0x40($sp)
/* 02A534 80029934 AFA900A8 */ sw $t1, 0xa8($sp)
/* 02A538 80029938 02402025 */ move $a0, $s2
/* 02A53C 8002993C 02A02825 */ move $a1, $s5
/* 02A540 80029940 0C01EE97 */ jal func_8007BA5C
/* 02A544 80029944 02203025 */ move $a2, $s1
/* 02A548 80029948 02DE1821 */ addu $v1, $s6, $fp
/* 02A54C 8002994C 266CFFFF */ addiu $t4, $s3, -1
/* 02A550 80029950 000CC0C0 */ sll $t8, $t4, 3
/* 02A554 80029954 306B0006 */ andi $t3, $v1, 6
/* 02A558 80029958 030BC825 */ or $t9, $t8, $t3
/* 02A55C 8002995C 8E500000 */ lw $s0, ($s2)
/* 02A560 80029960 001360C0 */ sll $t4, $s3, 3
/* 02A564 80029964 0193C021 */ addu $t8, $t4, $s3
/* 02A568 80029968 332E00FF */ andi $t6, $t9, 0xff
/* 02A56C 8002996C 000E7C00 */ sll $t7, $t6, 0x10
/* 02A570 80029970 00185840 */ sll $t3, $t8, 1
/* 02A574 80029974 260D0008 */ addiu $t5, $s0, 8
/* 02A578 80029978 AE4D0000 */ sw $t5, ($s2)
/* 02A57C 8002997C 25790008 */ addiu $t9, $t3, 8
/* 02A580 80029980 3C010400 */ lui $at, 0x400
/* 02A584 80029984 8FA900A8 */ lw $t1, 0xa8($sp)
/* 02A588 80029988 8FAA0040 */ lw $t2, 0x40($sp)
/* 02A58C 8002998C 01E16825 */ or $t5, $t7, $at
/* 02A590 80029990 332EFFFF */ andi $t6, $t9, 0xffff
/* 02A594 80029994 01AE7825 */ or $t7, $t5, $t6
/* 02A598 80029998 AE0F0000 */ sw $t7, ($s0)
/* 02A59C 8002999C AE030004 */ sw $v1, 4($s0)
/* 02A5A0 800299A0 8E500000 */ lw $s0, ($s2)
/* 02A5A4 800299A4 2698FFFF */ addiu $t8, $s4, -1
/* 02A5A8 800299A8 00185900 */ sll $t3, $t8, 4
/* 02A5AC 800299AC 35790001 */ ori $t9, $t3, 1
/* 02A5B0 800299B0 260C0008 */ addiu $t4, $s0, 8
/* 02A5B4 800299B4 AE4C0000 */ sw $t4, ($s2)
/* 02A5B8 800299B8 332D00FF */ andi $t5, $t9, 0xff
/* 02A5BC 800299BC 000D7400 */ sll $t6, $t5, 0x10
/* 02A5C0 800299C0 00146100 */ sll $t4, $s4, 4
/* 02A5C4 800299C4 3C010500 */ lui $at, 0x500
/* 02A5C8 800299C8 01C17825 */ or $t7, $t6, $at
/* 02A5CC 800299CC 3198FFFF */ andi $t8, $t4, 0xffff
/* 02A5D0 800299D0 01F85825 */ or $t3, $t7, $t8
/* 02A5D4 800299D4 02FEC821 */ addu $t9, $s7, $fp
/* 02A5D8 800299D8 AE190004 */ sw $t9, 4($s0)
/* 02A5DC 800299DC AE0B0000 */ sw $t3, ($s0)
/* 02A5E0 800299E0 8E500000 */ lw $s0, ($s2)
/* 02A5E4 800299E4 240CFFFF */ li $t4, -1
/* 02A5E8 800299E8 260D0008 */ addiu $t5, $s0, 8
/* 02A5EC 800299EC AE4D0000 */ sw $t5, ($s2)
/* 02A5F0 800299F0 3C0EFA00 */ lui $t6, 0xfa00
/* 02A5F4 800299F4 AE0E0000 */ sw $t6, ($s0)
/* 02A5F8 800299F8 1000002F */ b .L80029AB8
/* 02A5FC 800299FC AE0C0004 */ sw $t4, 4($s0)
.L80029A00:
/* 02A600 80029A00 02A02825 */ move $a1, $s5
/* 02A604 80029A04 02203025 */ move $a2, $s1
/* 02A608 80029A08 AFA900A8 */ sw $t1, 0xa8($sp)
/* 02A60C 80029A0C 0C01ED3A */ jal load_and_set_texture
/* 02A610 80029A10 AFAA0040 */ sw $t2, 0x40($sp)
/* 02A614 80029A14 8FA900A8 */ lw $t1, 0xa8($sp)
/* 02A618 80029A18 8FAA0040 */ lw $t2, 0x40($sp)
/* 02A61C 80029A1C 16A00002 */ bnez $s5, .L80029A28
/* 02A620 80029A20 24110001 */ li $s1, 1
/* 02A624 80029A24 00008825 */ move $s1, $zero
.L80029A28:
/* 02A628 80029A28 02DE1821 */ addu $v1, $s6, $fp
/* 02A62C 80029A2C 2678FFFF */ addiu $t8, $s3, -1
/* 02A630 80029A30 001858C0 */ sll $t3, $t8, 3
/* 02A634 80029A34 30790006 */ andi $t9, $v1, 6
/* 02A638 80029A38 01796825 */ or $t5, $t3, $t9
/* 02A63C 80029A3C 8E500000 */ lw $s0, ($s2)
/* 02A640 80029A40 0013C0C0 */ sll $t8, $s3, 3
/* 02A644 80029A44 03135821 */ addu $t3, $t8, $s3
/* 02A648 80029A48 31AE00FF */ andi $t6, $t5, 0xff
/* 02A64C 80029A4C 000E6400 */ sll $t4, $t6, 0x10
/* 02A650 80029A50 000BC840 */ sll $t9, $t3, 1
/* 02A654 80029A54 260F0008 */ addiu $t7, $s0, 8
/* 02A658 80029A58 AE4F0000 */ sw $t7, ($s2)
/* 02A65C 80029A5C 272D0008 */ addiu $t5, $t9, 8
/* 02A660 80029A60 3C010400 */ lui $at, 0x400
/* 02A664 80029A64 01817825 */ or $t7, $t4, $at
/* 02A668 80029A68 31AEFFFF */ andi $t6, $t5, 0xffff
/* 02A66C 80029A6C 01EE6025 */ or $t4, $t7, $t6
/* 02A670 80029A70 AE0C0000 */ sw $t4, ($s0)
/* 02A674 80029A74 AE030004 */ sw $v1, 4($s0)
/* 02A678 80029A78 8E500000 */ lw $s0, ($s2)
/* 02A67C 80029A7C 268BFFFF */ addiu $t3, $s4, -1
/* 02A680 80029A80 000BC900 */ sll $t9, $t3, 4
/* 02A684 80029A84 03316825 */ or $t5, $t9, $s1
/* 02A688 80029A88 26180008 */ addiu $t8, $s0, 8
/* 02A68C 80029A8C AE580000 */ sw $t8, ($s2)
/* 02A690 80029A90 31AF00FF */ andi $t7, $t5, 0xff
/* 02A694 80029A94 000F7400 */ sll $t6, $t7, 0x10
/* 02A698 80029A98 0014C100 */ sll $t8, $s4, 4
/* 02A69C 80029A9C 3C010500 */ lui $at, 0x500
/* 02A6A0 80029AA0 01C16025 */ or $t4, $t6, $at
/* 02A6A4 80029AA4 330BFFFF */ andi $t3, $t8, 0xffff
/* 02A6A8 80029AA8 018BC825 */ or $t9, $t4, $t3
/* 02A6AC 80029AAC 02FE6821 */ addu $t5, $s7, $fp
/* 02A6B0 80029AB0 AE0D0004 */ sw $t5, 4($s0)
/* 02A6B4 80029AB4 AE190000 */ sw $t9, ($s0)
.L80029AB8:
/* 02A6B8 80029AB8 8FAF0070 */ lw $t7, 0x70($sp)
.L80029ABC:
/* 02A6BC 80029ABC 25290001 */ addiu $t1, $t1, 1
/* 02A6C0 80029AC0 152FFF1A */ bne $t1, $t7, .L8002972C
/* 02A6C4 80029AC4 254A000C */ addiu $t2, $t2, 0xc
.L80029AC8:
/* 02A6C8 80029AC8 8FBF003C */ lw $ra, 0x3c($sp)
/* 02A6CC 80029ACC 8FB00018 */ lw $s0, 0x18($sp)
/* 02A6D0 80029AD0 8FB1001C */ lw $s1, 0x1c($sp)
/* 02A6D4 80029AD4 8FB20020 */ lw $s2, 0x20($sp)
/* 02A6D8 80029AD8 8FB30024 */ lw $s3, 0x24($sp)
/* 02A6DC 80029ADC 8FB40028 */ lw $s4, 0x28($sp)
/* 02A6E0 80029AE0 8FB5002C */ lw $s5, 0x2c($sp)
/* 02A6E4 80029AE4 8FB60030 */ lw $s6, 0x30($sp)
/* 02A6E8 80029AE8 8FB70034 */ lw $s7, 0x34($sp)
/* 02A6EC 80029AEC 8FBE0038 */ lw $fp, 0x38($sp)
/* 02A6F0 80029AF0 03E00008 */ jr $ra
/* 02A6F4 80029AF4 27BD00B0 */ addiu $sp, $sp, 0xb0
File diff suppressed because it is too large Load Diff
+15 -4
View File
@@ -39,6 +39,17 @@ typedef struct Vec3s {
};
} Vec3s;
typedef struct Vec3i {
union {
struct {
s32 x;
s32 y;
s32 z;
};
s32 i[3];
};
} Vec3i;
/* Size: 0x20 bytes */
typedef struct TextureHeader {
/* 0x00 */ u8 width;
@@ -362,8 +373,8 @@ typedef struct LevelHeader {
/* 0xA2 */ s8 unkA2;
/* 0xA3 */ s8 unkA3;
/* 0xA4 */ TextureHeader *unkA4;
/* 0xA8 */ u16 unkA8;
/* 0xAA */ u16 unkAA;
/* 0xA8 */ s16 unkA8;
/* 0xAA */ s16 unkAA;
/* 0xAC */ PulsatingLightData *pulseLightData;
/* 0xB0 */ s16 unkB0;
@@ -377,7 +388,7 @@ typedef struct LevelHeader {
/* 0xB9 */ u8 unkB9;
/* 0xBA */ s16 unkBA;
/* 0xBC */ u8 unkBC;
/* 0xBD */ u8 unkBD;
/* 0xBD */ s8 unkBD;
/* 0xBE */ u8 unkBE;
/* 0xBF */ u8 unkBF;
/* 0xC0 */ u8 unkC0;
@@ -534,7 +545,7 @@ typedef struct LevelModelSegment {
s16 *unk34;
/* 0x38 */ s16 unk38;
u8 pad3A[6];
/* 0x40 */ u8 unk40;
/* 0x40 */ u8 numberofOpaqueBatches;
u8 pad41[0x3];
} LevelModelSegment;
+1 -1
View File
@@ -39,7 +39,7 @@ void render_borders_for_multiplayer(Gfx **dlist) {
case VIEWPORTS_COUNT_3_PLAYERS:
levelHeader = get_current_level_header();
// Draw black square in the bottom-right corner.
if (get_multiplayer_hud_setting() || (levelHeader->race_type & RACETYPE_CHALLENGE)) {
if (get_hud_setting() || (levelHeader->race_type & RACETYPE_CHALLENGE)) {
gDPFillRectangle((*dlist)++, width >> 1, height >> 1, width, height);
}
// There is no break statement here. This is intentional.
+17 -14
View File
@@ -106,7 +106,7 @@ s16 gButtonMask = 0xFFFF;
ObjectSegment gActiveCameraStack[8];
s32 gNumberOfViewports;
s32 gActiveCameraID;
s32 gOjbectRenderStackCap;
s32 gViewportCap;
UNUSED s32 D_80120CEC;
ObjectTransform D_80120CF0;
s32 D_80120D08;
@@ -234,6 +234,9 @@ UNUSED Matrix *func_80066204(void) {
return &D_801210A0;
}
/**
* Returns the number of active viewports.
*/
s32 get_viewport_count(void) {
return gNumberOfViewports;
}
@@ -256,8 +259,8 @@ void func_80066230(Gfx **dlist, MatrixS **mats) {
f32 sp1C;
f32 sp18;
set_active_viewports_and_object_stack_cap(0);
set_object_stack_pos(0);
set_active_viewports_and_max(0);
set_active_camera(0);
someStruct = get_active_camera_segment();
sp2A = someStruct->trans.y_rotation;
sp28 = someStruct->trans.x_rotation;
@@ -273,7 +276,7 @@ void func_80066230(Gfx **dlist, MatrixS **mats) {
someStruct->trans.x_position = 0.0f;
someStruct->trans.y_position = 0.0f;
someStruct->trans.z_position = 0.0f;
set_and_normalize_D_8011AFE8(0.0f, 0.0f, -1.0f);
update_envmap_position(0.0f, 0.0f, -1.0f);
func_80066CDC(dlist, mats);
someStruct->unk38.half.unk38 = sp24;
someStruct->trans.y_rotation = sp2A;
@@ -352,11 +355,11 @@ void disable_cutscene_camera(void) {
}
/**
* Sets the cap for the object render stack.
* Sets the cap for the viewports. Usually reflecting how many there are.
* If the number passed is within 1-4, then the stack cap is set to
* how many active viewports there are.
*/
s32 set_active_viewports_and_object_stack_cap(s32 num) {
s32 set_active_viewports_and_max(s32 num) {
if (num >= 0 && num < 4) {
gNumberOfViewports = num;
} else {
@@ -364,29 +367,29 @@ s32 set_active_viewports_and_object_stack_cap(s32 num) {
}
switch (gNumberOfViewports) {
case VIEWPORTS_COUNT_1_PLAYER:
gOjbectRenderStackCap = 1;
gViewportCap = 1;
break;
case VIEWPORTS_COUNT_2_PLAYERS:
gOjbectRenderStackCap = 2;
gViewportCap = 2;
break;
case VIEWPORTS_COUNT_3_PLAYERS:
gOjbectRenderStackCap = 3;
gViewportCap = 3;
break;
case VIEWPORTS_COUNT_4_PLAYERS:
gOjbectRenderStackCap = 4;
gViewportCap = 4;
break;
}
if (gActiveCameraID >= gOjbectRenderStackCap) {
if (gActiveCameraID >= gViewportCap) {
gActiveCameraID = 0;
}
return gOjbectRenderStackCap;
return gViewportCap;
}
/**
* Sets the object stack pos to the passed number.
* Sets the active viewport ID to the passed number.
* If it's not within 1-4, then it's set to 0.
*/
void set_object_stack_pos(s32 num) {
void set_active_camera(s32 num) {
if (num >= 0 && num < 4) {
gActiveCameraID = num;
} else {
+2 -2
View File
@@ -103,8 +103,8 @@ void func_800663DC(s32 xPos, s32 yPos, s32 zPos, s32 arg3, s32 arg4, s32 arg5);
void write_to_object_render_stack(s32 arg0, f32 xPos, f32 yPos, f32 zPos, s16 arg4, s16 arg5, s16 arg6);
void disable_cutscene_camera(void);
s8 check_if_showing_cutscene_camera(void);
s32 set_active_viewports_and_object_stack_cap(s32 arg0);
void set_object_stack_pos(s32 arg0);
s32 set_active_viewports_and_max(s32 arg0);
void set_active_camera(s32 arg0);
void func_80066818(s32 viewPortIndex, s32 arg1);
void func_80066894(s32 viewPortIndex, s32 arg1);
s32 func_80066910(s32 viewPortIndex);

Some files were not shown because too many files have changed in this diff Show More