mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-07-06 22:03:16 -04:00
20d9e8afba
* Update labels and names based on current knowledge * Create gChatacterSelections/gCharacterGridSelections distinction
182 lines
9.4 KiB
ArmAsm
182 lines
9.4 KiB
ArmAsm
glabel func_80007D04
|
|
/* 008904 80007D04 3C0B8016 */ lui $t3, %hi(gPlayerPositions) # $t3, 0x8016
|
|
/* 008908 80007D08 256B43B8 */ addiu $t3, %lo(gPlayerPositions) # addiu $t3, $t3, 0x43b8
|
|
/* 00890C 80007D0C 3C038016 */ lui $v1, %hi(D_80163478) # $v1, 0x8016
|
|
/* 008910 80007D10 00041080 */ sll $v0, $a0, 2
|
|
/* 008914 80007D14 84633478 */ lh $v1, %lo(D_80163478)($v1)
|
|
/* 008918 80007D18 0162C821 */ addu $t9, $t3, $v0
|
|
/* 00891C 80007D1C 8F2C0000 */ lw $t4, ($t9)
|
|
/* 008920 80007D20 3C088016 */ lui $t0, %hi(D_80164450) # $t0, 0x8016
|
|
/* 008924 80007D24 25084450 */ addiu $t0, %lo(D_80164450) # addiu $t0, $t0, 0x4450
|
|
/* 008928 80007D28 00037080 */ sll $t6, $v1, 2
|
|
/* 00892C 80007D2C 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* 008930 80007D30 010E7821 */ addu $t7, $t0, $t6
|
|
/* 008934 80007D34 0102C021 */ addu $t8, $t0, $v0
|
|
/* 008938 80007D38 29810002 */ slti $at, $t4, 2
|
|
/* 00893C 80007D3C AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 008940 80007D40 00803825 */ move $a3, $a0
|
|
/* 008944 80007D44 00A03025 */ move $a2, $a1
|
|
/* 008948 80007D48 85E90002 */ lh $t1, 2($t7)
|
|
/* 00894C 80007D4C 10200019 */ beqz $at, .L80007DB4
|
|
/* 008950 80007D50 870A0002 */ lh $t2, 2($t8)
|
|
/* 008954 80007D54 016E6821 */ addu $t5, $t3, $t6
|
|
/* 008958 80007D58 01497023 */ subu $t6, $t2, $t1
|
|
/* 00895C 80007D5C 000E7C00 */ sll $t7, $t6, 0x10
|
|
/* 008960 80007D60 000FC403 */ sra $t8, $t7, 0x10
|
|
/* 008964 80007D64 2B010191 */ slti $at, $t8, 0x191
|
|
/* 008968 80007D68 14200020 */ bnez $at, .L80007DEC
|
|
/* 00896C 80007D6C 85A20002 */ lh $v0, 2($t5)
|
|
/* 008970 80007D70 28410006 */ slti $at, $v0, 6
|
|
/* 008974 80007D74 1420001D */ bnez $at, .L80007DEC
|
|
/* 008978 80007D78 00A02025 */ move $a0, $a1
|
|
/* 00897C 80007D7C 8CB900BC */ lw $t9, 0xbc($a1)
|
|
/* 008980 80007D80 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf
|
|
/* 008984 80007D84 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
|
/* 008988 80007D88 03216024 */ and $t4, $t9, $at
|
|
/* 00898C 80007D8C ACAC00BC */ sw $t4, 0xbc($a1)
|
|
/* 008990 80007D90 0C00C3F2 */ jal func_80030FC8
|
|
/* 008994 80007D94 AFA70030 */ sw $a3, 0x30($sp)
|
|
/* 008998 80007D98 8FA70030 */ lw $a3, 0x30($sp)
|
|
/* 00899C 80007D9C 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016
|
|
/* 0089A0 80007DA0 240D0004 */ li $t5, 4
|
|
/* 0089A4 80007DA4 00077040 */ sll $t6, $a3, 1
|
|
/* 0089A8 80007DA8 002E0821 */ addu $at, $at, $t6
|
|
/* 0089AC 80007DAC 10000079 */ b .L80007F94
|
|
/* 0089B0 80007DB0 A42D34C0 */ sh $t5, %lo(D_801634C0)($at) # 0x34c0($at)
|
|
.L80007DB4:
|
|
/* 0089B4 80007DB4 8CCF00BC */ lw $t7, 0xbc($a2)
|
|
/* 0089B8 80007DB8 3C010020 */ lui $at, 0x20
|
|
/* 0089BC 80007DBC 00C02025 */ move $a0, $a2
|
|
/* 0089C0 80007DC0 01E1C025 */ or $t8, $t7, $at
|
|
/* 0089C4 80007DC4 ACD800BC */ sw $t8, 0xbc($a2)
|
|
/* 0089C8 80007DC8 0C00C3F2 */ jal func_80030FC8
|
|
/* 0089CC 80007DCC AFA70030 */ sw $a3, 0x30($sp)
|
|
/* 0089D0 80007DD0 8FA70030 */ lw $a3, 0x30($sp)
|
|
/* 0089D4 80007DD4 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016
|
|
/* 0089D8 80007DD8 24050003 */ li $a1, 3
|
|
/* 0089DC 80007DDC 0007C840 */ sll $t9, $a3, 1
|
|
/* 0089E0 80007DE0 00390821 */ addu $at, $at, $t9
|
|
/* 0089E4 80007DE4 1000006B */ b .L80007F94
|
|
/* 0089E8 80007DE8 A42534C0 */ sh $a1, %lo(D_801634C0)($at) # 0x34c0($at)
|
|
.L80007DEC:
|
|
/* 0089EC 80007DEC 3C03800E */ lui $v1, %hi(gCCSelection)
|
|
/* 0089F0 80007DF0 8C63C548 */ lw $v1, %lo(gCCSelection)($v1)
|
|
/* 0089F4 80007DF4 24050003 */ li $a1, 3
|
|
/* 0089F8 80007DF8 24010001 */ li $at, 1
|
|
/* 0089FC 80007DFC 1060000A */ beqz $v1, .L80007E28
|
|
/* 008A00 80007E00 3C0C8016 */ lui $t4, %hi(D_80163344) # $t4, 0x8016
|
|
/* 008A04 80007E04 1061000E */ beq $v1, $at, .L80007E40
|
|
/* 008A08 80007E08 3C0D8016 */ lui $t5, %hi(D_80163344) # $t5, 0x8016
|
|
/* 008A0C 80007E0C 24010002 */ li $at, 2
|
|
/* 008A10 80007E10 10610011 */ beq $v1, $at, .L80007E58
|
|
/* 008A14 80007E14 3C0E8016 */ lui $t6, %hi(D_80163344) # $t6, 0x8016
|
|
/* 008A18 80007E18 10650015 */ beq $v1, $a1, .L80007E70
|
|
/* 008A1C 80007E1C 3C0F8016 */ lui $t7, %hi(D_80163344) # $t7, 0x8016
|
|
/* 008A20 80007E20 10000018 */ b .L80007E84
|
|
/* 008A24 80007E24 00001025 */ move $v0, $zero
|
|
.L80007E28:
|
|
/* 008A28 80007E28 958C3344 */ lhu $t4, %lo(D_80163344)($t4)
|
|
/* 008A2C 80007E2C 00001025 */ move $v0, $zero
|
|
/* 008A30 80007E30 54EC0015 */ bnel $a3, $t4, .L80007E88
|
|
/* 008A34 80007E34 0149082A */ slt $at, $t2, $t1
|
|
/* 008A38 80007E38 10000012 */ b .L80007E84
|
|
/* 008A3C 80007E3C 24020014 */ li $v0, 20
|
|
.L80007E40:
|
|
/* 008A40 80007E40 95AD3344 */ lhu $t5, %lo(D_80163344)($t5)
|
|
/* 008A44 80007E44 24020008 */ li $v0, 8
|
|
/* 008A48 80007E48 54ED000F */ bnel $a3, $t5, .L80007E88
|
|
/* 008A4C 80007E4C 0149082A */ slt $at, $t2, $t1
|
|
/* 008A50 80007E50 1000000C */ b .L80007E84
|
|
/* 008A54 80007E54 24020018 */ li $v0, 24
|
|
.L80007E58:
|
|
/* 008A58 80007E58 95CE3344 */ lhu $t6, %lo(D_80163344)($t6)
|
|
/* 008A5C 80007E5C 24020012 */ li $v0, 18
|
|
/* 008A60 80007E60 54EE0009 */ bnel $a3, $t6, .L80007E88
|
|
/* 008A64 80007E64 0149082A */ slt $at, $t2, $t1
|
|
/* 008A68 80007E68 10000006 */ b .L80007E84
|
|
/* 008A6C 80007E6C 24020024 */ li $v0, 36
|
|
.L80007E70:
|
|
/* 008A70 80007E70 95EF3344 */ lhu $t7, %lo(D_80163344)($t7)
|
|
/* 008A74 80007E74 24020008 */ li $v0, 8
|
|
/* 008A78 80007E78 54EF0003 */ bnel $a3, $t7, .L80007E88
|
|
/* 008A7C 80007E7C 0149082A */ slt $at, $t2, $t1
|
|
/* 008A80 80007E80 24020018 */ li $v0, 24
|
|
.L80007E84:
|
|
/* 008A84 80007E84 0149082A */ slt $at, $t2, $t1
|
|
.L80007E88:
|
|
/* 008A88 80007E88 1020000F */ beqz $at, .L80007EC8
|
|
/* 008A8C 80007E8C 01227021 */ addu $t6, $t1, $v0
|
|
/* 008A90 80007E90 8CD800BC */ lw $t8, 0xbc($a2)
|
|
/* 008A94 80007E94 3C010020 */ lui $at, 0x20
|
|
/* 008A98 80007E98 00C02025 */ move $a0, $a2
|
|
/* 008A9C 80007E9C 0301C825 */ or $t9, $t8, $at
|
|
/* 008AA0 80007EA0 ACD900BC */ sw $t9, 0xbc($a2)
|
|
/* 008AA4 80007EA4 0C00C3F2 */ jal func_80030FC8
|
|
/* 008AA8 80007EA8 AFA70030 */ sw $a3, 0x30($sp)
|
|
/* 008AAC 80007EAC 8FA70030 */ lw $a3, 0x30($sp)
|
|
/* 008AB0 80007EB0 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016
|
|
/* 008AB4 80007EB4 240C0001 */ li $t4, 1
|
|
/* 008AB8 80007EB8 00076840 */ sll $t5, $a3, 1
|
|
/* 008ABC 80007EBC 002D0821 */ addu $at, $at, $t5
|
|
/* 008AC0 80007EC0 10000034 */ b .L80007F94
|
|
/* 008AC4 80007EC4 A42C34C0 */ sh $t4, %lo(D_801634C0)($at) # 0x34c0($at)
|
|
.L80007EC8:
|
|
/* 008AC8 80007EC8 25CF0032 */ addiu $t7, $t6, 0x32
|
|
/* 008ACC 80007ECC 014F082A */ slt $at, $t2, $t7
|
|
/* 008AD0 80007ED0 10200010 */ beqz $at, .L80007F14
|
|
/* 008AD4 80007ED4 00071040 */ sll $v0, $a3, 1
|
|
/* 008AD8 80007ED8 8CD800BC */ lw $t8, 0xbc($a2)
|
|
/* 008ADC 80007EDC 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf
|
|
/* 008AE0 80007EE0 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
|
/* 008AE4 80007EE4 0301C824 */ and $t9, $t8, $at
|
|
/* 008AE8 80007EE8 ACD900BC */ sw $t9, 0xbc($a2)
|
|
/* 008AEC 80007EEC AFA70030 */ sw $a3, 0x30($sp)
|
|
/* 008AF0 80007EF0 0C00C3F2 */ jal func_80030FC8
|
|
/* 008AF4 80007EF4 00C02025 */ move $a0, $a2
|
|
/* 008AF8 80007EF8 8FA70030 */ lw $a3, 0x30($sp)
|
|
/* 008AFC 80007EFC 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016
|
|
/* 008B00 80007F00 24050003 */ li $a1, 3
|
|
/* 008B04 80007F04 00076040 */ sll $t4, $a3, 1
|
|
/* 008B08 80007F08 002C0821 */ addu $at, $at, $t4
|
|
/* 008B0C 80007F0C 10000021 */ b .L80007F94
|
|
/* 008B10 80007F10 A42534C0 */ sh $a1, %lo(D_801634C0)($at) # 0x34c0($at)
|
|
.L80007F14:
|
|
/* 008B14 80007F14 3C0D8016 */ lui $t5, %hi(D_801631E0) # 0x8016
|
|
/* 008B18 80007F18 01A26821 */ addu $t5, $t5, $v0
|
|
/* 008B1C 80007F1C 95AD31E0 */ lhu $t5, %lo(D_801631E0)($t5) # 0x31e0($t5)
|
|
/* 008B20 80007F20 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf
|
|
/* 008B24 80007F24 00C02025 */ move $a0, $a2
|
|
/* 008B28 80007F28 15A0000E */ bnez $t5, .L80007F64
|
|
/* 008B2C 80007F2C 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
|
/* 008B30 80007F30 8CCE00BC */ lw $t6, 0xbc($a2)
|
|
/* 008B34 80007F34 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf
|
|
/* 008B38 80007F38 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
|
/* 008B3C 80007F3C 01C17824 */ and $t7, $t6, $at
|
|
/* 008B40 80007F40 ACCF00BC */ sw $t7, 0xbc($a2)
|
|
/* 008B44 80007F44 0C00C3F2 */ jal func_80030FC8
|
|
/* 008B48 80007F48 AFA2001C */ sw $v0, 0x1c($sp)
|
|
/* 008B4C 80007F4C 8FA2001C */ lw $v0, 0x1c($sp)
|
|
/* 008B50 80007F50 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016
|
|
/* 008B54 80007F54 24180002 */ li $t8, 2
|
|
/* 008B58 80007F58 00220821 */ addu $at, $at, $v0
|
|
/* 008B5C 80007F5C 1000000D */ b .L80007F94
|
|
/* 008B60 80007F60 A43834C0 */ sh $t8, %lo(D_801634C0)($at) # 0x34c0($at)
|
|
.L80007F64:
|
|
/* 008B64 80007F64 8CD900BC */ lw $t9, 0xbc($a2)
|
|
/* 008B68 80007F68 00C02025 */ move $a0, $a2
|
|
/* 008B6C 80007F6C 3C053F80 */ lui $a1, 0x3f80
|
|
/* 008B70 80007F70 03216024 */ and $t4, $t9, $at
|
|
/* 008B74 80007F74 ACCC00BC */ sw $t4, 0xbc($a2)
|
|
/* 008B78 80007F78 0C00C7D2 */ jal func_80031F48
|
|
/* 008B7C 80007F7C AFA2001C */ sw $v0, 0x1c($sp)
|
|
/* 008B80 80007F80 8FA2001C */ lw $v0, 0x1c($sp)
|
|
/* 008B84 80007F84 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016
|
|
/* 008B88 80007F88 240DFFFF */ li $t5, -1
|
|
/* 008B8C 80007F8C 00220821 */ addu $at, $at, $v0
|
|
/* 008B90 80007F90 A42D34C0 */ sh $t5, %lo(D_801634C0)($at) # 0x34c0($at)
|
|
.L80007F94:
|
|
/* 008B94 80007F94 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 008B98 80007F98 27BD0030 */ addiu $sp, $sp, 0x30
|
|
/* 008B9C 80007F9C 03E00008 */ jr $ra
|
|
/* 008BA0 80007FA0 00000000 */ nop
|