Decompile chr0f0260c4
This commit is contained in:
parent
2714d12e86
commit
47add757e0
581
src/game/chr.c
581
src/game/chr.c
|
@ -3675,574 +3675,6 @@ void chrEmitSparks(struct chrdata *chr, struct prop *prop, s32 hitpart, struct c
|
|||
#endif
|
||||
}
|
||||
|
||||
#if MATCHING
|
||||
GLOBAL_ASM(
|
||||
glabel chr0f0260c4
|
||||
/* f0260c4: 27bdfed8 */ addiu $sp,$sp,-296
|
||||
/* f0260c8: afb00018 */ sw $s0,0x18($sp)
|
||||
/* f0260cc: afbf003c */ sw $ra,0x3c($sp)
|
||||
/* f0260d0: afb30024 */ sw $s3,0x24($sp)
|
||||
/* f0260d4: afb20020 */ sw $s2,0x20($sp)
|
||||
/* f0260d8: afb1001c */ sw $s1,0x1c($sp)
|
||||
/* f0260dc: 3c107fff */ lui $s0,0x7fff
|
||||
/* f0260e0: 00e09025 */ or $s2,$a3,$zero
|
||||
/* f0260e4: 00c09825 */ or $s3,$a2,$zero
|
||||
/* f0260e8: afbe0038 */ sw $s8,0x38($sp)
|
||||
/* f0260ec: afb70034 */ sw $s7,0x34($sp)
|
||||
/* f0260f0: afb60030 */ sw $s6,0x30($sp)
|
||||
/* f0260f4: afb5002c */ sw $s5,0x2c($sp)
|
||||
/* f0260f8: afb40028 */ sw $s4,0x28($sp)
|
||||
/* f0260fc: afa40128 */ sw $a0,0x128($sp)
|
||||
/* f026100: afa5012c */ sw $a1,0x12c($sp)
|
||||
/* f026104: 00008825 */ or $s1,$zero,$zero
|
||||
/* f026108: 3610ffff */ ori $s0,$s0,0xffff
|
||||
/* f02610c: 0c004b70 */ jal random
|
||||
/* f026110: afa00100 */ sw $zero,0x100($sp)
|
||||
/* f026114: 24010032 */ addiu $at,$zero,0x32
|
||||
/* f026118: 0041001b */ divu $zero,$v0,$at
|
||||
/* f02611c: 00007010 */ mfhi $t6
|
||||
/* f026120: 25cf0014 */ addiu $t7,$t6,0x14
|
||||
/* f026124: afaf00cc */ sw $t7,0xcc($sp)
|
||||
/* f026128: afa000c0 */ sw $zero,0xc0($sp)
|
||||
/* f02612c: 0c0069d0 */ jal modelNodeFindMtxNode
|
||||
/* f026130: 02602025 */ or $a0,$s3,$zero
|
||||
/* f026134: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f026138: 00402825 */ or $a1,$v0,$zero
|
||||
/* f02613c: 0c006b57 */ jal modelNodeGetModelRelativePosition
|
||||
/* f026140: 27a600f4 */ addiu $a2,$sp,0xf4
|
||||
/* f026144: c6440000 */ lwc1 $f4,0x0($s2)
|
||||
/* f026148: c7a600f4 */ lwc1 $f6,0xf4($sp)
|
||||
/* f02614c: c7b000f8 */ lwc1 $f16,0xf8($sp)
|
||||
/* f026150: 02602825 */ or $a1,$s3,$zero
|
||||
/* f026154: 46062201 */ sub.s $f8,$f4,$f6
|
||||
/* f026158: c7a600fc */ lwc1 $f6,0xfc($sp)
|
||||
/* f02615c: 24160011 */ addiu $s6,$zero,0x11
|
||||
/* f026160: 2415000a */ addiu $s5,$zero,0xa
|
||||
/* f026164: e7a800dc */ swc1 $f8,0xdc($sp)
|
||||
/* f026168: c64a0004 */ lwc1 $f10,0x4($s2)
|
||||
/* f02616c: 46105481 */ sub.s $f18,$f10,$f16
|
||||
/* f026170: e7b200e0 */ swc1 $f18,0xe0($sp)
|
||||
/* f026174: c6440008 */ lwc1 $f4,0x8($s2)
|
||||
/* f026178: 46062201 */ sub.s $f8,$f4,$f6
|
||||
/* f02617c: 126000c7 */ beqz $s3,.L0f02649c
|
||||
/* f026180: e7a800e4 */ swc1 $f8,0xe4($sp)
|
||||
/* f026184: 94b40000 */ lhu $s4,0x0($a1)
|
||||
.L0f026188:
|
||||
/* f026188: 24010008 */ addiu $at,$zero,0x8
|
||||
/* f02618c: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f026190: 329800ff */ andi $t8,$s4,0xff
|
||||
/* f026194: 13010099 */ beq $t8,$at,.L0f0263fc
|
||||
/* f026198: 0300a025 */ or $s4,$t8,$zero
|
||||
/* f02619c: 24010012 */ addiu $at,$zero,0x12
|
||||
/* f0261a0: 1301009b */ beq $t8,$at,.L0f026410
|
||||
/* f0261a4: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f0261a8: 24010017 */ addiu $at,$zero,0x17
|
||||
/* f0261ac: 1301009d */ beq $t8,$at,.L0f026424
|
||||
/* f0261b0: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f0261b4: 24010018 */ addiu $at,$zero,0x18
|
||||
/* f0261b8: 13010003 */ beq $t8,$at,.L0f0261c8
|
||||
/* f0261bc: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f0261c0: 1000009c */ b .L0f026434
|
||||
/* f0261c4: 8ca20014 */ lw $v0,0x14($a1)
|
||||
.L0f0261c8:
|
||||
/* f0261c8: 8cb20004 */ lw $s2,0x4($a1)
|
||||
/* f0261cc: 0c006a87 */ jal modelGetNodeRwData
|
||||
/* f0261d0: afa50110 */ sw $a1,0x110($sp)
|
||||
/* f0261d4: 8c440004 */ lw $a0,0x4($v0)
|
||||
/* f0261d8: 8fa50110 */ lw $a1,0x110($sp)
|
||||
/* f0261dc: 54800004 */ bnezl $a0,.L0f0261f0
|
||||
/* f0261e0: 8e430000 */ lw $v1,0x0($s2)
|
||||
/* f0261e4: 10000093 */ b .L0f026434
|
||||
/* f0261e8: 8ca20014 */ lw $v0,0x14($a1)
|
||||
/* f0261ec: 8e430000 */ lw $v1,0x0($s2)
|
||||
.L0f0261f0:
|
||||
/* f0261f0: 3c0100ff */ lui $at,0xff
|
||||
/* f0261f4: 3421ffff */ ori $at,$at,0xffff
|
||||
/* f0261f8: 14640005 */ bne $v1,$a0,.L0f026210
|
||||
/* f0261fc: 0080f025 */ or $s8,$a0,$zero
|
||||
/* f026200: 8e4a0008 */ lw $t2,0x8($s2)
|
||||
/* f026204: 00615824 */ and $t3,$v1,$at
|
||||
/* f026208: 10000001 */ b .L0f026210
|
||||
/* f02620c: 014bf021 */ addu $s8,$t2,$t3
|
||||
.L0f026210:
|
||||
/* f026210: 8e420004 */ lw $v0,0x4($s2)
|
||||
/* f026214: 3c0100ff */ lui $at,0xff
|
||||
/* f026218: 50400008 */ beqzl $v0,.L0f02623c
|
||||
/* f02621c: afa00108 */ sw $zero,0x108($sp)
|
||||
/* f026220: 8e4c0008 */ lw $t4,0x8($s2)
|
||||
/* f026224: 3421ffff */ ori $at,$at,0xffff
|
||||
/* f026228: 00416824 */ and $t5,$v0,$at
|
||||
/* f02622c: 018d7021 */ addu $t6,$t4,$t5
|
||||
/* f026230: 10000002 */ b .L0f02623c
|
||||
/* f026234: afae0108 */ sw $t6,0x108($sp)
|
||||
/* f026238: afa00108 */ sw $zero,0x108($sp)
|
||||
.L0f02623c:
|
||||
/* f02623c: 83c20000 */ lb $v0,0x0($s8)
|
||||
/* f026240: 2401ffb8 */ addiu $at,$zero,-72
|
||||
/* f026244: 8faf0108 */ lw $t7,0x108($sp)
|
||||
/* f026248: 5441000a */ bnel $v0,$at,.L0f026274
|
||||
/* f02624c: 24010004 */ addiu $at,$zero,0x4
|
||||
/* f026250: 51e00005 */ beqzl $t7,.L0f026268
|
||||
/* f026254: 8fa50110 */ lw $a1,0x110($sp)
|
||||
/* f026258: 01e0f025 */ or $s8,$t7,$zero
|
||||
/* f02625c: 1000fff7 */ b .L0f02623c
|
||||
/* f026260: afa00108 */ sw $zero,0x108($sp)
|
||||
/* f026264: 8fa50110 */ lw $a1,0x110($sp)
|
||||
.L0f026268:
|
||||
/* f026268: 10000072 */ b .L0f026434
|
||||
/* f02626c: 8ca20014 */ lw $v0,0x14($a1)
|
||||
/* f026270: 24010004 */ addiu $at,$zero,0x4
|
||||
.L0f026274:
|
||||
/* f026274: 1441003e */ bne $v0,$at,.L0f026370
|
||||
/* f026278: 8fac0100 */ lw $t4,0x100($sp)
|
||||
/* f02627c: 8fc20004 */ lw $v0,0x4($s8)
|
||||
/* f026280: 93c90001 */ lbu $t1,0x1($s8)
|
||||
/* f026284: 3c0100ff */ lui $at,0xff
|
||||
/* f026288: 8e4a000c */ lw $t2,0xc($s2)
|
||||
/* f02628c: 3421ffff */ ori $at,$at,0xffff
|
||||
/* f026290: 0041c824 */ and $t9,$v0,$at
|
||||
/* f026294: 00095902 */ srl $t3,$t1,0x4
|
||||
/* f026298: 25690001 */ addiu $t1,$t3,0x1
|
||||
/* f02629c: 11800055 */ beqz $t4,.L0f0263f4
|
||||
/* f0262a0: 01591821 */ addu $v1,$t2,$t9
|
||||
/* f0262a4: 19200053 */ blez $t1,.L0f0263f4
|
||||
/* f0262a8: 00003025 */ or $a2,$zero,$zero
|
||||
/* f0262ac: 00601025 */ or $v0,$v1,$zero
|
||||
.L0f0262b0:
|
||||
/* f0262b0: 84470000 */ lh $a3,0x0($v0)
|
||||
/* f0262b4: 8fad00d0 */ lw $t5,0xd0($sp)
|
||||
/* f0262b8: 8fae00d4 */ lw $t6,0xd4($sp)
|
||||
/* f0262bc: 844f0002 */ lh $t7,0x2($v0)
|
||||
/* f0262c0: 01a71823 */ subu $v1,$t5,$a3
|
||||
/* f0262c4: 00630019 */ multu $v1,$v1
|
||||
/* f0262c8: 01cf2023 */ subu $a0,$t6,$t7
|
||||
/* f0262cc: 8fb800d8 */ lw $t8,0xd8($sp)
|
||||
/* f0262d0: 84590004 */ lh $t9,0x4($v0)
|
||||
/* f0262d4: 24c60001 */ addiu $a2,$a2,0x1
|
||||
/* f0262d8: c7aa00e8 */ lwc1 $f10,0xe8($sp)
|
||||
/* f0262dc: 03192823 */ subu $a1,$t8,$t9
|
||||
/* f0262e0: 00005012 */ mflo $t2
|
||||
/* f0262e4: 00000000 */ nop
|
||||
/* f0262e8: 00000000 */ nop
|
||||
/* f0262ec: 00840019 */ multu $a0,$a0
|
||||
/* f0262f0: 00005812 */ mflo $t3
|
||||
/* f0262f4: 014b6021 */ addu $t4,$t2,$t3
|
||||
/* f0262f8: 00000000 */ nop
|
||||
/* f0262fc: 00a50019 */ multu $a1,$a1
|
||||
/* f026300: 00006812 */ mflo $t5
|
||||
/* f026304: 018d4021 */ addu $t0,$t4,$t5
|
||||
/* f026308: 0110082a */ slt $at,$t0,$s0
|
||||
/* f02630c: 10200014 */ beqz $at,.L0f026360
|
||||
/* f026310: 00000000 */ nop
|
||||
/* f026314: 4600540d */ trunc.w.s $f16,$f10
|
||||
/* f026318: c7b200ec */ lwc1 $f18,0xec($sp)
|
||||
/* f02631c: c7a600f0 */ lwc1 $f6,0xf0($sp)
|
||||
/* f026320: 01008025 */ or $s0,$t0,$zero
|
||||
/* f026324: 440f8000 */ mfc1 $t7,$f16
|
||||
/* f026328: 4600910d */ trunc.w.s $f4,$f18
|
||||
/* f02632c: 8fb10110 */ lw $s1,0x110($sp)
|
||||
/* f026330: 01e7c021 */ addu $t8,$t7,$a3
|
||||
/* f026334: afb80114 */ sw $t8,0x114($sp)
|
||||
/* f026338: 844b0002 */ lh $t3,0x2($v0)
|
||||
/* f02633c: 440a2000 */ mfc1 $t2,$f4
|
||||
/* f026340: 4600320d */ trunc.w.s $f8,$f6
|
||||
/* f026344: 014b6021 */ addu $t4,$t2,$t3
|
||||
/* f026348: afac0118 */ sw $t4,0x118($sp)
|
||||
/* f02634c: 844f0004 */ lh $t7,0x4($v0)
|
||||
/* f026350: 440e4000 */ mfc1 $t6,$f8
|
||||
/* f026354: 00000000 */ nop
|
||||
/* f026358: 01cfc021 */ addu $t8,$t6,$t7
|
||||
/* f02635c: afb8011c */ sw $t8,0x11c($sp)
|
||||
.L0f026360:
|
||||
/* f026360: 14c9ffd3 */ bne $a2,$t1,.L0f0262b0
|
||||
/* f026364: 2442000c */ addiu $v0,$v0,0xc
|
||||
/* f026368: 1000ffb4 */ b .L0f02623c
|
||||
/* f02636c: 27de0008 */ addiu $s8,$s8,0x8
|
||||
.L0f026370:
|
||||
/* f026370: 24010001 */ addiu $at,$zero,0x1
|
||||
/* f026374: 1441001f */ bne $v0,$at,.L0f0263f4
|
||||
/* f026378: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f02637c: 8fc20004 */ lw $v0,0x4($s8)
|
||||
/* f026380: 3c0100ff */ lui $at,0xff
|
||||
/* f026384: 3421ffff */ ori $at,$at,0xffff
|
||||
/* f026388: 0041c824 */ and $t9,$v0,$at
|
||||
/* f02638c: 0c00698d */ jal modelFindNodeByMtxIndex
|
||||
/* f026390: 00192982 */ srl $a1,$t9,0x6
|
||||
/* f026394: afa20100 */ sw $v0,0x100($sp)
|
||||
/* f026398: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f02639c: 00402825 */ or $a1,$v0,$zero
|
||||
/* f0263a0: 0c006b57 */ jal modelNodeGetModelRelativePosition
|
||||
/* f0263a4: 27a600e8 */ addiu $a2,$sp,0xe8
|
||||
/* f0263a8: c7aa00e8 */ lwc1 $f10,0xe8($sp)
|
||||
/* f0263ac: c7b000dc */ lwc1 $f16,0xdc($sp)
|
||||
/* f0263b0: c7a600ec */ lwc1 $f6,0xec($sp)
|
||||
/* f0263b4: c7a800e0 */ lwc1 $f8,0xe0($sp)
|
||||
/* f0263b8: 46105480 */ add.s $f18,$f10,$f16
|
||||
/* f0263bc: 46083280 */ add.s $f10,$f6,$f8
|
||||
/* f0263c0: 4600910d */ trunc.w.s $f4,$f18
|
||||
/* f0263c4: c7b200f0 */ lwc1 $f18,0xf0($sp)
|
||||
/* f0263c8: 4600540d */ trunc.w.s $f16,$f10
|
||||
/* f0263cc: 440b2000 */ mfc1 $t3,$f4
|
||||
/* f0263d0: c7a400e4 */ lwc1 $f4,0xe4($sp)
|
||||
/* f0263d4: 440d8000 */ mfc1 $t5,$f16
|
||||
/* f0263d8: 46049180 */ add.s $f6,$f18,$f4
|
||||
/* f0263dc: afab00d0 */ sw $t3,0xd0($sp)
|
||||
/* f0263e0: afad00d4 */ sw $t5,0xd4($sp)
|
||||
/* f0263e4: 4600320d */ trunc.w.s $f8,$f6
|
||||
/* f0263e8: 440f4000 */ mfc1 $t7,$f8
|
||||
/* f0263ec: 00000000 */ nop
|
||||
/* f0263f0: afaf00d8 */ sw $t7,0xd8($sp)
|
||||
.L0f0263f4:
|
||||
/* f0263f4: 1000ff91 */ b .L0f02623c
|
||||
/* f0263f8: 27de0008 */ addiu $s8,$s8,0x8
|
||||
.L0f0263fc:
|
||||
/* f0263fc: 0c0071e1 */ jal modelApplyDistanceRelations
|
||||
/* f026400: afa50110 */ sw $a1,0x110($sp)
|
||||
/* f026404: 8fa50110 */ lw $a1,0x110($sp)
|
||||
/* f026408: 1000000a */ b .L0f026434
|
||||
/* f02640c: 8ca20014 */ lw $v0,0x14($a1)
|
||||
.L0f026410:
|
||||
/* f026410: 0c0071f4 */ jal modelApplyToggleRelations
|
||||
/* f026414: afa50110 */ sw $a1,0x110($sp)
|
||||
/* f026418: 8fa50110 */ lw $a1,0x110($sp)
|
||||
/* f02641c: 10000005 */ b .L0f026434
|
||||
/* f026420: 8ca20014 */ lw $v0,0x14($a1)
|
||||
.L0f026424:
|
||||
/* f026424: 0c007207 */ jal modelApplyHeadRelations
|
||||
/* f026428: afa50110 */ sw $a1,0x110($sp)
|
||||
/* f02642c: 8fa50110 */ lw $a1,0x110($sp)
|
||||
/* f026430: 8ca20014 */ lw $v0,0x14($a1)
|
||||
.L0f026434:
|
||||
/* f026434: 10400009 */ beqz $v0,.L0f02645c
|
||||
/* f026438: 00000000 */ nop
|
||||
/* f02643c: 10b30005 */ beq $a1,$s3,.L0f026454
|
||||
/* f026440: 00000000 */ nop
|
||||
/* f026444: 12950005 */ beq $s4,$s5,.L0f02645c
|
||||
/* f026448: 00000000 */ nop
|
||||
/* f02644c: 12960003 */ beq $s4,$s6,.L0f02645c
|
||||
/* f026450: 00000000 */ nop
|
||||
.L0f026454:
|
||||
/* f026454: 1000000f */ b .L0f026494
|
||||
/* f026458: 00402825 */ or $a1,$v0,$zero
|
||||
.L0f02645c:
|
||||
/* f02645c: 10a0000d */ beqz $a1,.L0f026494
|
||||
/* f026460: 00000000 */ nop
|
||||
.L0f026464:
|
||||
/* f026464: 54b30004 */ bnel $a1,$s3,.L0f026478
|
||||
/* f026468: 8ca2000c */ lw $v0,0xc($a1)
|
||||
/* f02646c: 10000009 */ b .L0f026494
|
||||
/* f026470: 00002825 */ or $a1,$zero,$zero
|
||||
/* f026474: 8ca2000c */ lw $v0,0xc($a1)
|
||||
.L0f026478:
|
||||
/* f026478: 50400004 */ beqzl $v0,.L0f02648c
|
||||
/* f02647c: 8ca50008 */ lw $a1,0x8($a1)
|
||||
/* f026480: 10000004 */ b .L0f026494
|
||||
/* f026484: 00402825 */ or $a1,$v0,$zero
|
||||
/* f026488: 8ca50008 */ lw $a1,0x8($a1)
|
||||
.L0f02648c:
|
||||
/* f02648c: 14a0fff5 */ bnez $a1,.L0f026464
|
||||
/* f026490: 00000000 */ nop
|
||||
.L0f026494:
|
||||
/* f026494: 54a0ff3c */ bnezl $a1,.L0f026188
|
||||
/* f026498: 94b40000 */ lhu $s4,0x0($a1)
|
||||
.L0f02649c:
|
||||
/* f02649c: 122000fb */ beqz $s1,.L0f02688c
|
||||
/* f0264a0: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f0264a4: 8c8b0008 */ lw $t3,0x8($a0)
|
||||
/* f0264a8: 2417000c */ addiu $s7,$zero,0xc
|
||||
/* f0264ac: 8d650000 */ lw $a1,0x0($t3)
|
||||
/* f0264b0: 50a000f7 */ beqzl $a1,.L0f026890
|
||||
/* f0264b4: 8fbf003c */ lw $ra,0x3c($sp)
|
||||
/* f0264b8: 94a20000 */ lhu $v0,0x0($a1)
|
||||
.L0f0264bc:
|
||||
/* f0264bc: 24010008 */ addiu $at,$zero,0x8
|
||||
/* f0264c0: 304c00ff */ andi $t4,$v0,0xff
|
||||
/* f0264c4: 118100ce */ beq $t4,$at,.L0f026800
|
||||
/* f0264c8: 24010012 */ addiu $at,$zero,0x12
|
||||
/* f0264cc: 118100d2 */ beq $t4,$at,.L0f026818
|
||||
/* f0264d0: 24010017 */ addiu $at,$zero,0x17
|
||||
/* f0264d4: 118100d6 */ beq $t4,$at,.L0f026830
|
||||
/* f0264d8: 24010018 */ addiu $at,$zero,0x18
|
||||
/* f0264dc: 51810004 */ beql $t4,$at,.L0f0264f0
|
||||
/* f0264e0: 8cb20004 */ lw $s2,0x4($a1)
|
||||
/* f0264e4: 100000d7 */ b .L0f026844
|
||||
/* f0264e8: 8ca20014 */ lw $v0,0x14($a1)
|
||||
/* f0264ec: 8cb20004 */ lw $s2,0x4($a1)
|
||||
.L0f0264f0:
|
||||
/* f0264f0: 0c006a87 */ jal modelGetNodeRwData
|
||||
/* f0264f4: afa50110 */ sw $a1,0x110($sp)
|
||||
/* f0264f8: 8c440004 */ lw $a0,0x4($v0)
|
||||
/* f0264fc: 00408025 */ or $s0,$v0,$zero
|
||||
/* f026500: 54800006 */ bnezl $a0,.L0f02651c
|
||||
/* f026504: 8e430000 */ lw $v1,0x0($s2)
|
||||
/* f026508: 8fa50110 */ lw $a1,0x110($sp)
|
||||
/* f02650c: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f026510: 100000cc */ b .L0f026844
|
||||
/* f026514: 8ca20014 */ lw $v0,0x14($a1)
|
||||
/* f026518: 8e430000 */ lw $v1,0x0($s2)
|
||||
.L0f02651c:
|
||||
/* f02651c: 3c0100ff */ lui $at,0xff
|
||||
/* f026520: 3421ffff */ ori $at,$at,0xffff
|
||||
/* f026524: 14640005 */ bne $v1,$a0,.L0f02653c
|
||||
/* f026528: 0080f025 */ or $s8,$a0,$zero
|
||||
/* f02652c: 8e4e0008 */ lw $t6,0x8($s2)
|
||||
/* f026530: 00617824 */ and $t7,$v1,$at
|
||||
/* f026534: 10000001 */ b .L0f02653c
|
||||
/* f026538: 01cff021 */ addu $s8,$t6,$t7
|
||||
.L0f02653c:
|
||||
/* f02653c: 8e420004 */ lw $v0,0x4($s2)
|
||||
/* f026540: 3c0100ff */ lui $at,0xff
|
||||
/* f026544: 50400008 */ beqzl $v0,.L0f026568
|
||||
/* f026548: afa00108 */ sw $zero,0x108($sp)
|
||||
/* f02654c: 8e580008 */ lw $t8,0x8($s2)
|
||||
/* f026550: 3421ffff */ ori $at,$at,0xffff
|
||||
/* f026554: 0041c824 */ and $t9,$v0,$at
|
||||
/* f026558: 03195021 */ addu $t2,$t8,$t9
|
||||
/* f02655c: 10000002 */ b .L0f026568
|
||||
/* f026560: afaa0108 */ sw $t2,0x108($sp)
|
||||
/* f026564: afa00108 */ sw $zero,0x108($sp)
|
||||
.L0f026568:
|
||||
/* f026568: 83c20000 */ lb $v0,0x0($s8)
|
||||
/* f02656c: 2401ffb8 */ addiu $at,$zero,-72
|
||||
/* f026570: 8fab0108 */ lw $t3,0x108($sp)
|
||||
/* f026574: 5441000b */ bnel $v0,$at,.L0f0265a4
|
||||
/* f026578: 24010004 */ addiu $at,$zero,0x4
|
||||
/* f02657c: 51600005 */ beqzl $t3,.L0f026594
|
||||
/* f026580: 8fa50110 */ lw $a1,0x110($sp)
|
||||
/* f026584: 0160f025 */ or $s8,$t3,$zero
|
||||
/* f026588: 1000fff7 */ b .L0f026568
|
||||
/* f02658c: afa00108 */ sw $zero,0x108($sp)
|
||||
/* f026590: 8fa50110 */ lw $a1,0x110($sp)
|
||||
.L0f026594:
|
||||
/* f026594: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f026598: 100000aa */ b .L0f026844
|
||||
/* f02659c: 8ca20014 */ lw $v0,0x14($a1)
|
||||
/* f0265a0: 24010004 */ addiu $at,$zero,0x4
|
||||
.L0f0265a4:
|
||||
/* f0265a4: 1441007c */ bne $v0,$at,.L0f026798
|
||||
/* f0265a8: 8fb80100 */ lw $t8,0x100($sp)
|
||||
/* f0265ac: 8fd50004 */ lw $s5,0x4($s8)
|
||||
/* f0265b0: 93d60001 */ lbu $s6,0x1($s8)
|
||||
/* f0265b4: 3c0100ff */ lui $at,0xff
|
||||
/* f0265b8: 8e4e000c */ lw $t6,0xc($s2)
|
||||
/* f0265bc: 3421ffff */ ori $at,$at,0xffff
|
||||
/* f0265c0: 02a16824 */ and $t5,$s5,$at
|
||||
/* f0265c4: 00167902 */ srl $t7,$s6,0x4
|
||||
/* f0265c8: 01a0a825 */ or $s5,$t5,$zero
|
||||
/* f0265cc: 25f60001 */ addiu $s6,$t7,0x1
|
||||
/* f0265d0: 13000089 */ beqz $t8,.L0f0267f8
|
||||
/* f0265d4: 01cd1021 */ addu $v0,$t6,$t5
|
||||
/* f0265d8: 1ac00087 */ blez $s6,.L0f0267f8
|
||||
/* f0265dc: 00009825 */ or $s3,$zero,$zero
|
||||
/* f0265e0: 0000a025 */ or $s4,$zero,$zero
|
||||
/* f0265e4: 00408825 */ or $s1,$v0,$zero
|
||||
.L0f0265e8:
|
||||
/* f0265e8: c7aa00e8 */ lwc1 $f10,0xe8($sp)
|
||||
/* f0265ec: c7b200ec */ lwc1 $f18,0xec($sp)
|
||||
/* f0265f0: c7a600f0 */ lwc1 $f6,0xf0($sp)
|
||||
/* f0265f4: 4600540d */ trunc.w.s $f16,$f10
|
||||
/* f0265f8: 862b0000 */ lh $t3,0x0($s1)
|
||||
/* f0265fc: 862e0002 */ lh $t6,0x2($s1)
|
||||
/* f026600: 4600910d */ trunc.w.s $f4,$f18
|
||||
/* f026604: 440a8000 */ mfc1 $t2,$f16
|
||||
/* f026608: 86390004 */ lh $t9,0x4($s1)
|
||||
/* f02660c: 4600320d */ trunc.w.s $f8,$f6
|
||||
/* f026610: 014b1021 */ addu $v0,$t2,$t3
|
||||
/* f026614: 8faa0114 */ lw $t2,0x114($sp)
|
||||
/* f026618: 440d2000 */ mfc1 $t5,$f4
|
||||
/* f02661c: 44184000 */ mfc1 $t8,$f8
|
||||
/* f026620: 8fab0118 */ lw $t3,0x118($sp)
|
||||
/* f026624: 01ae1821 */ addu $v1,$t5,$t6
|
||||
/* f026628: 144a0055 */ bne $v0,$t2,.L0f026780
|
||||
/* f02662c: 03192021 */ addu $a0,$t8,$t9
|
||||
/* f026630: 146b0053 */ bne $v1,$t3,.L0f026780
|
||||
/* f026634: 8fac011c */ lw $t4,0x11c($sp)
|
||||
/* f026638: 548c0052 */ bnel $a0,$t4,.L0f026784
|
||||
/* f02663c: 26730001 */ addiu $s3,$s3,0x1
|
||||
/* f026640: 864e0010 */ lh $t6,0x10($s2)
|
||||
/* f026644: 8e4d000c */ lw $t5,0xc($s2)
|
||||
/* f026648: 8e030008 */ lw $v1,0x8($s0)
|
||||
/* f02664c: 01d70019 */ multu $t6,$s7
|
||||
/* f026650: 00007812 */ mflo $t7
|
||||
/* f026654: 01af2021 */ addu $a0,$t5,$t7
|
||||
/* f026658: 24840007 */ addiu $a0,$a0,0x7
|
||||
/* f02665c: 34980007 */ ori $t8,$a0,0x7
|
||||
/* f026660: 3b190007 */ xori $t9,$t8,0x7
|
||||
/* f026664: 17230031 */ bne $t9,$v1,.L0f02672c
|
||||
/* f026668: 03202025 */ or $a0,$t9,$zero
|
||||
/* f02666c: 96440016 */ lhu $a0,0x16($s2)
|
||||
/* f026670: 24050002 */ addiu $a1,$zero,0x2
|
||||
/* f026674: 00003025 */ or $a2,$zero,$zero
|
||||
/* f026678: 0fc4a557 */ jal vtxstoreAllocate
|
||||
/* f02667c: 00003825 */ or $a3,$zero,$zero
|
||||
/* f026680: 50400020 */ beqzl $v0,.L0f026704
|
||||
/* f026684: 864d0010 */ lh $t5,0x10($s2)
|
||||
/* f026688: 964a0016 */ lhu $t2,0x16($s2)
|
||||
/* f02668c: 00001825 */ or $v1,$zero,$zero
|
||||
/* f026690: 00002025 */ or $a0,$zero,$zero
|
||||
/* f026694: 5940000e */ blezl $t2,.L0f0266d0
|
||||
/* f026698: ae020008 */ sw $v0,0x8($s0)
|
||||
/* f02669c: 00402825 */ or $a1,$v0,$zero
|
||||
/* f0266a0: 8e0b0008 */ lw $t3,0x8($s0)
|
||||
.L0f0266a4:
|
||||
/* f0266a4: 24630001 */ addiu $v1,$v1,0x1
|
||||
/* f0266a8: 24a50004 */ addiu $a1,$a1,0x4
|
||||
/* f0266ac: 01646021 */ addu $t4,$t3,$a0
|
||||
/* f0266b0: 8d810000 */ lw $at,0x0($t4)
|
||||
/* f0266b4: 24840004 */ addiu $a0,$a0,0x4
|
||||
/* f0266b8: aca1fffc */ sw $at,-0x4($a1)
|
||||
/* f0266bc: 964f0016 */ lhu $t7,0x16($s2)
|
||||
/* f0266c0: 006f082a */ slt $at,$v1,$t7
|
||||
/* f0266c4: 5420fff7 */ bnezl $at,.L0f0266a4
|
||||
/* f0266c8: 8e0b0008 */ lw $t3,0x8($s0)
|
||||
/* f0266cc: ae020008 */ sw $v0,0x8($s0)
|
||||
.L0f0266d0:
|
||||
/* f0266d0: 86590010 */ lh $t9,0x10($s2)
|
||||
/* f0266d4: 8e58000c */ lw $t8,0xc($s2)
|
||||
/* f0266d8: 00401825 */ or $v1,$v0,$zero
|
||||
/* f0266dc: 00195080 */ sll $t2,$t9,0x2
|
||||
/* f0266e0: 01595023 */ subu $t2,$t2,$t9
|
||||
/* f0266e4: 000a5080 */ sll $t2,$t2,0x2
|
||||
/* f0266e8: 030a2021 */ addu $a0,$t8,$t2
|
||||
/* f0266ec: 24840007 */ addiu $a0,$a0,0x7
|
||||
/* f0266f0: 348b0007 */ ori $t3,$a0,0x7
|
||||
/* f0266f4: 396e0007 */ xori $t6,$t3,0x7
|
||||
/* f0266f8: 1000000c */ b .L0f02672c
|
||||
/* f0266fc: 01c02025 */ or $a0,$t6,$zero
|
||||
/* f026700: 864d0010 */ lh $t5,0x10($s2)
|
||||
.L0f026704:
|
||||
/* f026704: 8e4c000c */ lw $t4,0xc($s2)
|
||||
/* f026708: 8e030008 */ lw $v1,0x8($s0)
|
||||
/* f02670c: 000d7880 */ sll $t7,$t5,0x2
|
||||
/* f026710: 01ed7823 */ subu $t7,$t7,$t5
|
||||
/* f026714: 000f7880 */ sll $t7,$t7,0x2
|
||||
/* f026718: 018f2021 */ addu $a0,$t4,$t7
|
||||
/* f02671c: 24840007 */ addiu $a0,$a0,0x7
|
||||
/* f026720: 34990007 */ ori $t9,$a0,0x7
|
||||
/* f026724: 3b380007 */ xori $t8,$t9,0x7
|
||||
/* f026728: 03002025 */ or $a0,$t8,$zero
|
||||
.L0f02672c:
|
||||
/* f02672c: 10830014 */ beq $a0,$v1,.L0f026780
|
||||
/* f026730: 8fb900c0 */ lw $t9,0xc0($sp)
|
||||
/* f026734: 02b7001b */ divu $zero,$s5,$s7
|
||||
/* f026738: 00005812 */ mflo $t3
|
||||
/* f02673c: 8e0a0000 */ lw $t2,0x0($s0)
|
||||
/* f026740: 000b7080 */ sll $t6,$t3,0x2
|
||||
/* f026744: 01cb7023 */ subu $t6,$t6,$t3
|
||||
/* f026748: 000e7080 */ sll $t6,$t6,0x2
|
||||
/* f02674c: 014e6821 */ addu $t5,$t2,$t6
|
||||
/* f026750: 01b46021 */ addu $t4,$t5,$s4
|
||||
/* f026754: 91820007 */ lbu $v0,0x7($t4)
|
||||
/* f026758: 8fb800cc */ lw $t8,0xcc($sp)
|
||||
/* f02675c: 00792021 */ addu $a0,$v1,$t9
|
||||
/* f026760: 00027883 */ sra $t7,$v0,0x2
|
||||
/* f026764: 000f5880 */ sll $t3,$t7,0x2
|
||||
/* f026768: 008b5021 */ addu $t2,$a0,$t3
|
||||
/* f02676c: 01e01025 */ or $v0,$t7,$zero
|
||||
/* f026770: 16e00002 */ bnez $s7,.L0f02677c
|
||||
/* f026774: 00000000 */ nop
|
||||
/* f026778: 0007000d */ break 0x7
|
||||
.L0f02677c:
|
||||
/* f02677c: a1580003 */ sb $t8,0x3($t2)
|
||||
.L0f026780:
|
||||
/* f026780: 26730001 */ addiu $s3,$s3,0x1
|
||||
.L0f026784:
|
||||
/* f026784: 2694000c */ addiu $s4,$s4,0xc
|
||||
/* f026788: 1676ff97 */ bne $s3,$s6,.L0f0265e8
|
||||
/* f02678c: 2631000c */ addiu $s1,$s1,0xc
|
||||
/* f026790: 1000ff75 */ b .L0f026568
|
||||
/* f026794: 27de0008 */ addiu $s8,$s8,0x8
|
||||
.L0f026798:
|
||||
/* f026798: 24010001 */ addiu $at,$zero,0x1
|
||||
/* f02679c: 1441000e */ bne $v0,$at,.L0f0267d8
|
||||
/* f0267a0: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f0267a4: 8fc20004 */ lw $v0,0x4($s8)
|
||||
/* f0267a8: 3c0100ff */ lui $at,0xff
|
||||
/* f0267ac: 3421ffff */ ori $at,$at,0xffff
|
||||
/* f0267b0: 00417024 */ and $t6,$v0,$at
|
||||
/* f0267b4: 0c00698d */ jal modelFindNodeByMtxIndex
|
||||
/* f0267b8: 000e2982 */ srl $a1,$t6,0x6
|
||||
/* f0267bc: afa20100 */ sw $v0,0x100($sp)
|
||||
/* f0267c0: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f0267c4: 00402825 */ or $a1,$v0,$zero
|
||||
/* f0267c8: 0c006b57 */ jal modelNodeGetModelRelativePosition
|
||||
/* f0267cc: 27a600e8 */ addiu $a2,$sp,0xe8
|
||||
/* f0267d0: 1000ff65 */ b .L0f026568
|
||||
/* f0267d4: 27de0008 */ addiu $s8,$s8,0x8
|
||||
.L0f0267d8:
|
||||
/* f0267d8: 24010007 */ addiu $at,$zero,0x7
|
||||
/* f0267dc: 14410006 */ bne $v0,$at,.L0f0267f8
|
||||
/* f0267e0: 00000000 */ nop
|
||||
/* f0267e4: 8fcd0004 */ lw $t5,0x4($s8)
|
||||
/* f0267e8: 3c0100ff */ lui $at,0xff
|
||||
/* f0267ec: 3421ffff */ ori $at,$at,0xffff
|
||||
/* f0267f0: 01a16024 */ and $t4,$t5,$at
|
||||
/* f0267f4: afac00c0 */ sw $t4,0xc0($sp)
|
||||
.L0f0267f8:
|
||||
/* f0267f8: 1000ff5b */ b .L0f026568
|
||||
/* f0267fc: 27de0008 */ addiu $s8,$s8,0x8
|
||||
.L0f026800:
|
||||
/* f026800: 0c0071e1 */ jal modelApplyDistanceRelations
|
||||
/* f026804: afa50110 */ sw $a1,0x110($sp)
|
||||
/* f026808: 8fa50110 */ lw $a1,0x110($sp)
|
||||
/* f02680c: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f026810: 1000000c */ b .L0f026844
|
||||
/* f026814: 8ca20014 */ lw $v0,0x14($a1)
|
||||
.L0f026818:
|
||||
/* f026818: 0c0071f4 */ jal modelApplyToggleRelations
|
||||
/* f02681c: afa50110 */ sw $a1,0x110($sp)
|
||||
/* f026820: 8fa50110 */ lw $a1,0x110($sp)
|
||||
/* f026824: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f026828: 10000006 */ b .L0f026844
|
||||
/* f02682c: 8ca20014 */ lw $v0,0x14($a1)
|
||||
.L0f026830:
|
||||
/* f026830: 0c007207 */ jal modelApplyHeadRelations
|
||||
/* f026834: afa50110 */ sw $a1,0x110($sp)
|
||||
/* f026838: 8fa50110 */ lw $a1,0x110($sp)
|
||||
/* f02683c: 8fa40128 */ lw $a0,0x128($sp)
|
||||
/* f026840: 8ca20014 */ lw $v0,0x14($a1)
|
||||
.L0f026844:
|
||||
/* f026844: 10400003 */ beqz $v0,.L0f026854
|
||||
/* f026848: 00000000 */ nop
|
||||
/* f02684c: 1000000d */ b .L0f026884
|
||||
/* f026850: 00402825 */ or $a1,$v0,$zero
|
||||
.L0f026854:
|
||||
/* f026854: 10a0000b */ beqz $a1,.L0f026884
|
||||
/* f026858: 00000000 */ nop
|
||||
.L0f02685c:
|
||||
/* f02685c: 50a00007 */ beqzl $a1,.L0f02687c
|
||||
/* f026860: 8ca50008 */ lw $a1,0x8($a1)
|
||||
/* f026864: 8ca2000c */ lw $v0,0xc($a1)
|
||||
/* f026868: 50400004 */ beqzl $v0,.L0f02687c
|
||||
/* f02686c: 8ca50008 */ lw $a1,0x8($a1)
|
||||
/* f026870: 10000004 */ b .L0f026884
|
||||
/* f026874: 00402825 */ or $a1,$v0,$zero
|
||||
/* f026878: 8ca50008 */ lw $a1,0x8($a1)
|
||||
.L0f02687c:
|
||||
/* f02687c: 14a0fff7 */ bnez $a1,.L0f02685c
|
||||
/* f026880: 00000000 */ nop
|
||||
.L0f026884:
|
||||
/* f026884: 54a0ff0d */ bnezl $a1,.L0f0264bc
|
||||
/* f026888: 94a20000 */ lhu $v0,0x0($a1)
|
||||
.L0f02688c:
|
||||
/* f02688c: 8fbf003c */ lw $ra,0x3c($sp)
|
||||
.L0f026890:
|
||||
/* f026890: 8fb00018 */ lw $s0,0x18($sp)
|
||||
/* f026894: 8fb1001c */ lw $s1,0x1c($sp)
|
||||
/* f026898: 8fb20020 */ lw $s2,0x20($sp)
|
||||
/* f02689c: 8fb30024 */ lw $s3,0x24($sp)
|
||||
/* f0268a0: 8fb40028 */ lw $s4,0x28($sp)
|
||||
/* f0268a4: 8fb5002c */ lw $s5,0x2c($sp)
|
||||
/* f0268a8: 8fb60030 */ lw $s6,0x30($sp)
|
||||
/* f0268ac: 8fb70034 */ lw $s7,0x34($sp)
|
||||
/* f0268b0: 8fbe0038 */ lw $s8,0x38($sp)
|
||||
/* f0268b4: 03e00008 */ jr $ra
|
||||
/* f0268b8: 27bd0128 */ addiu $sp,$sp,0x128
|
||||
);
|
||||
#else
|
||||
// Mismatch: The bottom two tmp calculations should multiply by s32 0xc using
|
||||
// shift operations, however doing this causes it to boot gdlptr out of s8 and
|
||||
// use s8 for s32 0xc.
|
||||
void chr0f0260c4(struct model *model, s32 hitpart, struct modelnode *node, struct coord *arg3)
|
||||
{
|
||||
struct modelnode *bestnode = NULL;
|
||||
|
@ -4449,9 +3881,7 @@ void chr0f0260c4(struct model *model, s32 hitpart, struct modelnode *node, struc
|
|||
s32 z = vertices[i].z + (s32)spd4.f[2];
|
||||
|
||||
if (x == bestcoords[0] && y == bestcoords[1] && z == bestcoords[2]) {
|
||||
u32 tmp = ALIGN8((uintptr_t)&rodata->vertices[(u32)rodata->numvertices]); // u32 0xc
|
||||
|
||||
if ((uintptr_t)rwdata->colours == tmp) {
|
||||
if ((uintptr_t)rwdata->colours == ALIGN8((uintptr_t)rodata->vertices + rodata->numvertices * sizeof(struct gfxvtx))) {
|
||||
struct colour *colours = vtxstoreAllocate(rodata->numcolours, VTXSTORETYPE_CHRCOL, 0, 0);
|
||||
s32 j;
|
||||
|
||||
|
@ -4461,15 +3891,13 @@ void chr0f0260c4(struct model *model, s32 hitpart, struct modelnode *node, struc
|
|||
}
|
||||
|
||||
rwdata->colours = colours;
|
||||
|
||||
tmp = ALIGN8((intptr_t)&rodata->vertices[rodata->numvertices]); // s32 0xc
|
||||
} else {
|
||||
tmp = ALIGN8((intptr_t)&rodata->vertices[rodata->numvertices]); // s32 0xc
|
||||
// empty
|
||||
}
|
||||
}
|
||||
|
||||
if ((uintptr_t)rwdata->colours != tmp) {
|
||||
u32 offset = rwdata->vertices[word / 12u + i].colour >> 2; // u32 0xc (both divide and mult)
|
||||
if ((uintptr_t)rwdata->colours != ALIGN8((uintptr_t)rodata->vertices + rodata->numvertices * sizeof(struct gfxvtx))) {
|
||||
s32 offset = rwdata->vertices[word / sizeof(struct gfxvtx) + i].colour >> 2;
|
||||
struct colour *colours = (struct colour *) ((uintptr_t)rwdata->colours + spac);
|
||||
|
||||
colours[offset].a = alpha;
|
||||
|
@ -4514,7 +3942,6 @@ void chr0f0260c4(struct model *model, s32 hitpart, struct modelnode *node, struc
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Bruise a chr by darkening their vertices.
|
||||
|
|
Loading…
Reference in New Issue