1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-05-10 19:13:42 +00:00

z_obj_mure OK (#875)

* almost matching init, matching data

* more matchings, some non-matching progress

* finishing up SpawnActor, fixing .data types

* first decompile pass done, few non matchings

* cleanup/update matchings and remove asm

* format code

* pick up some OKs

* 1 non_matching left, some documentation

* z_obj_mure OK... but at what cost?

* implement suggested changes, some more documentation

* Implement Fig's suggestions

* review

Co-authored-by: Sam Lyon <sam.c.lyon@gmail.com>
Co-authored-by: fig02 <fig02srl@gmail.com>
This commit is contained in:
mzxrules 2021-07-30 13:17:42 -04:00 committed by GitHub
parent e8f93099d1
commit a209195183
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 388 additions and 1322 deletions

View file

@ -1,4 +0,0 @@
glabel ObjMure_Destroy
/* 001DC 80B98C7C AFA40000 */ sw $a0, 0x0000($sp)
/* 001E0 80B98C80 03E00008 */ jr $ra
/* 001E4 80B98C84 AFA50004 */ sw $a1, 0x0004($sp)

View file

@ -1,120 +0,0 @@
.rdata
glabel D_80B99B04
.asciz "Error (%s %d)(arg_data 0x%04x)\n"
.balign 4
glabel D_80B99B30
.asciz "../z_obj_mure.c"
.balign 4
glabel D_80B99B40
.asciz "Error (%s %d)(arg_data 0x%04x)\n"
.balign 4
glabel D_80B99B6C
.asciz "../z_obj_mure.c"
.balign 4
glabel D_80B99B7C
.asciz " (arg_data 0x%04x)(chNum(%d) ptn(%d) svNum(%d) type(%d))\n"
.balign 4
glabel D_80B99BC0
.asciz "Warning : (%s %d)(arg_data 0x%04x)\n"
.balign 4
glabel D_80B99C00
.asciz "../z_obj_mure.c"
.balign 4
.text
glabel ObjMure_Init
/* 000A8 80B98B48 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 000AC 80B98B4C AFBF0024 */ sw $ra, 0x0024($sp)
/* 000B0 80B98B50 AFB00020 */ sw $s0, 0x0020($sp)
/* 000B4 80B98B54 8487001C */ lh $a3, 0x001C($a0) ## 0000001C
/* 000B8 80B98B58 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 000BC 80B98B5C 240600ED */ addiu $a2, $zero, 0x00ED ## $a2 = 000000ED
/* 000C0 80B98B60 0007C203 */ sra $t8, $a3, 8
/* 000C4 80B98B64 33190007 */ andi $t9, $t8, 0x0007 ## $t9 = 00000000
/* 000C8 80B98B68 A4990152 */ sh $t9, 0x0152($a0) ## 00000152
/* 000CC 80B98B6C 848B0152 */ lh $t3, 0x0152($a0) ## 00000152
/* 000D0 80B98B70 00077303 */ sra $t6, $a3, 12
/* 000D4 80B98B74 00074143 */ sra $t0, $a3, 5
/* 000D8 80B98B78 31CF000F */ andi $t7, $t6, 0x000F ## $t7 = 00000000
/* 000DC 80B98B7C 31090003 */ andi $t1, $t0, 0x0003 ## $t1 = 00000000
/* 000E0 80B98B80 30EA001F */ andi $t2, $a3, 0x001F ## $t2 = 00000000
/* 000E4 80B98B84 29610004 */ slti $at, $t3, 0x0004
/* 000E8 80B98B88 A48F0150 */ sh $t7, 0x0150($a0) ## 00000150
/* 000EC 80B98B8C A4890154 */ sh $t1, 0x0154($a0) ## 00000154
/* 000F0 80B98B90 1420000A */ bne $at, $zero, .L80B98BBC
/* 000F4 80B98B94 A48A0156 */ sh $t2, 0x0156($a0) ## 00000156
/* 000F8 80B98B98 3C0480BA */ lui $a0, %hi(D_80B99B04) ## $a0 = 80BA0000
/* 000FC 80B98B9C 3C0580BA */ lui $a1, %hi(D_80B99B30) ## $a1 = 80BA0000
/* 00100 80B98BA0 24A59B30 */ addiu $a1, $a1, %lo(D_80B99B30) ## $a1 = 80B99B30
/* 00104 80B98BA4 0C00084C */ jal osSyncPrintf
/* 00108 80B98BA8 24849B04 */ addiu $a0, $a0, %lo(D_80B99B04) ## $a0 = 80B99B04
/* 0010C 80B98BAC 0C00B55C */ jal Actor_Kill
/* 00110 80B98BB0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00114 80B98BB4 1000002D */ beq $zero, $zero, .L80B98C6C
/* 00118 80B98BB8 8FBF0024 */ lw $ra, 0x0024($sp)
.L80B98BBC:
/* 0011C 80B98BBC 860C0156 */ lh $t4, 0x0156($s0) ## 00000156
/* 00120 80B98BC0 3C0480BA */ lui $a0, %hi(D_80B99B40) ## $a0 = 80BA0000
/* 00124 80B98BC4 24849B40 */ addiu $a0, $a0, %lo(D_80B99B40) ## $a0 = 80B99B40
/* 00128 80B98BC8 29810005 */ slti $at, $t4, 0x0005
/* 0012C 80B98BCC 14200008 */ bne $at, $zero, .L80B98BF0
/* 00130 80B98BD0 240600F5 */ addiu $a2, $zero, 0x00F5 ## $a2 = 000000F5
/* 00134 80B98BD4 3C0580BA */ lui $a1, %hi(D_80B99B6C) ## $a1 = 80BA0000
/* 00138 80B98BD8 0C00084C */ jal osSyncPrintf
/* 0013C 80B98BDC 24A59B6C */ addiu $a1, $a1, %lo(D_80B99B6C) ## $a1 = 80B99B6C
/* 00140 80B98BE0 0C00B55C */ jal Actor_Kill
/* 00144 80B98BE4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00148 80B98BE8 10000020 */ beq $zero, $zero, .L80B98C6C
/* 0014C 80B98BEC 8FBF0024 */ lw $ra, 0x0024($sp)
.L80B98BF0:
/* 00150 80B98BF0 0C2E62C7 */ jal func_80B98B1C
/* 00154 80B98BF4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00158 80B98BF8 14400005 */ bne $v0, $zero, .L80B98C10
/* 0015C 80B98BFC 3C0D80BA */ lui $t5, %hi(func_80B992E4) ## $t5 = 80BA0000
/* 00160 80B98C00 0C00B55C */ jal Actor_Kill
/* 00164 80B98C04 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00168 80B98C08 10000018 */ beq $zero, $zero, .L80B98C6C
/* 0016C 80B98C0C 8FBF0024 */ lw $ra, 0x0024($sp)
.L80B98C10:
/* 00170 80B98C10 860E0154 */ lh $t6, 0x0154($s0) ## 00000154
/* 00174 80B98C14 25AD92E4 */ addiu $t5, $t5, %lo(func_80B992E4) ## $t5 = FFFF92E4
/* 00178 80B98C18 AE0D014C */ sw $t5, 0x014C($s0) ## 0000014C
/* 0017C 80B98C1C 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00180 80B98C20 86060150 */ lh $a2, 0x0150($s0) ## 00000150
/* 00184 80B98C24 86070152 */ lh $a3, 0x0152($s0) ## 00000152
/* 00188 80B98C28 AFAE0010 */ sw $t6, 0x0010($sp)
/* 0018C 80B98C2C 860F0156 */ lh $t7, 0x0156($s0) ## 00000156
/* 00190 80B98C30 3C0480BA */ lui $a0, %hi(D_80B99B7C) ## $a0 = 80BA0000
/* 00194 80B98C34 24849B7C */ addiu $a0, $a0, %lo(D_80B99B7C) ## $a0 = 80B99B7C
/* 00198 80B98C38 0C00084C */ jal osSyncPrintf
/* 0019C 80B98C3C AFAF0014 */ sw $t7, 0x0014($sp)
/* 001A0 80B98C40 0C2E6322 */ jal func_80B98C88
/* 001A4 80B98C44 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001A8 80B98C48 1C400007 */ bgtz $v0, .L80B98C68
/* 001AC 80B98C4C 3C0480BA */ lui $a0, %hi(D_80B99BC0) ## $a0 = 80BA0000
/* 001B0 80B98C50 3C0580BA */ lui $a1, %hi(D_80B99C00) ## $a1 = 80BA0000
/* 001B4 80B98C54 24A59C00 */ addiu $a1, $a1, %lo(D_80B99C00) ## $a1 = 80B99C00
/* 001B8 80B98C58 24849BC0 */ addiu $a0, $a0, %lo(D_80B99BC0) ## $a0 = 80B99BC0
/* 001BC 80B98C5C 2406010C */ addiu $a2, $zero, 0x010C ## $a2 = 0000010C
/* 001C0 80B98C60 0C00084C */ jal osSyncPrintf
/* 001C4 80B98C64 8607001C */ lh $a3, 0x001C($s0) ## 0000001C
.L80B98C68:
/* 001C8 80B98C68 8FBF0024 */ lw $ra, 0x0024($sp)
.L80B98C6C:
/* 001CC 80B98C6C 8FB00020 */ lw $s0, 0x0020($sp)
/* 001D0 80B98C70 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 001D4 80B98C74 03E00008 */ jr $ra
/* 001D8 80B98C78 00000000 */ nop

View file

@ -1,16 +0,0 @@
glabel ObjMure_Update
/* 00F58 80B999F8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00F5C 80B999FC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00F60 80B99A00 848201A4 */ lh $v0, 0x01A4($a0) ## 000001A4
/* 00F64 80B99A04 18400002 */ blez $v0, .L80B99A10
/* 00F68 80B99A08 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00F6C 80B99A0C A48E01A4 */ sh $t6, 0x01A4($a0) ## 000001A4
.L80B99A10:
/* 00F70 80B99A10 8C99014C */ lw $t9, 0x014C($a0) ## 0000014C
/* 00F74 80B99A14 0320F809 */ jalr $ra, $t9
/* 00F78 80B99A18 00000000 */ nop
/* 00F7C 80B99A1C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00F80 80B99A20 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00F84 80B99A24 03E00008 */ jr $ra
/* 00F88 80B99A28 00000000 */ nop
/* 00F8C 80B99A2C 00000000 */ nop

View file

@ -1,47 +0,0 @@
.rdata
glabel D_80B99AB0
.asciz "Error : (%s %d)(arg_data 0x%04x)\n"
.balign 4
glabel D_80B99AF4
.asciz "../z_obj_mure.c"
.balign 4
.text
glabel func_80B98AA0
/* 00000 80B98AA0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00004 80B98AA4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00008 80B98AA8 AFA40018 */ sw $a0, 0x0018($sp)
/* 0000C 80B98AAC AFA5001C */ sw $a1, 0x001C($sp)
/* 00010 80B98AB0 84820156 */ lh $v0, 0x0156($a0) ## 00000156
/* 00014 80B98AB4 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00018 80B98AB8 8FA40018 */ lw $a0, 0x0018($sp)
/* 0001C 80B98ABC 10410006 */ beq $v0, $at, .L80B98AD8
/* 00020 80B98AC0 3C0580BA */ lui $a1, %hi(D_80B99A8C) ## $a1 = 80BA0000
/* 00024 80B98AC4 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00028 80B98AC8 10410003 */ beq $v0, $at, .L80B98AD8
/* 0002C 80B98ACC 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 00030 80B98AD0 14410005 */ bne $v0, $at, .L80B98AE8
/* 00034 80B98AD4 240600CC */ addiu $a2, $zero, 0x00CC ## $a2 = 000000CC
.L80B98AD8:
/* 00038 80B98AD8 0C01E037 */ jal Actor_ProcessInitChain
/* 0003C 80B98ADC 24A59A8C */ addiu $a1, $a1, %lo(D_80B99A8C) ## $a1 = 80B99A8C
/* 00040 80B98AE0 1000000A */ beq $zero, $zero, .L80B98B0C
/* 00044 80B98AE4 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80B98AE8:
/* 00048 80B98AE8 8FAF0018 */ lw $t7, 0x0018($sp)
/* 0004C 80B98AEC 3C0480BA */ lui $a0, %hi(D_80B99AB0) ## $a0 = 80BA0000
/* 00050 80B98AF0 3C0580BA */ lui $a1, %hi(D_80B99AF4) ## $a1 = 80BA0000
/* 00054 80B98AF4 24A59AF4 */ addiu $a1, $a1, %lo(D_80B99AF4) ## $a1 = 80B99AF4
/* 00058 80B98AF8 24849AB0 */ addiu $a0, $a0, %lo(D_80B99AB0) ## $a0 = 80B99AB0
/* 0005C 80B98AFC 0C00084C */ jal osSyncPrintf
/* 00060 80B98B00 85E7001C */ lh $a3, 0x001C($t7) ## 0000001C
/* 00064 80B98B04 10000001 */ beq $zero, $zero, .L80B98B0C
/* 00068 80B98B08 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80B98B0C:
/* 0006C 80B98B0C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00070 80B98B10 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00074 80B98B14 03E00008 */ jr $ra
/* 00078 80B98B18 00000000 */ nop

View file

@ -1,14 +0,0 @@
glabel func_80B98B1C
/* 0007C 80B98B1C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00080 80B98B20 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00084 80B98B24 0C2E62A8 */ jal func_80B98AA0
/* 00088 80B98B28 00000000 */ nop
/* 0008C 80B98B2C 14400003 */ bne $v0, $zero, .L80B98B3C
/* 00090 80B98B30 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00094 80B98B34 10000002 */ beq $zero, $zero, .L80B98B40
/* 00098 80B98B38 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80B98B3C:
/* 0009C 80B98B3C 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80B98B40:
/* 000A0 80B98B40 03E00008 */ jr $ra
/* 000A4 80B98B44 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000

View file

@ -1,13 +0,0 @@
glabel func_80B98C88
/* 001E8 80B98C88 84830150 */ lh $v1, 0x0150($a0) ## 00000150
/* 001EC 80B98C8C 14600007 */ bne $v1, $zero, .L80B98CAC
/* 001F0 80B98C90 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
/* 001F4 80B98C94 848E0152 */ lh $t6, 0x0152($a0) ## 00000152
/* 001F8 80B98C98 3C0280BA */ lui $v0, %hi(D_80B99A64) ## $v0 = 80BA0000
/* 001FC 80B98C9C 000E7880 */ sll $t7, $t6, 2
/* 00200 80B98CA0 004F1021 */ addu $v0, $v0, $t7
/* 00204 80B98CA4 03E00008 */ jr $ra
/* 00208 80B98CA8 8C429A64 */ lw $v0, %lo(D_80B99A64)($v0)
.L80B98CAC:
/* 0020C 80B98CAC 03E00008 */ jr $ra
/* 00210 80B98CB0 00000000 */ nop

View file

@ -1,38 +0,0 @@
.rdata
glabel D_80B99C10
.asciz " (%s %d)\n"
.balign 4
glabel D_80B99C24
.asciz "../z_obj_mure.c"
.balign 4
.text
glabel func_80B98CB4
/* 00214 80B98CB4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00218 80B98CB8 28C10004 */ slti $at, $a2, 0x0004
/* 0021C 80B98CBC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00220 80B98CC0 AFA40018 */ sw $a0, 0x0018($sp)
/* 00224 80B98CC4 AFA5001C */ sw $a1, 0x001C($sp)
/* 00228 80B98CC8 14200007 */ bne $at, $zero, .L80B98CE8
/* 0022C 80B98CCC AFA70024 */ sw $a3, 0x0024($sp)
/* 00230 80B98CD0 3C0480BA */ lui $a0, %hi(D_80B99C10) ## $a0 = 80BA0000
/* 00234 80B98CD4 3C0580BA */ lui $a1, %hi(D_80B99C24) ## $a1 = 80BA0000
/* 00238 80B98CD8 24A59C24 */ addiu $a1, $a1, %lo(D_80B99C24) ## $a1 = 80B99C24
/* 0023C 80B98CDC 24849C10 */ addiu $a0, $a0, %lo(D_80B99C10) ## $a0 = 80B99C10
/* 00240 80B98CE0 0C00084C */ jal osSyncPrintf
/* 00244 80B98CE4 24060133 */ addiu $a2, $zero, 0x0133 ## $a2 = 00000133
.L80B98CE8:
/* 00248 80B98CE8 8FAF001C */ lw $t7, 0x001C($sp)
/* 0024C 80B98CEC 8FAE0018 */ lw $t6, 0x0018($sp)
/* 00250 80B98CF0 8DF90000 */ lw $t9, 0x0000($t7) ## 00000000
/* 00254 80B98CF4 ADD90000 */ sw $t9, 0x0000($t6) ## 00000000
/* 00258 80B98CF8 8DF80004 */ lw $t8, 0x0004($t7) ## 00000004
/* 0025C 80B98CFC ADD80004 */ sw $t8, 0x0004($t6) ## 00000004
/* 00260 80B98D00 8DF90008 */ lw $t9, 0x0008($t7) ## 00000008
/* 00264 80B98D04 ADD90008 */ sw $t9, 0x0008($t6) ## 00000008
/* 00268 80B98D08 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0026C 80B98D0C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00270 80B98D10 03E00008 */ jr $ra
/* 00274 80B98D14 00000000 */ nop

View file

@ -1,176 +0,0 @@
.rdata
glabel D_80B99C34
.asciz "Error : (%s %d)(arg_data 0x%04x)\n"
.balign 4
glabel D_80B99C64
.asciz "../z_obj_mure.c"
.balign 4
glabel D_80B99C74
.asciz "warning (%s %d)\n"
.balign 4
glabel D_80B99C90
.asciz "../z_obj_mure.c"
.balign 4
glabel D_80B99CA0
.asciz "warning (%s %d)\n"
.balign 4
glabel D_80B99CBC
.asciz "../z_obj_mure.c"
.balign 4
.text
glabel func_80B98D18
/* 00278 80B98D18 27BDFF78 */ addiu $sp, $sp, 0xFF78 ## $sp = FFFFFF78
/* 0027C 80B98D1C AFBF0054 */ sw $ra, 0x0054($sp)
/* 00280 80B98D20 AFB50044 */ sw $s5, 0x0044($sp)
/* 00284 80B98D24 AFB00030 */ sw $s0, 0x0030($sp)
/* 00288 80B98D28 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0028C 80B98D2C 00A0A825 */ or $s5, $a1, $zero ## $s5 = 00000000
/* 00290 80B98D30 AFBE0050 */ sw $s8, 0x0050($sp)
/* 00294 80B98D34 AFB7004C */ sw $s7, 0x004C($sp)
/* 00298 80B98D38 AFB60048 */ sw $s6, 0x0048($sp)
/* 0029C 80B98D3C AFB40040 */ sw $s4, 0x0040($sp)
/* 002A0 80B98D40 AFB3003C */ sw $s3, 0x003C($sp)
/* 002A4 80B98D44 AFB20038 */ sw $s2, 0x0038($sp)
/* 002A8 80B98D48 0C2E6322 */ jal func_80B98C88
/* 002AC 80B98D4C AFB10034 */ sw $s1, 0x0034($sp)
/* 002B0 80B98D50 AFA2006C */ sw $v0, 0x006C($sp)
/* 002B4 80B98D54 1840006C */ blez $v0, .L80B98F08
/* 002B8 80B98D58 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000
/* 002BC 80B98D5C 3C1E80BA */ lui $s8, %hi(D_80B99A80) ## $s8 = 80BA0000
/* 002C0 80B98D60 3C1780BA */ lui $s7, %hi(D_80B99A74) ## $s7 = 80BA0000
/* 002C4 80B98D64 26F79A74 */ addiu $s7, $s7, %lo(D_80B99A74) ## $s7 = 80B99A74
/* 002C8 80B98D68 27DE9A80 */ addiu $s8, $s8, %lo(D_80B99A80) ## $s8 = 80B99A80
/* 002CC 80B98D6C 02008825 */ or $s1, $s0, $zero ## $s1 = 00000000
/* 002D0 80B98D70 0200A025 */ or $s4, $s0, $zero ## $s4 = 00000000
/* 002D4 80B98D74 27B60074 */ addiu $s6, $sp, 0x0074 ## $s6 = FFFFFFEC
.L80B98D78:
/* 002D8 80B98D78 8E2E0158 */ lw $t6, 0x0158($s1) ## 00000158
/* 002DC 80B98D7C 3C0480BA */ lui $a0, %hi(D_80B99C34) ## $a0 = 80BA0000
/* 002E0 80B98D80 24849C34 */ addiu $a0, $a0, %lo(D_80B99C34) ## $a0 = 80B99C34
/* 002E4 80B98D84 11C00005 */ beq $t6, $zero, .L80B98D9C
/* 002E8 80B98D88 3C0580BA */ lui $a1, %hi(D_80B99C64) ## $a1 = 80BA0000
/* 002EC 80B98D8C 24A59C64 */ addiu $a1, $a1, %lo(D_80B99C64) ## $a1 = 80B99C64
/* 002F0 80B98D90 2406014D */ addiu $a2, $zero, 0x014D ## $a2 = 0000014D
/* 002F4 80B98D94 0C00084C */ jal osSyncPrintf
/* 002F8 80B98D98 8607001C */ lh $a3, 0x001C($s0) ## 0000001C
.L80B98D9C:
/* 002FC 80B98D9C 92820194 */ lbu $v0, 0x0194($s4) ## 00000194
/* 00300 80B98DA0 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00304 80B98DA4 26B21C24 */ addiu $s2, $s5, 0x1C24 ## $s2 = 00001C24
/* 00308 80B98DA8 10410051 */ beq $v0, $at, .L80B98EF0
/* 0030C 80B98DAC 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00310 80B98DB0 1441002B */ bne $v0, $at, .L80B98E60
/* 00314 80B98DB4 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 00318 80B98DB8 02C02025 */ or $a0, $s6, $zero ## $a0 = FFFFFFEC
/* 0031C 80B98DBC 86060152 */ lh $a2, 0x0152($s0) ## 00000152
/* 00320 80B98DC0 0C2E632D */ jal func_80B98CB4
/* 00324 80B98DC4 02603825 */ or $a3, $s3, $zero ## $a3 = 00000000
/* 00328 80B98DC8 86020156 */ lh $v0, 0x0156($s0) ## 00000156
/* 0032C 80B98DCC C7A40078 */ lwc1 $f4, 0x0078($sp)
/* 00330 80B98DD0 C7A6007C */ lwc1 $f6, 0x007C($sp)
/* 00334 80B98DD4 00021040 */ sll $v0, $v0, 1
/* 00338 80B98DD8 02E27821 */ addu $t7, $s7, $v0
/* 0033C 80B98DDC 85E60000 */ lh $a2, 0x0000($t7) ## 00000000
/* 00340 80B98DE0 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00344 80B98DE4 E7A60014 */ swc1 $f6, 0x0014($sp)
/* 00348 80B98DE8 86180030 */ lh $t8, 0x0030($s0) ## 00000030
/* 0034C 80B98DEC 03C24821 */ addu $t1, $s8, $v0
/* 00350 80B98DF0 852A0000 */ lh $t2, 0x0000($t1) ## 00000000
/* 00354 80B98DF4 AFB80018 */ sw $t8, 0x0018($sp)
/* 00358 80B98DF8 86190032 */ lh $t9, 0x0032($s0) ## 00000032
/* 0035C 80B98DFC 02402025 */ or $a0, $s2, $zero ## $a0 = 00001C24
/* 00360 80B98E00 02A02825 */ or $a1, $s5, $zero ## $a1 = 00000000
/* 00364 80B98E04 AFB9001C */ sw $t9, 0x001C($sp)
/* 00368 80B98E08 86080034 */ lh $t0, 0x0034($s0) ## 00000034
/* 0036C 80B98E0C 8FA70074 */ lw $a3, 0x0074($sp)
/* 00370 80B98E10 AFAA0024 */ sw $t2, 0x0024($sp)
/* 00374 80B98E14 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 00378 80B98E18 AFA80020 */ sw $t0, 0x0020($sp)
/* 0037C 80B98E1C 10400008 */ beq $v0, $zero, .L80B98E40
/* 00380 80B98E20 AE220158 */ sw $v0, 0x0158($s1) ## 00000158
/* 00384 80B98E24 8C4B0004 */ lw $t3, 0x0004($v0) ## 00000004
/* 00388 80B98E28 356C0800 */ ori $t4, $t3, 0x0800 ## $t4 = 00000800
/* 0038C 80B98E2C AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 00390 80B98E30 8E2E0158 */ lw $t6, 0x0158($s1) ## 00000158
/* 00394 80B98E34 820D0003 */ lb $t5, 0x0003($s0) ## 00000003
/* 00398 80B98E38 1000002D */ beq $zero, $zero, .L80B98EF0
/* 0039C 80B98E3C A1CD0003 */ sb $t5, 0x0003($t6) ## 00000003
.L80B98E40:
/* 003A0 80B98E40 3C0480BA */ lui $a0, %hi(D_80B99C74) ## $a0 = 80BA0000
/* 003A4 80B98E44 3C0580BA */ lui $a1, %hi(D_80B99C90) ## $a1 = 80BA0000
/* 003A8 80B98E48 24A59C90 */ addiu $a1, $a1, %lo(D_80B99C90) ## $a1 = 80B99C90
/* 003AC 80B98E4C 24849C74 */ addiu $a0, $a0, %lo(D_80B99C74) ## $a0 = 80B99C74
/* 003B0 80B98E50 0C00084C */ jal osSyncPrintf
/* 003B4 80B98E54 24060167 */ addiu $a2, $zero, 0x0167 ## $a2 = 00000167
/* 003B8 80B98E58 10000026 */ beq $zero, $zero, .L80B98EF4
/* 003BC 80B98E5C 8FAD006C */ lw $t5, 0x006C($sp)
.L80B98E60:
/* 003C0 80B98E60 02C02025 */ or $a0, $s6, $zero ## $a0 = FFFFFFEC
/* 003C4 80B98E64 86060152 */ lh $a2, 0x0152($s0) ## 00000152
/* 003C8 80B98E68 0C2E632D */ jal func_80B98CB4
/* 003CC 80B98E6C 02603825 */ or $a3, $s3, $zero ## $a3 = 00000000
/* 003D0 80B98E70 86020156 */ lh $v0, 0x0156($s0) ## 00000156
/* 003D4 80B98E74 C7A80078 */ lwc1 $f8, 0x0078($sp)
/* 003D8 80B98E78 C7AA007C */ lwc1 $f10, 0x007C($sp)
/* 003DC 80B98E7C 00021040 */ sll $v0, $v0, 1
/* 003E0 80B98E80 02E27821 */ addu $t7, $s7, $v0
/* 003E4 80B98E84 85E60000 */ lh $a2, 0x0000($t7) ## 00000000
/* 003E8 80B98E88 E7A80010 */ swc1 $f8, 0x0010($sp)
/* 003EC 80B98E8C E7AA0014 */ swc1 $f10, 0x0014($sp)
/* 003F0 80B98E90 86180030 */ lh $t8, 0x0030($s0) ## 00000030
/* 003F4 80B98E94 03C24821 */ addu $t1, $s8, $v0
/* 003F8 80B98E98 852A0000 */ lh $t2, 0x0000($t1) ## 00000000
/* 003FC 80B98E9C AFB80018 */ sw $t8, 0x0018($sp)
/* 00400 80B98EA0 86190032 */ lh $t9, 0x0032($s0) ## 00000032
/* 00404 80B98EA4 02402025 */ or $a0, $s2, $zero ## $a0 = 00001C24
/* 00408 80B98EA8 02A02825 */ or $a1, $s5, $zero ## $a1 = 00000000
/* 0040C 80B98EAC AFB9001C */ sw $t9, 0x001C($sp)
/* 00410 80B98EB0 86080034 */ lh $t0, 0x0034($s0) ## 00000034
/* 00414 80B98EB4 8FA70074 */ lw $a3, 0x0074($sp)
/* 00418 80B98EB8 AFAA0024 */ sw $t2, 0x0024($sp)
/* 0041C 80B98EBC 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 00420 80B98EC0 AFA80020 */ sw $t0, 0x0020($sp)
/* 00424 80B98EC4 10400004 */ beq $v0, $zero, .L80B98ED8
/* 00428 80B98EC8 AE220158 */ sw $v0, 0x0158($s1) ## 00000158
/* 0042C 80B98ECC 820B0003 */ lb $t3, 0x0003($s0) ## 00000003
/* 00430 80B98ED0 10000007 */ beq $zero, $zero, .L80B98EF0
/* 00434 80B98ED4 A04B0003 */ sb $t3, 0x0003($v0) ## 00000003
.L80B98ED8:
/* 00438 80B98ED8 3C0480BA */ lui $a0, %hi(D_80B99CA0) ## $a0 = 80BA0000
/* 0043C 80B98EDC 3C0580BA */ lui $a1, %hi(D_80B99CBC) ## $a1 = 80BA0000
/* 00440 80B98EE0 24A59CBC */ addiu $a1, $a1, %lo(D_80B99CBC) ## $a1 = 80B99CBC
/* 00444 80B98EE4 24849CA0 */ addiu $a0, $a0, %lo(D_80B99CA0) ## $a0 = 80B99CA0
/* 00448 80B98EE8 0C00084C */ jal osSyncPrintf
/* 0044C 80B98EEC 2406017E */ addiu $a2, $zero, 0x017E ## $a2 = 0000017E
.L80B98EF0:
/* 00450 80B98EF0 8FAD006C */ lw $t5, 0x006C($sp)
.L80B98EF4:
/* 00454 80B98EF4 26730001 */ addiu $s3, $s3, 0x0001 ## $s3 = 00000001
/* 00458 80B98EF8 26310004 */ addiu $s1, $s1, 0x0004 ## $s1 = 00000004
/* 0045C 80B98EFC 026D082A */ slt $at, $s3, $t5
/* 00460 80B98F00 1420FF9D */ bne $at, $zero, .L80B98D78
/* 00464 80B98F04 26940001 */ addiu $s4, $s4, 0x0001 ## $s4 = 00000001
.L80B98F08:
/* 00468 80B98F08 8FBF0054 */ lw $ra, 0x0054($sp)
/* 0046C 80B98F0C 8FB00030 */ lw $s0, 0x0030($sp)
/* 00470 80B98F10 8FB10034 */ lw $s1, 0x0034($sp)
/* 00474 80B98F14 8FB20038 */ lw $s2, 0x0038($sp)
/* 00478 80B98F18 8FB3003C */ lw $s3, 0x003C($sp)
/* 0047C 80B98F1C 8FB40040 */ lw $s4, 0x0040($sp)
/* 00480 80B98F20 8FB50044 */ lw $s5, 0x0044($sp)
/* 00484 80B98F24 8FB60048 */ lw $s6, 0x0048($sp)
/* 00488 80B98F28 8FB7004C */ lw $s7, 0x004C($sp)
/* 0048C 80B98F2C 8FBE0050 */ lw $s8, 0x0050($sp)
/* 00490 80B98F30 03E00008 */ jr $ra
/* 00494 80B98F34 27BD0088 */ addiu $sp, $sp, 0x0088 ## $sp = 00000000

View file

@ -1,126 +0,0 @@
.rdata
glabel D_80B99CCC
.asciz "Error : (%s %d)(arg_data 0x%04x)\n"
.balign 4
glabel D_80B99CFC
.asciz "../z_obj_mure.c"
.balign 4
glabel D_80B99D0C
.asciz "warning (%s %d)\n"
.balign 4
glabel D_80B99D28
.asciz "../z_obj_mure.c"
.balign 4
.text
glabel func_80B98F38
/* 00498 80B98F38 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70
/* 0049C 80B98F3C AFBF0054 */ sw $ra, 0x0054($sp)
/* 004A0 80B98F40 AFB40040 */ sw $s4, 0x0040($sp)
/* 004A4 80B98F44 AFB00030 */ sw $s0, 0x0030($sp)
/* 004A8 80B98F48 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 004AC 80B98F4C 00A0A025 */ or $s4, $a1, $zero ## $s4 = 00000000
/* 004B0 80B98F50 AFBE0050 */ sw $s8, 0x0050($sp)
/* 004B4 80B98F54 AFB7004C */ sw $s7, 0x004C($sp)
/* 004B8 80B98F58 AFB60048 */ sw $s6, 0x0048($sp)
/* 004BC 80B98F5C AFB50044 */ sw $s5, 0x0044($sp)
/* 004C0 80B98F60 AFB3003C */ sw $s3, 0x003C($sp)
/* 004C4 80B98F64 AFB20038 */ sw $s2, 0x0038($sp)
/* 004C8 80B98F68 0C2E6322 */ jal func_80B98C88
/* 004CC 80B98F6C AFB10034 */ sw $s1, 0x0034($sp)
/* 004D0 80B98F70 0040A825 */ or $s5, $v0, $zero ## $s5 = 00000000
/* 004D4 80B98F74 18400045 */ blez $v0, .L80B9908C
/* 004D8 80B98F78 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000
/* 004DC 80B98F7C 3C1E80BA */ lui $s8, %hi(D_80B99CCC) ## $s8 = 80BA0000
/* 004E0 80B98F80 27DE9CCC */ addiu $s8, $s8, %lo(D_80B99CCC) ## $s8 = 80B99CCC
/* 004E4 80B98F84 02009025 */ or $s2, $s0, $zero ## $s2 = 00000000
/* 004E8 80B98F88 26961C24 */ addiu $s6, $s4, 0x1C24 ## $s6 = 00001C24
/* 004EC 80B98F8C 02009825 */ or $s3, $s0, $zero ## $s3 = 00000000
/* 004F0 80B98F90 26170024 */ addiu $s7, $s0, 0x0024 ## $s7 = 00000024
.L80B98F94:
/* 004F4 80B98F94 8E4E0158 */ lw $t6, 0x0158($s2) ## 00000158
/* 004F8 80B98F98 3C0580BA */ lui $a1, %hi(D_80B99CFC) ## $a1 = 80BA0000
/* 004FC 80B98F9C 24A59CFC */ addiu $a1, $a1, %lo(D_80B99CFC) ## $a1 = 80B99CFC
/* 00500 80B98FA0 11C00004 */ beq $t6, $zero, .L80B98FB4
/* 00504 80B98FA4 03C02025 */ or $a0, $s8, $zero ## $a0 = 80B99CCC
/* 00508 80B98FA8 24060197 */ addiu $a2, $zero, 0x0197 ## $a2 = 00000197
/* 0050C 80B98FAC 0C00084C */ jal osSyncPrintf
/* 00510 80B98FB0 8607001C */ lh $a3, 0x001C($s0) ## 0000001C
.L80B98FB4:
/* 00514 80B98FB4 27A4007C */ addiu $a0, $sp, 0x007C ## $a0 = FFFFFFEC
/* 00518 80B98FB8 02E02825 */ or $a1, $s7, $zero ## $a1 = 00000024
/* 0051C 80B98FBC 86060152 */ lh $a2, 0x0152($s0) ## 00000152
/* 00520 80B98FC0 0C2E632D */ jal func_80B98CB4
/* 00524 80B98FC4 02203825 */ or $a3, $s1, $zero ## $a3 = 00000000
/* 00528 80B98FC8 86020156 */ lh $v0, 0x0156($s0) ## 00000156
/* 0052C 80B98FCC 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 00530 80B98FD0 02C02025 */ or $a0, $s6, $zero ## $a0 = 00001C24
/* 00534 80B98FD4 14410005 */ bne $v0, $at, .L80B98FEC
/* 00538 80B98FD8 C7A40080 */ lwc1 $f4, 0x0080($sp)
/* 0053C 80B98FDC 16200003 */ bne $s1, $zero, .L80B98FEC
/* 00540 80B98FE0 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 00544 80B98FE4 10000005 */ beq $zero, $zero, .L80B98FFC
/* 00548 80B98FE8 00021840 */ sll $v1, $v0, 1
.L80B98FEC:
/* 0054C 80B98FEC 00021840 */ sll $v1, $v0, 1
/* 00550 80B98FF0 3C0880BA */ lui $t0, %hi(D_80B99A80) ## $t0 = 80BA0000
/* 00554 80B98FF4 01034021 */ addu $t0, $t0, $v1
/* 00558 80B98FF8 85089A80 */ lh $t0, %lo(D_80B99A80)($t0)
.L80B98FFC:
/* 0055C 80B98FFC C7A60084 */ lwc1 $f6, 0x0084($sp)
/* 00560 80B99000 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00564 80B99004 3C0680BA */ lui $a2, %hi(D_80B99A74) ## $a2 = 80BA0000
/* 00568 80B99008 E7A60014 */ swc1 $f6, 0x0014($sp)
/* 0056C 80B9900C 860F0030 */ lh $t7, 0x0030($s0) ## 00000030
/* 00570 80B99010 00C33021 */ addu $a2, $a2, $v1
/* 00574 80B99014 84C69A74 */ lh $a2, %lo(D_80B99A74)($a2)
/* 00578 80B99018 AFAF0018 */ sw $t7, 0x0018($sp)
/* 0057C 80B9901C 86180032 */ lh $t8, 0x0032($s0) ## 00000032
/* 00580 80B99020 02802825 */ or $a1, $s4, $zero ## $a1 = 00000000
/* 00584 80B99024 8FA7007C */ lw $a3, 0x007C($sp)
/* 00588 80B99028 AFB8001C */ sw $t8, 0x001C($sp)
/* 0058C 80B9902C 86190034 */ lh $t9, 0x0034($s0) ## 00000034
/* 00590 80B99030 AFA80024 */ sw $t0, 0x0024($sp)
/* 00594 80B99034 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 00598 80B99038 AFB90020 */ sw $t9, 0x0020($sp)
/* 0059C 80B9903C 10400006 */ beq $v0, $zero, .L80B99058
/* 005A0 80B99040 AE420158 */ sw $v0, 0x0158($s2) ## 00000158
/* 005A4 80B99044 A2600194 */ sb $zero, 0x0194($s3) ## 00000194
/* 005A8 80B99048 8E4A0158 */ lw $t2, 0x0158($s2) ## 00000158
/* 005AC 80B9904C 82090003 */ lb $t1, 0x0003($s0) ## 00000003
/* 005B0 80B99050 10000009 */ beq $zero, $zero, .L80B99078
/* 005B4 80B99054 A1490003 */ sb $t1, 0x0003($t2) ## 00000003
.L80B99058:
/* 005B8 80B99058 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 005BC 80B9905C 3C0480BA */ lui $a0, %hi(D_80B99D0C) ## $a0 = 80BA0000
/* 005C0 80B99060 3C0580BA */ lui $a1, %hi(D_80B99D28) ## $a1 = 80BA0000
/* 005C4 80B99064 A26B0194 */ sb $t3, 0x0194($s3) ## 00000194
/* 005C8 80B99068 24A59D28 */ addiu $a1, $a1, %lo(D_80B99D28) ## $a1 = 80B99D28
/* 005CC 80B9906C 24849D0C */ addiu $a0, $a0, %lo(D_80B99D0C) ## $a0 = 80B99D0C
/* 005D0 80B99070 0C00084C */ jal osSyncPrintf
/* 005D4 80B99074 240601B6 */ addiu $a2, $zero, 0x01B6 ## $a2 = 000001B6
.L80B99078:
/* 005D8 80B99078 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
/* 005DC 80B9907C 0235082A */ slt $at, $s1, $s5
/* 005E0 80B99080 26520004 */ addiu $s2, $s2, 0x0004 ## $s2 = 00000004
/* 005E4 80B99084 1420FFC3 */ bne $at, $zero, .L80B98F94
/* 005E8 80B99088 26730001 */ addiu $s3, $s3, 0x0001 ## $s3 = 00000001
.L80B9908C:
/* 005EC 80B9908C 8FBF0054 */ lw $ra, 0x0054($sp)
/* 005F0 80B99090 8FB00030 */ lw $s0, 0x0030($sp)
/* 005F4 80B99094 8FB10034 */ lw $s1, 0x0034($sp)
/* 005F8 80B99098 8FB20038 */ lw $s2, 0x0038($sp)
/* 005FC 80B9909C 8FB3003C */ lw $s3, 0x003C($sp)
/* 00600 80B990A0 8FB40040 */ lw $s4, 0x0040($sp)
/* 00604 80B990A4 8FB50044 */ lw $s5, 0x0044($sp)
/* 00608 80B990A8 8FB60048 */ lw $s6, 0x0048($sp)
/* 0060C 80B990AC 8FB7004C */ lw $s7, 0x004C($sp)
/* 00610 80B990B0 8FBE0050 */ lw $s8, 0x0050($sp)
/* 00614 80B990B4 03E00008 */ jr $ra
/* 00618 80B990B8 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000

View file

@ -1,24 +0,0 @@
glabel func_80B990BC
/* 0061C 80B990BC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00620 80B990C0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00624 80B990C4 84820154 */ lh $v0, 0x0154($a0) ## 00000154
/* 00628 80B990C8 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 0062C 80B990CC 10400005 */ beq $v0, $zero, .L80B990E4
/* 00630 80B990D0 00000000 */ nop
/* 00634 80B990D4 10410007 */ beq $v0, $at, .L80B990F4
/* 00638 80B990D8 00000000 */ nop
/* 0063C 80B990DC 10000008 */ beq $zero, $zero, .L80B99100
/* 00640 80B990E0 8FBF0014 */ lw $ra, 0x0014($sp)
.L80B990E4:
/* 00644 80B990E4 0C2E6346 */ jal func_80B98D18
/* 00648 80B990E8 00000000 */ nop
/* 0064C 80B990EC 10000004 */ beq $zero, $zero, .L80B99100
/* 00650 80B990F0 8FBF0014 */ lw $ra, 0x0014($sp)
.L80B990F4:
/* 00654 80B990F4 0C2E63CE */ jal func_80B98F38
/* 00658 80B990F8 00000000 */ nop
/* 0065C 80B990FC 8FBF0014 */ lw $ra, 0x0014($sp)
.L80B99100:
/* 00660 80B99100 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00664 80B99104 03E00008 */ jr $ra
/* 00668 80B99108 00000000 */ nop

View file

@ -1,73 +0,0 @@
glabel func_80B9910C
/* 0066C 80B9910C 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00670 80B99110 AFBF0034 */ sw $ra, 0x0034($sp)
/* 00674 80B99114 AFB60030 */ sw $s6, 0x0030($sp)
/* 00678 80B99118 00A0B025 */ or $s6, $a1, $zero ## $s6 = 00000000
/* 0067C 80B9911C AFB5002C */ sw $s5, 0x002C($sp)
/* 00680 80B99120 AFB40028 */ sw $s4, 0x0028($sp)
/* 00684 80B99124 AFB30024 */ sw $s3, 0x0024($sp)
/* 00688 80B99128 AFB20020 */ sw $s2, 0x0020($sp)
/* 0068C 80B9912C AFB1001C */ sw $s1, 0x001C($sp)
/* 00690 80B99130 AFB00018 */ sw $s0, 0x0018($sp)
/* 00694 80B99134 0C2E6322 */ jal func_80B98C88
/* 00698 80B99138 AFA40038 */ sw $a0, 0x0038($sp)
/* 0069C 80B9913C 18400027 */ blez $v0, .L80B991DC
/* 006A0 80B99140 8FA40038 */ lw $a0, 0x0038($sp)
/* 006A4 80B99144 00027080 */ sll $t6, $v0, 2
/* 006A8 80B99148 01C49021 */ addu $s2, $t6, $a0
/* 006AC 80B9914C 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 006B0 80B99150 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 006B4 80B99154 24150002 */ addiu $s5, $zero, 0x0002 ## $s5 = 00000002
/* 006B8 80B99158 24140001 */ addiu $s4, $zero, 0x0001 ## $s4 = 00000001
.L80B9915C:
/* 006BC 80B9915C 92220194 */ lbu $v0, 0x0194($s1) ## 00000194
/* 006C0 80B99160 10540005 */ beq $v0, $s4, .L80B99178
/* 006C4 80B99164 00000000 */ nop
/* 006C8 80B99168 50550006 */ beql $v0, $s5, .L80B99184
/* 006CC 80B9916C 8E040158 */ lw $a0, 0x0158($s0) ## 00000158
/* 006D0 80B99170 1000000B */ beq $zero, $zero, .L80B991A0
/* 006D4 80B99174 8E040158 */ lw $a0, 0x0158($s0) ## 00000158
.L80B99178:
/* 006D8 80B99178 10000014 */ beq $zero, $zero, .L80B991CC
/* 006DC 80B9917C AE000158 */ sw $zero, 0x0158($s0) ## 00000158
/* 006E0 80B99180 8E040158 */ lw $a0, 0x0158($s0) ## 00000158
.L80B99184:
/* 006E4 80B99184 50800012 */ beql $a0, $zero, .L80B991D0
/* 006E8 80B99188 26100004 */ addiu $s0, $s0, 0x0004 ## $s0 = 00000004
/* 006EC 80B9918C 0C00B55C */ jal Actor_Kill
/* 006F0 80B99190 00000000 */ nop
/* 006F4 80B99194 1000000D */ beq $zero, $zero, .L80B991CC
/* 006F8 80B99198 AE000158 */ sw $zero, 0x0158($s0) ## 0000015C
/* 006FC 80B9919C 8E040158 */ lw $a0, 0x0158($s0) ## 0000015C
.L80B991A0:
/* 00700 80B991A0 5080000B */ beql $a0, $zero, .L80B991D0
/* 00704 80B991A4 26100004 */ addiu $s0, $s0, 0x0004 ## $s0 = 00000008
/* 00708 80B991A8 0C00BD04 */ jal Actor_HasParent
/* 0070C 80B991AC 02C02825 */ or $a1, $s6, $zero ## $a1 = 00000000
/* 00710 80B991B0 10400003 */ beq $v0, $zero, .L80B991C0
/* 00714 80B991B4 00000000 */ nop
/* 00718 80B991B8 10000004 */ beq $zero, $zero, .L80B991CC
/* 0071C 80B991BC AE000158 */ sw $zero, 0x0158($s0) ## 00000160
.L80B991C0:
/* 00720 80B991C0 0C00B55C */ jal Actor_Kill
/* 00724 80B991C4 8E040158 */ lw $a0, 0x0158($s0) ## 00000160
/* 00728 80B991C8 AE000158 */ sw $zero, 0x0158($s0) ## 00000160
.L80B991CC:
/* 0072C 80B991CC 26100004 */ addiu $s0, $s0, 0x0004 ## $s0 = 0000000C
.L80B991D0:
/* 00730 80B991D0 0212082B */ sltu $at, $s0, $s2
/* 00734 80B991D4 1420FFE1 */ bne $at, $zero, .L80B9915C
/* 00738 80B991D8 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
.L80B991DC:
/* 0073C 80B991DC 8FBF0034 */ lw $ra, 0x0034($sp)
/* 00740 80B991E0 8FB00018 */ lw $s0, 0x0018($sp)
/* 00744 80B991E4 8FB1001C */ lw $s1, 0x001C($sp)
/* 00748 80B991E8 8FB20020 */ lw $s2, 0x0020($sp)
/* 0074C 80B991EC 8FB30024 */ lw $s3, 0x0024($sp)
/* 00750 80B991F0 8FB40028 */ lw $s4, 0x0028($sp)
/* 00754 80B991F4 8FB5002C */ lw $s5, 0x002C($sp)
/* 00758 80B991F8 8FB60030 */ lw $s6, 0x0030($sp)
/* 0075C 80B991FC 03E00008 */ jr $ra
/* 00760 80B99200 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000

View file

@ -1,9 +0,0 @@
glabel func_80B99204
/* 00764 80B99204 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00768 80B99208 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0076C 80B9920C 0C2E6443 */ jal func_80B9910C
/* 00770 80B99210 00000000 */ nop
/* 00774 80B99214 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00778 80B99218 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0077C 80B9921C 03E00008 */ jr $ra
/* 00780 80B99220 00000000 */ nop

View file

@ -1,55 +0,0 @@
glabel func_80B99224
/* 00784 80B99224 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00788 80B99228 AFBF001C */ sw $ra, 0x001C($sp)
/* 0078C 80B9922C AFB00018 */ sw $s0, 0x0018($sp)
/* 00790 80B99230 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00794 80B99234 0C2E6322 */ jal func_80B98C88
/* 00798 80B99238 AFA50024 */ sw $a1, 0x0024($sp)
/* 0079C 80B9923C 00405025 */ or $t2, $v0, $zero ## $t2 = 00000000
/* 007A0 80B99240 18400023 */ blez $v0, .L80B992D0
/* 007A4 80B99244 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 007A8 80B99248 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 007AC 80B9924C 24090002 */ addiu $t1, $zero, 0x0002 ## $t1 = 00000002
/* 007B0 80B99250 24080002 */ addiu $t0, $zero, 0x0002 ## $t0 = 00000002
/* 007B4 80B99254 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
.L80B99258:
/* 007B8 80B99258 8CA20158 */ lw $v0, 0x0158($a1) ## 00000158
/* 007BC 80B9925C 02061821 */ addu $v1, $s0, $a2
/* 007C0 80B99260 50400018 */ beql $v0, $zero, .L80B992C4
/* 007C4 80B99264 24C60001 */ addiu $a2, $a2, 0x0001 ## $a2 = 00000001
/* 007C8 80B99268 90640194 */ lbu $a0, 0x0194($v1) ## 00000194
/* 007CC 80B9926C 1480000D */ bne $a0, $zero, .L80B992A4
/* 007D0 80B99270 00000000 */ nop
/* 007D4 80B99274 8C4E0130 */ lw $t6, 0x0130($v0) ## 00000130
/* 007D8 80B99278 51C00008 */ beql $t6, $zero, .L80B9929C
/* 007DC 80B9927C A0670194 */ sb $a3, 0x0194($v1) ## 00000194
/* 007E0 80B99280 8C4F0004 */ lw $t7, 0x0004($v0) ## 00000004
/* 007E4 80B99284 31F80800 */ andi $t8, $t7, 0x0800 ## $t8 = 00000000
/* 007E8 80B99288 5300000E */ beql $t8, $zero, .L80B992C4
/* 007EC 80B9928C 24C60001 */ addiu $a2, $a2, 0x0001 ## $a2 = 00000002
/* 007F0 80B99290 1000000B */ beq $zero, $zero, .L80B992C0
/* 007F4 80B99294 A0680194 */ sb $t0, 0x0194($v1) ## 00000194
/* 007F8 80B99298 A0670194 */ sb $a3, 0x0194($v1) ## 00000194
.L80B9929C:
/* 007FC 80B9929C 10000008 */ beq $zero, $zero, .L80B992C0
/* 00800 80B992A0 ACA00158 */ sw $zero, 0x0158($a1) ## 00000158
.L80B992A4:
/* 00804 80B992A4 55240007 */ bnel $t1, $a0, .L80B992C4
/* 00808 80B992A8 24C60001 */ addiu $a2, $a2, 0x0001 ## $a2 = 00000003
/* 0080C 80B992AC 8C590130 */ lw $t9, 0x0130($v0) ## 00000130
/* 00810 80B992B0 57200004 */ bnel $t9, $zero, .L80B992C4
/* 00814 80B992B4 24C60001 */ addiu $a2, $a2, 0x0001 ## $a2 = 00000004
/* 00818 80B992B8 A0670194 */ sb $a3, 0x0194($v1) ## 00000194
/* 0081C 80B992BC ACA00158 */ sw $zero, 0x0158($a1) ## 00000158
.L80B992C0:
/* 00820 80B992C0 24C60001 */ addiu $a2, $a2, 0x0001 ## $a2 = 00000005
.L80B992C4:
/* 00824 80B992C4 00CA082A */ slt $at, $a2, $t2
/* 00828 80B992C8 1420FFE3 */ bne $at, $zero, .L80B99258
/* 0082C 80B992CC 24A50004 */ addiu $a1, $a1, 0x0004 ## $a1 = 00000004
.L80B992D0:
/* 00830 80B992D0 8FBF001C */ lw $ra, 0x001C($sp)
/* 00834 80B992D4 8FB00018 */ lw $s0, 0x0018($sp)
/* 00838 80B992D8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 0083C 80B992DC 03E00008 */ jr $ra
/* 00840 80B992E0 00000000 */ nop

View file

@ -1,6 +0,0 @@
glabel func_80B992E4
/* 00844 80B992E4 3C0E80BA */ lui $t6, %hi(func_80B992F8) ## $t6 = 80BA0000
/* 00848 80B992E8 AFA50004 */ sw $a1, 0x0004($sp)
/* 0084C 80B992EC 25CE92F8 */ addiu $t6, $t6, %lo(func_80B992F8) ## $t6 = 80B992F8
/* 00850 80B992F0 03E00008 */ jr $ra
/* 00854 80B992F4 AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C

View file

@ -1,26 +0,0 @@
glabel func_80B992F8
/* 00858 80B992F8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0085C 80B992FC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00860 80B99300 848E0156 */ lh $t6, 0x0156($a0) ## 00000156
/* 00864 80B99304 C48000EC */ lwc1 $f0, 0x00EC($a0) ## 000000EC
/* 00868 80B99308 3C0180BA */ lui $at, %hi(D_80B99A50) ## $at = 80BA0000
/* 0086C 80B9930C 000E7880 */ sll $t7, $t6, 2
/* 00870 80B99310 002F0821 */ addu $at, $at, $t7
/* 00874 80B99314 C4249A50 */ lwc1 $f4, %lo(D_80B99A50)($at)
/* 00878 80B99318 46000005 */ abs.s $f0, $f0
/* 0087C 80B9931C 3C1880BA */ lui $t8, %hi(func_80B99950) ## $t8 = 80BA0000
/* 00880 80B99320 4604003C */ c.lt.s $f0, $f4
/* 00884 80B99324 00000000 */ nop
/* 00888 80B99328 45020008 */ bc1fl .L80B9934C
/* 0088C 80B9932C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00890 80B99330 8C990004 */ lw $t9, 0x0004($a0) ## 00000004
/* 00894 80B99334 27189950 */ addiu $t8, $t8, %lo(func_80B99950) ## $t8 = 80B99950
/* 00898 80B99338 AC98014C */ sw $t8, 0x014C($a0) ## 0000014C
/* 0089C 80B9933C 37280010 */ ori $t0, $t9, 0x0010 ## $t0 = 00000010
/* 008A0 80B99340 0C2E642F */ jal func_80B990BC
/* 008A4 80B99344 AC880004 */ sw $t0, 0x0004($a0) ## 00000004
/* 008A8 80B99348 8FBF0014 */ lw $ra, 0x0014($sp)
.L80B9934C:
/* 008AC 80B9934C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 008B0 80B99350 03E00008 */ jr $ra
/* 008B4 80B99354 00000000 */ nop

View file

@ -1,60 +0,0 @@
glabel func_80B99358
/* 008B8 80B99358 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 008BC 80B9935C F7B60018 */ sdc1 $f22, 0x0018($sp)
/* 008C0 80B99360 4485B000 */ mtc1 $a1, $f22 ## $f22 = 0.00
/* 008C4 80B99364 AFBF0034 */ sw $ra, 0x0034($sp)
/* 008C8 80B99368 AFB30030 */ sw $s3, 0x0030($sp)
/* 008CC 80B9936C 00809825 */ or $s3, $a0, $zero ## $s3 = 00000000
/* 008D0 80B99370 AFB2002C */ sw $s2, 0x002C($sp)
/* 008D4 80B99374 AFB10028 */ sw $s1, 0x0028($sp)
/* 008D8 80B99378 AFB00024 */ sw $s0, 0x0024($sp)
/* 008DC 80B9937C 0C2E6322 */ jal func_80B98C88
/* 008E0 80B99380 F7B40010 */ sdc1 $f20, 0x0010($sp)
/* 008E4 80B99384 00409025 */ or $s2, $v0, $zero ## $s2 = 00000000
/* 008E8 80B99388 1840001F */ blez $v0, .L80B99408
/* 008EC 80B9938C 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 008F0 80B99390 02608825 */ or $s1, $s3, $zero ## $s1 = 00000000
.L80B99394:
/* 008F4 80B99394 8E220158 */ lw $v0, 0x0158($s1) ## 00000158
/* 008F8 80B99398 50400018 */ beql $v0, $zero, .L80B993FC
/* 008FC 80B9939C 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 00900 80B993A0 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00904 80B993A4 AC40011C */ sw $zero, 0x011C($v0) ## 0000011C
/* 00908 80B993A8 4616003E */ c.le.s $f0, $f22
/* 0090C 80B993AC 00000000 */ nop
/* 00910 80B993B0 45020012 */ bc1fl .L80B993FC
/* 00914 80B993B4 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000002
/* 00918 80B993B8 44922000 */ mtc1 $s2, $f4 ## $f4 = 0.00
/* 0091C 80B993BC 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00920 80B993C0 44814000 */ mtc1 $at, $f8 ## $f8 = 0.50
/* 00924 80B993C4 468021A0 */ cvt.s.w $f6, $f4
/* 00928 80B993C8 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 0092C 80B993CC 46083501 */ sub.s $f20, $f6, $f8
/* 00930 80B993D0 46140282 */ mul.s $f10, $f0, $f20
/* 00934 80B993D4 4600540D */ trunc.w.s $f16, $f10
/* 00938 80B993D8 44028000 */ mfc1 $v0, $f16
/* 0093C 80B993DC 00000000 */ nop
/* 00940 80B993E0 12020005 */ beq $s0, $v0, .L80B993F8
/* 00944 80B993E4 00027880 */ sll $t7, $v0, 2
/* 00948 80B993E8 026FC021 */ addu $t8, $s3, $t7
/* 0094C 80B993EC 8F190158 */ lw $t9, 0x0158($t8) ## 00000158
/* 00950 80B993F0 8E280158 */ lw $t0, 0x0158($s1) ## 00000158
/* 00954 80B993F4 AD19011C */ sw $t9, 0x011C($t0) ## 0000011C
.L80B993F8:
/* 00958 80B993F8 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000003
.L80B993FC:
/* 0095C 80B993FC 0212082A */ slt $at, $s0, $s2
/* 00960 80B99400 1420FFE4 */ bne $at, $zero, .L80B99394
/* 00964 80B99404 26310004 */ addiu $s1, $s1, 0x0004 ## $s1 = 00000004
.L80B99408:
/* 00968 80B99408 8FBF0034 */ lw $ra, 0x0034($sp)
/* 0096C 80B9940C D7B40010 */ ldc1 $f20, 0x0010($sp)
/* 00970 80B99410 D7B60018 */ ldc1 $f22, 0x0018($sp)
/* 00974 80B99414 8FB00024 */ lw $s0, 0x0024($sp)
/* 00978 80B99418 8FB10028 */ lw $s1, 0x0028($sp)
/* 0097C 80B9941C 8FB2002C */ lw $s2, 0x002C($sp)
/* 00980 80B99420 8FB30030 */ lw $s3, 0x0030($sp)
/* 00984 80B99424 03E00008 */ jr $ra
/* 00988 80B99428 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000

View file

@ -1,109 +0,0 @@
glabel func_80B9942C
/* 0098C 80B9942C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00990 80B99430 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00994 80B99434 AFA5001C */ sw $a1, 0x001C($sp)
/* 00998 80B99438 0C2E6322 */ jal func_80B98C88
/* 0099C 80B9943C AFA40018 */ sw $a0, 0x0018($sp)
/* 009A0 80B99440 8FA70018 */ lw $a3, 0x0018($sp)
/* 009A4 80B99444 8FAB001C */ lw $t3, 0x001C($sp)
/* 009A8 80B99448 00404825 */ or $t1, $v0, $zero ## $t1 = 00000000
/* 009AC 80B9944C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 009B0 80B99450 18400050 */ blez $v0, .L80B99594
/* 009B4 80B99454 00005025 */ or $t2, $zero, $zero ## $t2 = 00000000
/* 009B8 80B99458 00E03025 */ or $a2, $a3, $zero ## $a2 = 00000000
.L80B9945C:
/* 009BC 80B9945C 8CC30158 */ lw $v1, 0x0158($a2) ## 00000158
/* 009C0 80B99460 014B082A */ slt $at, $t2, $t3
/* 009C4 80B99464 50600048 */ beql $v1, $zero, .L80B99588
/* 009C8 80B99468 24A50001 */ addiu $a1, $a1, 0x0001 ## $a1 = 00000001
/* 009CC 80B9946C 10200041 */ beq $at, $zero, .L80B99574
/* 009D0 80B99470 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 009D4 80B99474 254A0001 */ addiu $t2, $t2, 0x0001 ## $t2 = 00000001
/* 009D8 80B99478 18400042 */ blez $v0, .L80B99584
/* 009DC 80B9947C AC63011C */ sw $v1, 0x011C($v1) ## 0000011C
/* 009E0 80B99480 30430003 */ andi $v1, $v0, 0x0003 ## $v1 = 00000000
/* 009E4 80B99484 1060000F */ beq $v1, $zero, .L80B994C4
/* 009E8 80B99488 00604025 */ or $t0, $v1, $zero ## $t0 = 00000000
.L80B9948C:
/* 009EC 80B9948C 10A40008 */ beq $a1, $a0, .L80B994B0
/* 009F0 80B99490 00047080 */ sll $t6, $a0, 2
/* 009F4 80B99494 00EE7821 */ addu $t7, $a3, $t6
/* 009F8 80B99498 8DE30158 */ lw $v1, 0x0158($t7) ## 00000158
/* 009FC 80B9949C 8CD90158 */ lw $t9, 0x0158($a2) ## 00000158
/* 00A00 80B994A0 8C78011C */ lw $t8, 0x011C($v1) ## 0000011C
/* 00A04 80B994A4 57190003 */ bnel $t8, $t9, .L80B994B4
/* 00A08 80B994A8 24840001 */ addiu $a0, $a0, 0x0001 ## $a0 = 00000001
/* 00A0C 80B994AC AC60011C */ sw $zero, 0x011C($v1) ## 0000011C
.L80B994B0:
/* 00A10 80B994B0 24840001 */ addiu $a0, $a0, 0x0001 ## $a0 = 00000002
.L80B994B4:
/* 00A14 80B994B4 1504FFF5 */ bne $t0, $a0, .L80B9948C
/* 00A18 80B994B8 00000000 */ nop
/* 00A1C 80B994BC 50820032 */ beql $a0, $v0, .L80B99588
/* 00A20 80B994C0 24A50001 */ addiu $a1, $a1, 0x0001 ## $a1 = 00000002
.L80B994C4:
/* 00A24 80B994C4 10A40009 */ beq $a1, $a0, .L80B994EC
/* 00A28 80B994C8 24980001 */ addiu $t8, $a0, 0x0001 ## $t8 = 00000003
/* 00A2C 80B994CC 00046080 */ sll $t4, $a0, 2
/* 00A30 80B994D0 00EC6821 */ addu $t5, $a3, $t4
/* 00A34 80B994D4 8DA30158 */ lw $v1, 0x0158($t5) ## 00000158
/* 00A38 80B994D8 8CCF0158 */ lw $t7, 0x0158($a2) ## 00000158
/* 00A3C 80B994DC 8C6E011C */ lw $t6, 0x011C($v1) ## 0000011C
/* 00A40 80B994E0 15CF0002 */ bne $t6, $t7, .L80B994EC
/* 00A44 80B994E4 00000000 */ nop
/* 00A48 80B994E8 AC60011C */ sw $zero, 0x011C($v1) ## 0000011C
.L80B994EC:
/* 00A4C 80B994EC 10B80009 */ beq $a1, $t8, .L80B99514
/* 00A50 80B994F0 248F0002 */ addiu $t7, $a0, 0x0002 ## $t7 = 00000004
/* 00A54 80B994F4 0004C880 */ sll $t9, $a0, 2
/* 00A58 80B994F8 00F96021 */ addu $t4, $a3, $t9
/* 00A5C 80B994FC 8D83015C */ lw $v1, 0x015C($t4) ## 0000015C
/* 00A60 80B99500 8CCE0158 */ lw $t6, 0x0158($a2) ## 00000158
/* 00A64 80B99504 8C6D011C */ lw $t5, 0x011C($v1) ## 0000011C
/* 00A68 80B99508 15AE0002 */ bne $t5, $t6, .L80B99514
/* 00A6C 80B9950C 00000000 */ nop
/* 00A70 80B99510 AC60011C */ sw $zero, 0x011C($v1) ## 0000011C
.L80B99514:
/* 00A74 80B99514 10AF0009 */ beq $a1, $t7, .L80B9953C
/* 00A78 80B99518 248E0003 */ addiu $t6, $a0, 0x0003 ## $t6 = 00000005
/* 00A7C 80B9951C 0004C080 */ sll $t8, $a0, 2
/* 00A80 80B99520 00F8C821 */ addu $t9, $a3, $t8
/* 00A84 80B99524 8F230160 */ lw $v1, 0x0160($t9) ## 00000160
/* 00A88 80B99528 8CCD0158 */ lw $t5, 0x0158($a2) ## 00000158
/* 00A8C 80B9952C 8C6C011C */ lw $t4, 0x011C($v1) ## 0000011C
/* 00A90 80B99530 158D0002 */ bne $t4, $t5, .L80B9953C
/* 00A94 80B99534 00000000 */ nop
/* 00A98 80B99538 AC60011C */ sw $zero, 0x011C($v1) ## 0000011C
.L80B9953C:
/* 00A9C 80B9953C 10AE0008 */ beq $a1, $t6, .L80B99560
/* 00AA0 80B99540 00047880 */ sll $t7, $a0, 2
/* 00AA4 80B99544 00EFC021 */ addu $t8, $a3, $t7
/* 00AA8 80B99548 8F030164 */ lw $v1, 0x0164($t8) ## 00000167
/* 00AAC 80B9954C 8CCC0158 */ lw $t4, 0x0158($a2) ## 00000158
/* 00AB0 80B99550 8C79011C */ lw $t9, 0x011C($v1) ## 0000011C
/* 00AB4 80B99554 572C0003 */ bnel $t9, $t4, .L80B99564
/* 00AB8 80B99558 24840004 */ addiu $a0, $a0, 0x0004 ## $a0 = 00000006
/* 00ABC 80B9955C AC60011C */ sw $zero, 0x011C($v1) ## 0000011C
.L80B99560:
/* 00AC0 80B99560 24840004 */ addiu $a0, $a0, 0x0004 ## $a0 = 0000000A
.L80B99564:
/* 00AC4 80B99564 1489FFD7 */ bne $a0, $t1, .L80B994C4
/* 00AC8 80B99568 00000000 */ nop
/* 00ACC 80B9956C 10000006 */ beq $zero, $zero, .L80B99588
/* 00AD0 80B99570 24A50001 */ addiu $a1, $a1, 0x0001 ## $a1 = 00000003
.L80B99574:
/* 00AD4 80B99574 8C6D011C */ lw $t5, 0x011C($v1) ## 0000011C
/* 00AD8 80B99578 55A30003 */ bnel $t5, $v1, .L80B99588
/* 00ADC 80B9957C 24A50001 */ addiu $a1, $a1, 0x0001 ## $a1 = 00000004
/* 00AE0 80B99580 AC60011C */ sw $zero, 0x011C($v1) ## 0000011C
.L80B99584:
/* 00AE4 80B99584 24A50001 */ addiu $a1, $a1, 0x0001 ## $a1 = 00000005
.L80B99588:
/* 00AE8 80B99588 00A9082A */ slt $at, $a1, $t1
/* 00AEC 80B9958C 1420FFB3 */ bne $at, $zero, .L80B9945C
/* 00AF0 80B99590 24C60004 */ addiu $a2, $a2, 0x0004 ## $a2 = 00000004
.L80B99594:
/* 00AF4 80B99594 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00AF8 80B99598 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00AFC 80B9959C 03E00008 */ jr $ra
/* 00B00 80B995A0 00000000 */ nop

View file

@ -1,171 +0,0 @@
.late_rodata
glabel D_80B99D38
.float 0.1
glabel D_80B99D3C
.float 0.2
glabel D_80B99D40
.float 0.8
glabel D_80B99D44
.float 0.2
glabel D_80B99D48
.float 0.6
.text
glabel func_80B995A4
/* 00B04 80B995A4 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00B08 80B995A8 AFBF001C */ sw $ra, 0x001C($sp)
/* 00B0C 80B995AC AFB00018 */ sw $s0, 0x0018($sp)
/* 00B10 80B995B0 AFA50024 */ sw $a1, 0x0024($sp)
/* 00B14 80B995B4 848E01A4 */ lh $t6, 0x01A4($a0) ## 000001A4
/* 00B18 80B995B8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00B1C 80B995BC 5DC00067 */ bgtzl $t6, .L80B9975C
/* 00B20 80B995C0 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
/* 00B24 80B995C4 848F01A6 */ lh $t7, 0x01A6($a0) ## 000001A6
/* 00B28 80B995C8 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00B2C 80B995CC 51E0002D */ beql $t7, $zero, .L80B99684
/* 00B30 80B995D0 C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090
/* 00B34 80B995D4 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00B38 80B995D8 A48001A6 */ sh $zero, 0x01A6($a0) ## 000001A6
/* 00B3C 80B995DC 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00B40 80B995E0 44812000 */ mtc1 $at, $f4 ## $f4 = 0.50
/* 00B44 80B995E4 3C0180BA */ lui $at, %hi(D_80B99D38) ## $at = 80BA0000
/* 00B48 80B995E8 C4289D38 */ lwc1 $f8, %lo(D_80B99D38)($at)
/* 00B4C 80B995EC 46040182 */ mul.s $f6, $f0, $f4
/* 00B50 80B995F0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B54 80B995F4 46083280 */ add.s $f10, $f6, $f8
/* 00B58 80B995F8 44055000 */ mfc1 $a1, $f10
/* 00B5C 80B995FC 0C2E64D6 */ jal func_80B99358
/* 00B60 80B99600 00000000 */ nop
/* 00B64 80B99604 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00B68 80B99608 44819000 */ mtc1 $at, $f18 ## $f18 = 60.00
/* 00B6C 80B9960C C6100090 */ lwc1 $f16, 0x0090($s0) ## 00000090
/* 00B70 80B99610 4612803C */ c.lt.s $f16, $f18
/* 00B74 80B99614 00000000 */ nop
/* 00B78 80B99618 4500000D */ bc1f .L80B99650
/* 00B7C 80B9961C 00000000 */ nop
/* 00B80 80B99620 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00B84 80B99624 00000000 */ nop
/* 00B88 80B99628 3C0140B0 */ lui $at, 0x40B0 ## $at = 40B00000
/* 00B8C 80B9962C 44812000 */ mtc1 $at, $f4 ## $f4 = 5.50
/* 00B90 80B99630 00000000 */ nop
/* 00B94 80B99634 46040182 */ mul.s $f6, $f0, $f4
/* 00B98 80B99638 4600320D */ trunc.w.s $f8, $f6
/* 00B9C 80B9963C 44094000 */ mfc1 $t1, $f8
/* 00BA0 80B99640 00000000 */ nop
/* 00BA4 80B99644 252A0004 */ addiu $t2, $t1, 0x0004 ## $t2 = 00000004
/* 00BA8 80B99648 10000043 */ beq $zero, $zero, .L80B99758
/* 00BAC 80B9964C A60A01A4 */ sh $t2, 0x01A4($s0) ## 000001A4
.L80B99650:
/* 00BB0 80B99650 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00BB4 80B99654 00000000 */ nop
/* 00BB8 80B99658 3C014222 */ lui $at, 0x4222 ## $at = 42220000
/* 00BBC 80B9965C 44815000 */ mtc1 $at, $f10 ## $f10 = 40.50
/* 00BC0 80B99660 00000000 */ nop
/* 00BC4 80B99664 460A0402 */ mul.s $f16, $f0, $f10
/* 00BC8 80B99668 4600848D */ trunc.w.s $f18, $f16
/* 00BCC 80B9966C 440E9000 */ mfc1 $t6, $f18
/* 00BD0 80B99670 00000000 */ nop
/* 00BD4 80B99674 25CF0004 */ addiu $t7, $t6, 0x0004 ## $t7 = 00000004
/* 00BD8 80B99678 10000037 */ beq $zero, $zero, .L80B99758
/* 00BDC 80B9967C A60F01A4 */ sh $t7, 0x01A4($s0) ## 000001A4
/* 00BE0 80B99680 C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090
.L80B99684:
/* 00BE4 80B99684 44813000 */ mtc1 $at, $f6 ## $f6 = 40.50
/* 00BE8 80B99688 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 00BEC 80B9968C A61801A6 */ sh $t8, 0x01A6($s0) ## 000001A6
/* 00BF0 80B99690 4606203C */ c.lt.s $f4, $f6
/* 00BF4 80B99694 00000000 */ nop
/* 00BF8 80B99698 45000019 */ bc1f .L80B99700
/* 00BFC 80B9969C 00000000 */ nop
/* 00C00 80B996A0 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00C04 80B996A4 00000000 */ nop
/* 00C08 80B996A8 3C014128 */ lui $at, 0x4128 ## $at = 41280000
/* 00C0C 80B996AC 44814000 */ mtc1 $at, $f8 ## $f8 = 10.50
/* 00C10 80B996B0 00000000 */ nop
/* 00C14 80B996B4 46080282 */ mul.s $f10, $f0, $f8
/* 00C18 80B996B8 4600540D */ trunc.w.s $f16, $f10
/* 00C1C 80B996BC 440A8000 */ mfc1 $t2, $f16
/* 00C20 80B996C0 00000000 */ nop
/* 00C24 80B996C4 254B0004 */ addiu $t3, $t2, 0x0004 ## $t3 = 00000004
/* 00C28 80B996C8 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00C2C 80B996CC A60B01A4 */ sh $t3, 0x01A4($s0) ## 000001A4
/* 00C30 80B996D0 3C0180BA */ lui $at, %hi(D_80B99D3C) ## $at = 80BA0000
/* 00C34 80B996D4 C4329D3C */ lwc1 $f18, %lo(D_80B99D3C)($at)
/* 00C38 80B996D8 3C0180BA */ lui $at, %hi(D_80B99D40) ## $at = 80BA0000
/* 00C3C 80B996DC C4269D40 */ lwc1 $f6, %lo(D_80B99D40)($at)
/* 00C40 80B996E0 46120102 */ mul.s $f4, $f0, $f18
/* 00C44 80B996E4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C48 80B996E8 46062200 */ add.s $f8, $f4, $f6
/* 00C4C 80B996EC 44054000 */ mfc1 $a1, $f8
/* 00C50 80B996F0 0C2E64D6 */ jal func_80B99358
/* 00C54 80B996F4 00000000 */ nop
/* 00C58 80B996F8 10000018 */ beq $zero, $zero, .L80B9975C
/* 00C5C 80B996FC 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
.L80B99700:
/* 00C60 80B99700 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00C64 80B99704 00000000 */ nop
/* 00C68 80B99708 3C014128 */ lui $at, 0x4128 ## $at = 41280000
/* 00C6C 80B9970C 44815000 */ mtc1 $at, $f10 ## $f10 = 10.50
/* 00C70 80B99710 00000000 */ nop
/* 00C74 80B99714 460A0402 */ mul.s $f16, $f0, $f10
/* 00C78 80B99718 4600848D */ trunc.w.s $f18, $f16
/* 00C7C 80B9971C 440F9000 */ mfc1 $t7, $f18
/* 00C80 80B99720 00000000 */ nop
/* 00C84 80B99724 25F80004 */ addiu $t8, $t7, 0x0004 ## $t8 = 00000004
/* 00C88 80B99728 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00C8C 80B9972C A61801A4 */ sh $t8, 0x01A4($s0) ## 000001A4
/* 00C90 80B99730 3C0180BA */ lui $at, %hi(D_80B99D44) ## $at = 80BA0000
/* 00C94 80B99734 C4249D44 */ lwc1 $f4, %lo(D_80B99D44)($at)
/* 00C98 80B99738 3C0180BA */ lui $at, %hi(D_80B99D48) ## $at = 80BA0000
/* 00C9C 80B9973C C4289D48 */ lwc1 $f8, %lo(D_80B99D48)($at)
/* 00CA0 80B99740 46040182 */ mul.s $f6, $f0, $f4
/* 00CA4 80B99744 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00CA8 80B99748 46083280 */ add.s $f10, $f6, $f8
/* 00CAC 80B9974C 44055000 */ mfc1 $a1, $f10
/* 00CB0 80B99750 0C2E64D6 */ jal func_80B99358
/* 00CB4 80B99754 00000000 */ nop
.L80B99758:
/* 00CB8 80B99758 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
.L80B9975C:
/* 00CBC 80B9975C 44819000 */ mtc1 $at, $f18 ## $f18 = 120.00
/* 00CC0 80B99760 C6100090 */ lwc1 $f16, 0x0090($s0) ## 00000090
/* 00CC4 80B99764 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00CC8 80B99768 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00CCC 80B9976C 4612803C */ c.lt.s $f16, $f18
/* 00CD0 80B99770 00000000 */ nop
/* 00CD4 80B99774 45020006 */ bc1fl .L80B99790
/* 00CD8 80B99778 A60001A8 */ sh $zero, 0x01A8($s0) ## 000001A8
/* 00CDC 80B9977C 861901A8 */ lh $t9, 0x01A8($s0) ## 000001A8
/* 00CE0 80B99780 27280001 */ addiu $t0, $t9, 0x0001 ## $t0 = 00000001
/* 00CE4 80B99784 10000002 */ beq $zero, $zero, .L80B99790
/* 00CE8 80B99788 A60801A8 */ sh $t0, 0x01A8($s0) ## 000001A8
/* 00CEC 80B9978C A60001A8 */ sh $zero, 0x01A8($s0) ## 000001A8
.L80B99790:
/* 00CF0 80B99790 860901A8 */ lh $t1, 0x01A8($s0) ## 000001A8
/* 00CF4 80B99794 29210050 */ slti $at, $t1, 0x0050
/* 00CF8 80B99798 14200005 */ bne $at, $zero, .L80B997B0
/* 00CFC 80B9979C 00000000 */ nop
/* 00D00 80B997A0 0C2E650B */ jal func_80B9942C
/* 00D04 80B997A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D08 80B997A8 10000004 */ beq $zero, $zero, .L80B997BC
/* 00D0C 80B997AC 8FBF001C */ lw $ra, 0x001C($sp)
.L80B997B0:
/* 00D10 80B997B0 0C2E650B */ jal func_80B9942C
/* 00D14 80B997B4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00D18 80B997B8 8FBF001C */ lw $ra, 0x001C($sp)
.L80B997BC:
/* 00D1C 80B997BC 8FB00018 */ lw $s0, 0x0018($sp)
/* 00D20 80B997C0 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00D24 80B997C4 03E00008 */ jr $ra
/* 00D28 80B997C8 00000000 */ nop

View file

@ -1,117 +0,0 @@
.late_rodata
glabel D_80B99D4C
.float 0.2
glabel D_80B99D50
.float 0.7
.text
glabel func_80B997CC
/* 00D2C 80B997CC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00D30 80B997D0 AFBF001C */ sw $ra, 0x001C($sp)
/* 00D34 80B997D4 AFB00018 */ sw $s0, 0x0018($sp)
/* 00D38 80B997D8 AFA50024 */ sw $a1, 0x0024($sp)
/* 00D3C 80B997DC 848E01A4 */ lh $t6, 0x01A4($a0) ## 000001A4
/* 00D40 80B997E0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00D44 80B997E4 1DC00041 */ bgtz $t6, .L80B998EC
/* 00D48 80B997E8 00000000 */ nop
/* 00D4C 80B997EC 848F01A6 */ lh $t7, 0x01A6($a0) ## 000001A6
/* 00D50 80B997F0 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 00D54 80B997F4 11E00029 */ beq $t7, $zero, .L80B9989C
/* 00D58 80B997F8 00000000 */ nop
/* 00D5C 80B997FC 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00D60 80B99800 A48001A6 */ sh $zero, 0x01A6($a0) ## 000001A6
/* 00D64 80B99804 3C0180BA */ lui $at, %hi(D_80B99D4C) ## $at = 80BA0000
/* 00D68 80B99808 C4249D4C */ lwc1 $f4, %lo(D_80B99D4C)($at)
/* 00D6C 80B9980C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D70 80B99810 46040182 */ mul.s $f6, $f0, $f4
/* 00D74 80B99814 44053000 */ mfc1 $a1, $f6
/* 00D78 80B99818 0C2E64D6 */ jal func_80B99358
/* 00D7C 80B9981C 00000000 */ nop
/* 00D80 80B99820 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 00D84 80B99824 44815000 */ mtc1 $at, $f10 ## $f10 = 60.00
/* 00D88 80B99828 C6080090 */ lwc1 $f8, 0x0090($s0) ## 00000090
/* 00D8C 80B9982C 460A403C */ c.lt.s $f8, $f10
/* 00D90 80B99830 00000000 */ nop
/* 00D94 80B99834 4500000D */ bc1f .L80B9986C
/* 00D98 80B99838 00000000 */ nop
/* 00D9C 80B9983C 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00DA0 80B99840 00000000 */ nop
/* 00DA4 80B99844 3C0140B0 */ lui $at, 0x40B0 ## $at = 40B00000
/* 00DA8 80B99848 44818000 */ mtc1 $at, $f16 ## $f16 = 5.50
/* 00DAC 80B9984C 00000000 */ nop
/* 00DB0 80B99850 46100482 */ mul.s $f18, $f0, $f16
/* 00DB4 80B99854 4600910D */ trunc.w.s $f4, $f18
/* 00DB8 80B99858 44092000 */ mfc1 $t1, $f4
/* 00DBC 80B9985C 00000000 */ nop
/* 00DC0 80B99860 252A0004 */ addiu $t2, $t1, 0x0004 ## $t2 = 00000004
/* 00DC4 80B99864 10000021 */ beq $zero, $zero, .L80B998EC
/* 00DC8 80B99868 A60A01A4 */ sh $t2, 0x01A4($s0) ## 000001A4
.L80B9986C:
/* 00DCC 80B9986C 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00DD0 80B99870 00000000 */ nop
/* 00DD4 80B99874 3C014222 */ lui $at, 0x4222 ## $at = 42220000
/* 00DD8 80B99878 44813000 */ mtc1 $at, $f6 ## $f6 = 40.50
/* 00DDC 80B9987C 00000000 */ nop
/* 00DE0 80B99880 46060202 */ mul.s $f8, $f0, $f6
/* 00DE4 80B99884 4600428D */ trunc.w.s $f10, $f8
/* 00DE8 80B99888 440E5000 */ mfc1 $t6, $f10
/* 00DEC 80B9988C 00000000 */ nop
/* 00DF0 80B99890 25CF0004 */ addiu $t7, $t6, 0x0004 ## $t7 = 00000004
/* 00DF4 80B99894 10000015 */ beq $zero, $zero, .L80B998EC
/* 00DF8 80B99898 A60F01A4 */ sh $t7, 0x01A4($s0) ## 000001A4
.L80B9989C:
/* 00DFC 80B9989C 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00E00 80B998A0 A61801A6 */ sh $t8, 0x01A6($s0) ## 000001A6
/* 00E04 80B998A4 3C0180BA */ lui $at, %hi(D_80B99D50) ## $at = 80BA0000
/* 00E08 80B998A8 C4309D50 */ lwc1 $f16, %lo(D_80B99D50)($at)
/* 00E0C 80B998AC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E10 80B998B0 46100482 */ mul.s $f18, $f0, $f16
/* 00E14 80B998B4 44059000 */ mfc1 $a1, $f18
/* 00E18 80B998B8 0C2E64D6 */ jal func_80B99358
/* 00E1C 80B998BC 00000000 */ nop
/* 00E20 80B998C0 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00E24 80B998C4 00000000 */ nop
/* 00E28 80B998C8 3C014128 */ lui $at, 0x4128 ## $at = 41280000
/* 00E2C 80B998CC 44812000 */ mtc1 $at, $f4 ## $f4 = 10.50
/* 00E30 80B998D0 00000000 */ nop
/* 00E34 80B998D4 46040182 */ mul.s $f6, $f0, $f4
/* 00E38 80B998D8 4600320D */ trunc.w.s $f8, $f6
/* 00E3C 80B998DC 440A4000 */ mfc1 $t2, $f8
/* 00E40 80B998E0 00000000 */ nop
/* 00E44 80B998E4 254B0004 */ addiu $t3, $t2, 0x0004 ## $t3 = 00000004
/* 00E48 80B998E8 A60B01A4 */ sh $t3, 0x01A4($s0) ## 000001A4
.L80B998EC:
/* 00E4C 80B998EC 0C2E6322 */ jal func_80B98C88
/* 00E50 80B998F0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E54 80B998F4 18400011 */ blez $v0, .L80B9993C
/* 00E58 80B998F8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E5C 80B998FC 00026080 */ sll $t4, $v0, 2
/* 00E60 80B99900 01903021 */ addu $a2, $t4, $s0
/* 00E64 80B99904 8C820158 */ lw $v0, 0x0158($a0) ## 00000158
.L80B99908:
/* 00E68 80B99908 24840004 */ addiu $a0, $a0, 0x0004 ## $a0 = 00000004
/* 00E6C 80B9990C 0086082B */ sltu $at, $a0, $a2
/* 00E70 80B99910 10400008 */ beq $v0, $zero, .L80B99934
/* 00E74 80B99914 00000000 */ nop
/* 00E78 80B99918 8C43011C */ lw $v1, 0x011C($v0) ## 0000011C
/* 00E7C 80B9991C 10600005 */ beq $v1, $zero, .L80B99934
/* 00E80 80B99920 00000000 */ nop
/* 00E84 80B99924 8C6D0130 */ lw $t5, 0x0130($v1) ## 00000130
/* 00E88 80B99928 15A00002 */ bne $t5, $zero, .L80B99934
/* 00E8C 80B9992C 00000000 */ nop
/* 00E90 80B99930 AC40011C */ sw $zero, 0x011C($v0) ## 0000011C
.L80B99934:
/* 00E94 80B99934 5420FFF4 */ bnel $at, $zero, .L80B99908
/* 00E98 80B99938 8C820158 */ lw $v0, 0x0158($a0) ## 0000015C
.L80B9993C:
/* 00E9C 80B9993C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00EA0 80B99940 8FB00018 */ lw $s0, 0x0018($sp)
/* 00EA4 80B99944 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00EA8 80B99948 03E00008 */ jr $ra
/* 00EAC 80B9994C 00000000 */ nop

View file

@ -1,45 +0,0 @@
glabel func_80B99950
/* 00EB0 80B99950 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00EB4 80B99954 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00EB8 80B99958 AFA40018 */ sw $a0, 0x0018($sp)
/* 00EBC 80B9995C 0C2E6489 */ jal func_80B99224
/* 00EC0 80B99960 AFA5001C */ sw $a1, 0x001C($sp)
/* 00EC4 80B99964 8FA40018 */ lw $a0, 0x0018($sp)
/* 00EC8 80B99968 3C0180BA */ lui $at, %hi(D_80B99A50) ## $at = 80BA0000
/* 00ECC 80B9996C 3C0E80BA */ lui $t6, %hi(func_80B992F8) ## $t6 = 80BA0000
/* 00ED0 80B99970 84820156 */ lh $v0, 0x0156($a0) ## 00000156
/* 00ED4 80B99974 C48000EC */ lwc1 $f0, 0x00EC($a0) ## 000000EC
/* 00ED8 80B99978 3C0380BA */ lui $v1, %hi(D_80B99A98) ## $v1 = 80BA0000
/* 00EDC 80B9997C 00021080 */ sll $v0, $v0, 2
/* 00EE0 80B99980 00220821 */ addu $at, $at, $v0
/* 00EE4 80B99984 C4249A50 */ lwc1 $f4, %lo(D_80B99A50)($at)
/* 00EE8 80B99988 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 00EEC 80B9998C 44813000 */ mtc1 $at, $f6 ## $f6 = 40.00
/* 00EF0 80B99990 46000005 */ abs.s $f0, $f0
/* 00EF4 80B99994 8FA5001C */ lw $a1, 0x001C($sp)
/* 00EF8 80B99998 46062200 */ add.s $f8, $f4, $f6
/* 00EFC 80B9999C 25CE92F8 */ addiu $t6, $t6, %lo(func_80B992F8) ## $t6 = 80B992F8
/* 00F00 80B999A0 00621821 */ addu $v1, $v1, $v0
/* 00F04 80B999A4 4600403E */ c.le.s $f8, $f0
/* 00F08 80B999A8 00000000 */ nop
/* 00F0C 80B999AC 45000009 */ bc1f .L80B999D4
/* 00F10 80B999B0 00000000 */ nop
/* 00F14 80B999B4 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004
/* 00F18 80B999B8 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00F1C 80B999BC AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C
/* 00F20 80B999C0 01E1C024 */ and $t8, $t7, $at
/* 00F24 80B999C4 0C2E6481 */ jal func_80B99204
/* 00F28 80B999C8 AC980004 */ sw $t8, 0x0004($a0) ## 00000004
/* 00F2C 80B999CC 10000007 */ beq $zero, $zero, .L80B999EC
/* 00F30 80B999D0 8FBF0014 */ lw $ra, 0x0014($sp)
.L80B999D4:
/* 00F34 80B999D4 8C639A98 */ lw $v1, %lo(D_80B99A98)($v1)
/* 00F38 80B999D8 50600004 */ beql $v1, $zero, .L80B999EC
/* 00F3C 80B999DC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00F40 80B999E0 0060F809 */ jalr $ra, $v1
/* 00F44 80B999E4 00000000 */ nop
/* 00F48 80B999E8 8FBF0014 */ lw $ra, 0x0014($sp)
.L80B999EC:
/* 00F4C 80B999EC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00F50 80B999F0 03E00008 */ jr $ra
/* 00F54 80B999F4 00000000 */ nop

View file

@ -1,34 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .data
.balign 16
glabel Obj_Mure_InitVars
.word 0x00940700, 0x00000000, 0x00010000, 0x000001AC
.word ObjMure_Init
.word ObjMure_Destroy
.word ObjMure_Update
.word 0x00000000
glabel D_80B99A50
.word 0x44C80000, 0x44C80000, 0x447A0000, 0x447A0000, 0x447A0000
glabel D_80B99A64
.word 0x0000000C, 0x00000009, 0x00000008, 0x00000000
glabel D_80B99A74
.word 0x01250000, 0x00210020, 0x001E0000
glabel D_80B99A80
.word 0x00000002, 0xFFFF0000, 0xFFFF0000
glabel D_80B99A8C
.word 0xB0F404B0, 0xB0F800C8, 0x30FC04B0
glabel D_80B99A98
.word 0x00000000, 0x00000000
.word func_80B995A4
.word func_80B995A4
.word func_80B997CC
.word 0x00000000

View file

@ -1,13 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .rodata
.balign 16
glabel D_80B99D60
.incbin "baserom/ovl_Obj_Mure", 0x12C0, 0x000001E0

3
spec
View file

@ -3316,8 +3316,7 @@ endseg
beginseg
name "ovl_Obj_Mure"
include "build/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.o"
include "build/data/overlays/actors/z_obj_mure.data.o"
include "build/data/overlays/actors/z_obj_mure.reloc.o"
include "build/src/overlays/actors/ovl_Obj_Mure/ovl_Obj_Mure_reloc.o"
endseg
beginseg

View file

@ -1,7 +1,7 @@
/*
* File: z_obj_mure.c
* Overlay: ovl_Obj_Mure
* Description: Fish, Bugs, Butterflies
* Description: Spawns Fish, Bug, Butterfly
*/
#include "z_obj_mure.h"
@ -14,7 +14,12 @@ void ObjMure_Init(Actor* thisx, GlobalContext* globalCtx);
void ObjMure_Destroy(Actor* thisx, GlobalContext* globalCtx);
void ObjMure_Update(Actor* thisx, GlobalContext* globalCtx);
/*
void ObjMure_InitialAction(ObjMure* this, GlobalContext* globalCtx);
void ObjMure_CulledState(ObjMure* this, GlobalContext* globalCtx);
void ObjMure_ActiveState(ObjMure* this, GlobalContext* globalCtx);
s32 ObjMure_GetMaxChildSpawns(ObjMure* this);
const ActorInit Obj_Mure_InitVars = {
ACTOR_OBJ_MURE,
ACTORCAT_ITEMACTION,
@ -26,43 +31,388 @@ const ActorInit Obj_Mure_InitVars = {
(ActorFunc)ObjMure_Update,
NULL,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B98AA0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B98B1C.s")
typedef enum {
/* 0 */ OBJMURE_TYPE_GRASS,
/* 1 */ OBJMURE_TYPE_UNDEFINED,
/* 2 */ OBJMURE_TYPE_FISH,
/* 3 */ OBJMURE_TYPE_BUGS,
/* 4 */ OBJMURE_TYPE_BUTTERFLY
} ObjMureType;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/ObjMure_Init.s")
typedef enum {
/* 0 */ OBJMURE_CHILD_STATE_0,
/* 1 */ OBJMURE_CHILD_STATE_1, // Dead
/* 2 */ OBJMURE_CHILD_STATE_2
} ObjMureChildState;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/ObjMure_Destroy.s")
static f32 sZClip[] = { 1600.0f, 1600.0f, 1000.0f, 1000.0f, 1000.0f };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B98C88.s")
static s32 sMaxChildSpawns[] = { 12, 9, 8, 0 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B98CB4.s")
static s16 sSpawnActorIds[] = { ACTOR_EN_KUSA, 0, ACTOR_EN_FISH, ACTOR_EN_INSECT, ACTOR_EN_BUTTE };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B98D18.s")
static s16 sSpawnParams[] = { 0, 2, -1, 0, -1 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B98F38.s")
static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 1200, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 200, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 1200, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B990BC.s")
s32 ObjMure_SetCullingImpl(Actor* thisx, GlobalContext* globalCtx) {
ObjMure* this = THIS;
s32 result;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B9910C.s")
switch (this->type) {
case OBJMURE_TYPE_FISH:
case OBJMURE_TYPE_BUGS:
case OBJMURE_TYPE_BUTTERFLY:
Actor_ProcessInitChain(&this->actor, sInitChain);
result = true;
break;
default:
// Translation: "Error : Culling is not set.(%s %d)(arg_data 0x%04x)"
osSyncPrintf("Error : カリングの設定がされていません。(%s %d)(arg_data 0x%04x)\n", "../z_obj_mure.c", 204,
this->actor.params);
return false;
}
return result;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B99204.s")
s32 ObjMure_SetCulling(Actor* thisx, GlobalContext* globalCtx) {
if (!ObjMure_SetCullingImpl(thisx, globalCtx)) {
return false;
}
return true;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B99224.s")
void ObjMure_Init(Actor* thisx, GlobalContext* globalCtx) {
ObjMure* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B992E4.s")
this->chNum = (thisx->params >> 0xC) & 0x0F;
this->ptn = (thisx->params >> 8) & 0x07;
this->svNum = (thisx->params >> 5) & 0x03;
this->type = thisx->params & 0x1F;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B992F8.s")
if (this->ptn >= 4) {
osSyncPrintf("Error 群れな敵 (%s %d)(arg_data 0x%04x)\n", "../z_obj_mure.c", 237, thisx->params);
Actor_Kill(&this->actor);
return;
} else if (this->type >= 5) {
osSyncPrintf("Error 群れな敵 (%s %d)(arg_data 0x%04x)\n", "../z_obj_mure.c", 245, thisx->params);
Actor_Kill(&this->actor);
return;
} else if (!ObjMure_SetCulling(thisx, globalCtx)) {
Actor_Kill(&this->actor);
return;
}
this->actionFunc = ObjMure_InitialAction;
osSyncPrintf("群れな敵 (arg_data 0x%04x)(chNum(%d) ptn(%d) svNum(%d) type(%d))\n", thisx->params, this->chNum,
this->ptn, this->svNum, this->type);
if (ObjMure_GetMaxChildSpawns(this) <= 0) {
osSyncPrintf("Warning : 個体数が設定されていません(%s %d)(arg_data 0x%04x)\n", "../z_obj_mure.c", 268,
thisx->params);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B99358.s")
void ObjMure_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B9942C.s")
s32 ObjMure_GetMaxChildSpawns(ObjMure* this) {
if (this->chNum == 0) {
return sMaxChildSpawns[this->ptn];
}
return this->chNum;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B995A4.s")
void ObjMure_GetSpawnPos(Vec3f* outPos, Vec3f* inPos, s32 ptn, s32 idx) {
if (ptn >= 4) {
osSyncPrintf("おかしなの (%s %d)\n", "../z_obj_mure.c", 307);
}
*outPos = *inPos;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B997CC.s")
void ObjMure_SpawnActors0(ObjMure* this, GlobalContext* globalCtx) {
ActorContext* ac;
s32 i;
Vec3f pos;
s32 pad;
s32 maxChildren = ObjMure_GetMaxChildSpawns(this);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/func_80B99950.s")
for (i = 0; i < maxChildren; i++) {
if (this->children[i] != NULL) {
// Translation: "Error: I already have a child(%s %d)(arg_data 0x%04x)
osSyncPrintf("Error : 既に子供がいる(%s %d)(arg_data 0x%04x)\n", "../z_obj_mure.c", 333,
this->actor.params);
}
switch (this->childrenStates[i]) {
case OBJMURE_CHILD_STATE_1:
break;
case OBJMURE_CHILD_STATE_2:
ac = &globalCtx->actorCtx;
ObjMure_GetSpawnPos(&pos, &this->actor.world.pos, this->ptn, i);
this->children[i] =
Actor_Spawn(ac, globalCtx, sSpawnActorIds[this->type], pos.x, pos.y, pos.z, this->actor.world.rot.x,
this->actor.world.rot.y, this->actor.world.rot.z, sSpawnParams[this->type]);
if (this->children[i] != NULL) {
this->children[i]->flags |= 0x800;
this->children[i]->room = this->actor.room;
} else {
osSyncPrintf("warning 発生失敗 (%s %d)\n", "../z_obj_mure.c", 359);
}
break;
default:
ac = &globalCtx->actorCtx;
ObjMure_GetSpawnPos(&pos, &this->actor.world.pos, this->ptn, i);
this->children[i] =
Actor_Spawn(ac, globalCtx, sSpawnActorIds[this->type], pos.x, pos.y, pos.z, this->actor.world.rot.x,
this->actor.world.rot.y, this->actor.world.rot.z, sSpawnParams[this->type]);
if (this->children[i] != NULL) {
this->children[i]->room = this->actor.room;
} else {
osSyncPrintf("warning 発生失敗 (%s %d)\n", "../z_obj_mure.c", 382);
}
break;
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Mure/ObjMure_Update.s")
void ObjMure_SpawnActors1(ObjMure* this, GlobalContext* globalCtx) {
ActorContext* ac = (ActorContext*)globalCtx; // fake match
Actor* actor = &this->actor;
Vec3f spawnPos;
s32 maxChildren = ObjMure_GetMaxChildSpawns(this);
s32 i;
for (i = 0; i < maxChildren; i++) {
if (this->children[i] != NULL) {
osSyncPrintf("Error : 既に子供がいる(%s %d)(arg_data 0x%04x)\n", "../z_obj_mure.c", 407, actor->params);
}
ac = &globalCtx->actorCtx;
ObjMure_GetSpawnPos(&spawnPos, &actor->world.pos, this->ptn, i);
this->children[i] = Actor_Spawn(ac, globalCtx, sSpawnActorIds[this->type], spawnPos.x, spawnPos.y, spawnPos.z,
actor->world.rot.x, actor->world.rot.y, actor->world.rot.z,
(this->type == 4 && i == 0) ? 1 : sSpawnParams[this->type]);
if (this->children[i] != NULL) {
this->childrenStates[i] = OBJMURE_CHILD_STATE_0;
this->children[i]->room = actor->room;
} else {
this->childrenStates[i] = OBJMURE_CHILD_STATE_1;
osSyncPrintf("warning 発生失敗 (%s %d)\n", "../z_obj_mure.c", 438);
}
}
}
void ObjMure_SpawnActors(ObjMure* this, GlobalContext* globalCtx) {
switch (this->svNum) {
case 0:
ObjMure_SpawnActors0(this, globalCtx);
break;
case 1:
ObjMure_SpawnActors1(this, globalCtx);
break;
}
}
void ObjMure_KillActorsImpl(ObjMure* this, GlobalContext* globalCtx) {
s32 maxChildren = ObjMure_GetMaxChildSpawns(this);
s32 i;
for (i = 0; i < maxChildren; i++) {
switch (this->childrenStates[i]) {
case OBJMURE_CHILD_STATE_1:
this->children[i] = NULL;
break;
case OBJMURE_CHILD_STATE_2:
if (this->children[i] != NULL) {
Actor_Kill(this->children[i]);
this->children[i] = NULL;
}
break;
default:
if (this->children[i] != NULL) {
if (Actor_HasParent(this->children[i], globalCtx)) {
this->children[i] = NULL;
} else {
Actor_Kill(this->children[i]);
this->children[i] = NULL;
}
}
break;
}
}
}
void ObjMure_KillActors(ObjMure* this, GlobalContext* globalCtx) {
ObjMure_KillActorsImpl(this, globalCtx);
}
void ObjMure_CheckChildren(ObjMure* this, GlobalContext* globalCtx) {
s32 maxChildren = ObjMure_GetMaxChildSpawns(this);
s32 i;
for (i = 0; i < maxChildren; i++) {
if (this->children[i] != NULL) {
if (this->childrenStates[i] == OBJMURE_CHILD_STATE_0) {
if (this->children[i]->update != NULL) {
if (this->children[i]->flags & 0x800) {
this->childrenStates[i] = OBJMURE_CHILD_STATE_2;
}
} else {
this->childrenStates[i] = OBJMURE_CHILD_STATE_1;
this->children[i] = NULL;
}
} else if (this->childrenStates[i] == OBJMURE_CHILD_STATE_2 && this->children[i]->update == NULL) {
this->childrenStates[i] = OBJMURE_CHILD_STATE_1;
this->children[i] = NULL;
}
}
}
}
void ObjMure_InitialAction(ObjMure* this, GlobalContext* globalCtx) {
this->actionFunc = ObjMure_CulledState;
}
void ObjMure_CulledState(ObjMure* this, GlobalContext* globalCtx) {
if (fabsf(this->actor.projectedPos.z) < sZClip[this->type]) {
this->actionFunc = ObjMure_ActiveState;
this->actor.flags |= 0x10;
ObjMure_SpawnActors(this, globalCtx);
}
}
void ObjMure_SetFollowTargets(ObjMure* this, f32 randMax) {
s32 index;
s32 maxChildren = ObjMure_GetMaxChildSpawns(this);
s32 i;
for (i = 0; i < maxChildren; i++) {
if (this->children[i] != NULL) {
this->children[i]->child = NULL;
if (Rand_ZeroOne() <= randMax) {
index = Rand_ZeroOne() * (maxChildren - 0.5f);
if (i != index) {
this->children[i]->child = this->children[index];
}
}
}
}
}
/**
* Selects a child that will follow after the player
* `idx1` is the index + 1 of the child that will follow the player. If `idx1` is zero, no actor will follow the player
*/
void ObjMure_SetChildToFollowPlayer(ObjMure* this, s32 idx1) {
s32 maxChildren = ObjMure_GetMaxChildSpawns(this);
s32 i;
s32 i2;
s32 j;
for (i = 0, i2 = 0; i < maxChildren; i++) {
if (this->children[i] != NULL) {
if (i2 < idx1) {
i2++;
this->children[i]->child = this->children[i];
for (j = 0; j < maxChildren; j++) {
if (i != j && this->children[j]->child == this->children[i]) {
this->children[j]->child = NULL;
}
}
} else if (this->children[i]->child == this->children[i]) {
this->children[i]->child = NULL;
}
}
}
}
// Fish, Bugs
void ObjMure_GroupBehavior0(ObjMure* this, GlobalContext* globalCtx) {
if (this->unk_1A4 <= 0) {
if (this->unk_1A6) {
this->unk_1A6 = false;
ObjMure_SetFollowTargets(this, (Rand_ZeroOne() * 0.5f) + 0.1f);
if (this->actor.xzDistToPlayer < 60.0f) {
this->unk_1A4 = (s16)(Rand_ZeroOne() * 5.5f) + 4;
} else {
this->unk_1A4 = (s16)(Rand_ZeroOne() * 40.5f) + 4;
}
} else {
this->unk_1A6 = true;
if (this->actor.xzDistToPlayer < 60.0f) {
this->unk_1A4 = (s16)(Rand_ZeroOne() * 10.5f) + 4;
ObjMure_SetFollowTargets(this, (Rand_ZeroOne() * 0.2f) + 0.8f);
} else {
this->unk_1A4 = (s16)(Rand_ZeroOne() * 10.5f) + 4;
ObjMure_SetFollowTargets(this, (Rand_ZeroOne() * 0.2f) + 0.6f);
}
}
}
if (this->actor.xzDistToPlayer < 120.0f) {
this->unk_1A8++;
} else {
this->unk_1A8 = 0;
}
if (this->unk_1A8 >= 80) {
ObjMure_SetChildToFollowPlayer(this, 1);
} else {
ObjMure_SetChildToFollowPlayer(this, 0);
}
}
// Butterflies
void ObjMure_GroupBehavior1(ObjMure* this, GlobalContext* globalCtx) {
s32 maxChildren;
s32 i;
if (this->unk_1A4 <= 0) {
if (this->unk_1A6) {
this->unk_1A6 = false;
ObjMure_SetFollowTargets(this, Rand_ZeroOne() * 0.2f);
if (this->actor.xzDistToPlayer < 60.0f) {
this->unk_1A4 = (s16)(Rand_ZeroOne() * 5.5f) + 4;
} else {
this->unk_1A4 = (s16)(Rand_ZeroOne() * 40.5f) + 4;
}
} else {
this->unk_1A6 = true;
ObjMure_SetFollowTargets(this, Rand_ZeroOne() * 0.7f);
this->unk_1A4 = (s16)(Rand_ZeroOne() * 10.5f) + 4;
}
}
maxChildren = ObjMure_GetMaxChildSpawns(this);
for (i = 0; i < maxChildren; i++) {
if (this->children[i] != NULL) {
if (this->children[i]->child != NULL && this->children[i]->child->update == NULL) {
this->children[i]->child = NULL;
}
}
}
}
static ObjMureActionFunc sTypeGroupBehaviorFunc[] = {
NULL, NULL, ObjMure_GroupBehavior0, ObjMure_GroupBehavior0, ObjMure_GroupBehavior1,
};
void ObjMure_ActiveState(ObjMure* this, GlobalContext* globalCtx) {
ObjMure_CheckChildren(this, globalCtx);
if (sZClip[this->type] + 40.0f <= fabsf(this->actor.projectedPos.z)) {
this->actionFunc = ObjMure_CulledState;
this->actor.flags &= ~0x10;
ObjMure_KillActors(this, globalCtx);
} else if (sTypeGroupBehaviorFunc[this->type] != NULL) {
sTypeGroupBehaviorFunc[this->type](this, globalCtx);
}
}
void ObjMure_Update(Actor* thisx, GlobalContext* globalCtx) {
ObjMure* this = THIS;
if (this->unk_1A4 > 0) {
this->unk_1A4--;
}
this->actionFunc(this, globalCtx);
}

View file

@ -6,9 +6,22 @@
struct ObjMure;
typedef void (*ObjMureActionFunc)(struct ObjMure*, GlobalContext*);
#define OBJMURE_MAX_SPAWNS 15
typedef struct ObjMure {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x60];
/* 0x014C */ ObjMureActionFunc actionFunc;
/* 0x0150 */ s16 chNum;
/* 0x0152 */ s16 ptn;
/* 0x0154 */ s16 svNum;
/* 0x0156 */ s16 type;
/* 0x0158 */ Actor* children[OBJMURE_MAX_SPAWNS];
/* 0x0194 */ u8 childrenStates[OBJMURE_MAX_SPAWNS];
/* 0x01A4 */ s16 unk_1A4;
/* 0x01A6 */ s16 unk_1A6;
/* 0x01A8 */ s16 unk_1A8;
} ObjMure; // size = 0x01AC
extern const ActorInit Obj_Mure_InitVars;