Decompile func0f013550
This commit is contained in:
parent
6819bdb801
commit
3761574afd
|
|
@ -11,334 +11,121 @@
|
|||
#include "lib/lib_121e0.h"
|
||||
#include "types.h"
|
||||
|
||||
const u32 var7f1a8290[] = {0x3e99999a};
|
||||
const u32 var7f1a8294[] = {0x3ecccccd};
|
||||
const u32 var7f1a8298[] = {0x00000000};
|
||||
const u32 var7f1a829c[] = {0x00000000};
|
||||
/**
|
||||
* Initialises an array of room numbers and a linked list of structs.
|
||||
*
|
||||
* Related to blood splats, bullet holes and scorch marks.
|
||||
* With this function nopped they do not appear.
|
||||
*/
|
||||
void func0f013550(void)
|
||||
{
|
||||
s32 stack;
|
||||
s32 type = 2;
|
||||
s32 i;
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f013550
|
||||
/* f013550: 3c0e8009 */ lui $t6,%hi(g_Is4Mb)
|
||||
/* f013554: 91ce0af0 */ lbu $t6,%lo(g_Is4Mb)($t6)
|
||||
/* f013558: 27bdffd8 */ addiu $sp,$sp,-40
|
||||
/* f01355c: 24080001 */ addiu $t0,$zero,0x1
|
||||
/* f013560: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* f013564: 150e0005 */ bne $t0,$t6,.L0f01357c
|
||||
/* f013568: 24060002 */ addiu $a2,$zero,0x2
|
||||
/* f01356c: 3c0d800a */ lui $t5,%hi(g_Vars)
|
||||
/* f013570: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
|
||||
/* f013574: 10000044 */ b .L0f013688
|
||||
/* f013578: 00003025 */ or $a2,$zero,$zero
|
||||
.L0f01357c:
|
||||
/* f01357c: 3c0d800a */ lui $t5,%hi(g_Vars)
|
||||
/* f013580: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
|
||||
/* f013584: 8daf0298 */ lw $t7,0x298($t5)
|
||||
/* f013588: 24010002 */ addiu $at,$zero,0x2
|
||||
/* f01358c: 05e30005 */ bgezl $t7,.L0f0135a4
|
||||
/* f013590: 8db9006c */ lw $t9,0x6c($t5)
|
||||
/* f013594: 8db8029c */ lw $t8,0x29c($t5)
|
||||
/* f013598: 07020020 */ bltzl $t8,.L0f01361c
|
||||
/* f01359c: 8db8006c */ lw $t8,0x6c($t5)
|
||||
/* f0135a0: 8db9006c */ lw $t9,0x6c($t5)
|
||||
.L0f0135a4:
|
||||
/* f0135a4: 00002825 */ or $a1,$zero,$zero
|
||||
/* f0135a8: 00002025 */ or $a0,$zero,$zero
|
||||
/* f0135ac: 13200003 */ beqz $t9,.L0f0135bc
|
||||
/* f0135b0: 00001825 */ or $v1,$zero,$zero
|
||||
/* f0135b4: 10000001 */ b .L0f0135bc
|
||||
/* f0135b8: 01002825 */ or $a1,$t0,$zero
|
||||
.L0f0135bc:
|
||||
/* f0135bc: 8dae0068 */ lw $t6,0x68($t5)
|
||||
/* f0135c0: 00001025 */ or $v0,$zero,$zero
|
||||
/* f0135c4: 11c00003 */ beqz $t6,.L0f0135d4
|
||||
/* f0135c8: 00000000 */ nop
|
||||
/* f0135cc: 10000001 */ b .L0f0135d4
|
||||
/* f0135d0: 01002025 */ or $a0,$t0,$zero
|
||||
.L0f0135d4:
|
||||
/* f0135d4: 8daf0064 */ lw $t7,0x64($t5)
|
||||
/* f0135d8: 11e00003 */ beqz $t7,.L0f0135e8
|
||||
/* f0135dc: 00000000 */ nop
|
||||
/* f0135e0: 10000001 */ b .L0f0135e8
|
||||
/* f0135e4: 01001825 */ or $v1,$t0,$zero
|
||||
.L0f0135e8:
|
||||
/* f0135e8: 8db80070 */ lw $t8,0x70($t5)
|
||||
/* f0135ec: 13000003 */ beqz $t8,.L0f0135fc
|
||||
/* f0135f0: 00000000 */ nop
|
||||
/* f0135f4: 10000001 */ b .L0f0135fc
|
||||
/* f0135f8: 01001025 */ or $v0,$t0,$zero
|
||||
.L0f0135fc:
|
||||
/* f0135fc: 0043c821 */ addu $t9,$v0,$v1
|
||||
/* f013600: 03247021 */ addu $t6,$t9,$a0
|
||||
/* f013604: 01c57821 */ addu $t7,$t6,$a1
|
||||
/* f013608: 55e10004 */ bnel $t7,$at,.L0f01361c
|
||||
/* f01360c: 8db8006c */ lw $t8,0x6c($t5)
|
||||
/* f013610: 1000001d */ b .L0f013688
|
||||
/* f013614: 01003025 */ or $a2,$t0,$zero
|
||||
/* f013618: 8db8006c */ lw $t8,0x6c($t5)
|
||||
.L0f01361c:
|
||||
/* f01361c: 8da20068 */ lw $v0,0x68($t5)
|
||||
/* f013620: 8da30064 */ lw $v1,0x64($t5)
|
||||
/* f013624: 13000003 */ beqz $t8,.L0f013634
|
||||
/* f013628: 8da70070 */ lw $a3,0x70($t5)
|
||||
/* f01362c: 10000002 */ b .L0f013638
|
||||
/* f013630: 01002825 */ or $a1,$t0,$zero
|
||||
.L0f013634:
|
||||
/* f013634: 00002825 */ or $a1,$zero,$zero
|
||||
.L0f013638:
|
||||
/* f013638: 10400003 */ beqz $v0,.L0f013648
|
||||
/* f01363c: 00002025 */ or $a0,$zero,$zero
|
||||
/* f013640: 10000001 */ b .L0f013648
|
||||
/* f013644: 01002025 */ or $a0,$t0,$zero
|
||||
.L0f013648:
|
||||
/* f013648: 10600003 */ beqz $v1,.L0f013658
|
||||
/* f01364c: 00001025 */ or $v0,$zero,$zero
|
||||
/* f013650: 10000002 */ b .L0f01365c
|
||||
/* f013654: 01001825 */ or $v1,$t0,$zero
|
||||
.L0f013658:
|
||||
/* f013658: 00001825 */ or $v1,$zero,$zero
|
||||
.L0f01365c:
|
||||
/* f01365c: 10e00003 */ beqz $a3,.L0f01366c
|
||||
/* f013660: 00000000 */ nop
|
||||
/* f013664: 10000001 */ b .L0f01366c
|
||||
/* f013668: 01001025 */ or $v0,$t0,$zero
|
||||
.L0f01366c:
|
||||
/* f01366c: 0043c821 */ addu $t9,$v0,$v1
|
||||
/* f013670: 03247021 */ addu $t6,$t9,$a0
|
||||
/* f013674: 01c57821 */ addu $t7,$t6,$a1
|
||||
/* f013678: 29e10002 */ slti $at,$t7,0x2
|
||||
/* f01367c: 14200002 */ bnez $at,.L0f013688
|
||||
/* f013680: 00000000 */ nop
|
||||
/* f013684: 00003025 */ or $a2,$zero,$zero
|
||||
.L0f013688:
|
||||
/* f013688: 10c00008 */ beqz $a2,.L0f0136ac
|
||||
/* f01368c: 3c0b800a */ lui $t3,%hi(g_Menus+0x2000)
|
||||
/* f013690: 10c80022 */ beq $a2,$t0,.L0f01371c
|
||||
/* f013694: 3c0b800a */ lui $t3,%hi(var8009cc44)
|
||||
/* f013698: 24010002 */ addiu $at,$zero,0x2
|
||||
/* f01369c: 10c1003c */ beq $a2,$at,.L0f013790
|
||||
/* f0136a0: 00000000 */ nop
|
||||
/* f0136a4: 1000003a */ b .L0f013790
|
||||
/* f0136a8: 00000000 */ nop
|
||||
.L0f0136ac:
|
||||
/* f0136ac: 256bcc44 */ addiu $t3,$t3,%lo(var8009cc44)
|
||||
/* f0136b0: 24180050 */ addiu $t8,$zero,0x50
|
||||
/* f0136b4: ad780000 */ sw $t8,%lo(g_Menus+0x2000)($t3)
|
||||
/* f0136b8: 2419000a */ addiu $t9,$zero,0xa
|
||||
/* f0136bc: 3c01800a */ lui $at,%hi(var8009cc5c)
|
||||
/* f0136c0: ac39cc5c */ sw $t9,%lo(var8009cc5c)($at)
|
||||
/* f0136c4: 3c01800a */ lui $at,%hi(var8009cc60)
|
||||
/* f0136c8: 240e0028 */ addiu $t6,$zero,0x28
|
||||
/* f0136cc: ac2ecc60 */ sw $t6,%lo(var8009cc60)($at)
|
||||
/* f0136d0: 3c01800a */ lui $at,%hi(var8009cc64)
|
||||
/* f0136d4: ac28cc64 */ sw $t0,%lo(var8009cc64)($at)
|
||||
/* f0136d8: 3c01800a */ lui $at,%hi(var8009cc68)
|
||||
/* f0136dc: 240f0019 */ addiu $t7,$zero,0x19
|
||||
/* f0136e0: ac2fcc68 */ sw $t7,%lo(var8009cc68)($at)
|
||||
/* f0136e4: 3c01800a */ lui $at,%hi(var8009cc6c)
|
||||
/* f0136e8: 24180014 */ addiu $t8,$zero,0x14
|
||||
/* f0136ec: ac38cc6c */ sw $t8,%lo(var8009cc6c)($at)
|
||||
/* f0136f0: 3c01800a */ lui $at,%hi(var8009cc70)
|
||||
/* f0136f4: 24190005 */ addiu $t9,$zero,0x5
|
||||
/* f0136f8: ac39cc70 */ sw $t9,%lo(var8009cc70)($at)
|
||||
/* f0136fc: 3c01800a */ lui $at,%hi(var8009cc74)
|
||||
/* f013700: 240e000f */ addiu $t6,$zero,0xf
|
||||
/* f013704: ac2ecc74 */ sw $t6,%lo(var8009cc74)($at)
|
||||
/* f013708: 3c017f1b */ lui $at,%hi(var7f1a8290)
|
||||
/* f01370c: c4248290 */ lwc1 $f4,%lo(var7f1a8290)($at)
|
||||
/* f013710: 3c01800a */ lui $at,%hi(var8009cc78)
|
||||
/* f013714: 1000003b */ b .L0f013804
|
||||
/* f013718: e424cc78 */ swc1 $f4,%lo(var8009cc78)($at)
|
||||
.L0f01371c:
|
||||
/* f01371c: 256bcc44 */ addiu $t3,$t3,-13244
|
||||
/* f013720: 240f00c8 */ addiu $t7,$zero,0xc8
|
||||
/* f013724: ad6f0000 */ sw $t7,0x0($t3)
|
||||
/* f013728: 24180019 */ addiu $t8,$zero,0x19
|
||||
/* f01372c: 3c01800a */ lui $at,%hi(var8009cc5c)
|
||||
/* f013730: ac38cc5c */ sw $t8,%lo(var8009cc5c)($at)
|
||||
/* f013734: 3c01800a */ lui $at,%hi(var8009cc60)
|
||||
/* f013738: 24190064 */ addiu $t9,$zero,0x64
|
||||
/* f01373c: ac39cc60 */ sw $t9,%lo(var8009cc60)($at)
|
||||
/* f013740: 3c01800a */ lui $at,%hi(var8009cc64)
|
||||
/* f013744: 240e0004 */ addiu $t6,$zero,0x4
|
||||
/* f013748: ac2ecc64 */ sw $t6,%lo(var8009cc64)($at)
|
||||
/* f01374c: 3c01800a */ lui $at,%hi(var8009cc68)
|
||||
/* f013750: 240f0028 */ addiu $t7,$zero,0x28
|
||||
/* f013754: ac2fcc68 */ sw $t7,%lo(var8009cc68)($at)
|
||||
/* f013758: 3c01800a */ lui $at,%hi(var8009cc6c)
|
||||
/* f01375c: 24180050 */ addiu $t8,$zero,0x50
|
||||
/* f013760: ac38cc6c */ sw $t8,%lo(var8009cc6c)($at)
|
||||
/* f013764: 3c01800a */ lui $at,%hi(var8009cc70)
|
||||
/* f013768: 24190014 */ addiu $t9,$zero,0x14
|
||||
/* f01376c: ac39cc70 */ sw $t9,%lo(var8009cc70)($at)
|
||||
/* f013770: 3c01800a */ lui $at,%hi(var8009cc74)
|
||||
/* f013774: 240e001e */ addiu $t6,$zero,0x1e
|
||||
/* f013778: ac2ecc74 */ sw $t6,%lo(var8009cc74)($at)
|
||||
/* f01377c: 3c017f1b */ lui $at,%hi(var7f1a8294)
|
||||
/* f013780: c4268294 */ lwc1 $f6,%lo(var7f1a8294)($at)
|
||||
/* f013784: 3c01800a */ lui $at,%hi(var8009cc78)
|
||||
/* f013788: 1000001e */ b .L0f013804
|
||||
/* f01378c: e426cc78 */ swc1 $f6,%lo(var8009cc78)($at)
|
||||
.L0f013790:
|
||||
/* f013790: 3c0b800a */ lui $t3,%hi(var8009cc44)
|
||||
/* f013794: 256bcc44 */ addiu $t3,$t3,%lo(var8009cc44)
|
||||
/* f013798: 240f0168 */ addiu $t7,$zero,0x168
|
||||
/* f01379c: ad6f0000 */ sw $t7,0x0($t3)
|
||||
/* f0137a0: 24180032 */ addiu $t8,$zero,0x32
|
||||
/* f0137a4: 3c01800a */ lui $at,%hi(var8009cc5c)
|
||||
/* f0137a8: ac38cc5c */ sw $t8,%lo(var8009cc5c)($at)
|
||||
/* f0137ac: 3c01800a */ lui $at,%hi(var8009cc60)
|
||||
/* f0137b0: 24190078 */ addiu $t9,$zero,0x78
|
||||
/* f0137b4: ac39cc60 */ sw $t9,%lo(var8009cc60)($at)
|
||||
/* f0137b8: 3c01800a */ lui $at,%hi(var8009cc64)
|
||||
/* f0137bc: 240e000a */ addiu $t6,$zero,0xa
|
||||
/* f0137c0: ac2ecc64 */ sw $t6,%lo(var8009cc64)($at)
|
||||
/* f0137c4: 3c01800a */ lui $at,%hi(var8009cc68)
|
||||
/* f0137c8: 240f003c */ addiu $t7,$zero,0x3c
|
||||
/* f0137cc: ac2fcc68 */ sw $t7,%lo(var8009cc68)($at)
|
||||
/* f0137d0: 3c01800a */ lui $at,%hi(var8009cc6c)
|
||||
/* f0137d4: 241800b4 */ addiu $t8,$zero,0xb4
|
||||
/* f0137d8: ac38cc6c */ sw $t8,%lo(var8009cc6c)($at)
|
||||
/* f0137dc: 3c01800a */ lui $at,%hi(var8009cc70)
|
||||
/* f0137e0: 24190019 */ addiu $t9,$zero,0x19
|
||||
/* f0137e4: ac39cc70 */ sw $t9,%lo(var8009cc70)($at)
|
||||
/* f0137e8: 3c01800a */ lui $at,%hi(var8009cc74)
|
||||
/* f0137ec: 240e0028 */ addiu $t6,$zero,0x28
|
||||
/* f0137f0: ac2ecc74 */ sw $t6,%lo(var8009cc74)($at)
|
||||
/* f0137f4: 3c013f00 */ lui $at,0x3f00
|
||||
/* f0137f8: 44814000 */ mtc1 $at,$f8
|
||||
/* f0137fc: 3c01800a */ lui $at,%hi(var8009cc78)
|
||||
/* f013800: e428cc78 */ swc1 $f8,%lo(var8009cc78)($at)
|
||||
.L0f013804:
|
||||
/* f013804: 3c0c800a */ lui $t4,%hi(var8009cc40)
|
||||
/* f013808: 258ccc40 */ addiu $t4,$t4,%lo(var8009cc40)
|
||||
/* f01380c: ad800000 */ sw $zero,0x0($t4)
|
||||
/* f013810: 3c01800a */ lui $at,%hi(var8009cc48)
|
||||
/* f013814: 3c0a800a */ lui $t2,%hi(var8009cc4c)
|
||||
/* f013818: ac20cc48 */ sw $zero,%lo(var8009cc48)($at)
|
||||
/* f01381c: 254acc4c */ addiu $t2,$t2,%lo(var8009cc4c)
|
||||
/* f013820: ad400000 */ sw $zero,0x0($t2)
|
||||
/* f013824: 3c01800a */ lui $at,%hi(var8009cc50)
|
||||
/* f013828: ac20cc50 */ sw $zero,%lo(var8009cc50)($at)
|
||||
/* f01382c: 3c01800a */ lui $at,%hi(var8009cc54)
|
||||
/* f013830: ac20cc54 */ sw $zero,%lo(var8009cc54)($at)
|
||||
/* f013834: 3c01800a */ lui $at,%hi(var8009cc58)
|
||||
/* f013838: ac20cc58 */ sw $zero,%lo(var8009cc58)($at)
|
||||
/* f01383c: 8daf04b4 */ lw $t7,0x4b4($t5)
|
||||
/* f013840: 3c04800a */ lui $a0,%hi(var800a41b0)
|
||||
/* f013844: 248441b0 */ addiu $a0,$a0,%lo(var800a41b0)
|
||||
/* f013848: 29e1005a */ slti $at,$t7,0x5a
|
||||
/* f01384c: 54200003 */ bnezl $at,.L0f01385c
|
||||
/* f013850: 8d660000 */ lw $a2,0x0($t3)
|
||||
/* f013854: ad600000 */ sw $zero,0x0($t3)
|
||||
/* f013858: 8d660000 */ lw $a2,0x0($t3)
|
||||
.L0f01385c:
|
||||
/* f01385c: 54c00004 */ bnezl $a2,.L0f013870
|
||||
/* f013860: 8da302bc */ lw $v1,0x2bc($t5)
|
||||
/* f013864: 1000005e */ b .L0f0139e0
|
||||
/* f013868: ac800000 */ sw $zero,0x0($a0)
|
||||
/* f01386c: 8da302bc */ lw $v1,0x2bc($t5)
|
||||
.L0f013870:
|
||||
/* f013870: 00061140 */ sll $v0,$a2,0x5
|
||||
/* f013874: 00461023 */ subu $v0,$v0,$a2
|
||||
/* f013878: 2407fff0 */ addiu $a3,$zero,-16
|
||||
/* f01387c: 00021080 */ sll $v0,$v0,0x2
|
||||
/* f013880: 0003c040 */ sll $t8,$v1,0x1
|
||||
/* f013884: 2442000f */ addiu $v0,$v0,0xf
|
||||
/* f013888: 2703000f */ addiu $v1,$t8,0xf
|
||||
/* f01388c: 00471024 */ and $v0,$v0,$a3
|
||||
/* f013890: 00671824 */ and $v1,$v1,$a3
|
||||
/* f013894: 00432021 */ addu $a0,$v0,$v1
|
||||
/* f013898: afa30018 */ sw $v1,0x18($sp)
|
||||
/* f01389c: 0c0048f2 */ jal malloc
|
||||
/* f0138a0: 24050004 */ addiu $a1,$zero,0x4
|
||||
/* f0138a4: 8fa30018 */ lw $v1,0x18($sp)
|
||||
/* f0138a8: 3c04800a */ lui $a0,%hi(var800a41b0)
|
||||
/* f0138ac: 3c08800a */ lui $t0,%hi(var800a41b4)
|
||||
/* f0138b0: 3c0c800a */ lui $t4,%hi(var8009cc40)
|
||||
/* f0138b4: 258ccc40 */ addiu $t4,$t4,%lo(var8009cc40)
|
||||
/* f0138b8: 250841b4 */ addiu $t0,$t0,%lo(var800a41b4)
|
||||
/* f0138bc: 248441b0 */ addiu $a0,$a0,%lo(var800a41b0)
|
||||
/* f0138c0: 0043c821 */ addu $t9,$v0,$v1
|
||||
/* f0138c4: 3c0b800a */ lui $t3,%hi(var8009cc44)
|
||||
/* f0138c8: ad820000 */ sw $v0,0x0($t4)
|
||||
/* f0138cc: ac990000 */ sw $t9,0x0($a0)
|
||||
/* f0138d0: ad000000 */ sw $zero,0x0($t0)
|
||||
/* f0138d4: 3c01800a */ lui $at,%hi(var800a41b8)
|
||||
/* f0138d8: 256bcc44 */ addiu $t3,$t3,%lo(var8009cc44)
|
||||
/* f0138dc: ac2041b8 */ sw $zero,%lo(var800a41b8)($at)
|
||||
/* f0138e0: 8d6e0000 */ lw $t6,0x0($t3)
|
||||
/* f0138e4: 3c0a800a */ lui $t2,%hi(var8009cc4c)
|
||||
/* f0138e8: 3c0d800a */ lui $t5,%hi(g_Vars)
|
||||
/* f0138ec: 25ad9fc0 */ addiu $t5,$t5,%lo(g_Vars)
|
||||
/* f0138f0: 254acc4c */ addiu $t2,$t2,%lo(var8009cc4c)
|
||||
/* f0138f4: 19c0002e */ blez $t6,.L0f0139b0
|
||||
/* f0138f8: 00003025 */ or $a2,$zero,$zero
|
||||
/* f0138fc: 8c870000 */ lw $a3,0x0($a0)
|
||||
/* f013900: 00001825 */ or $v1,$zero,$zero
|
||||
/* f013904: 2409ffff */ addiu $t1,$zero,-1
|
||||
.L0f013908:
|
||||
/* f013908: 00e37821 */ addu $t7,$a3,$v1
|
||||
/* f01390c: a1e0006d */ sb $zero,0x6d($t7)
|
||||
/* f013910: 8c980000 */ lw $t8,0x0($a0)
|
||||
/* f013914: 24c60001 */ addiu $a2,$a2,0x1
|
||||
/* f013918: 0303c821 */ addu $t9,$t8,$v1
|
||||
/* f01391c: a320006e */ sb $zero,0x6e($t9)
|
||||
/* f013920: 8c8e0000 */ lw $t6,0x0($a0)
|
||||
/* f013924: 01c31021 */ addu $v0,$t6,$v1
|
||||
/* f013928: 8c450070 */ lw $a1,0x70($v0)
|
||||
/* f01392c: 00057902 */ srl $t7,$a1,0x4
|
||||
/* f013930: 000fc100 */ sll $t8,$t7,0x4
|
||||
/* f013934: 0305c826 */ xor $t9,$t8,$a1
|
||||
/* f013938: ac590070 */ sw $t9,0x70($v0)
|
||||
/* f01393c: 8c8e0000 */ lw $t6,0x0($a0)
|
||||
/* f013940: 01c31021 */ addu $v0,$t6,$v1
|
||||
/* f013944: 904f006f */ lbu $t7,0x6f($v0)
|
||||
/* f013948: 31f8ff7f */ andi $t8,$t7,0xff7f
|
||||
/* f01394c: a058006f */ sb $t8,0x6f($v0)
|
||||
/* f013950: 8c990000 */ lw $t9,0x0($a0)
|
||||
/* f013954: 03237021 */ addu $t6,$t9,$v1
|
||||
/* f013958: a5c90068 */ sh $t1,0x68($t6)
|
||||
/* f01395c: 8c8f0000 */ lw $t7,0x0($a0)
|
||||
/* f013960: 01e3c021 */ addu $t8,$t7,$v1
|
||||
/* f013964: af00005c */ sw $zero,0x5c($t8)
|
||||
/* f013968: 8c990000 */ lw $t9,0x0($a0)
|
||||
/* f01396c: 03237021 */ addu $t6,$t9,$v1
|
||||
/* f013970: adc00060 */ sw $zero,0x60($t6)
|
||||
/* f013974: 8d4f0000 */ lw $t7,0x0($t2)
|
||||
/* f013978: 8c8e0000 */ lw $t6,0x0($a0)
|
||||
/* f01397c: 8d190000 */ lw $t9,0x0($t0)
|
||||
/* f013980: 25f80001 */ addiu $t8,$t7,0x1
|
||||
/* f013984: ad580000 */ sw $t8,0x0($t2)
|
||||
/* f013988: 01c37821 */ addu $t7,$t6,$v1
|
||||
/* f01398c: adf90074 */ sw $t9,0x74($t7)
|
||||
/* f013990: 8d6e0000 */ lw $t6,0x0($t3)
|
||||
/* f013994: 8c870000 */ lw $a3,0x0($a0)
|
||||
/* f013998: 00ce082a */ slt $at,$a2,$t6
|
||||
/* f01399c: 0067c021 */ addu $t8,$v1,$a3
|
||||
/* f0139a0: 2463007c */ addiu $v1,$v1,0x7c
|
||||
/* f0139a4: 1420ffd8 */ bnez $at,.L0f013908
|
||||
/* f0139a8: ad180000 */ sw $t8,0x0($t0)
|
||||
/* f0139ac: 00003025 */ or $a2,$zero,$zero
|
||||
.L0f0139b0:
|
||||
/* f0139b0: 8db902bc */ lw $t9,0x2bc($t5)
|
||||
/* f0139b4: 1b20000a */ blez $t9,.L0f0139e0
|
||||
/* f0139b8: 00001025 */ or $v0,$zero,$zero
|
||||
/* f0139bc: 8d8f0000 */ lw $t7,0x0($t4)
|
||||
.L0f0139c0:
|
||||
/* f0139c0: 24c60001 */ addiu $a2,$a2,0x1
|
||||
/* f0139c4: 01e2c021 */ addu $t8,$t7,$v0
|
||||
/* f0139c8: a7000000 */ sh $zero,0x0($t8)
|
||||
/* f0139cc: 8dae02bc */ lw $t6,0x2bc($t5)
|
||||
/* f0139d0: 24420002 */ addiu $v0,$v0,0x2
|
||||
/* f0139d4: 00ce082a */ slt $at,$a2,$t6
|
||||
/* f0139d8: 5420fff9 */ bnezl $at,.L0f0139c0
|
||||
/* f0139dc: 8d8f0000 */ lw $t7,0x0($t4)
|
||||
.L0f0139e0:
|
||||
/* f0139e0: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* f0139e4: 27bd0028 */ addiu $sp,$sp,0x28
|
||||
/* f0139e8: 03e00008 */ jr $ra
|
||||
/* f0139ec: 00000000 */ nop
|
||||
);
|
||||
if (IS4MB()) {
|
||||
type = 0;
|
||||
} else if ((g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) && PLAYERCOUNT() == 2) {
|
||||
type = 1;
|
||||
} else if (PLAYERCOUNT() >= 2) {
|
||||
type = 0;
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
case 0:
|
||||
// 4MB or MP with 2+ players
|
||||
var8009cc44 = 80;
|
||||
var8009cc5c = 10;
|
||||
var8009cc60 = 40;
|
||||
var8009cc64 = 1;
|
||||
var8009cc68 = 25;
|
||||
var8009cc6c = 20;
|
||||
var8009cc70 = 5;
|
||||
var8009cc74 = 15;
|
||||
var8009cc78 = 0.3f;
|
||||
break;
|
||||
case 1:
|
||||
// 2 player coop/anti
|
||||
var8009cc44 = 200;
|
||||
var8009cc5c = 25;
|
||||
var8009cc60 = 100;
|
||||
var8009cc64 = 4;
|
||||
var8009cc68 = 40;
|
||||
var8009cc6c = 80;
|
||||
var8009cc70 = 20;
|
||||
var8009cc74 = 30;
|
||||
var8009cc78 = 0.4f;
|
||||
break;
|
||||
case 2:
|
||||
default:
|
||||
// 1 player 8MB
|
||||
var8009cc44 = 360;
|
||||
var8009cc5c = 50;
|
||||
var8009cc60 = 120;
|
||||
var8009cc64 = 10;
|
||||
var8009cc68 = 60; // max bullet holes
|
||||
var8009cc6c = 180;
|
||||
var8009cc70 = 25;
|
||||
var8009cc74 = 40;
|
||||
var8009cc78 = 0.5f;
|
||||
break;
|
||||
}
|
||||
|
||||
var8009cc40 = 0;
|
||||
var8009cc48 = 0;
|
||||
var8009cc4c = 0;
|
||||
var8009cc50 = 0;
|
||||
var8009cc54 = 0;
|
||||
var8009cc58 = 0;
|
||||
|
||||
if (g_Vars.stagenum >= STAGE_TITLE) {
|
||||
var8009cc44 = 0;
|
||||
}
|
||||
|
||||
if (var8009cc44 == 0) {
|
||||
var800a41b0 = NULL;
|
||||
} else {
|
||||
// Allocate an array of s16 room numbers followed by a bunch of structs
|
||||
u32 numberssize;
|
||||
u32 structssize;
|
||||
void *ptr;
|
||||
|
||||
structssize = var8009cc44 * sizeof(struct var800a41b0);
|
||||
structssize += 0xf;
|
||||
structssize &= ~0xf;
|
||||
|
||||
numberssize = g_Vars.roomcount * 2;
|
||||
numberssize += 0xf;
|
||||
numberssize &= ~0xf;
|
||||
|
||||
ptr = malloc(structssize + numberssize, 4);
|
||||
|
||||
var8009cc40 = ptr;
|
||||
var800a41b0 = (struct var800a41b0 *)((u32)ptr + numberssize);
|
||||
var800a41b4 = NULL;
|
||||
var800a41b8 = 0;
|
||||
|
||||
// Initialise structs
|
||||
for (i = 0; i < var8009cc44; i++) {
|
||||
var800a41b0[i].unk6d = 0;
|
||||
var800a41b0[i].unk6e = 0;
|
||||
var800a41b0[i].unk70 = var800a41b0[i].unk70 ^ ((var800a41b0[i].unk70 >> 4) << 4);
|
||||
var800a41b0[i].unk6f &= 0xff7f;
|
||||
var800a41b0[i].unk68 = -1;
|
||||
var800a41b0[i].unk5c = 0;
|
||||
var800a41b0[i].unk60 = 0;
|
||||
|
||||
var8009cc4c++;
|
||||
var800a41b0[i].prev = var800a41b4;
|
||||
var800a41b4 = &var800a41b0[i];
|
||||
}
|
||||
|
||||
// Initialise room numbers
|
||||
for (i = 0; i < g_Vars.roomcount; i++) {
|
||||
var8009cc40[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f0139f0
|
||||
|
|
|
|||
|
|
@ -14581,8 +14581,8 @@ s32 var8009cc30 = 0;
|
|||
u32 var8009cc34 = 0;
|
||||
u32 var8009cc38 = 0;
|
||||
u32 var8009cc3c = 0;
|
||||
u32 var8009cc40 = 0;
|
||||
u32 var8009cc44 = 0;
|
||||
s16 *var8009cc40 = NULL;
|
||||
s32 var8009cc44 = 0;
|
||||
u32 var8009cc48 = 0;
|
||||
u32 var8009cc4c = 0;
|
||||
u32 var8009cc50 = 0;
|
||||
|
|
@ -14590,12 +14590,12 @@ u32 var8009cc54 = 0;
|
|||
u32 var8009cc58 = 0;
|
||||
u32 var8009cc5c = 0;
|
||||
u32 var8009cc60 = 0;
|
||||
u32 var8009cc64 = 0;
|
||||
s32 var8009cc64 = 0;
|
||||
u32 var8009cc68 = 0;
|
||||
u32 var8009cc6c = 0;
|
||||
u32 var8009cc70 = 0;
|
||||
u32 var8009cc74 = 0;
|
||||
u32 var8009cc78 = 0;
|
||||
f32 var8009cc78 = 0;
|
||||
u32 var8009cc7c = 0;
|
||||
void *var8009cc80 = NULL;
|
||||
void *var8009cc84 = NULL;
|
||||
|
|
@ -15097,8 +15097,8 @@ u32 var800a41a0 = 0;
|
|||
u32 var800a41a4 = 0;
|
||||
u32 var800a41a8 = 0;
|
||||
u32 var800a41ac = 0;
|
||||
u32 var800a41b0 = 0;
|
||||
u32 var800a41b4 = 0;
|
||||
struct var800a41b0 *var800a41b0 = NULL;
|
||||
struct var800a41b0 *var800a41b4 = NULL;
|
||||
u32 var800a41b8 = 0;
|
||||
u32 var800a41bc = 0;
|
||||
char var800a41c0[4] = {'\0'};
|
||||
|
|
|
|||
|
|
@ -529,13 +529,21 @@ extern u32 var8009cb08;
|
|||
extern u32 var8009cbf8;
|
||||
extern struct prop *g_DangerousProps[MAX_DANGEROUSPROPS];
|
||||
extern s32 var8009cc30;
|
||||
extern u32 var8009cc40;
|
||||
extern u32 var8009cc44;
|
||||
extern s16 *var8009cc40;
|
||||
extern s32 var8009cc44;
|
||||
extern u32 var8009cc48;
|
||||
extern u32 var8009cc4c;
|
||||
extern u32 var8009cc50;
|
||||
extern u32 var8009cc54;
|
||||
extern u32 var8009cc58;
|
||||
extern u32 var8009cc5c;
|
||||
extern u32 var8009cc60;
|
||||
extern s32 var8009cc64;
|
||||
extern u32 var8009cc68;
|
||||
extern u32 var8009cc6c;
|
||||
extern u32 var8009cc70;
|
||||
extern u32 var8009cc74;
|
||||
extern f32 var8009cc78;
|
||||
extern void *var8009cc80;
|
||||
extern void *var8009cc84;
|
||||
extern void *var8009cc88;
|
||||
|
|
@ -706,8 +714,8 @@ extern u32 var800a418c;
|
|||
extern u32 var800a4190;
|
||||
extern u32 var800a4194;
|
||||
extern u32 var800a41a0;
|
||||
extern u32 var800a41b0;
|
||||
extern u32 var800a41b4;
|
||||
extern struct var800a41b0 *var800a41b0; // head
|
||||
extern struct var800a41b0 *var800a41b4; // tail
|
||||
extern u32 var800a41b8;
|
||||
extern char var800a41c0[];
|
||||
extern u32 var800a41d8;
|
||||
|
|
|
|||
|
|
@ -6784,4 +6784,42 @@ struct stageheadlimit {
|
|||
u8 maxheads;
|
||||
};
|
||||
|
||||
struct var800a41b0 {
|
||||
/*0x00*/ u32 unk00;
|
||||
/*0x04*/ u32 unk04;
|
||||
/*0x08*/ u32 unk08;
|
||||
/*0x0c*/ u32 unk0c;
|
||||
/*0x10*/ u32 unk10;
|
||||
/*0x14*/ u32 unk14;
|
||||
/*0x18*/ u32 unk18;
|
||||
/*0x1c*/ u32 unk1c;
|
||||
/*0x20*/ u32 unk20;
|
||||
/*0x24*/ u32 unk24;
|
||||
/*0x28*/ u32 unk28;
|
||||
/*0x2c*/ u32 unk2c;
|
||||
/*0x30*/ u32 unk30;
|
||||
/*0x34*/ u32 unk34;
|
||||
/*0x38*/ u32 unk38;
|
||||
/*0x3c*/ u32 unk3c;
|
||||
/*0x40*/ u32 unk40;
|
||||
/*0x44*/ u32 unk44;
|
||||
/*0x48*/ u32 unk48;
|
||||
/*0x4c*/ u32 unk4c;
|
||||
/*0x50*/ u32 unk50;
|
||||
/*0x54*/ u32 unk54;
|
||||
/*0x58*/ u32 unk58;
|
||||
/*0x5c*/ u32 unk5c;
|
||||
/*0x60*/ u32 unk60;
|
||||
/*0x64*/ u32 unk64;
|
||||
/*0x68*/ s16 unk68;
|
||||
/*0x6a*/ u16 unk6a;
|
||||
/*0x6c*/ u8 unk6c;
|
||||
/*0x6d*/ u8 unk6d;
|
||||
/*0x6e*/ u8 unk6e;
|
||||
/*0x6f*/ u8 unk6f;
|
||||
/*0x70*/ u32 unk70;
|
||||
/*0x74*/ struct var800a41b0 *prev;
|
||||
/*0x78*/ u32 unk78;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue