mirror of https://github.com/n64decomp/mk64.git
Match (#562)
This commit is contained in:
parent
e63ea937d2
commit
c2d7f1077c
|
|
@ -1,944 +0,0 @@
|
|||
.section .late_rodata
|
||||
|
||||
glabel jpt_800ED008
|
||||
.word L8000E1F4, L8000E45C, L8000E618, L8000E968
|
||||
.word L8000E634
|
||||
|
||||
glabel D_800ED01C
|
||||
.float -2409.197021
|
||||
|
||||
glabel D_800ED020
|
||||
.float -355.253998
|
||||
|
||||
glabel D_800ED024
|
||||
.float 0.01
|
||||
|
||||
glabel D_800ED028
|
||||
.double -1000.0
|
||||
|
||||
glabel D_800ED030
|
||||
.float 0.3
|
||||
|
||||
glabel D_800ED034
|
||||
.float 2.3
|
||||
|
||||
glabel D_800ED038
|
||||
.float 2.3
|
||||
|
||||
glabel D_800ED03C
|
||||
.float 0.15
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_8000DF8C
|
||||
/* 00EB8C 8000DF8C 00047880 */ sll $t7, $a0, 2
|
||||
/* 00EB90 8000DF90 01E47821 */ addu $t7, $t7, $a0
|
||||
/* 00EB94 8000DF94 27BDFEE0 */ addiu $sp, $sp, -0x120
|
||||
/* 00EB98 8000DF98 000F7880 */ sll $t7, $t7, 2
|
||||
/* 00EB9C 8000DF9C 01E47821 */ addu $t7, $t7, $a0
|
||||
/* 00EBA0 8000DFA0 3C188016 */ lui $t8, %hi(gBombKarts) # $t8, 0x8016
|
||||
/* 00EBA4 8000DFA4 AFB00034 */ sw $s0, 0x34($sp)
|
||||
/* 00EBA8 8000DFA8 27183DE8 */ addiu $t8, %lo(gBombKarts) # addiu $t8, $t8, 0x3de8
|
||||
/* 00EBAC 8000DFAC 000F7880 */ sll $t7, $t7, 2
|
||||
/* 00EBB0 8000DFB0 01F88021 */ addu $s0, $t7, $t8
|
||||
/* 00EBB4 8000DFB4 96190044 */ lhu $t9, 0x44($s0)
|
||||
/* 00EBB8 8000DFB8 AFBF003C */ sw $ra, 0x3c($sp)
|
||||
/* 00EBBC 8000DFBC AFB10038 */ sw $s1, 0x38($sp)
|
||||
/* 00EBC0 8000DFC0 332AFFFF */ andi $t2, $t9, 0xffff
|
||||
/* 00EBC4 8000DFC4 F7B80028 */ sdc1 $f24, 0x28($sp)
|
||||
/* 00EBC8 8000DFC8 F7B60020 */ sdc1 $f22, 0x20($sp)
|
||||
/* 00EBCC 8000DFCC F7B40018 */ sdc1 $f20, 0x18($sp)
|
||||
/* 00EBD0 8000DFD0 AFA40120 */ sw $a0, 0x120($sp)
|
||||
/* 00EBD4 8000DFD4 AFAA004C */ sw $t2, 0x4c($sp)
|
||||
/* 00EBD8 8000DFD8 11400346 */ beqz $t2, .L8000ECF4
|
||||
/* 00EBDC 8000DFDC A7B9007E */ sh $t9, 0x7e($sp)
|
||||
/* 00EBE0 8000DFE0 960B004A */ lhu $t3, 0x4a($s0)
|
||||
/* 00EBE4 8000DFE4 24030001 */ li $v1, 1
|
||||
/* 00EBE8 8000DFE8 3C09800E */ lui $t1, %hi(gCurrentCourseId)
|
||||
/* 00EBEC 8000DFEC 146B0005 */ bne $v1, $t3, .L8000E004
|
||||
/* 00EBF0 8000DFF0 2529C5A0 */ addiu $t1, %lo(gCurrentCourseId) # addiu $t1, $t1, -0x3a60
|
||||
/* 00EBF4 8000DFF4 852C0000 */ lh $t4, ($t1)
|
||||
/* 00EBF8 8000DFF8 24010014 */ li $at, 20
|
||||
/* 00EBFC 8000DFFC 5581033E */ bnel $t4, $at, .L8000ECF8
|
||||
/* 00EC00 8000E000 8FBF003C */ lw $ra, 0x3c($sp)
|
||||
.L8000E004:
|
||||
/* 00EC04 8000E004 960D0042 */ lhu $t5, 0x42($s0)
|
||||
/* 00EC08 8000E008 C6160000 */ lwc1 $f22, ($s0)
|
||||
/* 00EC0C 8000E00C C6140004 */ lwc1 $f20, 4($s0)
|
||||
/* 00EC10 8000E010 C6180008 */ lwc1 $f24, 8($s0)
|
||||
/* 00EC14 8000E014 A7AD00CA */ sh $t5, 0xca($sp)
|
||||
/* 00EC18 8000E018 C604003C */ lwc1 $f4, 0x3c($s0)
|
||||
/* 00EC1C 8000E01C 8FB8004C */ lw $t8, 0x4c($sp)
|
||||
/* 00EC20 8000E020 3C09800E */ lui $t1, %hi(gCurrentCourseId)
|
||||
/* 00EC24 8000E024 E7A400C4 */ swc1 $f4, 0xc4($sp)
|
||||
/* 00EC28 8000E028 960E0040 */ lhu $t6, 0x40($s0)
|
||||
/* 00EC2C 8000E02C 2529C5A0 */ addiu $t1, %lo(gCurrentCourseId) # addiu $t1, $t1, -0x3a60
|
||||
/* 00EC30 8000E030 24010004 */ li $at, 4
|
||||
/* 00EC34 8000E034 A7AE00C2 */ sh $t6, 0xc2($sp)
|
||||
/* 00EC38 8000E038 960F0046 */ lhu $t7, 0x46($s0)
|
||||
/* 00EC3C 8000E03C A7AF007C */ sh $t7, 0x7c($sp)
|
||||
/* 00EC40 8000E040 13000062 */ beqz $t8, .L8000E1CC
|
||||
/* 00EC44 8000E044 96110048 */ lhu $s1, 0x48($s0)
|
||||
/* 00EC48 8000E048 53010061 */ beql $t8, $at, .L8000E1D0
|
||||
/* 00EC4C 8000E04C 8FB9004C */ lw $t9, 0x4c($sp)
|
||||
/* 00EC50 8000E050 85220000 */ lh $v0, ($t1)
|
||||
/* 00EC54 8000E054 24010014 */ li $at, 20
|
||||
/* 00EC58 8000E058 3C198016 */ lui $t9, %hi(D_8016347E) # $t9, 0x8016
|
||||
/* 00EC5C 8000E05C 14410025 */ bne $v0, $at, .L8000E0F4
|
||||
/* 00EC60 8000E060 00000000 */ nop
|
||||
/* 00EC64 8000E064 8739347E */ lh $t9, %lo(D_8016347E)($t9)
|
||||
/* 00EC68 8000E068 54790059 */ bnel $v1, $t9, .L8000E1D0
|
||||
/* 00EC6C 8000E06C 8FB9004C */ lw $t9, 0x4c($sp)
|
||||
/* 00EC70 8000E070 3C02800E */ lui $v0, %hi(gPlayerFour)
|
||||
/* 00EC74 8000E074 8C42C4E8 */ lw $v0, %lo(gPlayerFour)($v0)
|
||||
/* 00EC78 8000E078 3C0141C8 */ li $at, 0x41C80000 # 25.000000
|
||||
/* 00EC7C 8000E07C 44817000 */ mtc1 $at, $f14
|
||||
/* 00EC80 8000E080 C4460014 */ lwc1 $f6, 0x14($v0)
|
||||
/* 00EC84 8000E084 C4480018 */ lwc1 $f8, 0x18($v0)
|
||||
/* 00EC88 8000E088 C44A001C */ lwc1 $f10, 0x1c($v0)
|
||||
/* 00EC8C 8000E08C 4606B001 */ sub.s $f0, $f22, $f6
|
||||
/* 00EC90 8000E090 240A0004 */ li $t2, 4
|
||||
/* 00EC94 8000E094 2401DFFF */ li $at, -8193
|
||||
/* 00EC98 8000E098 4608A081 */ sub.s $f2, $f20, $f8
|
||||
/* 00EC9C 8000E09C 46000102 */ mul.s $f4, $f0, $f0
|
||||
/* 00ECA0 8000E0A0 460AC301 */ sub.s $f12, $f24, $f10
|
||||
/* 00ECA4 8000E0A4 46021182 */ mul.s $f6, $f2, $f2
|
||||
/* 00ECA8 8000E0A8 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 00ECAC 8000E0AC 460C6282 */ mul.s $f10, $f12, $f12
|
||||
/* 00ECB0 8000E0B0 460A4100 */ add.s $f4, $f8, $f10
|
||||
/* 00ECB4 8000E0B4 460E203C */ c.lt.s $f4, $f14
|
||||
/* 00ECB8 8000E0B8 00000000 */ nop
|
||||
/* 00ECBC 8000E0BC 45020044 */ bc1fl .L8000E1D0
|
||||
/* 00ECC0 8000E0C0 8FB9004C */ lw $t9, 0x4c($sp)
|
||||
/* 00ECC4 8000E0C4 A7AA007E */ sh $t2, 0x7e($sp)
|
||||
/* 00ECC8 8000E0C8 8C4B000C */ lw $t3, 0xc($v0)
|
||||
/* 00ECCC 8000E0CC 944D0000 */ lhu $t5, ($v0)
|
||||
/* 00ECD0 8000E0D0 3C050040 */ lui $a1, 0x40
|
||||
/* 00ECD4 8000E0D4 01656025 */ or $t4, $t3, $a1
|
||||
/* 00ECD8 8000E0D8 01A17024 */ and $t6, $t5, $at
|
||||
/* 00ECDC 8000E0DC AC4C000C */ sw $t4, 0xc($v0)
|
||||
/* 00ECE0 8000E0E0 A44E0000 */ sh $t6, ($v0)
|
||||
/* 00ECE4 8000E0E4 240F0004 */ li $t7, 4
|
||||
/* 00ECE8 8000E0E8 00008825 */ move $s1, $zero
|
||||
/* 00ECEC 8000E0EC 10000037 */ b .L8000E1CC
|
||||
/* 00ECF0 8000E0F0 AFAF004C */ sw $t7, 0x4c($sp)
|
||||
.L8000E0F4:
|
||||
/* 00ECF4 8000E0F4 3C038019 */ lui $v1, %hi(gPlayerCount) # $v1, 0x8019
|
||||
/* 00ECF8 8000E0F8 8063EDF3 */ lb $v1, %lo(gPlayerCount)($v1)
|
||||
/* 00ECFC 8000E0FC 00002025 */ move $a0, $zero
|
||||
/* 00ED00 8000E100 3C0141C8 */ li $at, 0x41C80000 # 25.000000
|
||||
/* 00ED04 8000E104 58600032 */ blezl $v1, .L8000E1D0
|
||||
/* 00ED08 8000E108 8FB9004C */ lw $t9, 0x4c($sp)
|
||||
/* 00ED0C 8000E10C 3C02800F */ lui $v0, %hi(gPlayers) # $v0, 0x800f
|
||||
/* 00ED10 8000E110 44817000 */ mtc1 $at, $f14
|
||||
/* 00ED14 8000E114 24426990 */ addiu $v0, %lo(gPlayers) # addiu $v0, $v0, 0x6990
|
||||
/* 00ED18 8000E118 3C080100 */ lui $t0, 0x100
|
||||
/* 00ED1C 8000E11C 24070005 */ li $a3, 5
|
||||
/* 00ED20 8000E120 3C068000 */ lui $a2, 0x8000
|
||||
/* 00ED24 8000E124 3C050040 */ lui $a1, 0x40
|
||||
.L8000E128:
|
||||
/* 00ED28 8000E128 8C5800BC */ lw $t8, 0xbc($v0)
|
||||
/* 00ED2C 8000E12C 24840001 */ addiu $a0, $a0, 1
|
||||
/* 00ED30 8000E130 0306C824 */ and $t9, $t8, $a2
|
||||
/* 00ED34 8000E134 57200021 */ bnel $t9, $zero, .L8000E1BC
|
||||
/* 00ED38 8000E138 0083082A */ slt $at, $a0, $v1
|
||||
/* 00ED3C 8000E13C C4460014 */ lwc1 $f6, 0x14($v0)
|
||||
/* 00ED40 8000E140 C4480018 */ lwc1 $f8, 0x18($v0)
|
||||
/* 00ED44 8000E144 C44A001C */ lwc1 $f10, 0x1c($v0)
|
||||
/* 00ED48 8000E148 4606B001 */ sub.s $f0, $f22, $f6
|
||||
/* 00ED4C 8000E14C 4608A081 */ sub.s $f2, $f20, $f8
|
||||
/* 00ED50 8000E150 46000102 */ mul.s $f4, $f0, $f0
|
||||
/* 00ED54 8000E154 460AC301 */ sub.s $f12, $f24, $f10
|
||||
/* 00ED58 8000E158 46021182 */ mul.s $f6, $f2, $f2
|
||||
/* 00ED5C 8000E15C 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 00ED60 8000E160 460C6282 */ mul.s $f10, $f12, $f12
|
||||
/* 00ED64 8000E164 460A4100 */ add.s $f4, $f8, $f10
|
||||
/* 00ED68 8000E168 460E203C */ c.lt.s $f4, $f14
|
||||
/* 00ED6C 8000E16C 00000000 */ nop
|
||||
/* 00ED70 8000E170 45020012 */ bc1fl .L8000E1BC
|
||||
/* 00ED74 8000E174 0083082A */ slt $at, $a0, $v1
|
||||
/* 00ED78 8000E178 852B0000 */ lh $t3, ($t1)
|
||||
/* 00ED7C 8000E17C 240A0004 */ li $t2, 4
|
||||
/* 00ED80 8000E180 A7AA007E */ sh $t2, 0x7e($sp)
|
||||
/* 00ED84 8000E184 14EB0007 */ bne $a3, $t3, .L8000E1A4
|
||||
/* 00ED88 8000E188 00008825 */ move $s1, $zero
|
||||
/* 00ED8C 8000E18C 8C4C000C */ lw $t4, 0xc($v0)
|
||||
/* 00ED90 8000E190 3C038019 */ lui $v1, %hi(gPlayerCount) # $v1, 0x8019
|
||||
/* 00ED94 8000E194 01886825 */ or $t5, $t4, $t0
|
||||
/* 00ED98 8000E198 AC4D000C */ sw $t5, 0xc($v0)
|
||||
/* 00ED9C 8000E19C 10000006 */ b .L8000E1B8
|
||||
/* 00EDA0 8000E1A0 8063EDF3 */ lb $v1, %lo(gPlayerCount)($v1)
|
||||
.L8000E1A4:
|
||||
/* 00EDA4 8000E1A4 8C4E000C */ lw $t6, 0xc($v0)
|
||||
/* 00EDA8 8000E1A8 3C038019 */ lui $v1, %hi(gPlayerCount) # $v1, 0x8019
|
||||
/* 00EDAC 8000E1AC 01C57825 */ or $t7, $t6, $a1
|
||||
/* 00EDB0 8000E1B0 AC4F000C */ sw $t7, 0xc($v0)
|
||||
/* 00EDB4 8000E1B4 8063EDF3 */ lb $v1, %lo(gPlayerCount)($v1)
|
||||
.L8000E1B8:
|
||||
/* 00EDB8 8000E1B8 0083082A */ slt $at, $a0, $v1
|
||||
.L8000E1BC:
|
||||
/* 00EDBC 8000E1BC 1420FFDA */ bnez $at, .L8000E128
|
||||
/* 00EDC0 8000E1C0 24420DD8 */ addiu $v0, $v0, 0xdd8
|
||||
/* 00EDC4 8000E1C4 97B8007E */ lhu $t8, 0x7e($sp)
|
||||
/* 00EDC8 8000E1C8 AFB8004C */ sw $t8, 0x4c($sp)
|
||||
.L8000E1CC:
|
||||
/* 00EDCC 8000E1CC 8FB9004C */ lw $t9, 0x4c($sp)
|
||||
.L8000E1D0:
|
||||
/* 00EDD0 8000E1D0 272AFFFF */ addiu $t2, $t9, -1
|
||||
/* 00EDD4 8000E1D4 2D410005 */ sltiu $at, $t2, 5
|
||||
/* 00EDD8 8000E1D8 10200231 */ beqz $at, .L8000EAA0
|
||||
/* 00EDDC 8000E1DC 000A5080 */ sll $t2, $t2, 2
|
||||
/* 00EDE0 8000E1E0 3C01800F */ lui $at, %hi(jpt_800ED008)
|
||||
/* 00EDE4 8000E1E4 002A0821 */ addu $at, $at, $t2
|
||||
/* 00EDE8 8000E1E8 8C2AD008 */ lw $t2, %lo(jpt_800ED008)($at)
|
||||
/* 00EDEC 8000E1EC 01400008 */ jr $t2
|
||||
/* 00EDF0 8000E1F0 00000000 */ nop
|
||||
glabel L8000E1F4
|
||||
/* 00EDF4 8000E1F4 24030168 */ li $v1, 360
|
||||
/* 00EDF8 8000E1F8 262B0164 */ addiu $t3, $s1, 0x164
|
||||
/* 00EDFC 8000E1FC 0163001A */ div $zero, $t3, $v1
|
||||
/* 00EE00 8000E200 00008810 */ mfhi $s1
|
||||
/* 00EE04 8000E204 322CFFFF */ andi $t4, $s1, 0xffff
|
||||
/* 00EE08 8000E208 000C6C00 */ sll $t5, $t4, 0x10
|
||||
/* 00EE0C 8000E20C 01AC6823 */ subu $t5, $t5, $t4
|
||||
/* 00EE10 8000E210 01A3001A */ div $zero, $t5, $v1
|
||||
/* 00EE14 8000E214 14600002 */ bnez $v1, .L8000E220
|
||||
/* 00EE18 8000E218 00000000 */ nop
|
||||
/* 00EE1C 8000E21C 0007000D */ break 7
|
||||
.L8000E220:
|
||||
/* 00EE20 8000E220 2401FFFF */ li $at, -1
|
||||
/* 00EE24 8000E224 14610004 */ bne $v1, $at, .L8000E238
|
||||
/* 00EE28 8000E228 3C018000 */ lui $at, 0x8000
|
||||
/* 00EE2C 8000E22C 15610002 */ bne $t3, $at, .L8000E238
|
||||
/* 00EE30 8000E230 00000000 */ nop
|
||||
/* 00EE34 8000E234 0006000D */ break 6
|
||||
.L8000E238:
|
||||
/* 00EE38 8000E238 00002012 */ mflo $a0
|
||||
/* 00EE3C 8000E23C 308EFFFF */ andi $t6, $a0, 0xffff
|
||||
/* 00EE40 8000E240 01801025 */ move $v0, $t4
|
||||
/* 00EE44 8000E244 01808825 */ move $s1, $t4
|
||||
/* 00EE48 8000E248 14600002 */ bnez $v1, .L8000E254
|
||||
/* 00EE4C 8000E24C 00000000 */ nop
|
||||
/* 00EE50 8000E250 0007000D */ break 7
|
||||
.L8000E254:
|
||||
/* 00EE54 8000E254 2401FFFF */ li $at, -1
|
||||
/* 00EE58 8000E258 14610004 */ bne $v1, $at, .L8000E26C
|
||||
/* 00EE5C 8000E25C 3C018000 */ lui $at, 0x8000
|
||||
/* 00EE60 8000E260 15A10002 */ bne $t5, $at, .L8000E26C
|
||||
/* 00EE64 8000E264 00000000 */ nop
|
||||
/* 00EE68 8000E268 0006000D */ break 6
|
||||
.L8000E26C:
|
||||
/* 00EE6C 8000E26C AFA20048 */ sw $v0, 0x48($sp)
|
||||
/* 00EE70 8000E270 01C02025 */ move $a0, $t6
|
||||
/* 00EE74 8000E274 0C0AE00E */ jal coss
|
||||
/* 00EE78 8000E278 AFAE0044 */ sw $t6, 0x44($sp)
|
||||
/* 00EE7C 8000E27C 3C014039 */ li $at, 0x40390000 # 2.890625
|
||||
/* 00EE80 8000E280 44814800 */ mtc1 $at, $f9
|
||||
/* 00EE84 8000E284 44804000 */ mtc1 $zero, $f8
|
||||
/* 00EE88 8000E288 460001A1 */ cvt.d.s $f6, $f0
|
||||
/* 00EE8C 8000E28C 8FA40044 */ lw $a0, 0x44($sp)
|
||||
/* 00EE90 8000E290 46283282 */ mul.d $f10, $f6, $f8
|
||||
/* 00EE94 8000E294 46205120 */ cvt.s.d $f4, $f10
|
||||
/* 00EE98 8000E298 0C0AE006 */ jal sins
|
||||
/* 00EE9C 8000E29C E7A40118 */ swc1 $f4, 0x118($sp)
|
||||
/* 00EEA0 8000E2A0 24030168 */ li $v1, 360
|
||||
/* 00EEA4 8000E2A4 8FAC0048 */ lw $t4, 0x48($sp)
|
||||
/* 00EEA8 8000E2A8 97B800CA */ lhu $t8, 0xca($sp)
|
||||
/* 00EEAC 8000E2AC 3C0F8016 */ lui $t7, %hi(D_80164550) # $t7, 0x8016
|
||||
/* 00EEB0 8000E2B0 258D0001 */ addiu $t5, $t4, 1
|
||||
/* 00EEB4 8000E2B4 01A3001A */ div $zero, $t5, $v1
|
||||
/* 00EEB8 8000E2B8 00007010 */ mfhi $t6
|
||||
/* 00EEBC 8000E2BC 0018C8C0 */ sll $t9, $t8, 3
|
||||
/* 00EEC0 8000E2C0 000EC400 */ sll $t8, $t6, 0x10
|
||||
/* 00EEC4 8000E2C4 030EC023 */ subu $t8, $t8, $t6
|
||||
/* 00EEC8 8000E2C8 0303001A */ div $zero, $t8, $v1
|
||||
/* 00EECC 8000E2CC 8DEF4550 */ lw $t7, %lo(D_80164550)($t7)
|
||||
/* 00EED0 8000E2D0 3C014060 */ li $at, 0x40600000 # 3.500000
|
||||
/* 00EED4 8000E2D4 C7AA0118 */ lwc1 $f10, 0x118($sp)
|
||||
/* 00EED8 8000E2D8 01F91021 */ addu $v0, $t7, $t9
|
||||
/* 00EEDC 8000E2DC 844A0000 */ lh $t2, ($v0)
|
||||
/* 00EEE0 8000E2E0 C6040050 */ lwc1 $f4, 0x50($s0)
|
||||
/* 00EEE4 8000E2E4 844B0004 */ lh $t3, 4($v0)
|
||||
/* 00EEE8 8000E2E8 448A3000 */ mtc1 $t2, $f6
|
||||
/* 00EEEC 8000E2EC 3C068016 */ lui $a2, %hi(D_80162FB0) # $a2, 0x8016
|
||||
/* 00EEF0 8000E2F0 24C62FB0 */ addiu $a2, %lo(D_80162FB0) # addiu $a2, $a2, 0x2fb0
|
||||
/* 00EEF4 8000E2F4 46803220 */ cvt.s.w $f8, $f6
|
||||
/* 00EEF8 8000E2F8 44813000 */ mtc1 $at, $f6
|
||||
/* 00EEFC 8000E2FC 3C014039 */ li $at, 0x40390000 # 2.890625
|
||||
/* 00EF00 8000E300 44815800 */ mtc1 $at, $f11
|
||||
/* 00EF04 8000E304 00002012 */ mflo $a0
|
||||
/* 00EF08 8000E308 46062500 */ add.s $f20, $f4, $f6
|
||||
/* 00EF0C 8000E30C 308FFFFF */ andi $t7, $a0, 0xffff
|
||||
/* 00EF10 8000E310 01E02025 */ move $a0, $t7
|
||||
/* 00EF14 8000E314 460A4580 */ add.s $f22, $f8, $f10
|
||||
/* 00EF18 8000E318 44805000 */ mtc1 $zero, $f10
|
||||
/* 00EF1C 8000E31C E4D40004 */ swc1 $f20, 4($a2)
|
||||
/* 00EF20 8000E320 46000221 */ cvt.d.s $f8, $f0
|
||||
/* 00EF24 8000E324 E4D60000 */ swc1 $f22, ($a2)
|
||||
/* 00EF28 8000E328 462A4102 */ mul.d $f4, $f8, $f10
|
||||
/* 00EF2C 8000E32C 448B4000 */ mtc1 $t3, $f8
|
||||
/* 00EF30 8000E330 AFAF0044 */ sw $t7, 0x44($sp)
|
||||
/* 00EF34 8000E334 AFA20110 */ sw $v0, 0x110($sp)
|
||||
/* 00EF38 8000E338 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 00EF3C 8000E33C 462021A0 */ cvt.s.d $f6, $f4
|
||||
/* 00EF40 8000E340 46065600 */ add.s $f24, $f10, $f6
|
||||
/* 00EF44 8000E344 E4D80008 */ swc1 $f24, 8($a2)
|
||||
/* 00EF48 8000E348 14600002 */ bnez $v1, .L8000E354
|
||||
/* 00EF4C 8000E34C 00000000 */ nop
|
||||
/* 00EF50 8000E350 0007000D */ break 7
|
||||
.L8000E354:
|
||||
/* 00EF54 8000E354 2401FFFF */ li $at, -1
|
||||
/* 00EF58 8000E358 14610004 */ bne $v1, $at, .L8000E36C
|
||||
/* 00EF5C 8000E35C 3C018000 */ lui $at, 0x8000
|
||||
/* 00EF60 8000E360 15A10002 */ bne $t5, $at, .L8000E36C
|
||||
/* 00EF64 8000E364 00000000 */ nop
|
||||
/* 00EF68 8000E368 0006000D */ break 6
|
||||
.L8000E36C:
|
||||
/* 00EF6C 8000E36C 14600002 */ bnez $v1, .L8000E378
|
||||
/* 00EF70 8000E370 00000000 */ nop
|
||||
/* 00EF74 8000E374 0007000D */ break 7
|
||||
.L8000E378:
|
||||
/* 00EF78 8000E378 2401FFFF */ li $at, -1
|
||||
/* 00EF7C 8000E37C 14610004 */ bne $v1, $at, .L8000E390
|
||||
/* 00EF80 8000E380 3C018000 */ lui $at, 0x8000
|
||||
/* 00EF84 8000E384 17010002 */ bne $t8, $at, .L8000E390
|
||||
/* 00EF88 8000E388 00000000 */ nop
|
||||
/* 00EF8C 8000E38C 0006000D */ break 6
|
||||
.L8000E390:
|
||||
/* 00EF90 8000E390 0C0AE00E */ jal coss
|
||||
/* 00EF94 8000E394 00000000 */ nop
|
||||
/* 00EF98 8000E398 3C014039 */ li $at, 0x40390000 # 2.890625
|
||||
/* 00EF9C 8000E39C 44814800 */ mtc1 $at, $f9
|
||||
/* 00EFA0 8000E3A0 44804000 */ mtc1 $zero, $f8
|
||||
/* 00EFA4 8000E3A4 46000121 */ cvt.d.s $f4, $f0
|
||||
/* 00EFA8 8000E3A8 8FA40044 */ lw $a0, 0x44($sp)
|
||||
/* 00EFAC 8000E3AC 46282282 */ mul.d $f10, $f4, $f8
|
||||
/* 00EFB0 8000E3B0 462051A0 */ cvt.s.d $f6, $f10
|
||||
/* 00EFB4 8000E3B4 0C0AE006 */ jal sins
|
||||
/* 00EFB8 8000E3B8 E7A60118 */ swc1 $f6, 0x118($sp)
|
||||
/* 00EFBC 8000E3BC 8FA20110 */ lw $v0, 0x110($sp)
|
||||
/* 00EFC0 8000E3C0 C7AA0118 */ lwc1 $f10, 0x118($sp)
|
||||
/* 00EFC4 8000E3C4 3C058016 */ lui $a1, %hi(D_80162FC0) # $a1, 0x8016
|
||||
/* 00EFC8 8000E3C8 84590000 */ lh $t9, ($v0)
|
||||
/* 00EFCC 8000E3CC 24A52FC0 */ addiu $a1, %lo(D_80162FC0) # addiu $a1, $a1, 0x2fc0
|
||||
/* 00EFD0 8000E3D0 3C014039 */ li $at, 0x40390000 # 2.890625
|
||||
/* 00EFD4 8000E3D4 44992000 */ mtc1 $t9, $f4
|
||||
/* 00EFD8 8000E3D8 3C068016 */ lui $a2, %hi(D_80162FB0) # 0x8016
|
||||
/* 00EFDC 8000E3DC 24C42FB0 */ addiu $a0, $a2, %lo(D_80162FB0) # 0x2fb0
|
||||
/* 00EFE0 8000E3E0 46802220 */ cvt.s.w $f8, $f4
|
||||
/* 00EFE4 8000E3E4 460A4180 */ add.s $f6, $f8, $f10
|
||||
/* 00EFE8 8000E3E8 44813800 */ mtc1 $at, $f7
|
||||
/* 00EFEC 8000E3EC 460002A1 */ cvt.d.s $f10, $f0
|
||||
/* 00EFF0 8000E3F0 E4A60000 */ swc1 $f6, ($a1)
|
||||
/* 00EFF4 8000E3F4 844A0002 */ lh $t2, 2($v0)
|
||||
/* 00EFF8 8000E3F8 44803000 */ mtc1 $zero, $f6
|
||||
/* 00EFFC 8000E3FC 448A2000 */ mtc1 $t2, $f4
|
||||
/* 00F000 8000E400 00000000 */ nop
|
||||
/* 00F004 8000E404 46802220 */ cvt.s.w $f8, $f4
|
||||
/* 00F008 8000E408 46265102 */ mul.d $f4, $f10, $f6
|
||||
/* 00F00C 8000E40C E4A80004 */ swc1 $f8, 4($a1)
|
||||
/* 00F010 8000E410 844B0004 */ lh $t3, 4($v0)
|
||||
/* 00F014 8000E414 46202220 */ cvt.s.d $f8, $f4
|
||||
/* 00F018 8000E418 448B5000 */ mtc1 $t3, $f10
|
||||
/* 00F01C 8000E41C 00000000 */ nop
|
||||
/* 00F020 8000E420 468051A0 */ cvt.s.w $f6, $f10
|
||||
/* 00F024 8000E424 46083100 */ add.s $f4, $f6, $f8
|
||||
/* 00F028 8000E428 0C0AD489 */ jal get_angle_between_points
|
||||
/* 00F02C 8000E42C E4A40008 */ swc1 $f4, 8($a1)
|
||||
/* 00F030 8000E430 3403FFFF */ li $v1, 65535
|
||||
/* 00F034 8000E434 00430019 */ multu $v0, $v1
|
||||
/* 00F038 8000E438 3401FFF0 */ li $at, 65520
|
||||
/* 00F03C 8000E43C 00006012 */ mflo $t4
|
||||
/* 00F040 8000E440 00000000 */ nop
|
||||
/* 00F044 8000E444 00000000 */ nop
|
||||
/* 00F048 8000E448 0181001A */ div $zero, $t4, $at
|
||||
/* 00F04C 8000E44C 00006812 */ mflo $t5
|
||||
/* 00F050 8000E450 A7AD00C2 */ sh $t5, 0xc2($sp)
|
||||
/* 00F054 8000E454 10000194 */ b .L8000EAA8
|
||||
/* 00F058 8000E458 8FAE004C */ lw $t6, 0x4c($sp)
|
||||
glabel L8000E45C
|
||||
/* 00F05C 8000E45C 26310004 */ addiu $s1, $s1, 4
|
||||
/* 00F060 8000E460 24010168 */ li $at, 360
|
||||
/* 00F064 8000E464 0221001A */ div $zero, $s1, $at
|
||||
/* 00F068 8000E468 00007010 */ mfhi $t6
|
||||
/* 00F06C 8000E46C 31C2FFFF */ andi $v0, $t6, 0xffff
|
||||
/* 00F070 8000E470 00022400 */ sll $a0, $v0, 0x10
|
||||
/* 00F074 8000E474 00822023 */ subu $a0, $a0, $v0
|
||||
/* 00F078 8000E478 0081001A */ div $zero, $a0, $at
|
||||
/* 00F07C 8000E47C 00007812 */ mflo $t7
|
||||
/* 00F080 8000E480 31E4FFFF */ andi $a0, $t7, 0xffff
|
||||
/* 00F084 8000E484 00408825 */ move $s1, $v0
|
||||
/* 00F088 8000E488 AFA40044 */ sw $a0, 0x44($sp)
|
||||
/* 00F08C 8000E48C 0C0AE00E */ jal coss
|
||||
/* 00F090 8000E490 AFA20048 */ sw $v0, 0x48($sp)
|
||||
/* 00F094 8000E494 3C014039 */ li $at, 0x40390000 # 2.890625
|
||||
/* 00F098 8000E498 44813800 */ mtc1 $at, $f7
|
||||
/* 00F09C 8000E49C 44803000 */ mtc1 $zero, $f6
|
||||
/* 00F0A0 8000E4A0 460002A1 */ cvt.d.s $f10, $f0
|
||||
/* 00F0A4 8000E4A4 8FA40044 */ lw $a0, 0x44($sp)
|
||||
/* 00F0A8 8000E4A8 46265202 */ mul.d $f8, $f10, $f6
|
||||
/* 00F0AC 8000E4AC 46204120 */ cvt.s.d $f4, $f8
|
||||
/* 00F0B0 8000E4B0 0C0AE006 */ jal sins
|
||||
/* 00F0B4 8000E4B4 E7A40118 */ swc1 $f4, 0x118($sp)
|
||||
/* 00F0B8 8000E4B8 97AB00CA */ lhu $t3, 0xca($sp)
|
||||
/* 00F0BC 8000E4BC 3C0A8016 */ lui $t2, %hi(D_80164550) # $t2, 0x8016
|
||||
/* 00F0C0 8000E4C0 8D4A4550 */ lw $t2, %lo(D_80164550)($t2)
|
||||
/* 00F0C4 8000E4C4 000B60C0 */ sll $t4, $t3, 3
|
||||
/* 00F0C8 8000E4C8 3C014060 */ li $at, 0x40600000 # 3.500000
|
||||
/* 00F0CC 8000E4CC 014C1021 */ addu $v0, $t2, $t4
|
||||
/* 00F0D0 8000E4D0 844D0000 */ lh $t5, ($v0)
|
||||
/* 00F0D4 8000E4D4 8FA40048 */ lw $a0, 0x48($sp)
|
||||
/* 00F0D8 8000E4D8 C7A80118 */ lwc1 $f8, 0x118($sp)
|
||||
/* 00F0DC 8000E4DC 448D5000 */ mtc1 $t5, $f10
|
||||
/* 00F0E0 8000E4E0 24840001 */ addiu $a0, $a0, 1
|
||||
/* 00F0E4 8000E4E4 C6040050 */ lwc1 $f4, 0x50($s0)
|
||||
/* 00F0E8 8000E4E8 468051A0 */ cvt.s.w $f6, $f10
|
||||
/* 00F0EC 8000E4EC 44815000 */ mtc1 $at, $f10
|
||||
/* 00F0F0 8000E4F0 3C014039 */ li $at, 0x40390000 # 2.890625
|
||||
/* 00F0F4 8000E4F4 44814800 */ mtc1 $at, $f9
|
||||
/* 00F0F8 8000E4F8 24010168 */ li $at, 360
|
||||
/* 00F0FC 8000E4FC 0081001A */ div $zero, $a0, $at
|
||||
/* 00F100 8000E500 0000C010 */ mfhi $t8
|
||||
/* 00F104 8000E504 00187C00 */ sll $t7, $t8, 0x10
|
||||
/* 00F108 8000E508 01F87823 */ subu $t7, $t7, $t8
|
||||
/* 00F10C 8000E50C 01E1001A */ div $zero, $t7, $at
|
||||
/* 00F110 8000E510 46083580 */ add.s $f22, $f6, $f8
|
||||
/* 00F114 8000E514 44804000 */ mtc1 $zero, $f8
|
||||
/* 00F118 8000E518 844E0004 */ lh $t6, 4($v0)
|
||||
/* 00F11C 8000E51C 460001A1 */ cvt.d.s $f6, $f0
|
||||
/* 00F120 8000E520 460A2500 */ add.s $f20, $f4, $f10
|
||||
/* 00F124 8000E524 46283102 */ mul.d $f4, $f6, $f8
|
||||
/* 00F128 8000E528 448E3000 */ mtc1 $t6, $f6
|
||||
/* 00F12C 8000E52C 3C068016 */ lui $a2, %hi(D_80162FB0) # $a2, 0x8016
|
||||
/* 00F130 8000E530 24C62FB0 */ addiu $a2, %lo(D_80162FB0) # addiu $a2, $a2, 0x2fb0
|
||||
/* 00F134 8000E534 0000C812 */ mflo $t9
|
||||
/* 00F138 8000E538 3324FFFF */ andi $a0, $t9, 0xffff
|
||||
/* 00F13C 8000E53C E4D60000 */ swc1 $f22, ($a2)
|
||||
/* 00F140 8000E540 46803220 */ cvt.s.w $f8, $f6
|
||||
/* 00F144 8000E544 E4D40004 */ swc1 $f20, 4($a2)
|
||||
/* 00F148 8000E548 AFA40044 */ sw $a0, 0x44($sp)
|
||||
/* 00F14C 8000E54C AFA20110 */ sw $v0, 0x110($sp)
|
||||
/* 00F150 8000E550 462022A0 */ cvt.s.d $f10, $f4
|
||||
/* 00F154 8000E554 460A4600 */ add.s $f24, $f8, $f10
|
||||
/* 00F158 8000E558 0C0AE00E */ jal coss
|
||||
/* 00F15C 8000E55C E4D80008 */ swc1 $f24, 8($a2)
|
||||
/* 00F160 8000E560 3C014039 */ li $at, 0x40390000 # 2.890625
|
||||
/* 00F164 8000E564 44813800 */ mtc1 $at, $f7
|
||||
/* 00F168 8000E568 44803000 */ mtc1 $zero, $f6
|
||||
/* 00F16C 8000E56C 46000121 */ cvt.d.s $f4, $f0
|
||||
/* 00F170 8000E570 8FA40044 */ lw $a0, 0x44($sp)
|
||||
/* 00F174 8000E574 46262202 */ mul.d $f8, $f4, $f6
|
||||
/* 00F178 8000E578 462042A0 */ cvt.s.d $f10, $f8
|
||||
/* 00F17C 8000E57C 0C0AE006 */ jal sins
|
||||
/* 00F180 8000E580 E7AA0118 */ swc1 $f10, 0x118($sp)
|
||||
/* 00F184 8000E584 8FA20110 */ lw $v0, 0x110($sp)
|
||||
/* 00F188 8000E588 C7A80118 */ lwc1 $f8, 0x118($sp)
|
||||
/* 00F18C 8000E58C 3C058016 */ lui $a1, %hi(D_80162FC0) # $a1, 0x8016
|
||||
/* 00F190 8000E590 844A0000 */ lh $t2, ($v0)
|
||||
/* 00F194 8000E594 24A52FC0 */ addiu $a1, %lo(D_80162FC0) # addiu $a1, $a1, 0x2fc0
|
||||
/* 00F198 8000E598 3C014039 */ li $at, 0x40390000 # 2.890625
|
||||
/* 00F19C 8000E59C 448A2000 */ mtc1 $t2, $f4
|
||||
/* 00F1A0 8000E5A0 3C068016 */ lui $a2, %hi(D_80162FB0) # 0x8016
|
||||
/* 00F1A4 8000E5A4 24C42FB0 */ addiu $a0, $a2, %lo(D_80162FB0) # 0x2fb0
|
||||
/* 00F1A8 8000E5A8 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 00F1AC 8000E5AC 46083280 */ add.s $f10, $f6, $f8
|
||||
/* 00F1B0 8000E5B0 44815800 */ mtc1 $at, $f11
|
||||
/* 00F1B4 8000E5B4 46000221 */ cvt.d.s $f8, $f0
|
||||
/* 00F1B8 8000E5B8 E4AA0000 */ swc1 $f10, ($a1)
|
||||
/* 00F1BC 8000E5BC 844C0002 */ lh $t4, 2($v0)
|
||||
/* 00F1C0 8000E5C0 44805000 */ mtc1 $zero, $f10
|
||||
/* 00F1C4 8000E5C4 448C2000 */ mtc1 $t4, $f4
|
||||
/* 00F1C8 8000E5C8 00000000 */ nop
|
||||
/* 00F1CC 8000E5CC 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 00F1D0 8000E5D0 462A4102 */ mul.d $f4, $f8, $f10
|
||||
/* 00F1D4 8000E5D4 E4A60004 */ swc1 $f6, 4($a1)
|
||||
/* 00F1D8 8000E5D8 844D0004 */ lh $t5, 4($v0)
|
||||
/* 00F1DC 8000E5DC 462021A0 */ cvt.s.d $f6, $f4
|
||||
/* 00F1E0 8000E5E0 448D4000 */ mtc1 $t5, $f8
|
||||
/* 00F1E4 8000E5E4 00000000 */ nop
|
||||
/* 00F1E8 8000E5E8 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 00F1EC 8000E5EC 46065100 */ add.s $f4, $f10, $f6
|
||||
/* 00F1F0 8000E5F0 0C0AD489 */ jal get_angle_between_points
|
||||
/* 00F1F4 8000E5F4 E4A40008 */ swc1 $f4, 8($a1)
|
||||
/* 00F1F8 8000E5F8 00027400 */ sll $t6, $v0, 0x10
|
||||
/* 00F1FC 8000E5FC 01C27023 */ subu $t6, $t6, $v0
|
||||
/* 00F200 8000E600 3401FFF0 */ li $at, 65520
|
||||
/* 00F204 8000E604 01C1001A */ div $zero, $t6, $at
|
||||
/* 00F208 8000E608 0000C012 */ mflo $t8
|
||||
/* 00F20C 8000E60C A7B800C2 */ sh $t8, 0xc2($sp)
|
||||
/* 00F210 8000E610 10000124 */ b .L8000EAA4
|
||||
/* 00F214 8000E614 3403FFFF */ li $v1, 65535
|
||||
glabel L8000E618
|
||||
/* 00F218 8000E618 3C014060 */ li $at, 0x40600000 # 3.500000
|
||||
/* 00F21C 8000E61C 44815000 */ mtc1 $at, $f10
|
||||
/* 00F220 8000E620 C6080050 */ lwc1 $f8, 0x50($s0)
|
||||
/* 00F224 8000E624 A7A000C2 */ sh $zero, 0xc2($sp)
|
||||
/* 00F228 8000E628 3403FFFF */ li $v1, 65535
|
||||
/* 00F22C 8000E62C 1000011D */ b .L8000EAA4
|
||||
/* 00F230 8000E630 460A4500 */ add.s $f20, $f8, $f10
|
||||
glabel L8000E634
|
||||
/* 00F234 8000E634 3C0F8016 */ lui $t7, %hi(D_8016347C) # $t7, 0x8016
|
||||
/* 00F238 8000E638 85EF347C */ lh $t7, %lo(D_8016347C)($t7)
|
||||
/* 00F23C 8000E63C 3C198016 */ lui $t9, %hi(gNearestWaypointByPlayerId + 0x6) # $t9, 0x8016
|
||||
/* 00F240 8000E640 11E00007 */ beqz $t7, .L8000E660
|
||||
/* 00F244 8000E644 00000000 */ nop
|
||||
/* 00F248 8000E648 9739443E */ lhu $t9, %lo(gNearestWaypointByPlayerId + 0x6)($t9)
|
||||
/* 00F24C 8000E64C 87A700CA */ lh $a3, 0xca($sp)
|
||||
/* 00F250 8000E650 240B0003 */ li $t3, 3
|
||||
/* 00F254 8000E654 2B210005 */ slti $at, $t9, 5
|
||||
/* 00F258 8000E658 50200004 */ beql $at, $zero, .L8000E66C
|
||||
/* 00F25C 8000E65C 4406C000 */ mfc1 $a2, $f24
|
||||
.L8000E660:
|
||||
/* 00F260 8000E660 10000110 */ b .L8000EAA4
|
||||
/* 00F264 8000E664 3403FFFF */ li $v1, 65535
|
||||
/* 00F268 8000E668 4406C000 */ mfc1 $a2, $f24
|
||||
.L8000E66C:
|
||||
/* 00F26C 8000E66C 4600B306 */ mov.s $f12, $f22
|
||||
/* 00F270 8000E670 4600A386 */ mov.s $f14, $f20
|
||||
/* 00F274 8000E674 0C0034AD */ jal func_8000D2B4
|
||||
/* 00F278 8000E678 AFAB0010 */ sw $t3, 0x10($sp)
|
||||
/* 00F27C 8000E67C 3044FFFF */ andi $a0, $v0, 0xffff
|
||||
/* 00F280 8000E680 00401825 */ move $v1, $v0
|
||||
/* 00F284 8000E684 04800006 */ bltz $a0, .L8000E6A0
|
||||
/* 00F288 8000E688 A7A200CA */ sh $v0, 0xca($sp)
|
||||
/* 00F28C 8000E68C 3C0A8016 */ lui $t2, %hi(gWaypointCountByPathIndex + 0x6) # $t2, 0x8016
|
||||
/* 00F290 8000E690 954A45CE */ lhu $t2, %lo(gWaypointCountByPathIndex + 0x6)($t2)
|
||||
/* 00F294 8000E694 0144082A */ slt $at, $t2, $a0
|
||||
/* 00F298 8000E698 50200003 */ beql $at, $zero, .L8000E6A8
|
||||
/* 00F29C 8000E69C 97A900CA */ lhu $t1, 0xca($sp)
|
||||
.L8000E6A0:
|
||||
/* 00F2A0 8000E6A0 A7A000CA */ sh $zero, 0xca($sp)
|
||||
/* 00F2A4 8000E6A4 97A900CA */ lhu $t1, 0xca($sp)
|
||||
.L8000E6A8:
|
||||
/* 00F2A8 8000E6A8 3C058016 */ lui $a1, %hi(D_80162FC0) # $a1, 0x8016
|
||||
/* 00F2AC 8000E6AC 24A52FC0 */ addiu $a1, %lo(D_80162FC0) # addiu $a1, $a1, 0x2fc0
|
||||
/* 00F2B0 8000E6B0 2921001A */ slti $at, $t1, 0x1a
|
||||
/* 00F2B4 8000E6B4 1020004E */ beqz $at, .L8000E7F0
|
||||
/* 00F2B8 8000E6B8 3C068016 */ lui $a2, %hi(D_80162FB0) # 0x8016
|
||||
/* 00F2BC 8000E6BC 3C078016 */ lui $a3, %hi(gWaypointCountByPathIndex + 0x6) # $a3, 0x8016
|
||||
/* 00F2C0 8000E6C0 94E745CE */ lhu $a3, %lo(gWaypointCountByPathIndex + 0x6)($a3)
|
||||
/* 00F2C4 8000E6C4 252C0001 */ addiu $t4, $t1, 1
|
||||
/* 00F2C8 8000E6C8 252B0002 */ addiu $t3, $t1, 2
|
||||
/* 00F2CC 8000E6CC 0187001A */ div $zero, $t4, $a3
|
||||
/* 00F2D0 8000E6D0 00006810 */ mfhi $t5
|
||||
/* 00F2D4 8000E6D4 3C088016 */ lui $t0, %hi(D_80164550 + 0xC) # $t0, 0x8016
|
||||
/* 00F2D8 8000E6D8 8D08455C */ lw $t0, %lo(D_80164550 + 0xC)($t0)
|
||||
/* 00F2DC 8000E6DC 0167001A */ div $zero, $t3, $a3
|
||||
/* 00F2E0 8000E6E0 000D70C0 */ sll $t6, $t5, 3
|
||||
/* 00F2E4 8000E6E4 01C81021 */ addu $v0, $t6, $t0
|
||||
/* 00F2E8 8000E6E8 84580000 */ lh $t8, ($v0)
|
||||
/* 00F2EC 8000E6EC 3C068016 */ lui $a2, %hi(D_80162FB0) # $a2, 0x8016
|
||||
/* 00F2F0 8000E6F0 24C62FB0 */ addiu $a2, %lo(D_80162FB0) # addiu $a2, $a2, 0x2fb0
|
||||
/* 00F2F4 8000E6F4 44983000 */ mtc1 $t8, $f6
|
||||
/* 00F2F8 8000E6F8 00005010 */ mfhi $t2
|
||||
/* 00F2FC 8000E6FC 3C058016 */ lui $a1, %hi(D_80162FC0) # $a1, 0x8016
|
||||
/* 00F300 8000E700 46803120 */ cvt.s.w $f4, $f6
|
||||
/* 00F304 8000E704 24A52FC0 */ addiu $a1, %lo(D_80162FC0) # addiu $a1, $a1, 0x2fc0
|
||||
/* 00F308 8000E708 14E00002 */ bnez $a3, .L8000E714
|
||||
/* 00F30C 8000E70C 00000000 */ nop
|
||||
/* 00F310 8000E710 0007000D */ break 7
|
||||
.L8000E714:
|
||||
/* 00F314 8000E714 2401FFFF */ li $at, -1
|
||||
/* 00F318 8000E718 14E10004 */ bne $a3, $at, .L8000E72C
|
||||
/* 00F31C 8000E71C 3C018000 */ lui $at, 0x8000
|
||||
/* 00F320 8000E720 15810002 */ bne $t4, $at, .L8000E72C
|
||||
/* 00F324 8000E724 00000000 */ nop
|
||||
/* 00F328 8000E728 0006000D */ break 6
|
||||
.L8000E72C:
|
||||
/* 00F32C 8000E72C E4C40000 */ swc1 $f4, ($a2)
|
||||
/* 00F330 8000E730 844F0002 */ lh $t7, 2($v0)
|
||||
/* 00F334 8000E734 000A60C0 */ sll $t4, $t2, 3
|
||||
/* 00F338 8000E738 01881821 */ addu $v1, $t4, $t0
|
||||
/* 00F33C 8000E73C 448F4000 */ mtc1 $t7, $f8
|
||||
/* 00F340 8000E740 00C02025 */ move $a0, $a2
|
||||
/* 00F344 8000E744 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 00F348 8000E748 E4CA0004 */ swc1 $f10, 4($a2)
|
||||
/* 00F34C 8000E74C 84590004 */ lh $t9, 4($v0)
|
||||
/* 00F350 8000E750 44993000 */ mtc1 $t9, $f6
|
||||
/* 00F354 8000E754 00000000 */ nop
|
||||
/* 00F358 8000E758 46803120 */ cvt.s.w $f4, $f6
|
||||
/* 00F35C 8000E75C E4C40008 */ swc1 $f4, 8($a2)
|
||||
/* 00F360 8000E760 846D0000 */ lh $t5, ($v1)
|
||||
/* 00F364 8000E764 14E00002 */ bnez $a3, .L8000E770
|
||||
/* 00F368 8000E768 00000000 */ nop
|
||||
/* 00F36C 8000E76C 0007000D */ break 7
|
||||
.L8000E770:
|
||||
/* 00F370 8000E770 2401FFFF */ li $at, -1
|
||||
/* 00F374 8000E774 14E10004 */ bne $a3, $at, .L8000E788
|
||||
/* 00F378 8000E778 3C018000 */ lui $at, 0x8000
|
||||
/* 00F37C 8000E77C 15610002 */ bne $t3, $at, .L8000E788
|
||||
/* 00F380 8000E780 00000000 */ nop
|
||||
/* 00F384 8000E784 0006000D */ break 6
|
||||
.L8000E788:
|
||||
/* 00F388 8000E788 448D4000 */ mtc1 $t5, $f8
|
||||
/* 00F38C 8000E78C 00000000 */ nop
|
||||
/* 00F390 8000E790 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 00F394 8000E794 E4AA0000 */ swc1 $f10, ($a1)
|
||||
/* 00F398 8000E798 846E0002 */ lh $t6, 2($v1)
|
||||
/* 00F39C 8000E79C 448E3000 */ mtc1 $t6, $f6
|
||||
/* 00F3A0 8000E7A0 00000000 */ nop
|
||||
/* 00F3A4 8000E7A4 46803120 */ cvt.s.w $f4, $f6
|
||||
/* 00F3A8 8000E7A8 E4A40004 */ swc1 $f4, 4($a1)
|
||||
/* 00F3AC 8000E7AC 84780004 */ lh $t8, 4($v1)
|
||||
/* 00F3B0 8000E7B0 44984000 */ mtc1 $t8, $f8
|
||||
/* 00F3B4 8000E7B4 00000000 */ nop
|
||||
/* 00F3B8 8000E7B8 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 00F3BC 8000E7BC 0C0AD489 */ jal get_angle_between_points
|
||||
/* 00F3C0 8000E7C0 E4AA0008 */ swc1 $f10, 8($a1)
|
||||
/* 00F3C4 8000E7C4 00027C00 */ sll $t7, $v0, 0x10
|
||||
/* 00F3C8 8000E7C8 01E27823 */ subu $t7, $t7, $v0
|
||||
/* 00F3CC 8000E7CC 3401FFF0 */ li $at, 65520
|
||||
/* 00F3D0 8000E7D0 01E1001A */ div $zero, $t7, $at
|
||||
/* 00F3D4 8000E7D4 0000C812 */ mflo $t9
|
||||
/* 00F3D8 8000E7D8 3C058016 */ lui $a1, %hi(D_80162FC0) # $a1, 0x8016
|
||||
/* 00F3DC 8000E7DC 3C068016 */ lui $a2, %hi(D_80162FB0) # $a2, 0x8016
|
||||
/* 00F3E0 8000E7E0 24C62FB0 */ addiu $a2, %lo(D_80162FB0) # addiu $a2, $a2, 0x2fb0
|
||||
/* 00F3E4 8000E7E4 24A52FC0 */ addiu $a1, %lo(D_80162FC0) # addiu $a1, $a1, 0x2fc0
|
||||
/* 00F3E8 8000E7E8 10000018 */ b .L8000E84C
|
||||
/* 00F3EC 8000E7EC A7B900C2 */ sh $t9, 0xc2($sp)
|
||||
.L8000E7F0:
|
||||
/* 00F3F0 8000E7F0 24C42FB0 */ addiu $a0, $a2, %lo(D_80162FB0) # 0x2fb0
|
||||
/* 00F3F4 8000E7F4 E4960000 */ swc1 $f22, ($a0)
|
||||
/* 00F3F8 8000E7F8 E4940004 */ swc1 $f20, 4($a0)
|
||||
/* 00F3FC 8000E7FC E4980008 */ swc1 $f24, 8($a0)
|
||||
/* 00F400 8000E800 3C01800F */ lui $at, %hi(D_800ED01C) # $at, 0x800f
|
||||
/* 00F404 8000E804 C426D01C */ lwc1 $f6, %lo(D_800ED01C)($at)
|
||||
/* 00F408 8000E808 44802000 */ mtc1 $zero, $f4
|
||||
/* 00F40C 8000E80C 3C01800F */ lui $at, %hi(D_800ED020) # $at, 0x800f
|
||||
/* 00F410 8000E810 E4A60000 */ swc1 $f6, ($a1)
|
||||
/* 00F414 8000E814 E4A40004 */ swc1 $f4, 4($a1)
|
||||
/* 00F418 8000E818 C428D020 */ lwc1 $f8, %lo(D_800ED020)($at)
|
||||
/* 00F41C 8000E81C 0C0AD489 */ jal get_angle_between_points
|
||||
/* 00F420 8000E820 E4A80008 */ swc1 $f8, 8($a1)
|
||||
/* 00F424 8000E824 00025C00 */ sll $t3, $v0, 0x10
|
||||
/* 00F428 8000E828 01625823 */ subu $t3, $t3, $v0
|
||||
/* 00F42C 8000E82C 3401FFF0 */ li $at, 65520
|
||||
/* 00F430 8000E830 0161001A */ div $zero, $t3, $at
|
||||
/* 00F434 8000E834 00005012 */ mflo $t2
|
||||
/* 00F438 8000E838 3C058016 */ lui $a1, %hi(D_80162FC0) # $a1, 0x8016
|
||||
/* 00F43C 8000E83C 3C068016 */ lui $a2, %hi(D_80162FB0) # $a2, 0x8016
|
||||
/* 00F440 8000E840 24C62FB0 */ addiu $a2, %lo(D_80162FB0) # addiu $a2, $a2, 0x2fb0
|
||||
/* 00F444 8000E844 24A52FC0 */ addiu $a1, %lo(D_80162FC0) # addiu $a1, $a1, 0x2fc0
|
||||
/* 00F448 8000E848 A7AA00C2 */ sh $t2, 0xc2($sp)
|
||||
.L8000E84C:
|
||||
/* 00F44C 8000E84C C4AA0000 */ lwc1 $f10, ($a1)
|
||||
/* 00F450 8000E850 C4C60000 */ lwc1 $f6, ($a2)
|
||||
/* 00F454 8000E854 3C013F00 */ li $at, 0x3F000000 # 0.500000
|
||||
/* 00F458 8000E858 44810000 */ mtc1 $at, $f0
|
||||
/* 00F45C 8000E85C 46065100 */ add.s $f4, $f10, $f6
|
||||
/* 00F460 8000E860 C4C60008 */ lwc1 $f6, 8($a2)
|
||||
/* 00F464 8000E864 C4AA0008 */ lwc1 $f10, 8($a1)
|
||||
/* 00F468 8000E868 46002202 */ mul.s $f8, $f4, $f0
|
||||
/* 00F46C 8000E86C 46065100 */ add.s $f4, $f10, $f6
|
||||
/* 00F470 8000E870 46164381 */ sub.s $f14, $f8, $f22
|
||||
/* 00F474 8000E874 46002202 */ mul.s $f8, $f4, $f0
|
||||
/* 00F478 8000E878 E7AE00F8 */ swc1 $f14, 0xf8($sp)
|
||||
/* 00F47C 8000E87C 460E7282 */ mul.s $f10, $f14, $f14
|
||||
/* 00F480 8000E880 46184401 */ sub.s $f16, $f8, $f24
|
||||
/* 00F484 8000E884 46108182 */ mul.s $f6, $f16, $f16
|
||||
/* 00F488 8000E888 E7B000F0 */ swc1 $f16, 0xf0($sp)
|
||||
/* 00F48C 8000E88C 0C033850 */ jal sqrtf
|
||||
/* 00F490 8000E890 46065300 */ add.s $f12, $f10, $f6
|
||||
/* 00F494 8000E894 3C01800F */ lui $at, %hi(D_800ED024) # $at, 0x800f
|
||||
/* 00F498 8000E898 C424D024 */ lwc1 $f4, %lo(D_800ED024)($at)
|
||||
/* 00F49C 8000E89C 8FAC0120 */ lw $t4, 0x120($sp)
|
||||
/* 00F4A0 8000E8A0 3C0E8016 */ lui $t6, %hi(D_80164038) # $t6, 0x8016
|
||||
/* 00F4A4 8000E8A4 4600203C */ c.lt.s $f4, $f0
|
||||
/* 00F4A8 8000E8A8 C7AE00F8 */ lwc1 $f14, 0xf8($sp)
|
||||
/* 00F4AC 8000E8AC C7B000F0 */ lwc1 $f16, 0xf0($sp)
|
||||
/* 00F4B0 8000E8B0 25CE4038 */ addiu $t6, %lo(D_80164038) # addiu $t6, $t6, 0x4038
|
||||
/* 00F4B4 8000E8B4 4500000A */ bc1f .L8000E8E0
|
||||
/* 00F4B8 8000E8B8 000C6980 */ sll $t5, $t4, 6
|
||||
/* 00F4BC 8000E8BC C602003C */ lwc1 $f2, 0x3c($s0)
|
||||
/* 00F4C0 8000E8C0 460E1202 */ mul.s $f8, $f2, $f14
|
||||
/* 00F4C4 8000E8C4 00000000 */ nop
|
||||
/* 00F4C8 8000E8C8 46101182 */ mul.s $f6, $f2, $f16
|
||||
/* 00F4CC 8000E8CC 46004283 */ div.s $f10, $f8, $f0
|
||||
/* 00F4D0 8000E8D0 46003103 */ div.s $f4, $f6, $f0
|
||||
/* 00F4D4 8000E8D4 460AB580 */ add.s $f22, $f22, $f10
|
||||
/* 00F4D8 8000E8D8 10000008 */ b .L8000E8FC
|
||||
/* 00F4DC 8000E8DC 4604C600 */ add.s $f24, $f24, $f4
|
||||
.L8000E8E0:
|
||||
/* 00F4E0 8000E8E0 3C0140A0 */ li $at, 0x40A00000 # 5.000000
|
||||
/* 00F4E4 8000E8E4 44810000 */ mtc1 $at, $f0
|
||||
/* 00F4E8 8000E8E8 00000000 */ nop
|
||||
/* 00F4EC 8000E8EC 46007203 */ div.s $f8, $f14, $f0
|
||||
/* 00F4F0 8000E8F0 46008283 */ div.s $f10, $f16, $f0
|
||||
/* 00F4F4 8000E8F4 4608B580 */ add.s $f22, $f22, $f8
|
||||
/* 00F4F8 8000E8F8 460AC600 */ add.s $f24, $f24, $f10
|
||||
.L8000E8FC:
|
||||
/* 00F4FC 8000E8FC 3C0144FA */ li $at, 0x44FA0000 # 2000.000000
|
||||
/* 00F500 8000E900 44817000 */ mtc1 $at, $f14
|
||||
/* 00F504 8000E904 4406C000 */ mfc1 $a2, $f24
|
||||
/* 00F508 8000E908 01AE2021 */ addu $a0, $t5, $t6
|
||||
/* 00F50C 8000E90C 9487000A */ lhu $a3, 0xa($a0)
|
||||
/* 00F510 8000E910 AFA40048 */ sw $a0, 0x48($sp)
|
||||
/* 00F514 8000E914 0C0AAF8C */ jal func_802ABE30
|
||||
/* 00F518 8000E918 4600B306 */ mov.s $f12, $f22
|
||||
/* 00F51C 8000E91C 3C014060 */ li $at, 0x40600000 # 3.500000
|
||||
/* 00F520 8000E920 44813000 */ mtc1 $at, $f6
|
||||
/* 00F524 8000E924 3C01800F */ lui $at, %hi(D_800ED028)
|
||||
/* 00F528 8000E928 D428D028 */ ldc1 $f8, %lo(D_800ED028)($at)
|
||||
/* 00F52C 8000E92C 46060500 */ add.s $f20, $f0, $f6
|
||||
/* 00F530 8000E930 4406B000 */ mfc1 $a2, $f22
|
||||
/* 00F534 8000E934 8FA40048 */ lw $a0, 0x48($sp)
|
||||
/* 00F538 8000E938 3C054120 */ lui $a1, 0x4120
|
||||
/* 00F53C 8000E93C 4600A121 */ cvt.d.s $f4, $f20
|
||||
/* 00F540 8000E940 4628203C */ c.lt.d $f4, $f8
|
||||
/* 00F544 8000E944 00000000 */ nop
|
||||
/* 00F548 8000E948 45020003 */ bc1fl .L8000E958
|
||||
/* 00F54C 8000E94C 4407A000 */ mfc1 $a3, $f20
|
||||
/* 00F550 8000E950 C6140004 */ lwc1 $f20, 4($s0)
|
||||
/* 00F554 8000E954 4407A000 */ mfc1 $a3, $f20
|
||||
.L8000E958:
|
||||
/* 00F558 8000E958 0C0AB772 */ jal func_802ADDC8
|
||||
/* 00F55C 8000E95C E7B80010 */ swc1 $f24, 0x10($sp)
|
||||
/* 00F560 8000E960 10000050 */ b .L8000EAA4
|
||||
/* 00F564 8000E964 3403FFFF */ li $v1, 65535
|
||||
glabel L8000E968
|
||||
/* 00F568 8000E968 97B800CA */ lhu $t8, 0xca($sp)
|
||||
/* 00F56C 8000E96C 3C078016 */ lui $a3, %hi(D_80164550) # $a3, 0x8016
|
||||
/* 00F570 8000E970 8CE74550 */ lw $a3, %lo(D_80164550)($a3)
|
||||
/* 00F574 8000E974 001878C0 */ sll $t7, $t8, 3
|
||||
/* 00F578 8000E978 3C068016 */ lui $a2, %hi(D_80162FB0) # $a2, 0x8016
|
||||
/* 00F57C 8000E97C 00EF1021 */ addu $v0, $a3, $t7
|
||||
/* 00F580 8000E980 84590000 */ lh $t9, ($v0)
|
||||
/* 00F584 8000E984 24C62FB0 */ addiu $a2, %lo(D_80162FB0) # addiu $a2, $a2, 0x2fb0
|
||||
/* 00F588 8000E988 97AC00CA */ lhu $t4, 0xca($sp)
|
||||
/* 00F58C 8000E98C 44995000 */ mtc1 $t9, $f10
|
||||
/* 00F590 8000E990 3C0E8016 */ lui $t6, %hi(gWaypointCountByPathIndex) # $t6, 0x8016
|
||||
/* 00F594 8000E994 258D0001 */ addiu $t5, $t4, 1
|
||||
/* 00F598 8000E998 468051A0 */ cvt.s.w $f6, $f10
|
||||
/* 00F59C 8000E99C 3C058016 */ lui $a1, %hi(D_80162FC0) # $a1, 0x8016
|
||||
/* 00F5A0 8000E9A0 24A52FC0 */ addiu $a1, %lo(D_80162FC0) # addiu $a1, $a1, 0x2fc0
|
||||
/* 00F5A4 8000E9A4 E4C60000 */ swc1 $f6, ($a2)
|
||||
/* 00F5A8 8000E9A8 844B0002 */ lh $t3, 2($v0)
|
||||
/* 00F5AC 8000E9AC 448B2000 */ mtc1 $t3, $f4
|
||||
/* 00F5B0 8000E9B0 00000000 */ nop
|
||||
/* 00F5B4 8000E9B4 46802220 */ cvt.s.w $f8, $f4
|
||||
/* 00F5B8 8000E9B8 E4C80004 */ swc1 $f8, 4($a2)
|
||||
/* 00F5BC 8000E9BC 844A0004 */ lh $t2, 4($v0)
|
||||
/* 00F5C0 8000E9C0 448A5000 */ mtc1 $t2, $f10
|
||||
/* 00F5C4 8000E9C4 00000000 */ nop
|
||||
/* 00F5C8 8000E9C8 468051A0 */ cvt.s.w $f6, $f10
|
||||
/* 00F5CC 8000E9CC E4C60008 */ swc1 $f6, 8($a2)
|
||||
/* 00F5D0 8000E9D0 95CE45C8 */ lhu $t6, %lo(gWaypointCountByPathIndex)($t6)
|
||||
/* 00F5D4 8000E9D4 01AE001A */ div $zero, $t5, $t6
|
||||
/* 00F5D8 8000E9D8 0000C010 */ mfhi $t8
|
||||
/* 00F5DC 8000E9DC 001878C0 */ sll $t7, $t8, 3
|
||||
/* 00F5E0 8000E9E0 01E71821 */ addu $v1, $t7, $a3
|
||||
/* 00F5E4 8000E9E4 84790000 */ lh $t9, ($v1)
|
||||
/* 00F5E8 8000E9E8 15C00002 */ bnez $t6, .L8000E9F4
|
||||
/* 00F5EC 8000E9EC 00000000 */ nop
|
||||
/* 00F5F0 8000E9F0 0007000D */ break 7
|
||||
.L8000E9F4:
|
||||
/* 00F5F4 8000E9F4 2401FFFF */ li $at, -1
|
||||
/* 00F5F8 8000E9F8 15C10004 */ bne $t6, $at, .L8000EA0C
|
||||
/* 00F5FC 8000E9FC 3C018000 */ lui $at, 0x8000
|
||||
/* 00F600 8000EA00 15A10002 */ bne $t5, $at, .L8000EA0C
|
||||
/* 00F604 8000EA04 00000000 */ nop
|
||||
/* 00F608 8000EA08 0006000D */ break 6
|
||||
.L8000EA0C:
|
||||
/* 00F60C 8000EA0C 44992000 */ mtc1 $t9, $f4
|
||||
/* 00F610 8000EA10 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
|
||||
/* 00F614 8000EA14 46802220 */ cvt.s.w $f8, $f4
|
||||
/* 00F618 8000EA18 E4A80000 */ swc1 $f8, ($a1)
|
||||
/* 00F61C 8000EA1C 846B0002 */ lh $t3, 2($v1)
|
||||
/* 00F620 8000EA20 448B5000 */ mtc1 $t3, $f10
|
||||
/* 00F624 8000EA24 00000000 */ nop
|
||||
/* 00F628 8000EA28 468051A0 */ cvt.s.w $f6, $f10
|
||||
/* 00F62C 8000EA2C 44915000 */ mtc1 $s1, $f10
|
||||
/* 00F630 8000EA30 E4A60004 */ swc1 $f6, 4($a1)
|
||||
/* 00F634 8000EA34 846A0004 */ lh $t2, 4($v1)
|
||||
/* 00F638 8000EA38 468051A0 */ cvt.s.w $f6, $f10
|
||||
/* 00F63C 8000EA3C 448A2000 */ mtc1 $t2, $f4
|
||||
/* 00F640 8000EA40 00000000 */ nop
|
||||
/* 00F644 8000EA44 46802220 */ cvt.s.w $f8, $f4
|
||||
/* 00F648 8000EA48 06210004 */ bgez $s1, .L8000EA5C
|
||||
/* 00F64C 8000EA4C E4A80008 */ swc1 $f8, 8($a1)
|
||||
/* 00F650 8000EA50 44812000 */ mtc1 $at, $f4
|
||||
/* 00F654 8000EA54 00000000 */ nop
|
||||
/* 00F658 8000EA58 46043180 */ add.s $f6, $f6, $f4
|
||||
.L8000EA5C:
|
||||
/* 00F65C 8000EA5C 3C01800F */ lui $at, %hi(D_800ED030) # $at, 0x800f
|
||||
/* 00F660 8000EA60 C428D030 */ lwc1 $f8, %lo(D_800ED030)($at)
|
||||
/* 00F664 8000EA64 3C014040 */ li $at, 0x40400000 # 3.000000
|
||||
/* 00F668 8000EA68 44812000 */ mtc1 $at, $f4
|
||||
/* 00F66C 8000EA6C 46083282 */ mul.s $f10, $f6, $f8
|
||||
/* 00F670 8000EA70 00C02025 */ move $a0, $a2
|
||||
/* 00F674 8000EA74 460A2181 */ sub.s $f6, $f4, $f10
|
||||
/* 00F678 8000EA78 0C0AD489 */ jal get_angle_between_points
|
||||
/* 00F67C 8000EA7C 4606A500 */ add.s $f20, $f20, $f6
|
||||
/* 00F680 8000EA80 00026400 */ sll $t4, $v0, 0x10
|
||||
/* 00F684 8000EA84 01826023 */ subu $t4, $t4, $v0
|
||||
/* 00F688 8000EA88 3401FFF0 */ li $at, 65520
|
||||
/* 00F68C 8000EA8C 0181001A */ div $zero, $t4, $at
|
||||
/* 00F690 8000EA90 00006812 */ mflo $t5
|
||||
/* 00F694 8000EA94 A7AD00C2 */ sh $t5, 0xc2($sp)
|
||||
/* 00F698 8000EA98 10000002 */ b .L8000EAA4
|
||||
/* 00F69C 8000EA9C 3403FFFF */ li $v1, 65535
|
||||
.L8000EAA0:
|
||||
/* 00F6A0 8000EAA0 3403FFFF */ li $v1, 65535
|
||||
.L8000EAA4:
|
||||
/* 00F6A4 8000EAA4 8FAE004C */ lw $t6, 0x4c($sp)
|
||||
.L8000EAA8:
|
||||
/* 00F6A8 8000EAA8 97AB00C2 */ lhu $t3, 0xc2($sp)
|
||||
/* 00F6AC 8000EAAC 24010004 */ li $at, 4
|
||||
/* 00F6B0 8000EAB0 15C1002B */ bne $t6, $at, .L8000EB60
|
||||
/* 00F6B4 8000EAB4 006B2023 */ subu $a0, $v1, $t3
|
||||
/* 00F6B8 8000EAB8 44914000 */ mtc1 $s1, $f8
|
||||
/* 00F6BC 8000EABC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
|
||||
/* 00F6C0 8000EAC0 06210004 */ bgez $s1, .L8000EAD4
|
||||
/* 00F6C4 8000EAC4 46804320 */ cvt.s.w $f12, $f8
|
||||
/* 00F6C8 8000EAC8 44812000 */ mtc1 $at, $f4
|
||||
/* 00F6CC 8000EACC 00000000 */ nop
|
||||
/* 00F6D0 8000EAD0 46046300 */ add.s $f12, $f12, $f4
|
||||
.L8000EAD4:
|
||||
/* 00F6D4 8000EAD4 97B800C2 */ lhu $t8, 0xc2($sp)
|
||||
/* 00F6D8 8000EAD8 460C6280 */ add.s $f10, $f12, $f12
|
||||
/* 00F6DC 8000EADC E7AC004C */ swc1 $f12, 0x4c($sp)
|
||||
/* 00F6E0 8000EAE0 00782023 */ subu $a0, $v1, $t8
|
||||
/* 00F6E4 8000EAE4 308FFFFF */ andi $t7, $a0, 0xffff
|
||||
/* 00F6E8 8000EAE8 E7AA0108 */ swc1 $f10, 0x108($sp)
|
||||
/* 00F6EC 8000EAEC 01E02025 */ move $a0, $t7
|
||||
/* 00F6F0 8000EAF0 0C0AE00E */ jal coss
|
||||
/* 00F6F4 8000EAF4 AFAF0048 */ sw $t7, 0x48($sp)
|
||||
/* 00F6F8 8000EAF8 C7AC004C */ lwc1 $f12, 0x4c($sp)
|
||||
/* 00F6FC 8000EAFC 8FA40048 */ lw $a0, 0x48($sp)
|
||||
/* 00F700 8000EB00 460C0182 */ mul.s $f6, $f0, $f12
|
||||
/* 00F704 8000EB04 0C0AE006 */ jal sins
|
||||
/* 00F708 8000EB08 E7A60118 */ swc1 $f6, 0x118($sp)
|
||||
/* 00F70C 8000EB0C 3C014040 */ li $at, 0x40400000 # 3.000000
|
||||
/* 00F710 8000EB10 44812000 */ mtc1 $at, $f4
|
||||
/* 00F714 8000EB14 C7A80108 */ lwc1 $f8, 0x108($sp)
|
||||
/* 00F718 8000EB18 3C01800F */ lui $at, %hi(D_800ED034) # $at, 0x800f
|
||||
/* 00F71C 8000EB1C C426D034 */ lwc1 $f6, %lo(D_800ED034)($at)
|
||||
/* 00F720 8000EB20 46044283 */ div.s $f10, $f8, $f4
|
||||
/* 00F724 8000EB24 C7AC004C */ lwc1 $f12, 0x4c($sp)
|
||||
/* 00F728 8000EB28 26310001 */ addiu $s1, $s1, 1
|
||||
/* 00F72C 8000EB2C 3239FFFF */ andi $t9, $s1, 0xffff
|
||||
/* 00F730 8000EB30 4606A201 */ sub.s $f8, $f20, $f6
|
||||
/* 00F734 8000EB34 2B21001F */ slti $at, $t9, 0x1f
|
||||
/* 00F738 8000EB38 460C0482 */ mul.s $f18, $f0, $f12
|
||||
/* 00F73C 8000EB3C 03208825 */ move $s1, $t9
|
||||
/* 00F740 8000EB40 460A4080 */ add.s $f2, $f8, $f10
|
||||
/* 00F744 8000EB44 E7A200AC */ swc1 $f2, 0xac($sp)
|
||||
/* 00F748 8000EB48 E7A200A0 */ swc1 $f2, 0xa0($sp)
|
||||
/* 00F74C 8000EB4C E7A20094 */ swc1 $f2, 0x94($sp)
|
||||
/* 00F750 8000EB50 14200038 */ bnez $at, .L8000EC34
|
||||
/* 00F754 8000EB54 E7A20088 */ swc1 $f2, 0x88($sp)
|
||||
/* 00F758 8000EB58 10000036 */ b .L8000EC34
|
||||
/* 00F75C 8000EB5C A7A0007E */ sh $zero, 0x7e($sp)
|
||||
.L8000EB60:
|
||||
/* 00F760 8000EB60 308AFFFF */ andi $t2, $a0, 0xffff
|
||||
/* 00F764 8000EB64 01402025 */ move $a0, $t2
|
||||
/* 00F768 8000EB68 0C0AE00E */ jal coss
|
||||
/* 00F76C 8000EB6C AFAA0048 */ sw $t2, 0x48($sp)
|
||||
/* 00F770 8000EB70 3C013FC0 */ li $at, 0x3FC00000 # 1.500000
|
||||
/* 00F774 8000EB74 44812000 */ mtc1 $at, $f4
|
||||
/* 00F778 8000EB78 8FA40048 */ lw $a0, 0x48($sp)
|
||||
/* 00F77C 8000EB7C 46040182 */ mul.s $f6, $f0, $f4
|
||||
/* 00F780 8000EB80 0C0AE006 */ jal sins
|
||||
/* 00F784 8000EB84 E7A60118 */ swc1 $f6, 0x118($sp)
|
||||
/* 00F788 8000EB88 97A2007C */ lhu $v0, 0x7c($sp)
|
||||
/* 00F78C 8000EB8C 3C013FC0 */ li $at, 0x3FC00000 # 1.500000
|
||||
/* 00F790 8000EB90 44819000 */ mtc1 $at, $f18
|
||||
/* 00F794 8000EB94 3C01800F */ lui $at, %hi(D_800ED038) # $at, 0x800f
|
||||
/* 00F798 8000EB98 C430D038 */ lwc1 $f16, %lo(D_800ED038)($at)
|
||||
/* 00F79C 8000EB9C 46120482 */ mul.s $f18, $f0, $f18
|
||||
/* 00F7A0 8000EBA0 24010003 */ li $at, 3
|
||||
/* 00F7A4 8000EBA4 0041001A */ div $zero, $v0, $at
|
||||
/* 00F7A8 8000EBA8 00006010 */ mfhi $t4
|
||||
/* 00F7AC 8000EBAC 4610A401 */ sub.s $f16, $f20, $f16
|
||||
/* 00F7B0 8000EBB0 448C7000 */ mtc1 $t4, $f14
|
||||
/* 00F7B4 8000EBB4 3C01800F */ lui $at, %hi(D_800ED03C) # $at, 0x800f
|
||||
/* 00F7B8 8000EBB8 C42CD03C */ lwc1 $f12, %lo(D_800ED03C)($at)
|
||||
/* 00F7BC 8000EBBC 468073A0 */ cvt.s.w $f14, $f14
|
||||
/* 00F7C0 8000EBC0 00022080 */ sll $a0, $v0, 2
|
||||
/* 00F7C4 8000EBC4 00822021 */ addu $a0, $a0, $v0
|
||||
/* 00F7C8 8000EBC8 00042380 */ sll $a0, $a0, 0xe
|
||||
/* 00F7CC 8000EBCC 00822023 */ subu $a0, $a0, $v0
|
||||
/* 00F7D0 8000EBD0 00042080 */ sll $a0, $a0, 2
|
||||
/* 00F7D4 8000EBD4 460C7302 */ mul.s $f12, $f14, $f12
|
||||
/* 00F7D8 8000EBD8 00822023 */ subu $a0, $a0, $v0
|
||||
/* 00F7DC 8000EBDC 00042080 */ sll $a0, $a0, 2
|
||||
/* 00F7E0 8000EBE0 24010168 */ li $at, 360
|
||||
/* 00F7E4 8000EBE4 0081001A */ div $zero, $a0, $at
|
||||
/* 00F7E8 8000EBE8 460C8381 */ sub.s $f14, $f16, $f12
|
||||
/* 00F7EC 8000EBEC 00006812 */ mflo $t5
|
||||
/* 00F7F0 8000EBF0 E7B20114 */ swc1 $f18, 0x114($sp)
|
||||
/* 00F7F4 8000EBF4 460C8300 */ add.s $f12, $f16, $f12
|
||||
/* 00F7F8 8000EBF8 E7AE00AC */ swc1 $f14, 0xac($sp)
|
||||
/* 00F7FC 8000EBFC E7AE0094 */ swc1 $f14, 0x94($sp)
|
||||
/* 00F800 8000EC00 31A4FFFF */ andi $a0, $t5, 0xffff
|
||||
/* 00F804 8000EC04 E7AC00A0 */ swc1 $f12, 0xa0($sp)
|
||||
/* 00F808 8000EC08 E7AC0088 */ swc1 $f12, 0x88($sp)
|
||||
/* 00F80C 8000EC0C 0C0AE006 */ jal sins
|
||||
/* 00F810 8000EC10 AFA2004C */ sw $v0, 0x4c($sp)
|
||||
/* 00F814 8000EC14 8FA2004C */ lw $v0, 0x4c($sp)
|
||||
/* 00F818 8000EC18 24010012 */ li $at, 18
|
||||
/* 00F81C 8000EC1C C7B20114 */ lwc1 $f18, 0x114($sp)
|
||||
/* 00F820 8000EC20 24580001 */ addiu $t8, $v0, 1
|
||||
/* 00F824 8000EC24 0301001A */ div $zero, $t8, $at
|
||||
/* 00F828 8000EC28 00007810 */ mfhi $t7
|
||||
/* 00F82C 8000EC2C 4600A500 */ add.s $f20, $f20, $f0
|
||||
/* 00F830 8000EC30 A7AF007C */ sh $t7, 0x7c($sp)
|
||||
.L8000EC34:
|
||||
/* 00F834 8000EC34 C7AE0118 */ lwc1 $f14, 0x118($sp)
|
||||
/* 00F838 8000EC38 46009307 */ neg.s $f12, $f18
|
||||
/* 00F83C 8000EC3C 46127281 */ sub.s $f10, $f14, $f18
|
||||
/* 00F840 8000EC40 460E9000 */ add.s $f0, $f18, $f14
|
||||
/* 00F844 8000EC44 46165100 */ add.s $f4, $f10, $f22
|
||||
/* 00F848 8000EC48 46160280 */ add.s $f10, $f0, $f22
|
||||
/* 00F84C 8000EC4C E604000C */ swc1 $f4, 0xc($s0)
|
||||
/* 00F850 8000EC50 C7A600AC */ lwc1 $f6, 0xac($sp)
|
||||
/* 00F854 8000EC54 46180200 */ add.s $f8, $f0, $f24
|
||||
/* 00F858 8000EC58 E60A0018 */ swc1 $f10, 0x18($s0)
|
||||
/* 00F85C 8000EC5C E6060010 */ swc1 $f6, 0x10($s0)
|
||||
/* 00F860 8000EC60 460E9181 */ sub.s $f6, $f18, $f14
|
||||
/* 00F864 8000EC64 E6080014 */ swc1 $f8, 0x14($s0)
|
||||
/* 00F868 8000EC68 C7A400A0 */ lwc1 $f4, 0xa0($sp)
|
||||
/* 00F86C 8000EC6C 46007087 */ neg.s $f2, $f14
|
||||
/* 00F870 8000EC70 46183200 */ add.s $f8, $f6, $f24
|
||||
/* 00F874 8000EC74 E604001C */ swc1 $f4, 0x1c($s0)
|
||||
/* 00F878 8000EC78 46121281 */ sub.s $f10, $f2, $f18
|
||||
/* 00F87C 8000EC7C E6080020 */ swc1 $f8, 0x20($s0)
|
||||
/* 00F880 8000EC80 460E6200 */ add.s $f8, $f12, $f14
|
||||
/* 00F884 8000EC84 46165100 */ add.s $f4, $f10, $f22
|
||||
/* 00F888 8000EC88 46184280 */ add.s $f10, $f8, $f24
|
||||
/* 00F88C 8000EC8C E6040024 */ swc1 $f4, 0x24($s0)
|
||||
/* 00F890 8000EC90 C7A60094 */ lwc1 $f6, 0x94($sp)
|
||||
/* 00F894 8000EC94 46121100 */ add.s $f4, $f2, $f18
|
||||
/* 00F898 8000EC98 E60A002C */ swc1 $f10, 0x2c($s0)
|
||||
/* 00F89C 8000EC9C E6060028 */ swc1 $f6, 0x28($s0)
|
||||
/* 00F8A0 8000ECA0 460E6281 */ sub.s $f10, $f12, $f14
|
||||
/* 00F8A4 8000ECA4 46162180 */ add.s $f6, $f4, $f22
|
||||
/* 00F8A8 8000ECA8 46185100 */ add.s $f4, $f10, $f24
|
||||
/* 00F8AC 8000ECAC E6060030 */ swc1 $f6, 0x30($s0)
|
||||
/* 00F8B0 8000ECB0 C7A80088 */ lwc1 $f8, 0x88($sp)
|
||||
/* 00F8B4 8000ECB4 E6160000 */ swc1 $f22, ($s0)
|
||||
/* 00F8B8 8000ECB8 E6040038 */ swc1 $f4, 0x38($s0)
|
||||
/* 00F8BC 8000ECBC E6140004 */ swc1 $f20, 4($s0)
|
||||
/* 00F8C0 8000ECC0 E6180008 */ swc1 $f24, 8($s0)
|
||||
/* 00F8C4 8000ECC4 E6080034 */ swc1 $f8, 0x34($s0)
|
||||
/* 00F8C8 8000ECC8 97B900CA */ lhu $t9, 0xca($sp)
|
||||
/* 00F8CC 8000ECCC A6190042 */ sh $t9, 0x42($s0)
|
||||
/* 00F8D0 8000ECD0 C7A600C4 */ lwc1 $f6, 0xc4($sp)
|
||||
/* 00F8D4 8000ECD4 E606003C */ swc1 $f6, 0x3c($s0)
|
||||
/* 00F8D8 8000ECD8 97AB00C2 */ lhu $t3, 0xc2($sp)
|
||||
/* 00F8DC 8000ECDC A60B0040 */ sh $t3, 0x40($s0)
|
||||
/* 00F8E0 8000ECE0 97AA007E */ lhu $t2, 0x7e($sp)
|
||||
/* 00F8E4 8000ECE4 A60A0044 */ sh $t2, 0x44($s0)
|
||||
/* 00F8E8 8000ECE8 97AC007C */ lhu $t4, 0x7c($sp)
|
||||
/* 00F8EC 8000ECEC A6110048 */ sh $s1, 0x48($s0)
|
||||
/* 00F8F0 8000ECF0 A60C0046 */ sh $t4, 0x46($s0)
|
||||
.L8000ECF4:
|
||||
/* 00F8F4 8000ECF4 8FBF003C */ lw $ra, 0x3c($sp)
|
||||
.L8000ECF8:
|
||||
/* 00F8F8 8000ECF8 D7B40018 */ ldc1 $f20, 0x18($sp)
|
||||
/* 00F8FC 8000ECFC D7B60020 */ ldc1 $f22, 0x20($sp)
|
||||
/* 00F900 8000ED00 D7B80028 */ ldc1 $f24, 0x28($sp)
|
||||
/* 00F904 8000ED04 8FB00034 */ lw $s0, 0x34($sp)
|
||||
/* 00F908 8000ED08 8FB10038 */ lw $s1, 0x38($sp)
|
||||
/* 00F90C 8000ED0C 03E00008 */ jr $ra
|
||||
/* 00F910 8000ED10 27BD0120 */ addiu $sp, $sp, 0x120
|
||||
|
|
@ -1,172 +0,0 @@
|
|||
.section .late_rodata
|
||||
|
||||
glabel jpt_800ED080
|
||||
.word L80011BE8, L80011C04, L80011C3C, L80011C54
|
||||
.word L80011C70, L80011C8C, L80011C9C, L80011CB0
|
||||
.word L80011CD4, L80011D2C, L80011CC0
|
||||
|
||||
glabel D_800ED0AC
|
||||
.float -0.6
|
||||
|
||||
glabel D_800ED0B0
|
||||
.float 0.6
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_80011B14
|
||||
/* 012714 80011B14 3C0F800E */ lui $t7, %hi(gCurrentCourseId)
|
||||
/* 012718 80011B18 85EFC5A0 */ lh $t7, %lo(gCurrentCourseId)($t7)
|
||||
/* 01271C 80011B1C 3C0E8016 */ lui $t6, %hi(D_801632B8) # $t6, 0x8016
|
||||
/* 012720 80011B20 25CE32B8 */ addiu $t6, %lo(D_801632B8) # addiu $t6, $t6, 0x32b8
|
||||
/* 012724 80011B24 00041840 */ sll $v1, $a0, 1
|
||||
/* 012728 80011B28 006E3821 */ addu $a3, $v1, $t6
|
||||
/* 01272C 80011B2C 3C088016 */ lui $t0, %hi(D_80162EB8) # 0x8016
|
||||
/* 012730 80011B30 000FC080 */ sll $t8, $t7, 2
|
||||
/* 012734 80011B34 94E60000 */ lhu $a2, ($a3)
|
||||
/* 012738 80011B38 01184021 */ addu $t0, $t0, $t8
|
||||
/* 01273C 80011B3C 8D082EB8 */ lw $t0, %lo(D_80162EB8)($t0) # 0x2eb8($t0)
|
||||
/* 012740 80011B40 3C0C8016 */ lui $t4, %hi(D_801632B0) # $t4, 0x8016
|
||||
/* 012744 80011B44 0006C8C0 */ sll $t9, $a2, 3
|
||||
/* 012748 80011B48 258C32B0 */ addiu $t4, %lo(D_801632B0) # addiu $t4, $t4, 0x32b0
|
||||
/* 01274C 80011B4C 3C0F8016 */ lui $t7, %hi(gNearestWaypointByPlayerId) # 0x8016
|
||||
/* 012750 80011B50 03287021 */ addu $t6, $t9, $t0
|
||||
/* 012754 80011B54 AD8E0000 */ sw $t6, ($t4)
|
||||
/* 012758 80011B58 01E37821 */ addu $t7, $t7, $v1
|
||||
/* 01275C 80011B5C 95EF4438 */ lhu $t7, %lo(gNearestWaypointByPlayerId)($t7) # 0x4438($t7)
|
||||
/* 012760 80011B60 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 012764 80011B64 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 012768 80011B68 A7AF002E */ sh $t7, 0x2e($sp)
|
||||
/* 01276C 80011B6C 85C90000 */ lh $t1, ($t6)
|
||||
/* 012770 80011B70 240DFFFF */ li $t5, -1
|
||||
/* 012774 80011B74 85CA0002 */ lh $t2, 2($t6)
|
||||
/* 012778 80011B78 152D0007 */ bne $t1, $t5, .L80011B98
|
||||
/* 01277C 80011B7C 8DCB0004 */ lw $t3, 4($t6)
|
||||
/* 012780 80011B80 554D0006 */ bnel $t2, $t5, .L80011B9C
|
||||
/* 012784 80011B84 97B8002E */ lhu $t8, 0x2e($sp)
|
||||
/* 012788 80011B88 0C0046AE */ jal func_80011AB8
|
||||
/* 01278C 80011B8C AD880000 */ sw $t0, ($t4)
|
||||
/* 012790 80011B90 1000006A */ b .L80011D3C
|
||||
/* 012794 80011B94 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L80011B98:
|
||||
/* 012798 80011B98 97B8002E */ lhu $t8, 0x2e($sp)
|
||||
.L80011B9C:
|
||||
/* 01279C 80011B9C 3C018016 */ lui $at, %hi(D_801632E8) # 0x8016
|
||||
/* 0127A0 80011BA0 24020002 */ li $v0, 2
|
||||
/* 0127A4 80011BA4 17090064 */ bne $t8, $t1, .L80011D38
|
||||
/* 0127A8 80011BA8 00230821 */ addu $at, $at, $v1
|
||||
/* 0127AC 80011BAC A42232E8 */ sh $v0, %lo(D_801632E8)($at) # 0x32e8($at)
|
||||
/* 0127B0 80011BB0 3C018016 */ lui $at, %hi(D_801632D0) # 0x8016
|
||||
/* 0127B4 80011BB4 00230821 */ addu $at, $at, $v1
|
||||
/* 0127B8 80011BB8 A42632D0 */ sh $a2, %lo(D_801632D0)($at) # 0x32d0($at)
|
||||
/* 0127BC 80011BBC 256EFFFF */ addiu $t6, $t3, -1
|
||||
/* 0127C0 80011BC0 24D90001 */ addiu $t9, $a2, 1
|
||||
/* 0127C4 80011BC4 2DC1000B */ sltiu $at, $t6, 0xb
|
||||
/* 0127C8 80011BC8 1020005B */ beqz $at, .L80011D38
|
||||
/* 0127CC 80011BCC A4F90000 */ sh $t9, ($a3)
|
||||
/* 0127D0 80011BD0 000E7080 */ sll $t6, $t6, 2
|
||||
/* 0127D4 80011BD4 3C01800F */ lui $at, %hi(jpt_800ED080)
|
||||
/* 0127D8 80011BD8 002E0821 */ addu $at, $at, $t6
|
||||
/* 0127DC 80011BDC 8C2ED080 */ lw $t6, %lo(jpt_800ED080)($at)
|
||||
/* 0127E0 80011BE0 01C00008 */ jr $t6
|
||||
/* 0127E4 80011BE4 00000000 */ nop
|
||||
glabel L80011BE8
|
||||
/* 0127E8 80011BE8 8CA6007C */ lw $a2, 0x7c($a1)
|
||||
/* 0127EC 80011BEC 97A7002E */ lhu $a3, 0x2e($sp)
|
||||
/* 0127F0 80011BF0 00067C03 */ sra $t7, $a2, 0x10
|
||||
/* 0127F4 80011BF4 0C0047B0 */ jal func_80011EC0
|
||||
/* 0127F8 80011BF8 01E03025 */ move $a2, $t7
|
||||
/* 0127FC 80011BFC 1000004F */ b .L80011D3C
|
||||
/* 012800 80011C00 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
glabel L80011C04
|
||||
/* 012804 80011C04 00A02025 */ move $a0, $a1
|
||||
/* 012808 80011C08 AFA3001C */ sw $v1, 0x1c($sp)
|
||||
/* 01280C 80011C0C 0C00AA94 */ jal func_8002AA50
|
||||
/* 012810 80011C10 AFA50034 */ sw $a1, 0x34($sp)
|
||||
/* 012814 80011C14 8FA50034 */ lw $a1, 0x34($sp)
|
||||
/* 012818 80011C18 8FA3001C */ lw $v1, 0x1c($sp)
|
||||
/* 01281C 80011C1C 2401FFEF */ li $at, -17
|
||||
/* 012820 80011C20 8CB800BC */ lw $t8, 0xbc($a1)
|
||||
/* 012824 80011C24 0301C824 */ and $t9, $t8, $at
|
||||
/* 012828 80011C28 3C018016 */ lui $at, %hi(D_801630E8) # 0x8016
|
||||
/* 01282C 80011C2C ACB900BC */ sw $t9, 0xbc($a1)
|
||||
/* 012830 80011C30 00230821 */ addu $at, $at, $v1
|
||||
/* 012834 80011C34 10000040 */ b .L80011D38
|
||||
/* 012838 80011C38 A42030E8 */ sh $zero, %lo(D_801630E8)($at) # 0x30e8($at)
|
||||
glabel L80011C3C
|
||||
/* 01283C 80011C3C 44802000 */ mtc1 $zero, $f4
|
||||
/* 012840 80011C40 00047100 */ sll $t6, $a0, 4
|
||||
/* 012844 80011C44 3C018016 */ lui $at, %hi(D_801634F8 + 4)
|
||||
/* 012848 80011C48 002E0821 */ addu $at, $at, $t6
|
||||
/* 01284C 80011C4C 1000003A */ b .L80011D38
|
||||
/* 012850 80011C50 E42434FC */ swc1 $f4, %lo(D_801634F8 + 4)($at)
|
||||
glabel L80011C54
|
||||
/* 012854 80011C54 3C01800F */ lui $at, %hi(D_800ED0AC)
|
||||
/* 012858 80011C58 C426D0AC */ lwc1 $f6, %lo(D_800ED0AC)($at)
|
||||
/* 01285C 80011C5C 3C018016 */ lui $at, %hi(D_801634F8 + 4)
|
||||
/* 012860 80011C60 00047900 */ sll $t7, $a0, 4
|
||||
/* 012864 80011C64 002F0821 */ addu $at, $at, $t7
|
||||
/* 012868 80011C68 10000033 */ b .L80011D38
|
||||
/* 01286C 80011C6C E42634FC */ swc1 $f6, %lo(D_801634F8 + 4)($at)
|
||||
glabel L80011C70
|
||||
/* 012870 80011C70 3C01800F */ lui $at, %hi(D_800ED0B0)
|
||||
/* 012874 80011C74 C428D0B0 */ lwc1 $f8, %lo(D_800ED0B0)($at)
|
||||
/* 012878 80011C78 3C018016 */ lui $at, %hi(D_801634F8 + 4)
|
||||
/* 01287C 80011C7C 0004C100 */ sll $t8, $a0, 4
|
||||
/* 012880 80011C80 00380821 */ addu $at, $at, $t8
|
||||
/* 012884 80011C84 1000002C */ b .L80011D38
|
||||
/* 012888 80011C88 E42834FC */ swc1 $f8, %lo(D_801634F8 + 4)($at)
|
||||
glabel L80011C8C
|
||||
/* 01288C 80011C8C 3C018016 */ lui $at, %hi(D_80163350) # 0x8016
|
||||
/* 012890 80011C90 00230821 */ addu $at, $at, $v1
|
||||
/* 012894 80011C94 10000028 */ b .L80011D38
|
||||
/* 012898 80011C98 A4203350 */ sh $zero, %lo(D_80163350)($at) # 0x3350($at)
|
||||
glabel L80011C9C
|
||||
/* 01289C 80011C9C 3C018016 */ lui $at, %hi(D_80163350) # 0x8016
|
||||
/* 0128A0 80011CA0 00230821 */ addu $at, $at, $v1
|
||||
/* 0128A4 80011CA4 24190001 */ li $t9, 1
|
||||
/* 0128A8 80011CA8 10000023 */ b .L80011D38
|
||||
/* 0128AC 80011CAC A4393350 */ sh $t9, %lo(D_80163350)($at) # 0x3350($at)
|
||||
glabel L80011CB0
|
||||
/* 0128B0 80011CB0 3C018016 */ lui $at, %hi(D_80163350) # 0x8016
|
||||
/* 0128B4 80011CB4 00230821 */ addu $at, $at, $v1
|
||||
/* 0128B8 80011CB8 1000001F */ b .L80011D38
|
||||
/* 0128BC 80011CBC A4223350 */ sh $v0, %lo(D_80163350)($at) # 0x3350($at)
|
||||
glabel L80011CC0
|
||||
/* 0128C0 80011CC0 3C018016 */ lui $at, %hi(D_80163350) # 0x8016
|
||||
/* 0128C4 80011CC4 00230821 */ addu $at, $at, $v1
|
||||
/* 0128C8 80011CC8 240E0003 */ li $t6, 3
|
||||
/* 0128CC 80011CCC 1000001A */ b .L80011D38
|
||||
/* 0128D0 80011CD0 A42E3350 */ sh $t6, %lo(D_80163350)($at) # 0x3350($at)
|
||||
glabel L80011CD4
|
||||
/* 0128D4 80011CD4 0004C0C0 */ sll $t8, $a0, 3
|
||||
/* 0128D8 80011CD8 0304C023 */ subu $t8, $t8, $a0
|
||||
/* 0128DC 80011CDC 3C018016 */ lui $at, %hi(D_801633F8) # 0x8016
|
||||
/* 0128E0 80011CE0 0018C100 */ sll $t8, $t8, 4
|
||||
/* 0128E4 80011CE4 00230821 */ addu $at, $at, $v1
|
||||
/* 0128E8 80011CE8 240F0001 */ li $t7, 1
|
||||
/* 0128EC 80011CEC 0304C023 */ subu $t8, $t8, $a0
|
||||
/* 0128F0 80011CF0 A42F33F8 */ sh $t7, %lo(D_801633F8)($at) # 0x33f8($at)
|
||||
/* 0128F4 80011CF4 0018C080 */ sll $t8, $t8, 2
|
||||
/* 0128F8 80011CF8 3C018016 */ lui $at, %hi(D_801631E0) # 0x8016
|
||||
/* 0128FC 80011CFC 0304C023 */ subu $t8, $t8, $a0
|
||||
/* 012900 80011D00 3C19800F */ lui $t9, %hi(gPlayers) # $t9, 0x800f
|
||||
/* 012904 80011D04 00230821 */ addu $at, $at, $v1
|
||||
/* 012908 80011D08 27396990 */ addiu $t9, %lo(gPlayers) # addiu $t9, $t9, 0x6990
|
||||
/* 01290C 80011D0C 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 012910 80011D10 A42031E0 */ sh $zero, %lo(D_801631E0)($at) # 0x31e0($at)
|
||||
/* 012914 80011D14 03191021 */ addu $v0, $t8, $t9
|
||||
/* 012918 80011D18 8C4E00BC */ lw $t6, 0xbc($v0)
|
||||
/* 01291C 80011D1C 2401EFFF */ li $at, -4097
|
||||
/* 012920 80011D20 01C17824 */ and $t7, $t6, $at
|
||||
/* 012924 80011D24 10000004 */ b .L80011D38
|
||||
/* 012928 80011D28 AC4F00BC */ sw $t7, 0xbc($v0)
|
||||
glabel L80011D2C
|
||||
/* 01292C 80011D2C 3C018016 */ lui $at, %hi(D_801633F8) # 0x8016
|
||||
/* 012930 80011D30 00230821 */ addu $at, $at, $v1
|
||||
/* 012934 80011D34 A42033F8 */ sh $zero, %lo(D_801633F8)($at) # 0x33f8($at)
|
||||
.L80011D38:
|
||||
/* 012938 80011D38 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L80011D3C:
|
||||
/* 01293C 80011D3C 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
/* 012940 80011D40 03E00008 */ jr $ra
|
||||
/* 012944 80011D44 00000000 */ nop
|
||||
|
|
@ -51,7 +51,7 @@ Vec3f D_80162FC0;
|
|||
s16 D_80162FCC;
|
||||
s16 D_80162FCE;
|
||||
s16 D_80162FD0;
|
||||
f32 gCourseCompletionPercentByRank[8];
|
||||
f32 gCourseCompletionPercentByRank[NUM_PLAYERS];
|
||||
/*
|
||||
The size of many of these arrays is weird. Based on their usage, they would only need
|
||||
to be 8 entries long (enough for each player). But some are 10 or even 12 long.
|
||||
|
|
@ -3042,11 +3042,6 @@ void set_bomb_kart_spawn_positions(void) {
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// https://decomp.me/scratch/H61yp
|
||||
// Really really close, functinally matching as it stands
|
||||
// There's an ordering issue concerning the handling of `sp7E` at the top of the function.
|
||||
// Removing the first `if(1)` fakematch fixes the misordering but introduces other, large mismatches
|
||||
void func_8000DF8C(s32 bombKartId) {
|
||||
s32 stackPadding0;
|
||||
f32 sp118;
|
||||
|
|
@ -3103,9 +3098,14 @@ void func_8000DF8C(s32 bombKartId) {
|
|||
Player *var_v0;
|
||||
|
||||
bombKart = &gBombKarts[bombKartId];
|
||||
if (1) {}
|
||||
|
||||
sp7E = bombKart->state;
|
||||
if ((sp7E != 0) && ((bombKart->unk_4A != 1) || (gCurrentCourseId == COURSE_AWARD_CEREMONY))) {
|
||||
|
||||
if (sp7E == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (((bombKart->unk_4A != 1) || (gCurrentCourseId == COURSE_AWARD_CEREMONY))) {
|
||||
var_f22 = bombKart->bombPos[0];
|
||||
var_f20 = bombKart->bombPos[1];
|
||||
var_f24 = bombKart->bombPos[2];
|
||||
|
|
@ -3117,144 +3117,149 @@ void func_8000DF8C(s32 bombKartId) {
|
|||
if ((sp7E != 0) && (sp7E != 4)) {
|
||||
if (1) {}
|
||||
if (gCurrentCourseId == COURSE_AWARD_CEREMONY) {
|
||||
if (D_8016347E == 1) {
|
||||
var_v0 = gPlayerFour;
|
||||
temp_f0 = var_f22 - var_v0->pos[0];
|
||||
temp_f2 = var_f20 - var_v0->pos[1];
|
||||
temp_f12 = var_f24 - var_v0->pos[2];
|
||||
if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f12 * temp_f12)) < 25.0f) {
|
||||
var_s1 = 0;
|
||||
sp7E = 4;
|
||||
var_v0->soundEffects |= 0x400000;
|
||||
var_v0->type &= ~0x2000;
|
||||
}
|
||||
if (D_8016347E == 1)
|
||||
{
|
||||
var_v0 = gPlayerFour;
|
||||
temp_f0 = var_f22 - var_v0->pos[0];
|
||||
temp_f2 = var_f20 - var_v0->pos[1];
|
||||
temp_f12 = var_f24 - var_v0->pos[2];
|
||||
if ((((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) + (temp_f12 * temp_f12)) < 25.0f)
|
||||
{
|
||||
var_s1 = 0;
|
||||
sp7E = 4;
|
||||
var_v0->soundEffects |= 0x400000;
|
||||
var_v0->type &= ~0x2000;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
for (var_a0 = 0; var_a0 < gPlayerCount; var_a0++) {
|
||||
var_v0 = &gPlayers[var_a0];
|
||||
if (!(var_v0->effects & 0x80000000)) {
|
||||
temp_f0 = var_f22 - var_v0->pos[0];
|
||||
temp_f2 = var_f20 - var_v0->pos[1];
|
||||
temp_f12 = var_f24 - var_v0->pos[2];
|
||||
if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2) + (temp_f12 * temp_f12)) < 25.0f) {
|
||||
sp7E = 4;
|
||||
var_s1 = 0;
|
||||
if (gCurrentCourseId == COURSE_FRAPPE_SNOWLAND) {
|
||||
var_v0->soundEffects |= 0x01000000;
|
||||
} else {
|
||||
var_v0->soundEffects |= 0x400000;
|
||||
}
|
||||
if ((((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) + (temp_f12 * temp_f12)) < 25.0f) {
|
||||
sp7E = 4;
|
||||
var_s1 = 0;
|
||||
if (gCurrentCourseId == COURSE_FRAPPE_SNOWLAND) {
|
||||
var_v0->soundEffects |= 0x01000000;
|
||||
} else {
|
||||
var_v0->soundEffects |= 0x400000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
switch (sp7E) {
|
||||
case 1:
|
||||
var_s1 = ((var_s1 + 356) % 360);
|
||||
temp_t6 = ((var_s1 * 0xFFFF) / 360);
|
||||
sp118 = coss(temp_t6) * 25.0;
|
||||
temp_f0_3 = sins(temp_t6) * 25.0;
|
||||
temp_v0_2 = &D_80164550[0][spCA];
|
||||
var_f22 = temp_v0_2->posX + sp118;
|
||||
var_f20 = bombKart->yPos + 3.5f;
|
||||
var_f24 = temp_v0_2->posZ + temp_f0_3;
|
||||
D_80162FB0[0] = var_f22;
|
||||
D_80162FB0[1] = var_f20;
|
||||
D_80162FB0[2] = var_f24;
|
||||
temp_t7 = ((((var_s1 + 1) % 360) * 0xFFFF) / 360);
|
||||
sp118 = coss(temp_t7) * 25.0;
|
||||
temp_f0_3 = sins(temp_t7) * 25.0;
|
||||
D_80162FC0[0] = temp_v0_2->posX + sp118;
|
||||
D_80162FC0[1] = temp_v0_2->posY;
|
||||
D_80162FC0[2] = temp_v0_2->posZ + temp_f0_3;
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
break;
|
||||
case 2:
|
||||
var_s1 = ((var_s1 + 4) % 360);
|
||||
temp_t6 = ((var_s1 * 0xFFFF) / 360);
|
||||
sp118 = coss(temp_t6) * 25.0;
|
||||
temp_f0_3 = sins(temp_t6) * 25.0;
|
||||
temp_v0_2 = &D_80164550[0][spCA];
|
||||
var_f22 = temp_v0_2->posX + sp118;
|
||||
var_f20 = bombKart->yPos + 3.5f;
|
||||
var_f24 = temp_v0_2->posZ + temp_f0_3;
|
||||
D_80162FB0[0] = var_f22;
|
||||
D_80162FB0[1] = var_f20;
|
||||
D_80162FB0[2] = var_f24;
|
||||
temp_t7 = ((((var_s1 + 1) % 360) * 0xFFFF) / 360);
|
||||
sp118 = coss(temp_t7) * 25.0;
|
||||
temp_f0_3 = sins(temp_t7) * 25.0;
|
||||
D_80162FC0[0] = temp_v0_2->posX + sp118;
|
||||
D_80162FC0[1] = temp_v0_2->posY;
|
||||
D_80162FC0[2] = temp_v0_2->posZ + temp_f0_3;
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
break;
|
||||
case 3:
|
||||
var_f20 = bombKart->yPos + 3.5f;
|
||||
spC2 = 0;
|
||||
break;
|
||||
case 5:
|
||||
if ((D_8016347C == 0) || (gNearestWaypointByPlayerId[3] < 5)) {
|
||||
// wtf?
|
||||
case 1:
|
||||
var_s1 = (var_s1 + 356) % 360;
|
||||
temp_t6 = (var_s1 * 0xFFFF) / 360;
|
||||
sp118 = coss(temp_t6) * 25.0;
|
||||
temp_f0_3 = sins(temp_t6) * 25.0;
|
||||
temp_v0_2 = &D_80164550[0][spCA];
|
||||
var_f22 = temp_v0_2->posX + sp118;
|
||||
var_f20 = bombKart->yPos + 3.5f;
|
||||
var_f24 = temp_v0_2->posZ + temp_f0_3;
|
||||
D_80162FB0[0] = var_f22;
|
||||
D_80162FB0[1] = var_f20;
|
||||
D_80162FB0[2] = var_f24;
|
||||
temp_t7 = (((var_s1 + 1) % 360) * 0xFFFF) / 360;
|
||||
sp118 = coss(temp_t7) * 25.0;
|
||||
temp_f0_3 = sins(temp_t7) * 25.0;
|
||||
D_80162FC0[0] = temp_v0_2->posX + sp118;
|
||||
D_80162FC0[1] = temp_v0_2->posY;
|
||||
D_80162FC0[2] = temp_v0_2->posZ + temp_f0_3;
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
break;
|
||||
} else {
|
||||
spCA = func_8000D2B4(var_f22, var_f20, var_f24, spCA, 3);
|
||||
if ((spCA < 0) || (gWaypointCountByPathIndex[3] < spCA)) {
|
||||
spCA = 0;
|
||||
}
|
||||
if ((s32) spCA < 0x1A) {
|
||||
temp_v0_2 = &D_80164550[3][(spCA + 1) % gWaypointCountByPathIndex[3]];
|
||||
D_80162FB0[0] = temp_v0_2->posX;
|
||||
D_80162FB0[1] = temp_v0_2->posY;
|
||||
D_80162FB0[2] = temp_v0_2->posZ;
|
||||
temp_v0_4 = &D_80164550[3][(spCA + 2) % gWaypointCountByPathIndex[3]];
|
||||
D_80162FC0[0] = temp_v0_4->posX;
|
||||
D_80162FC0[1] = temp_v0_4->posY;
|
||||
D_80162FC0[2] = temp_v0_4->posZ;
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
case 2:
|
||||
var_s1 = (var_s1 + 4) % 360;
|
||||
temp_t6 = (var_s1 * 0xFFFF) / 360;
|
||||
sp118 = coss(temp_t6) * 25.0;
|
||||
temp_f0_3 = sins(temp_t6) * 25.0;
|
||||
temp_v0_2 = &D_80164550[0][spCA];
|
||||
var_f22 = temp_v0_2->posX + sp118;
|
||||
var_f20 = bombKart->yPos + 3.5f;
|
||||
var_f24 = temp_v0_2->posZ + temp_f0_3;
|
||||
D_80162FB0[0] = var_f22;
|
||||
D_80162FB0[1] = var_f20;
|
||||
D_80162FB0[2] = var_f24;
|
||||
temp_t7 = (((var_s1 + 1) % 360) * 0xFFFF) / 360;
|
||||
sp118 = coss(temp_t7) * 25.0;
|
||||
temp_f0_3 = sins(temp_t7) * 25.0;
|
||||
D_80162FC0[0] = temp_v0_2->posX + sp118;
|
||||
D_80162FC0[1] = temp_v0_2->posY;
|
||||
D_80162FC0[2] = temp_v0_2->posZ + temp_f0_3;
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
break;
|
||||
case 3:
|
||||
var_f20 = bombKart->yPos + 3.5f;
|
||||
spC2 = 0;
|
||||
break;
|
||||
|
||||
case 5:
|
||||
if ((D_8016347C == 0) || (gNearestWaypointByPlayerId[3] < 5)) {
|
||||
break;
|
||||
} else {
|
||||
D_80162FB0[0] = var_f22;
|
||||
D_80162FB0[1] = var_f20;
|
||||
D_80162FB0[2] = var_f24;
|
||||
D_80162FC0[0] = -2409.197f;
|
||||
D_80162FC0[1] = 0.0f;
|
||||
D_80162FC0[2] = -355.254f;
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
spCA = func_8000D2B4(var_f22, var_f20, var_f24, spCA, 3);
|
||||
if ((spCA < 0) || (gWaypointCountByPathIndex[3] < spCA)) {
|
||||
spCA = 0;
|
||||
}
|
||||
if (((s32) spCA) < 0x1A) {
|
||||
temp_v0_2 = &D_80164550[3][(spCA + 1) % gWaypointCountByPathIndex[3]];
|
||||
D_80162FB0[0] = temp_v0_2->posX;
|
||||
D_80162FB0[1] = temp_v0_2->posY;
|
||||
D_80162FB0[2] = temp_v0_2->posZ;
|
||||
temp_v0_4 = &D_80164550[3][(spCA + 2) % gWaypointCountByPathIndex[3]];
|
||||
D_80162FC0[0] = temp_v0_4->posX;
|
||||
D_80162FC0[1] = temp_v0_4->posY;
|
||||
D_80162FC0[2] = temp_v0_4->posZ;
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
} else {
|
||||
D_80162FB0[0] = var_f22;
|
||||
D_80162FB0[1] = var_f20;
|
||||
D_80162FB0[2] = var_f24;
|
||||
D_80162FC0[0] = -2409.197f;
|
||||
D_80162FC0[1] = 0.0f;
|
||||
D_80162FC0[2] = -355.254f;
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
}
|
||||
temp_f14 = ((D_80162FB0[0] + D_80162FC0[0]) * 0.5f) - var_f22;
|
||||
temp_f16 = ((D_80162FB0[2] + D_80162FC0[2]) * 0.5f) - var_f24;
|
||||
temp_f0_4 = sqrtf((temp_f14 * temp_f14) + (temp_f16 * temp_f16));
|
||||
if (temp_f0_4 > 0.01f) {
|
||||
var_f22 += (bombKart->unk_3C * temp_f14) / temp_f0_4;
|
||||
var_f24 += (bombKart->unk_3C * temp_f16) / temp_f0_4;
|
||||
} else {
|
||||
var_f22 += temp_f14 / 5.0f;
|
||||
var_f24 += temp_f16 / 5.0f;
|
||||
}
|
||||
temp_a0_4 = &D_80164038[bombKartId];
|
||||
var_f20 = func_802ABE30(var_f22, 2000.0f, var_f24, temp_a0_4->unk3A) + 3.5f;
|
||||
if (var_f20 < (-1000.0)) {
|
||||
var_f20 = bombKart->bombPos[1];
|
||||
}
|
||||
func_802ADDC8(temp_a0_4, 10.0f, var_f22, var_f20, var_f24);
|
||||
}
|
||||
temp_f14 = ((D_80162FB0[0] + D_80162FC0[0]) * 0.5f) - var_f22;
|
||||
temp_f16 = ((D_80162FB0[2] + D_80162FC0[2]) * 0.5f) - var_f24;
|
||||
temp_f0_4 = sqrtf((temp_f14 * temp_f14) + (temp_f16 * temp_f16));
|
||||
if (temp_f0_4 > 0.01f) {
|
||||
var_f22 += (bombKart->unk_3C * temp_f14) / temp_f0_4;
|
||||
var_f24 += (bombKart->unk_3C * temp_f16) / temp_f0_4;
|
||||
} else {
|
||||
var_f22 += temp_f14 / 5.0f;
|
||||
var_f24 += temp_f16 / 5.0f;
|
||||
}
|
||||
temp_a0_4 = &D_80164038[bombKartId];
|
||||
var_f20 = func_802ABE30(var_f22, 2000.0f, var_f24, temp_a0_4->unk3A) + 3.5f;
|
||||
if (var_f20 < -1000.0) {
|
||||
var_f20 = bombKart->bombPos[1];
|
||||
}
|
||||
func_802ADDC8(temp_a0_4, 10.0f, var_f22, var_f20, var_f24);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
temp_v0_2 = &D_80164550[0][spCA];
|
||||
D_80162FB0[0] = temp_v0_2->posX;
|
||||
D_80162FB0[1] = temp_v0_2->posY;
|
||||
D_80162FB0[2] = temp_v0_2->posZ;
|
||||
temp_v0_4 = &D_80164550[0][(spCA + 1) % gWaypointCountByPathIndex[0]];
|
||||
D_80162FC0[0] = temp_v0_4->posX;
|
||||
D_80162FC0[1] = temp_v0_4->posY;
|
||||
D_80162FC0[2] = temp_v0_4->posZ;
|
||||
var_f20 += 3.0f - (var_s1 * 0.3f);
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
case 4:
|
||||
temp_v0_2 = &D_80164550[0][spCA];
|
||||
D_80162FB0[0] = temp_v0_2->posX;
|
||||
D_80162FB0[1] = temp_v0_2->posY;
|
||||
D_80162FB0[2] = temp_v0_2->posZ;
|
||||
temp_v0_4 = &D_80164550[0][(spCA + 1) % gWaypointCountByPathIndex[0]];
|
||||
D_80162FC0[0] = temp_v0_4->posX;
|
||||
D_80162FC0[1] = temp_v0_4->posY;
|
||||
D_80162FC0[2] = temp_v0_4->posZ;
|
||||
var_f20 += 3.0f - (var_s1 * 0.3f);
|
||||
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (sp7E == 4) {
|
||||
sp108 = 2.0f * var_s1;
|
||||
sp118 = coss(0xFFFF - spC2) * var_s1;
|
||||
|
|
@ -3279,31 +3284,25 @@ void func_8000DF8C(s32 bombKartId) {
|
|||
sp94 = temp_f14_2;
|
||||
spA0 = temp_f12_4;
|
||||
sp88 = temp_f12_4;
|
||||
var_f20 += sins(((sp7C * 0x13FFEC) / 360));
|
||||
var_f20 += sins((sp7C * 0x13FFEC) / 360);
|
||||
sp7C = (sp7C + 1) % 18;
|
||||
}
|
||||
|
||||
bombKart2 = bombKart;
|
||||
bombKart2->wheel1Pos[0] = (sp118 - var_f18) + var_f22;
|
||||
bombKart2->wheel1Pos[1] = spAC;
|
||||
bombKart2->wheel1Pos[2] = var_f18 + sp118 + var_f24;
|
||||
|
||||
bombKart2->wheel2Pos[0] = var_f18 + sp118 + var_f22;
|
||||
bombKart2->wheel1Pos[2] = (var_f18 + sp118) + var_f24;
|
||||
bombKart2->wheel2Pos[0] = (var_f18 + sp118) + var_f22;
|
||||
bombKart2->wheel2Pos[1] = spA0;
|
||||
bombKart2->wheel2Pos[2] = (var_f18 - sp118) + var_f24;
|
||||
|
||||
bombKart2->wheel3Pos[0] = (-sp118 - var_f18) + var_f22;
|
||||
bombKart2->wheel3Pos[0] = ((-sp118) - var_f18) + var_f22;
|
||||
bombKart2->wheel3Pos[1] = sp94;
|
||||
bombKart2->wheel3Pos[2] = -var_f18 + sp118 + var_f24;
|
||||
|
||||
bombKart2->wheel4Pos[0] = -sp118 + var_f18 + var_f22;
|
||||
bombKart2->wheel3Pos[2] = ((-var_f18) + sp118) + var_f24;
|
||||
bombKart2->wheel4Pos[0] = ((-sp118) + var_f18) + var_f22;
|
||||
bombKart2->wheel4Pos[1] = sp88;
|
||||
bombKart2->wheel4Pos[2] = (-var_f18 - sp118) + var_f24;
|
||||
|
||||
bombKart2->wheel4Pos[2] = ((-var_f18) - sp118) + var_f24;
|
||||
bombKart2->bombPos[0] = var_f22;
|
||||
bombKart2->bombPos[1] = var_f20;
|
||||
bombKart2->bombPos[2] = var_f24;
|
||||
|
||||
bombKart2->waypointIndex = spCA;
|
||||
bombKart2->unk_3C = spC4;
|
||||
bombKart2->someRot = spC2;
|
||||
|
|
@ -3312,9 +3311,6 @@ void func_8000DF8C(s32 bombKartId) {
|
|||
bombKart2->circleTimer = var_s1;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000DF8C.s")
|
||||
#endif
|
||||
|
||||
s32 func_8000ED14(s32 actorIndex, s16 arg1) {
|
||||
s32 i;
|
||||
|
|
@ -4237,84 +4233,71 @@ void func_80011AE4(s32 index) {
|
|||
D_801632E8[index] = 1;
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-27-2023
|
||||
void func_80011B14(s32 playerId, Player *player) {
|
||||
u16 sp2E;
|
||||
s32 sp1C;
|
||||
Player *temp_v0;
|
||||
UnkCommonTextureStruct0 *temp_t0;
|
||||
UnkCommonTextureStruct0 *temp_t6;
|
||||
s16 *temp_a3;
|
||||
s16 temp_t1;
|
||||
s16 temp_t2;
|
||||
s32 temp_t3;
|
||||
u16 temp_a2;
|
||||
s32 test;
|
||||
|
||||
D_801632B0 = D_80162EB8[gCurrentCourseId] + D_801632B8[playerId];
|
||||
|
||||
temp_a3 = &D_801632B8[playerId];
|
||||
temp_a2 = (u16) *temp_a3;
|
||||
temp_t0 = D_80162EB8[gCurrentCourseId];
|
||||
temp_t6 = &temp_t0[temp_a2];
|
||||
D_801632B0 = temp_t6;
|
||||
sp2E = gNearestWaypointByPlayerId[playerId];
|
||||
temp_t1 = temp_t6->waypointId1;
|
||||
temp_t3 = temp_t6->unk4;
|
||||
if ((temp_t1 == -1) && (temp_t6->waypointId2 == -1)) {
|
||||
D_801632B0 = temp_t0;
|
||||
|
||||
temp_t1 = D_801632B0->waypointId1;
|
||||
temp_t2 = D_801632B0->waypointId2;
|
||||
temp_t3 = D_801632B0->unk4;
|
||||
|
||||
if ((temp_t1 == -1) && (temp_t2 == -1)) {
|
||||
D_801632B0 = D_80162EB8[gCurrentCourseId];
|
||||
func_80011AB8(playerId);
|
||||
return;
|
||||
}
|
||||
if (sp2E == temp_t1) {
|
||||
if ((u32)sp2E == temp_t1) {
|
||||
D_801632E8[playerId] = 2;
|
||||
D_801632D0[playerId] = (s16) temp_a2;
|
||||
*temp_a3 = temp_a2 + 1;
|
||||
D_801632D0[playerId] = D_801632B8[playerId];
|
||||
D_801632B8[playerId] += 1;
|
||||
switch (temp_t3) {
|
||||
case 1:
|
||||
func_80011EC0(playerId, player, (s32) player->unk_07C >> 0x10, (s32) sp2E);
|
||||
return;
|
||||
func_80011EC0(playerId, player, player->unk_07C >> 0x10, sp2E);
|
||||
break;
|
||||
case 2:
|
||||
sp1C = playerId * 2;
|
||||
func_8002AA50(player);
|
||||
player->effects &= ~0x10;
|
||||
D_801630E8[playerId] = 0;
|
||||
return;
|
||||
break;
|
||||
case 3:
|
||||
*(&D_801634F8->unk4 + (playerId * 0x10)) = 0.0f;
|
||||
return;
|
||||
D_801634F8[playerId].unk4 = 0.0f;
|
||||
break;
|
||||
case 4:
|
||||
*(&D_801634F8->unk4 + (playerId * 0x10)) = -0.6f;
|
||||
return;
|
||||
D_801634F8[playerId].unk4 = -0.6f;
|
||||
break;
|
||||
case 5:
|
||||
*(&D_801634F8->unk4 + (playerId * 0x10)) = 0.6f;
|
||||
return;
|
||||
D_801634F8[playerId].unk4 = 0.6f;
|
||||
break;
|
||||
case 6:
|
||||
D_80163350[playerId] = 0;
|
||||
return;
|
||||
break;
|
||||
case 7:
|
||||
D_80163350[playerId] = 1;
|
||||
return;
|
||||
break;
|
||||
case 8:
|
||||
D_80163350[playerId] = 2;
|
||||
return;
|
||||
break;
|
||||
case 11:
|
||||
D_80163350[playerId] = 3;
|
||||
return;
|
||||
break;
|
||||
case 9:
|
||||
D_801633F8[playerId] = 1;
|
||||
D_801631E0[playerId] = 0;
|
||||
temp_v0 = &gPlayers[playerId];
|
||||
temp_v0->effects &= ~0x1000;
|
||||
return;
|
||||
gPlayers[playerId].effects &= ~0x1000;
|
||||
break;
|
||||
case 10:
|
||||
D_801633F8[playerId] = 0;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
default:
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80011B14.s")
|
||||
#endif
|
||||
|
||||
void func_80011D48(s32 playerIndex, Player *player) {
|
||||
u16 nearestWaypoint;
|
||||
|
|
@ -4368,7 +4351,7 @@ void func_80011E38(s32 playerIndex) {
|
|||
}
|
||||
}
|
||||
|
||||
void func_80011EC0(s32 arg0, Player *player, s32 arg2, s32 arg3) {
|
||||
void func_80011EC0(s32 arg0, Player *player, s32 arg2, u16 arg3) {
|
||||
if ((((player->unk_094 / 18.0f) * 216.0f) >= 45.0f) && (D_801630E8[arg0] == 0)) {
|
||||
switch (D_801631D8[D_80162FCE]) {
|
||||
case 0:
|
||||
|
|
@ -6140,6 +6123,7 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80016494.s")
|
|||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
// https://decomp.me/scratch/WDOs5 lots of diffs
|
||||
//generated by m2c commit a39b70e85329b0bcaeb4350510ddb23dc9840dce on Jan-03-2024
|
||||
void func_80016C3C(s32 arg0, f32 arg1, s32 cameraId) {
|
||||
f32 sp5C;
|
||||
|
|
@ -6152,7 +6136,7 @@ void func_80016C3C(s32 arg0, f32 arg1, s32 cameraId) {
|
|||
Camera *temp_v0_2;
|
||||
f32 *temp_t2;
|
||||
f32 *temp_t3;
|
||||
f32 *var_s2;
|
||||
//f32 *var_s2;
|
||||
f32 temp_f12;
|
||||
f32 temp_f2;
|
||||
s16 *temp_s1;
|
||||
|
|
@ -6160,39 +6144,40 @@ void func_80016C3C(s32 arg0, f32 arg1, s32 cameraId) {
|
|||
s16 temp_v1_3;
|
||||
s32 *temp_v0;
|
||||
s32 *temp_v1;
|
||||
s32 temp_hi;
|
||||
u16 temp_hi;
|
||||
s32 var_a3;
|
||||
u16 temp_s0;
|
||||
|
||||
if (random_int(0x0064U) < 0x32) {
|
||||
var_s2 = &D_80164688[cameraId];
|
||||
var_a3 = cameraId * 4;
|
||||
*var_s2 = 0.1f;
|
||||
if (random_int(100) < 50) {
|
||||
//var_s2 = &D_80164688[cameraId];
|
||||
//var_a3 = cameraId * 4;
|
||||
D_80164688[cameraId] = 0.1f;
|
||||
} else {
|
||||
var_s2 = &D_80164688[cameraId];
|
||||
var_a3 = cameraId * 4;
|
||||
*var_s2 = -0.1f;
|
||||
//var_s2 = &D_80164688[cameraId];
|
||||
//var_a3 = cameraId * 4;
|
||||
D_80164688[cameraId] = -0.1f;
|
||||
}
|
||||
temp_v1 = var_a3 + D_80163DD8;
|
||||
*temp_v1 = 0;
|
||||
if (gCurrentCourseId == 4) {
|
||||
sp34 = temp_v1;
|
||||
sp3C = var_a3;
|
||||
*temp_v1 = random_int(4U);
|
||||
*var_s2 = 0.0f;
|
||||
//temp_v1 = D_80163DD8[cameraId];
|
||||
D_80163DD8[cameraId] = 0;
|
||||
|
||||
if (gCurrentCourseId == COURSE_YOSHI_VALLEY) {
|
||||
sp34 = &D_80163DD8[cameraId];
|
||||
sp3C = cameraId;
|
||||
D_80163DD8[cameraId] = random_int(4U);
|
||||
D_80164688[cameraId] = 0.0f;
|
||||
}
|
||||
temp_s1 = &gNearestWaypointByCameraId[cameraId];
|
||||
temp_s0 = gWaypointCountByPathIndex[*temp_v1];
|
||||
temp_s0 = gWaypointCountByPathIndex[D_80163DD8[cameraId]];
|
||||
temp_hi = (s16) *temp_s1 % (s32) temp_s0;
|
||||
*temp_s1 = (s16) temp_hi;
|
||||
sp3C = var_a3;
|
||||
func_8000BBD8(temp_hi & 0xFFFF, *var_s2, 0);
|
||||
func_8000BBD8(temp_hi & 0xFFFF, D_80164688[cameraId], 0);
|
||||
temp_v1_2 = *temp_s1;
|
||||
temp_t2 = var_a3 + D_80164618;
|
||||
temp_v0 = var_a3 + D_801645F8;
|
||||
*temp_v0 = D_80162FA0->unk0;
|
||||
temp_t3 = var_a3 + D_80164638;
|
||||
*temp_t3 = D_80162FA0->unk8;
|
||||
temp_t2 = D_80164618[cameraId];
|
||||
temp_v0 = D_801645F8[cameraId];
|
||||
*temp_v0 = D_80162FA0[0];
|
||||
temp_t3 = D_80164638[cameraId];
|
||||
*temp_t3 = D_80162FA0[2];
|
||||
*temp_t2 = (f32) (*D_80164550)[temp_v1_2].posY;
|
||||
*(D_80164658 + var_a3) = 16.666666f;
|
||||
*(D_80164648 + var_a3) = 0.0f;
|
||||
|
|
@ -6200,16 +6185,16 @@ void func_80016C3C(s32 arg0, f32 arg1, s32 cameraId) {
|
|||
sp28 = temp_t3;
|
||||
sp2C = temp_t2;
|
||||
sp34 = temp_v0;
|
||||
func_8000BBD8((s16) ((s32) (temp_v1_2 + 0xA) % (s32) temp_s0) & 0xFFFF, *var_s2, 0);
|
||||
temp_f2 = (f32) ((f64) D_80162FA0->unk0 * 0.5);
|
||||
temp_f12 = (f32) ((f64) D_80162FA0->unk8 * 0.5);
|
||||
func_8000BBD8((s16) ((s32) (temp_v1_2 + 0xA) % (s32) temp_s0) & 0xFFFF, D_80164688[cameraId], 0);
|
||||
temp_f2 = (f32) ((f64) D_80162FA0[0] * 0.5);
|
||||
temp_f12 = (f32) ((f64) D_80162FA0[2] * 0.5);
|
||||
sp5C = temp_f2;
|
||||
sp54 = temp_f12;
|
||||
func_8000BBD8(sp44, *var_s2, 0);
|
||||
func_8000BBD8(sp44, D_80164688[cameraId], 0);
|
||||
temp_v1_3 = *temp_s1;
|
||||
temp_v0_2 = &cameras[cameraId];
|
||||
temp_v0_2->lookAt[0] = (f32) ((f64) temp_f2 + ((f64) D_80162FA0->unk0 * 0.5));
|
||||
temp_v0_2->lookAt[2] = (f32) ((f64) temp_f12 + ((f64) D_80162FA0->unk8 * 0.5));
|
||||
temp_v0_2->lookAt[0] = (f32) ((f64) temp_f2 + ((f64) D_80162FA0[0] * 0.5));
|
||||
temp_v0_2->lookAt[2] = (f32) ((f64) temp_f12 + ((f64) D_80162FA0[2] * 0.5));
|
||||
temp_v0_2->lookAt[1] = (f32) ((f64) ((f32) ((*D_80164550)[(s16) ((s32) (temp_v1_3 + 6) % (s32) temp_s0)].posY + (*D_80164550)[(s16) ((s32) (temp_v1_3 + 5) % (s32) temp_s0)].posY) * 0.5f) + 8.0);
|
||||
temp_v0_2->pos[0] = (bitwise f32) *sp34;
|
||||
temp_v0_2->pos[1] = *sp2C;
|
||||
|
|
@ -6221,9 +6206,9 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80016C3C.s")
|
|||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-11-2023
|
||||
s16 gCurrentCourseId; /* unable to generate initializer */
|
||||
//s16 gCurrentCourseId; /* unable to generate initializer */
|
||||
|
||||
void func_80017054(Camera *camera, s32 arg1, s32 arg2, s32 cameraId) {
|
||||
void func_80017054(Camera *camera, Player *player, s8 index, s32 cameraId) {
|
||||
f32 spAC;
|
||||
f32 spA8;
|
||||
f32 spA4;
|
||||
|
|
@ -6241,17 +6226,17 @@ void func_80017054(Camera *camera, s32 arg1, s32 arg2, s32 cameraId) {
|
|||
s32 sp5C;
|
||||
s32 sp58;
|
||||
s16 sp56;
|
||||
s32 sp4C;
|
||||
//s32 sp4C;
|
||||
f32 *sp48;
|
||||
s32 *sp44;
|
||||
s16 *sp40;
|
||||
//s32 *sp44;
|
||||
//s16 *sp40;
|
||||
f32 *sp3C;
|
||||
TrackWaypoint **sp2C;
|
||||
TrackWaypoint **temp_t2_2;
|
||||
TrackWaypoint *temp_t0_2;
|
||||
TrackWaypoint *temp_t0_3;
|
||||
f32 *temp_a2;
|
||||
f32 *temp_t1;
|
||||
//f32 *temp_t1;
|
||||
f32 temp_f0;
|
||||
f32 temp_f10;
|
||||
f32 temp_f12;
|
||||
|
|
@ -6273,49 +6258,49 @@ void func_80017054(Camera *camera, s32 arg1, s32 arg2, s32 cameraId) {
|
|||
s16 temp_a3_3;
|
||||
s16 temp_a3_4;
|
||||
s32 *temp_a0;
|
||||
s32 *temp_a1;
|
||||
s32 *temp_v1;
|
||||
//s32 *temp_a1;
|
||||
//s32 *temp_v1;
|
||||
s32 temp_hi;
|
||||
s32 temp_t2;
|
||||
s32 temp_v0;
|
||||
|
||||
temp_t1 = &D_80164648[cameraId];
|
||||
temp_f2 = *temp_t1;
|
||||
temp_a1 = &D_80163DD8[cameraId];
|
||||
temp_t2 = *temp_a1;
|
||||
*temp_t1 = temp_f2 + ((D_80164658[cameraId] - temp_f2) * 0.5f);
|
||||
//temp_t1 = &D_80164648[cameraId];
|
||||
temp_f2 = D_80164648[cameraId];
|
||||
//temp_a1 = &D_80163DD8[cameraId];
|
||||
temp_t2 = D_80163DD8[cameraId];
|
||||
D_80164648[cameraId] = temp_f2 + ((D_80164658[cameraId] - temp_f2) * 0.5f);
|
||||
temp_t0 = &gNearestWaypointByCameraId[cameraId];
|
||||
D_80163238 = (s32) camera->playerId;
|
||||
temp_a3 = *temp_t0;
|
||||
sp58 = (s32) gWaypointCountByPathIndex[temp_t2];
|
||||
sp56 = temp_a3;
|
||||
sp48 = temp_t1;
|
||||
sp40 = temp_t0;
|
||||
sp44 = temp_a1;
|
||||
sp4C = cameraId * 4;
|
||||
sp48 = D_80164648[cameraId];
|
||||
//sp40 = temp_t0;
|
||||
//sp44 = D_80163DD8[cameraId];
|
||||
//sp4C = cameraId * 4;
|
||||
sp5C = temp_t2;
|
||||
*sp40 = func_8000D33C(camera->pos[0], camera->pos[1], camera->pos[2], temp_a3, temp_t2);
|
||||
gNearestWaypointByCameraId[cameraId] = func_8000D33C(camera->pos[0], camera->pos[1], camera->pos[2], temp_a3, temp_t2);
|
||||
if (gCurrentCourseId == 4) {
|
||||
temp_a3_2 = *sp40;
|
||||
if ((sp56 != temp_a3_2) && (temp_a3_2 == 1)) {
|
||||
temp_v0 = random_int(4U);
|
||||
*sp44 = temp_v0;
|
||||
sp5C = temp_v0;
|
||||
*sp40 = func_8000D33C(camera->pos[0], camera->pos[1], camera->pos[2], *sp40, temp_v0);
|
||||
//temp_a3_2 = //*sp40;
|
||||
if ((sp56 != gNearestWaypointByCameraId[cameraId]) && (gNearestWaypointByCameraId[cameraId] == 1)) {
|
||||
D_80163DD8[cameraId] = random_int(4);
|
||||
//D_80163DD8[cameraId] = temp_v0;
|
||||
sp5C = D_80163DD8[cameraId];
|
||||
gNearestWaypointByCameraId[cameraId] = func_8000D33C(camera->pos[0], camera->pos[1], camera->pos[2], gNearestWaypointByCameraId[cameraId], sp5C);
|
||||
}
|
||||
}
|
||||
temp_a3_3 = *sp40;
|
||||
temp_v1 = sp4C + D_80164688;
|
||||
sp6C = (u16) ((s32) (temp_a3_3 + 0xB) % sp58);
|
||||
sp44 = temp_v1;
|
||||
sp3C = (f32 *) unksp5E;
|
||||
func_8000BBD8((s16) ((s32) (temp_a3_3 + 0xA) % sp58) & 0xFFFF, *temp_v1, unksp5E);
|
||||
temp_a3_3 = gNearestWaypointByCameraId[cameraId];
|
||||
//temp_v1 = D_80164688[cameraId];
|
||||
sp6C = (u16) ((s32) (temp_a3_3 + 11) % sp58);
|
||||
D_80163DD8[cameraId] = D_80164688[cameraId];
|
||||
//sp3C = (f32 *) unksp5E;
|
||||
func_8000BBD8((s16) ((s32) (temp_a3_3 + 10) % sp58) & 0xFFFF, D_80164688[cameraId], sp5C);
|
||||
sp8C = (f32) ((f64) D_80162FA0->unk0 * 0.5);
|
||||
sp84 = (f32) ((f64) D_80162FA0->unk8 * 0.5);
|
||||
func_8000BBD8(sp6C, (bitwise f32) *sp44, unksp3E);
|
||||
func_8000BBD8(sp6C, D_80163DD8[cameraId], sp5C);
|
||||
sp8C = (f32) ((f64) sp8C + ((f64) D_80162FA0->unk0 * 0.5));
|
||||
sp84 = (f32) ((f64) sp84 + ((f64) D_80162FA0->unk8 * 0.5));
|
||||
temp_a3_4 = *sp40;
|
||||
temp_a3_4 = gNearestWaypointByCameraId[cameraId];
|
||||
temp_t2_2 = &D_80164550[sp5C];
|
||||
temp_t0_2 = *temp_t2_2;
|
||||
temp_hi = (s32) (temp_a3_4 + 1) % sp58;
|
||||
|
|
@ -6323,26 +6308,26 @@ void func_80017054(Camera *camera, s32 arg1, s32 arg2, s32 cameraId) {
|
|||
sp2C = temp_t2_2;
|
||||
sp6C = (u16) ((s32) (temp_a3_4 + 2) % sp58);
|
||||
sp6E = (s16) temp_hi;
|
||||
func_8000BBD8((s16) temp_hi & 0xFFFF, (bitwise f32) *sp44, unksp3E);
|
||||
func_8000BBD8((s16) temp_hi & 0xFFFF, D_80163DD8[cameraId], sp5C);
|
||||
temp_f14 = (f32) ((f64) D_80162FA0->unk0 * 0.5);
|
||||
temp_f16 = (f32) ((f64) D_80162FA0->unk8 * 0.5);
|
||||
sp98 = temp_f14;
|
||||
sp90 = temp_f16;
|
||||
func_8000BBD8(sp6C, (bitwise f32) *sp44, unksp3E);
|
||||
func_8000BBD8(sp6C, D_80163DD8[cameraId], sp5C);
|
||||
temp_t0_3 = *sp2C;
|
||||
temp_a0 = sp4C + D_801645F8;
|
||||
temp_a0 = D_801645F8[cameraId];
|
||||
temp_f10 = (f32) (temp_t0_3[(s16) sp6C].posY + temp_t0_3[(s16) temp_hi].posY) * 0.5f;
|
||||
temp_a1_2 = sp4C + D_80164618;
|
||||
temp_a1_2 = D_80164618[cameraId];
|
||||
temp_f18 = (f32) ((f64) temp_f14 + ((f64) D_80162FA0->unk0 * 0.5)) - *temp_a0;
|
||||
sp94 = temp_f10;
|
||||
temp_f2_2 = temp_f10 - *temp_a1_2;
|
||||
temp_a2 = sp4C + D_80164638;
|
||||
temp_a2 = D_80164638[cameraId];
|
||||
sp3C = temp_a2;
|
||||
sp7C = temp_f2_2;
|
||||
temp_f8 = (f32) ((f64) temp_f16 + ((f64) D_80162FA0->unk8 * 0.5)) - *temp_a2;
|
||||
sp80 = temp_f18;
|
||||
sp40 = temp_a1_2;
|
||||
sp44 = temp_a0;
|
||||
gNearestWaypointByCameraId[cameraId] = temp_a1_2;
|
||||
D_80163DD8[cameraId] = temp_a0;
|
||||
sp78 = temp_f8;
|
||||
temp_f0 = sqrtf((temp_f18 * temp_f18) + (temp_f2_2 * temp_f2_2) + (temp_f8 * temp_f8));
|
||||
if ((f64) temp_f0 != 0.0) {
|
||||
|
|
@ -7565,7 +7550,7 @@ void func_8001AAAC(s16 arg0, s16 arg1, s16 arg2) {
|
|||
void func_8001AB00(void) {
|
||||
s32 var_v1;
|
||||
|
||||
for (var_v1 = 0; var_v1 < 8; var_v1++) {
|
||||
for (var_v1 = 0; var_v1 < NUM_PLAYERS; var_v1++) {
|
||||
D_801642D8[var_v1].unk_00 = 0;
|
||||
D_801642D8[var_v1].unk_04 = 0;
|
||||
D_801642D8[var_v1].actorIndex = -1;
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ void func_80011AE4(s32);
|
|||
void func_80011B14(s32, Player*);
|
||||
void func_80011D48(s32, Player*);
|
||||
void func_80011E38(s32);
|
||||
void func_80011EC0(s32, Player*, s32, s32);
|
||||
void func_80011EC0(s32, Player*, s32, u16);
|
||||
|
||||
void func_800120C8(void);
|
||||
void func_80012190(void);
|
||||
|
|
@ -409,7 +409,7 @@ extern f32 D_800DCAA0[];
|
|||
|
||||
|
||||
// See bss_80005FD0.s
|
||||
extern f32 gCourseCompletionPercentByRank[8];
|
||||
extern f32 gCourseCompletionPercentByRank[NUM_PLAYERS];
|
||||
extern s32 D_801643E0[];
|
||||
extern s32 D_8016448C;
|
||||
extern u16 D_801637BE;
|
||||
|
|
|
|||
|
|
@ -175,11 +175,11 @@ void func_8006EEE8(s32 courseId) {
|
|||
extern u8 *D_8018D9B4;
|
||||
|
||||
void func_8006EF60(void) {
|
||||
s32 var_s2;
|
||||
s32 i;
|
||||
|
||||
for (var_s2 = 0; var_s2 < 0x14; var_s2++) {
|
||||
D_8018D248[var_s2] = func_8006ED94(gCourseOutlineTextures[var_s2], D_8018D9B4, D_800E5520[var_s2], D_800E5520[var_s2]);
|
||||
D_8018D9B4 += D_800E5520[var_s2];
|
||||
for (i = 0; i < 0x14; i++) {
|
||||
D_8018D248[i] = func_8006ED94(gCourseOutlineTextures[i], D_8018D9B4, D_800E5520[i], D_800E5520[i]);
|
||||
D_8018D9B4 += D_800E5520[i];
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ struct SPTask* sNextAudioSPTask = NULL;
|
|||
struct SPTask* sNextDisplaySPTask = NULL;
|
||||
|
||||
|
||||
struct Controller gControllers[8];
|
||||
struct Controller gControllers[NUM_PLAYERS];
|
||||
struct Controller *gControllerOne = &gControllers[0];
|
||||
struct Controller *gControllerTwo = &gControllers[1];
|
||||
struct Controller *gControllerThree = &gControllers[2];
|
||||
|
|
@ -68,7 +68,7 @@ struct Controller *gControllerSix = &gControllers[5];
|
|||
struct Controller *gControllerSeven = &gControllers[6];
|
||||
struct Controller *gControllerEight = &gControllers[7];
|
||||
|
||||
Player gPlayers[8];
|
||||
Player gPlayers[NUM_PLAYERS];
|
||||
Player *gPlayerOne = &gPlayers[0];
|
||||
Player *gPlayerTwo = &gPlayers[1];
|
||||
Player *gPlayerThree = &gPlayers[2];
|
||||
|
|
|
|||
|
|
@ -191,13 +191,13 @@ extern u16 D_80152300[];
|
|||
extern u16 D_80152308;
|
||||
|
||||
extern OSThread gIdleThread;
|
||||
extern ALIGNED8 u8 gIdleThreadStack[];
|
||||
extern u8 gIdleThreadStack[];
|
||||
extern OSThread gVideoThread;
|
||||
extern ALIGNED8 u8 gVideoThreadStack[];
|
||||
extern u8 gVideoThreadStack[];
|
||||
extern OSThread gGameLoopThread;
|
||||
extern ALIGNED8 u8 gGameLoopThreadStack[];
|
||||
extern u8 gGameLoopThreadStack[];
|
||||
extern OSThread gAudioThread;
|
||||
extern ALIGNED8 u8 gAudioThreadStack[];
|
||||
extern u8 gAudioThreadStack[];
|
||||
|
||||
extern u8 gGfxSPTaskYieldBuffer[];
|
||||
extern u32 gGfxSPTaskStack[];
|
||||
|
|
|
|||
28
src/menus.c
28
src/menus.c
|
|
@ -1191,7 +1191,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
|
|||
func_800CA330(0x19);
|
||||
gDebugMenuSelection = DEBUG_MENU_EXITED;
|
||||
|
||||
if (controller->button & L_TRIG) {
|
||||
if (controller->button & CONT_L) {
|
||||
gDemoMode = DEMO_MODE_ACTIVE;
|
||||
} else {
|
||||
gDemoMode = DEMO_MODE_INACTIVE;
|
||||
|
|
@ -1211,7 +1211,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
|
|||
gDebugMenuSelection = DEBUG_MENU_EXITED;
|
||||
gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_CC_50;
|
||||
play_sound2(SOUND_MENU_OK_CLICKED);
|
||||
} else if (btnAndStick & R_TRIG) {
|
||||
} else if (btnAndStick & CONT_R) {
|
||||
gDebugMenuSelection = DEBUG_MENU_DISABLED;
|
||||
play_sound2(SOUND_MENU_SELECT);
|
||||
}
|
||||
|
|
@ -1682,14 +1682,14 @@ GLOBAL_ASM("asm/non_matchings/menus/player_select_menu_act.s")
|
|||
void course_select_menu_act(struct Controller *arg0, u16 arg1) {
|
||||
u16 buttonAndStickPress = (arg0->buttonPressed | arg0->stickPressed);
|
||||
|
||||
if ((!gEnableDebugMode) && ((buttonAndStickPress & 0x1000) != 0)) {
|
||||
buttonAndStickPress |= 0x8000;
|
||||
if ((!gEnableDebugMode) && ((buttonAndStickPress & START_BUTTON) != 0)) {
|
||||
buttonAndStickPress |= A_BUTTON;
|
||||
}
|
||||
|
||||
if (func_800B4520() == 0) {
|
||||
switch (D_8018EDEC) {
|
||||
case 1:
|
||||
if ((buttonAndStickPress & 0x100) != 0) {
|
||||
if ((buttonAndStickPress & R_JPAD) != 0) {
|
||||
if (gCupSelection < SPECIAL_CUP) {
|
||||
D_8018EE0A = gCupSelection;
|
||||
++gCupSelection;
|
||||
|
|
@ -1697,7 +1697,7 @@ void course_select_menu_act(struct Controller *arg0, u16 arg1) {
|
|||
play_sound2(SOUND_MENU_CURSOR_MOVE);
|
||||
}
|
||||
}
|
||||
if (((buttonAndStickPress & 0x200) != 0) && (gCupSelection > MUSHROOM_CUP)) {
|
||||
if (((buttonAndStickPress & L_JPAD) != 0) && (gCupSelection > MUSHROOM_CUP)) {
|
||||
D_8018EE0A = gCupSelection;
|
||||
--gCupSelection;
|
||||
func_800B44AC();
|
||||
|
|
@ -1706,11 +1706,11 @@ void course_select_menu_act(struct Controller *arg0, u16 arg1) {
|
|||
|
||||
D_800DC540 = gCupSelection;
|
||||
gCurrentCourseId = gCupCourseOrder[gCupSelection][gCupCourseSelection];
|
||||
if ((buttonAndStickPress & 0x4000) != 0) {
|
||||
if ((buttonAndStickPress & B_BUTTON) != 0) {
|
||||
func_8009E208();
|
||||
play_sound2(SOUND_MENU_GO_BACK);
|
||||
}
|
||||
else if ((buttonAndStickPress & 0x8000) != 0) {
|
||||
else if ((buttonAndStickPress & A_BUTTON) != 0) {
|
||||
if (gModeSelection != GRAND_PRIX) {
|
||||
D_8018EDEC = 2;
|
||||
play_sound2(SOUND_MENU_SELECT);
|
||||
|
|
@ -1725,19 +1725,19 @@ void course_select_menu_act(struct Controller *arg0, u16 arg1) {
|
|||
break;
|
||||
case 2:
|
||||
case 4:
|
||||
if (((buttonAndStickPress & 0x400) != 0) && (gCupCourseSelection < CUP_COURSE_FOUR)) {
|
||||
if (((buttonAndStickPress & D_JPAD) != 0) && (gCupCourseSelection < CUP_COURSE_FOUR)) {
|
||||
++gCupCourseSelection;
|
||||
func_800B44AC();
|
||||
play_sound2(SOUND_MENU_CURSOR_MOVE);
|
||||
}
|
||||
if (((buttonAndStickPress & 0x800) != 0) && (gCupCourseSelection > CUP_COURSE_ONE)) {
|
||||
if (((buttonAndStickPress & U_JPAD) != 0) && (gCupCourseSelection > CUP_COURSE_ONE)) {
|
||||
--gCupCourseSelection;
|
||||
func_800B44AC();
|
||||
play_sound2(SOUND_MENU_CURSOR_MOVE);
|
||||
}
|
||||
|
||||
gCurrentCourseId = gCupCourseOrder[gCupSelection][gCupCourseSelection];
|
||||
if ((buttonAndStickPress & 0x4000) != 0) {
|
||||
if ((buttonAndStickPress & B_BUTTON) != 0) {
|
||||
if (D_8018EDEC == 2) {
|
||||
D_8018EDEC = 1;
|
||||
} else {
|
||||
|
|
@ -1747,7 +1747,7 @@ void course_select_menu_act(struct Controller *arg0, u16 arg1) {
|
|||
play_sound2(SOUND_MENU_GO_BACK);
|
||||
return;
|
||||
}
|
||||
if ((buttonAndStickPress & 0x8000) != 0) {
|
||||
if ((buttonAndStickPress & A_BUTTON) != 0) {
|
||||
D_8018EDEC = 3;
|
||||
play_sound2(SOUND_MENU_SELECT);
|
||||
func_800B44AC();
|
||||
|
|
@ -1759,7 +1759,7 @@ void course_select_menu_act(struct Controller *arg0, u16 arg1) {
|
|||
play_sound2(SOUND_MENU_OK);
|
||||
}
|
||||
|
||||
if ((buttonAndStickPress & 0x4000) != 0) {
|
||||
if ((buttonAndStickPress & B_BUTTON) != 0) {
|
||||
switch(gModeSelection)
|
||||
{
|
||||
case GRAND_PRIX:
|
||||
|
|
@ -1777,7 +1777,7 @@ void course_select_menu_act(struct Controller *arg0, u16 arg1) {
|
|||
play_sound2(SOUND_MENU_GO_BACK);
|
||||
return;
|
||||
}
|
||||
if ((buttonAndStickPress & 0x8000) != 0) {
|
||||
if ((buttonAndStickPress & A_BUTTON) != 0) {
|
||||
func_8009E1C0();
|
||||
func_800CA330(0x19);
|
||||
play_sound2(SOUND_MENU_OK_CLICKED);
|
||||
|
|
|
|||
|
|
@ -3625,16 +3625,6 @@ Variable Name | Memory Address
|
|||
[D_800ECFCC](@ref D_800ECFCC) | 0x800ECFCC
|
||||
[D_800ECFD0](@ref D_800ECFD0) | 0x800ECFD0
|
||||
[D_800ECFD4](@ref D_800ECFD4) | 0x800ECFD4
|
||||
[D_800ED01C](@ref D_800ED01C) | 0x800ED01C
|
||||
[D_800ED020](@ref D_800ED020) | 0x800ED020
|
||||
[D_800ED024](@ref D_800ED024) | 0x800ED024
|
||||
[D_800ED028](@ref D_800ED028) | 0x800ED028
|
||||
[D_800ED030](@ref D_800ED030) | 0x800ED030
|
||||
[D_800ED034](@ref D_800ED034) | 0x800ED034
|
||||
[D_800ED038](@ref D_800ED038) | 0x800ED038
|
||||
[D_800ED03C](@ref D_800ED03C) | 0x800ED03C
|
||||
[D_800ED0AC](@ref D_800ED0AC) | 0x800ED0AC
|
||||
[D_800ED0B0](@ref D_800ED0B0) | 0x800ED0B0
|
||||
[D_800ED230](@ref D_800ED230) | 0x800ED230
|
||||
[D_800ED238](@ref D_800ED238) | 0x800ED238
|
||||
[D_800ED240](@ref D_800ED240) | 0x800ED240
|
||||
|
|
|
|||
Loading…
Reference in New Issue