mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-23 22:09:43 +00:00
En_Bom and En_Bombf (#264)
* data migrated * progress * progress * enbom ok * cleanup * progress * still have stack issues * bombf done * done i think * review comments 1 * add type enums * move enums and use -1 * remove unwanted file
This commit is contained in:
parent
15f75b0ddd
commit
15038468ac
@ -1,18 +0,0 @@
|
||||
glabel EnBom_Destroy
|
||||
/* 0011C 809C27EC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00120 809C27F0 AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 00124 809C27F4 AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 00128 809C27F8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 0012C 809C27FC 8FA50018 */ lw $a1, 0x0018($sp)
|
||||
/* 00130 809C2800 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00134 809C2804 0C016F32 */ jal Collider_DestroyJntSph
|
||||
/* 00138 809C2808 24A50198 */ addiu $a1, $a1, 0x0198 ## $a1 = 00000198
|
||||
/* 0013C 809C280C 8FA50018 */ lw $a1, 0x0018($sp)
|
||||
/* 00140 809C2810 8FA4001C */ lw $a0, 0x001C($sp)
|
||||
/* 00144 809C2814 0C0170EB */ jal Collider_DestroyCylinder
|
||||
|
||||
/* 00148 809C2818 24A5014C */ addiu $a1, $a1, 0x014C ## $a1 = 0000014C
|
||||
/* 0014C 809C281C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00150 809C2820 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00154 809C2824 03E00008 */ jr $ra
|
||||
/* 00158 809C2828 00000000 */ nop
|
@ -1,146 +0,0 @@
|
||||
.rdata
|
||||
glabel D_809C34D0
|
||||
.asciz "../z_en_bom.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_809C34E0
|
||||
.asciz "../z_en_bom.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_809C34F0
|
||||
.asciz "../z_en_bom.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_809C3500
|
||||
.asciz "../z_en_bom.c"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel EnBom_Draw
|
||||
/* 00B48 809C3218 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0
|
||||
/* 00B4C 809C321C AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00B50 809C3220 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00B54 809C3224 AFA40060 */ sw $a0, 0x0060($sp)
|
||||
/* 00B58 809C3228 AFA50064 */ sw $a1, 0x0064($sp)
|
||||
/* 00B5C 809C322C 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
|
||||
/* 00B60 809C3230 3C06809C */ lui $a2, %hi(D_809C34D0) ## $a2 = 809C0000
|
||||
/* 00B64 809C3234 24C634D0 */ addiu $a2, $a2, %lo(D_809C34D0) ## $a2 = 809C34D0
|
||||
/* 00B68 809C3238 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFFE4
|
||||
/* 00B6C 809C323C 24070391 */ addiu $a3, $zero, 0x0391 ## $a3 = 00000391
|
||||
/* 00B70 809C3240 0C031AB1 */ jal Graph_OpenDisps
|
||||
/* 00B74 809C3244 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
|
||||
/* 00B78 809C3248 8FAF0060 */ lw $t7, 0x0060($sp)
|
||||
/* 00B7C 809C324C 8FB90064 */ lw $t9, 0x0064($sp)
|
||||
/* 00B80 809C3250 85F8001C */ lh $t8, 0x001C($t7) ## 0000001C
|
||||
/* 00B84 809C3254 57000062 */ bnel $t8, $zero, .L809C33E0
|
||||
/* 00B88 809C3258 8FAC0064 */ lw $t4, 0x0064($sp)
|
||||
/* 00B8C 809C325C 0C024F46 */ jal func_80093D18
|
||||
/* 00B90 809C3260 8F240000 */ lw $a0, 0x0000($t9) ## 00000000
|
||||
/* 00B94 809C3264 8FA40064 */ lw $a0, 0x0064($sp)
|
||||
/* 00B98 809C3268 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00B9C 809C326C 34211DA0 */ ori $at, $at, 0x1DA0 ## $at = 00011DA0
|
||||
/* 00BA0 809C3270 0C0347F5 */ jal func_800D1FD4
|
||||
/* 00BA4 809C3274 00812021 */ addu $a0, $a0, $at
|
||||
/* 00BA8 809C3278 8FA40060 */ lw $a0, 0x0060($sp)
|
||||
/* 00BAC 809C327C 8FA50064 */ lw $a1, 0x0064($sp)
|
||||
/* 00BB0 809C3280 0C00BAF3 */ jal func_8002EBCC
|
||||
/* 00BB4 809C3284 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
|
||||
/* 00BB8 809C3288 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 00BBC 809C328C 3C09DA38 */ lui $t1, 0xDA38 ## $t1 = DA380000
|
||||
/* 00BC0 809C3290 35290003 */ ori $t1, $t1, 0x0003 ## $t1 = DA380003
|
||||
/* 00BC4 809C3294 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008
|
||||
/* 00BC8 809C3298 AE0802C0 */ sw $t0, 0x02C0($s0) ## 000002C0
|
||||
/* 00BCC 809C329C AC490000 */ sw $t1, 0x0000($v0) ## 00000000
|
||||
/* 00BD0 809C32A0 8FAA0064 */ lw $t2, 0x0064($sp)
|
||||
/* 00BD4 809C32A4 3C05809C */ lui $a1, %hi(D_809C34E0) ## $a1 = 809C0000
|
||||
/* 00BD8 809C32A8 24A534E0 */ addiu $a1, $a1, %lo(D_809C34E0) ## $a1 = 809C34E0
|
||||
/* 00BDC 809C32AC 8D440000 */ lw $a0, 0x0000($t2) ## 00000000
|
||||
/* 00BE0 809C32B0 240603A0 */ addiu $a2, $zero, 0x03A0 ## $a2 = 000003A0
|
||||
/* 00BE4 809C32B4 0C0346A2 */ jal Matrix_NewMtx
|
||||
/* 00BE8 809C32B8 AFA20040 */ sw $v0, 0x0040($sp)
|
||||
/* 00BEC 809C32BC 8FA30040 */ lw $v1, 0x0040($sp)
|
||||
/* 00BF0 809C32C0 3C0D0400 */ lui $t5, 0x0400 ## $t5 = 04000000
|
||||
/* 00BF4 809C32C4 25AD7A50 */ addiu $t5, $t5, 0x7A50 ## $t5 = 04007A50
|
||||
/* 00BF8 809C32C8 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 00BFC 809C32CC 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 00C00 809C32D0 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000
|
||||
/* 00C04 809C32D4 24044000 */ addiu $a0, $zero, 0x4000 ## $a0 = 00004000
|
||||
/* 00C08 809C32D8 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
|
||||
/* 00C0C 809C32DC AE0B02C0 */ sw $t3, 0x02C0($s0) ## 000002C0
|
||||
/* 00C10 809C32E0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 00C14 809C32E4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
|
||||
/* 00C18 809C32E8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 00C1C 809C32EC AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
|
||||
/* 00C20 809C32F0 0C034421 */ jal Matrix_RotateRPY
|
||||
/* 00C24 809C32F4 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
|
||||
/* 00C28 809C32F8 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 00C2C 809C32FC 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000
|
||||
/* 00C30 809C3300 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003
|
||||
/* 00C34 809C3304 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
|
||||
/* 00C38 809C3308 AE0E02C0 */ sw $t6, 0x02C0($s0) ## 000002C0
|
||||
/* 00C3C 809C330C AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
|
||||
/* 00C40 809C3310 8FB80064 */ lw $t8, 0x0064($sp)
|
||||
/* 00C44 809C3314 3C05809C */ lui $a1, %hi(D_809C34F0) ## $a1 = 809C0000
|
||||
/* 00C48 809C3318 24A534F0 */ addiu $a1, $a1, %lo(D_809C34F0) ## $a1 = 809C34F0
|
||||
/* 00C4C 809C331C 8F040000 */ lw $a0, 0x0000($t8) ## 00000000
|
||||
/* 00C50 809C3320 240603A6 */ addiu $a2, $zero, 0x03A6 ## $a2 = 000003A6
|
||||
/* 00C54 809C3324 0C0346A2 */ jal Matrix_NewMtx
|
||||
/* 00C58 809C3328 AFA20038 */ sw $v0, 0x0038($sp)
|
||||
/* 00C5C 809C332C 8FA30038 */ lw $v1, 0x0038($sp)
|
||||
/* 00C60 809C3330 3C08E700 */ lui $t0, 0xE700 ## $t0 = E7000000
|
||||
/* 00C64 809C3334 3C0AFB00 */ lui $t2, 0xFB00 ## $t2 = FB000000
|
||||
/* 00C68 809C3338 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 00C6C 809C333C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 00C70 809C3340 3C0B0400 */ lui $t3, 0x0400 ## $t3 = 04000000
|
||||
/* 00C74 809C3344 256B7860 */ addiu $t3, $t3, 0x7860 ## $t3 = 04007860
|
||||
/* 00C78 809C3348 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
|
||||
/* 00C7C 809C334C AE1902C0 */ sw $t9, 0x02C0($s0) ## 000002C0
|
||||
/* 00C80 809C3350 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
|
||||
/* 00C84 809C3354 AC480000 */ sw $t0, 0x0000($v0) ## 00000000
|
||||
/* 00C88 809C3358 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 00C8C 809C335C 8FA60060 */ lw $a2, 0x0060($sp)
|
||||
/* 00C90 809C3360 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
|
||||
/* 00C94 809C3364 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
|
||||
/* 00C98 809C3368 AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0
|
||||
/* 00C9C 809C336C AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
|
||||
/* 00CA0 809C3370 C4C401FC */ lwc1 $f4, 0x01FC($a2) ## 000001FC
|
||||
/* 00CA4 809C3374 3C0AFA00 */ lui $t2, 0xFA00 ## $t2 = FA000000
|
||||
/* 00CA8 809C3378 24C50198 */ addiu $a1, $a2, 0x0198 ## $a1 = 00000198
|
||||
/* 00CAC 809C337C 4600218D */ trunc.w.s $f6, $f4
|
||||
/* 00CB0 809C3380 440F3000 */ mfc1 $t7, $f6
|
||||
/* 00CB4 809C3384 00000000 */ nop
|
||||
/* 00CB8 809C3388 000FCE00 */ sll $t9, $t7, 24
|
||||
/* 00CBC 809C338C 372828FF */ ori $t0, $t9, 0x28FF ## $t0 = 000028FF
|
||||
/* 00CC0 809C3390 AC480004 */ sw $t0, 0x0004($v0) ## 00000004
|
||||
/* 00CC4 809C3394 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 00CC8 809C3398 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
|
||||
/* 00CCC 809C339C AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0
|
||||
/* 00CD0 809C33A0 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
|
||||
/* 00CD4 809C33A4 C4C801FC */ lwc1 $f8, 0x01FC($a2) ## 000001FC
|
||||
/* 00CD8 809C33A8 3C0ADE00 */ lui $t2, 0xDE00 ## $t2 = DE000000
|
||||
/* 00CDC 809C33AC 4600428D */ trunc.w.s $f10, $f8
|
||||
/* 00CE0 809C33B0 440F5000 */ mfc1 $t7, $f10
|
||||
/* 00CE4 809C33B4 00000000 */ nop
|
||||
/* 00CE8 809C33B8 000FCE00 */ sll $t9, $t7, 24
|
||||
/* 00CEC 809C33BC 372828FF */ ori $t0, $t9, 0x28FF ## $t0 = 000028FF
|
||||
/* 00CF0 809C33C0 AC480004 */ sw $t0, 0x0004($v0) ## 00000004
|
||||
/* 00CF4 809C33C4 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 00CF8 809C33C8 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
|
||||
/* 00CFC 809C33CC AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0
|
||||
/* 00D00 809C33D0 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
|
||||
/* 00D04 809C33D4 0C018A29 */ jal func_800628A4
|
||||
/* 00D08 809C33D8 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
|
||||
/* 00D0C 809C33DC 8FAC0064 */ lw $t4, 0x0064($sp)
|
||||
.L809C33E0:
|
||||
/* 00D10 809C33E0 3C06809C */ lui $a2, %hi(D_809C3500) ## $a2 = 809C0000
|
||||
/* 00D14 809C33E4 24C63500 */ addiu $a2, $a2, %lo(D_809C3500) ## $a2 = 809C3500
|
||||
/* 00D18 809C33E8 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFFE4
|
||||
/* 00D1C 809C33EC 240703B7 */ addiu $a3, $zero, 0x03B7 ## $a3 = 000003B7
|
||||
/* 00D20 809C33F0 0C031AD5 */ jal Graph_CloseDisps
|
||||
/* 00D24 809C33F4 8D850000 */ lw $a1, 0x0000($t4) ## 00000000
|
||||
/* 00D28 809C33F8 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00D2C 809C33FC 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 00D30 809C3400 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000
|
||||
/* 00D34 809C3404 03E00008 */ jr $ra
|
||||
/* 00D38 809C3408 00000000 */ nop
|
||||
/* 00D3C 809C340C 00000000 */ nop
|
@ -1,75 +0,0 @@
|
||||
glabel EnBom_Init
|
||||
/* 00008 809C26D8 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
|
||||
/* 0000C 809C26DC AFA5003C */ sw $a1, 0x003C($sp)
|
||||
/* 00010 809C26E0 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 00014 809C26E4 AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 00018 809C26E8 3C05809C */ lui $a1, %hi(D_809C3490) ## $a1 = 809C0000
|
||||
/* 0001C 809C26EC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00020 809C26F0 0C01E037 */ jal Actor_ProcessInitChain
|
||||
|
||||
/* 00024 809C26F4 24A53490 */ addiu $a1, $a1, %lo(D_809C3490) ## $a1 = 809C3490
|
||||
/* 00028 809C26F8 3C068003 */ lui $a2, %hi(ActorShadow_DrawFunc_Circle)
|
||||
/* 0002C 809C26FC 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawFunc_Circle)
|
||||
/* 00030 809C2700 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
|
||||
/* 00034 809C2704 3C05442F */ lui $a1, 0x442F ## $a1 = 442F0000
|
||||
/* 00038 809C2708 0C00AC78 */ jal ActorShape_Init
|
||||
|
||||
/* 0003C 809C270C 3C074180 */ lui $a3, 0x4180 ## $a3 = 41800000
|
||||
/* 00040 809C2710 240E00C8 */ addiu $t6, $zero, 0x00C8 ## $t6 = 000000C8
|
||||
/* 00044 809C2714 240F0005 */ addiu $t7, $zero, 0x0005 ## $t7 = 00000005
|
||||
/* 00048 809C2718 2418000A */ addiu $t8, $zero, 0x000A ## $t8 = 0000000A
|
||||
/* 0004C 809C271C 24190046 */ addiu $t9, $zero, 0x0046 ## $t9 = 00000046
|
||||
/* 00050 809C2720 24080007 */ addiu $t0, $zero, 0x0007 ## $t0 = 00000007
|
||||
/* 00054 809C2724 A20E00AE */ sb $t6, 0x00AE($s0) ## 000000AE
|
||||
/* 00058 809C2728 A60F00A8 */ sh $t7, 0x00A8($s0) ## 000000A8
|
||||
/* 0005C 809C272C A61800AA */ sh $t8, 0x00AA($s0) ## 000000AA
|
||||
/* 00060 809C2730 A61901F8 */ sh $t9, 0x01F8($s0) ## 000001F8
|
||||
/* 00064 809C2734 A60801FA */ sh $t0, 0x01FA($s0) ## 000001FA
|
||||
/* 00068 809C2738 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
|
||||
/* 0006C 809C273C AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 00070 809C2740 0C0170D9 */ jal Collider_InitCylinder
|
||||
|
||||
/* 00074 809C2744 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 00078 809C2748 26050198 */ addiu $a1, $s0, 0x0198 ## $a1 = 00000198
|
||||
/* 0007C 809C274C AFA50030 */ sw $a1, 0x0030($sp)
|
||||
/* 00080 809C2750 0C016EFE */ jal Collider_InitJntSph
|
||||
/* 00084 809C2754 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 00088 809C2758 3C07809C */ lui $a3, %hi(D_809C3430) ## $a3 = 809C0000
|
||||
/* 0008C 809C275C 24E73430 */ addiu $a3, $a3, %lo(D_809C3430) ## $a3 = 809C3430
|
||||
/* 00090 809C2760 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 00094 809C2764 8FA5002C */ lw $a1, 0x002C($sp)
|
||||
/* 00098 809C2768 0C01712B */ jal Collider_SetCylinder
|
||||
|
||||
/* 0009C 809C276C 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 000A0 809C2770 3C07809C */ lui $a3, %hi(D_809C3480) ## $a3 = 809C0000
|
||||
/* 000A4 809C2774 260901B8 */ addiu $t1, $s0, 0x01B8 ## $t1 = 000001B8
|
||||
/* 000A8 809C2778 AFA90010 */ sw $t1, 0x0010($sp)
|
||||
/* 000AC 809C277C 24E73480 */ addiu $a3, $a3, %lo(D_809C3480) ## $a3 = 809C3480
|
||||
/* 000B0 809C2780 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 000B4 809C2784 8FA50030 */ lw $a1, 0x0030($sp)
|
||||
/* 000B8 809C2788 0C017014 */ jal Collider_SetJntSph
|
||||
/* 000BC 809C278C 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 000C0 809C2790 860F00B8 */ lh $t7, 0x00B8($s0) ## 000000B8
|
||||
/* 000C4 809C2794 860B00B8 */ lh $t3, 0x00B8($s0) ## 000000B8
|
||||
/* 000C8 809C2798 920A01BD */ lbu $t2, 0x01BD($s0) ## 000001BD
|
||||
/* 000CC 809C279C 31F800FF */ andi $t8, $t7, 0x00FF ## $t8 = 00000000
|
||||
/* 000D0 809C27A0 A61800B8 */ sh $t8, 0x00B8($s0) ## 000000B8
|
||||
/* 000D4 809C27A4 860200B8 */ lh $v0, 0x00B8($s0) ## 000000B8
|
||||
/* 000D8 809C27A8 316CFF00 */ andi $t4, $t3, 0xFF00 ## $t4 = 00000000
|
||||
/* 000DC 809C27AC 000C6A03 */ sra $t5, $t4, 8
|
||||
/* 000E0 809C27B0 014D7021 */ addu $t6, $t2, $t5
|
||||
/* 000E4 809C27B4 30590080 */ andi $t9, $v0, 0x0080 ## $t9 = 00000000
|
||||
/* 000E8 809C27B8 13200003 */ beq $t9, $zero, .L809C27C8
|
||||
/* 000EC 809C27BC A20E01BD */ sb $t6, 0x01BD($s0) ## 000001BD
|
||||
/* 000F0 809C27C0 3448FF00 */ ori $t0, $v0, 0xFF00 ## $t0 = 0000FF00
|
||||
/* 000F4 809C27C4 A60800B8 */ sh $t0, 0x00B8($s0) ## 000000B8
|
||||
.L809C27C8:
|
||||
/* 000F8 809C27C8 3C05809C */ lui $a1, %hi(func_809C282C) ## $a1 = 809C0000
|
||||
/* 000FC 809C27CC 24A5282C */ addiu $a1, $a1, %lo(func_809C282C) ## $a1 = 809C282C
|
||||
/* 00100 809C27D0 0C2709B4 */ jal func_809C26D0
|
||||
/* 00104 809C27D4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00108 809C27D8 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 0010C 809C27DC 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 00110 809C27E0 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
|
||||
/* 00114 809C27E4 03E00008 */ jr $ra
|
||||
/* 00118 809C27E8 00000000 */ nop
|
@ -1,476 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_809C3518
|
||||
.float -1.2
|
||||
|
||||
glabel D_809C351C
|
||||
.float 0.2
|
||||
|
||||
glabel D_809C3520
|
||||
.float 0.2
|
||||
|
||||
glabel D_809C3524
|
||||
.float 0.002
|
||||
|
||||
glabel D_809C3528
|
||||
.float 0.01
|
||||
|
||||
.text
|
||||
glabel EnBom_Update
|
||||
/* 004B8 809C2B88 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70
|
||||
/* 004BC 809C2B8C 3C0F809C */ lui $t7, %hi(D_809C349C) ## $t7 = 809C0000
|
||||
/* 004C0 809C2B90 AFBF002C */ sw $ra, 0x002C($sp)
|
||||
/* 004C4 809C2B94 AFB00028 */ sw $s0, 0x0028($sp)
|
||||
/* 004C8 809C2B98 AFA50094 */ sw $a1, 0x0094($sp)
|
||||
/* 004CC 809C2B9C 25EF349C */ addiu $t7, $t7, %lo(D_809C349C) ## $t7 = 809C349C
|
||||
/* 004D0 809C2BA0 8DF90000 */ lw $t9, 0x0000($t7) ## 809C349C
|
||||
/* 004D4 809C2BA4 27AE0084 */ addiu $t6, $sp, 0x0084 ## $t6 = FFFFFFF4
|
||||
/* 004D8 809C2BA8 8DF80004 */ lw $t8, 0x0004($t7) ## 809C34A0
|
||||
/* 004DC 809C2BAC ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFF4
|
||||
/* 004E0 809C2BB0 8DF90008 */ lw $t9, 0x0008($t7) ## 809C34A4
|
||||
/* 004E4 809C2BB4 3C0B809C */ lui $t3, %hi(D_809C34A8) ## $t3 = 809C0000
|
||||
/* 004E8 809C2BB8 256B34A8 */ addiu $t3, $t3, %lo(D_809C34A8) ## $t3 = 809C34A8
|
||||
/* 004EC 809C2BBC ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFF8
|
||||
/* 004F0 809C2BC0 ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFFC
|
||||
/* 004F4 809C2BC4 8D6D0000 */ lw $t5, 0x0000($t3) ## 809C34A8
|
||||
/* 004F8 809C2BC8 27AA0078 */ addiu $t2, $sp, 0x0078 ## $t2 = FFFFFFE8
|
||||
/* 004FC 809C2BCC 8D6C0004 */ lw $t4, 0x0004($t3) ## 809C34AC
|
||||
/* 00500 809C2BD0 AD4D0000 */ sw $t5, 0x0000($t2) ## FFFFFFE8
|
||||
/* 00504 809C2BD4 8D6D0008 */ lw $t5, 0x0008($t3) ## 809C34B0
|
||||
/* 00508 809C2BD8 3C0F809C */ lui $t7, %hi(D_809C34B4) ## $t7 = 809C0000
|
||||
/* 0050C 809C2BDC 25EF34B4 */ addiu $t7, $t7, %lo(D_809C34B4) ## $t7 = 809C34B4
|
||||
/* 00510 809C2BE0 AD4C0004 */ sw $t4, 0x0004($t2) ## FFFFFFEC
|
||||
/* 00514 809C2BE4 AD4D0008 */ sw $t5, 0x0008($t2) ## FFFFFFF0
|
||||
/* 00518 809C2BE8 8DF90000 */ lw $t9, 0x0000($t7) ## 809C34B4
|
||||
/* 0051C 809C2BEC 27AE006C */ addiu $t6, $sp, 0x006C ## $t6 = FFFFFFDC
|
||||
/* 00520 809C2BF0 8DF80004 */ lw $t8, 0x0004($t7) ## 809C34B8
|
||||
/* 00524 809C2BF4 ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFDC
|
||||
/* 00528 809C2BF8 8DF90008 */ lw $t9, 0x0008($t7) ## 809C34BC
|
||||
/* 0052C 809C2BFC 3C0B809C */ lui $t3, %hi(D_809C34C0) ## $t3 = 809C0000
|
||||
/* 00530 809C2C00 256B34C0 */ addiu $t3, $t3, %lo(D_809C34C0) ## $t3 = 809C34C0
|
||||
/* 00534 809C2C04 ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFE0
|
||||
/* 00538 809C2C08 ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFE4
|
||||
/* 0053C 809C2C0C 8D6D0000 */ lw $t5, 0x0000($t3) ## 809C34C0
|
||||
/* 00540 809C2C10 27AA0054 */ addiu $t2, $sp, 0x0054 ## $t2 = FFFFFFC4
|
||||
/* 00544 809C2C14 8D6C0004 */ lw $t4, 0x0004($t3) ## 809C34C4
|
||||
/* 00548 809C2C18 AD4D0000 */ sw $t5, 0x0000($t2) ## FFFFFFC4
|
||||
/* 0054C 809C2C1C 8D6D0008 */ lw $t5, 0x0008($t3) ## 809C34C8
|
||||
/* 00550 809C2C20 3C0E809C */ lui $t6, %hi(D_809C34CC) ## $t6 = 809C0000
|
||||
/* 00554 809C2C24 AD4C0004 */ sw $t4, 0x0004($t2) ## FFFFFFC8
|
||||
/* 00558 809C2C28 AD4D0008 */ sw $t5, 0x0008($t2) ## FFFFFFCC
|
||||
/* 0055C 809C2C2C 8DCE34CC */ lw $t6, %lo(D_809C34CC)($t6)
|
||||
/* 00560 809C2C30 3C01809C */ lui $at, %hi(D_809C3518) ## $at = 809C0000
|
||||
/* 00564 809C2C34 C4243518 */ lwc1 $f4, %lo(D_809C3518)($at)
|
||||
/* 00568 809C2C38 AFAE0050 */ sw $t6, 0x0050($sp)
|
||||
/* 0056C 809C2C3C 848201F8 */ lh $v0, 0x01F8($a0) ## 000001F8
|
||||
/* 00570 809C2C40 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00574 809C2C44 24010043 */ addiu $at, $zero, 0x0043 ## $at = 00000043
|
||||
/* 00578 809C2C48 10400004 */ beq $v0, $zero, .L809C2C5C
|
||||
/* 0057C 809C2C4C E484006C */ swc1 $f4, 0x006C($a0) ## 0000006C
|
||||
/* 00580 809C2C50 244FFFFF */ addiu $t7, $v0, 0xFFFF ## $t7 = FFFFFFFF
|
||||
/* 00584 809C2C54 A48F01F8 */ sh $t7, 0x01F8($a0) ## 000001F8
|
||||
/* 00588 809C2C58 848201F8 */ lh $v0, 0x01F8($a0) ## 000001F8
|
||||
.L809C2C5C:
|
||||
/* 0058C 809C2C5C 14410007 */ bne $v0, $at, .L809C2C7C
|
||||
/* 00590 809C2C60 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00594 809C2C64 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 00598 809C2C68 24050834 */ addiu $a1, $zero, 0x0834 ## $a1 = 00000834
|
||||
/* 0059C 809C2C6C 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
|
||||
/* 005A0 809C2C70 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
|
||||
/* 005A4 809C2C74 0C00B58B */ jal Actor_SetScale
|
||||
|
||||
/* 005A8 809C2C78 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L809C2C7C:
|
||||
/* 005AC 809C2C7C 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
|
||||
/* 005B0 809C2C80 44814000 */ mtc1 $at, $f8 ## $f8 = 20.00
|
||||
/* 005B4 809C2C84 C6060090 */ lwc1 $f6, 0x0090($s0) ## 00000090
|
||||
/* 005B8 809C2C88 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
|
||||
/* 005BC 809C2C8C 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
|
||||
/* 005C0 809C2C90 4606403E */ c.le.s $f8, $f6
|
||||
/* 005C4 809C2C94 00000000 */ nop
|
||||
/* 005C8 809C2C98 45030010 */ bc1tl .L809C2CDC
|
||||
/* 005CC 809C2C9C A2180200 */ sb $t8, 0x0200($s0) ## 00000200
|
||||
/* 005D0 809C2CA0 C6000094 */ lwc1 $f0, 0x0094($s0) ## 00000094
|
||||
/* 005D4 809C2CA4 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00
|
||||
/* 005D8 809C2CA8 44818000 */ mtc1 $at, $f16 ## $f16 = 80.00
|
||||
/* 005DC 809C2CAC 4600503E */ c.le.s $f10, $f0
|
||||
/* 005E0 809C2CB0 00000000 */ nop
|
||||
/* 005E4 809C2CB4 45020004 */ bc1fl .L809C2CC8
|
||||
/* 005E8 809C2CB8 46000087 */ neg.s $f2, $f0
|
||||
/* 005EC 809C2CBC 10000002 */ beq $zero, $zero, .L809C2CC8
|
||||
/* 005F0 809C2CC0 46000086 */ mov.s $f2, $f0
|
||||
/* 005F4 809C2CC4 46000087 */ neg.s $f2, $f0
|
||||
.L809C2CC8:
|
||||
/* 005F8 809C2CC8 4602803E */ c.le.s $f16, $f2
|
||||
/* 005FC 809C2CCC 00000000 */ nop
|
||||
/* 00600 809C2CD0 45020003 */ bc1fl .L809C2CE0
|
||||
/* 00604 809C2CD4 8E190204 */ lw $t9, 0x0204($s0) ## 00000204
|
||||
/* 00608 809C2CD8 A2180200 */ sb $t8, 0x0200($s0) ## 00000200
|
||||
.L809C2CDC:
|
||||
/* 0060C 809C2CDC 8E190204 */ lw $t9, 0x0204($s0) ## 00000204
|
||||
.L809C2CE0:
|
||||
/* 00610 809C2CE0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00614 809C2CE4 8FA50094 */ lw $a1, 0x0094($sp)
|
||||
/* 00618 809C2CE8 0320F809 */ jalr $ra, $t9
|
||||
/* 0061C 809C2CEC 00000000 */ nop
|
||||
/* 00620 809C2CF0 3C014170 */ lui $at, 0x4170 ## $at = 41700000
|
||||
/* 00624 809C2CF4 44819000 */ mtc1 $at, $f18 ## $f18 = 15.00
|
||||
/* 00628 809C2CF8 240A001F */ addiu $t2, $zero, 0x001F ## $t2 = 0000001F
|
||||
/* 0062C 809C2CFC AFAA0014 */ sw $t2, 0x0014($sp)
|
||||
/* 00630 809C2D00 8FA40094 */ lw $a0, 0x0094($sp)
|
||||
/* 00634 809C2D04 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00638 809C2D08 3C0640A0 */ lui $a2, 0x40A0 ## $a2 = 40A00000
|
||||
/* 0063C 809C2D0C 3C074120 */ lui $a3, 0x4120 ## $a3 = 41200000
|
||||
/* 00640 809C2D10 0C00B92D */ jal func_8002E4B4
|
||||
/* 00644 809C2D14 E7B20010 */ swc1 $f18, 0x0010($sp)
|
||||
/* 00648 809C2D18 860B001C */ lh $t3, 0x001C($s0) ## 0000001C
|
||||
/* 0064C 809C2D1C 556000F9 */ bnel $t3, $zero, .L809C3104
|
||||
/* 00650 809C2D20 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00654 809C2D24 860C01F8 */ lh $t4, 0x01F8($s0) ## 000001F8
|
||||
/* 00658 809C2D28 2981003F */ slti $at, $t4, 0x003F
|
||||
/* 0065C 809C2D2C 10200031 */ beq $at, $zero, .L809C2DF4
|
||||
/* 00660 809C2D30 3C01809C */ lui $at, %hi(D_809C351C) ## $at = 809C0000
|
||||
/* 00664 809C2D34 C424351C */ lwc1 $f4, %lo(D_809C351C)($at)
|
||||
/* 00668 809C2D38 27AD0060 */ addiu $t5, $sp, 0x0060 ## $t5 = FFFFFFD0
|
||||
/* 0066C 809C2D3C 3C014188 */ lui $at, 0x4188 ## $at = 41880000
|
||||
/* 00670 809C2D40 E7A40058 */ swc1 $f4, 0x0058($sp)
|
||||
/* 00674 809C2D44 8E0F0024 */ lw $t7, 0x0024($s0) ## 00000024
|
||||
/* 00678 809C2D48 44814000 */ mtc1 $at, $f8 ## $f8 = 17.00
|
||||
/* 0067C 809C2D4C 3C190001 */ lui $t9, 0x0001 ## $t9 = 00010000
|
||||
/* 00680 809C2D50 ADAF0000 */ sw $t7, 0x0000($t5) ## FFFFFFD0
|
||||
/* 00684 809C2D54 8E0E0028 */ lw $t6, 0x0028($s0) ## 00000028
|
||||
/* 00688 809C2D58 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 0068C 809C2D5C 27A60060 */ addiu $a2, $sp, 0x0060 ## $a2 = FFFFFFD0
|
||||
/* 00690 809C2D60 ADAE0004 */ sw $t6, 0x0004($t5) ## FFFFFFD4
|
||||
/* 00694 809C2D64 8E0F002C */ lw $t7, 0x002C($s0) ## 0000002C
|
||||
/* 00698 809C2D68 27A70084 */ addiu $a3, $sp, 0x0084 ## $a3 = FFFFFFF4
|
||||
/* 0069C 809C2D6C 27AB006C */ addiu $t3, $sp, 0x006C ## $t3 = FFFFFFDC
|
||||
/* 006A0 809C2D70 ADAF0008 */ sw $t7, 0x0008($t5) ## FFFFFFD8
|
||||
/* 006A4 809C2D74 C7A60064 */ lwc1 $f6, 0x0064($sp)
|
||||
/* 006A8 809C2D78 8FB80094 */ lw $t8, 0x0094($sp)
|
||||
/* 006AC 809C2D7C 46083280 */ add.s $f10, $f6, $f8
|
||||
/* 006B0 809C2D80 0338C821 */ addu $t9, $t9, $t8
|
||||
/* 006B4 809C2D84 03002025 */ or $a0, $t8, $zero ## $a0 = 00000000
|
||||
/* 006B8 809C2D88 E7AA0064 */ swc1 $f10, 0x0064($sp)
|
||||
/* 006BC 809C2D8C 8F391DE4 */ lw $t9, 0x1DE4($t9) ## 00011DE4
|
||||
/* 006C0 809C2D90 332A0001 */ andi $t2, $t9, 0x0001 ## $t2 = 00000000
|
||||
/* 006C4 809C2D94 55400004 */ bnel $t2, $zero, .L809C2DA8
|
||||
/* 006C8 809C2D98 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 006CC 809C2D9C 0C00A461 */ jal func_80029184
|
||||
/* 006D0 809C2DA0 AFAB0010 */ sw $t3, 0x0010($sp)
|
||||
/* 006D4 809C2DA4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L809C2DA8:
|
||||
/* 006D8 809C2DA8 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 006DC 809C2DAC 2405100D */ addiu $a1, $zero, 0x100D ## $a1 = 0000100D
|
||||
/* 006E0 809C2DB0 3C014040 */ lui $at, 0x4040 ## $at = 40400000
|
||||
/* 006E4 809C2DB4 44819000 */ mtc1 $at, $f18 ## $f18 = 3.00
|
||||
/* 006E8 809C2DB8 C7B00064 */ lwc1 $f16, 0x0064($sp)
|
||||
/* 006EC 809C2DBC 27AC0050 */ addiu $t4, $sp, 0x0050 ## $t4 = FFFFFFC0
|
||||
/* 006F0 809C2DC0 240D0032 */ addiu $t5, $zero, 0x0032 ## $t5 = 00000032
|
||||
/* 006F4 809C2DC4 46128100 */ add.s $f4, $f16, $f18
|
||||
/* 006F8 809C2DC8 240E0005 */ addiu $t6, $zero, 0x0005 ## $t6 = 00000005
|
||||
/* 006FC 809C2DCC AFAE001C */ sw $t6, 0x001C($sp)
|
||||
/* 00700 809C2DD0 AFAD0018 */ sw $t5, 0x0018($sp)
|
||||
/* 00704 809C2DD4 E7A40064 */ swc1 $f4, 0x0064($sp)
|
||||
/* 00708 809C2DD8 AFAC0010 */ sw $t4, 0x0010($sp)
|
||||
/* 0070C 809C2DDC AFAC0014 */ sw $t4, 0x0014($sp)
|
||||
/* 00710 809C2DE0 8FA40094 */ lw $a0, 0x0094($sp)
|
||||
/* 00714 809C2DE4 27A50060 */ addiu $a1, $sp, 0x0060 ## $a1 = FFFFFFD0
|
||||
/* 00718 809C2DE8 27A60084 */ addiu $a2, $sp, 0x0084 ## $a2 = FFFFFFF4
|
||||
/* 0071C 809C2DEC 0C00A0A7 */ jal func_8002829C
|
||||
/* 00720 809C2DF0 27A70054 */ addiu $a3, $sp, 0x0054 ## $a3 = FFFFFFC4
|
||||
.L809C2DF4:
|
||||
/* 00724 809C2DF4 260F0024 */ addiu $t7, $s0, 0x0024 ## $t7 = 00000024
|
||||
/* 00728 809C2DF8 AFAF0034 */ sw $t7, 0x0034($sp)
|
||||
/* 0072C 809C2DFC 9219015D */ lbu $t9, 0x015D($s0) ## 0000015D
|
||||
/* 00730 809C2E00 332A0002 */ andi $t2, $t9, 0x0002 ## $t2 = 00000000
|
||||
/* 00734 809C2E04 5540000B */ bnel $t2, $zero, .L809C2E34
|
||||
/* 00738 809C2E08 A60001F8 */ sh $zero, 0x01F8($s0) ## 000001F8
|
||||
/* 0073C 809C2E0C 9218015E */ lbu $t8, 0x015E($s0) ## 0000015E
|
||||
/* 00740 809C2E10 330B0002 */ andi $t3, $t8, 0x0002 ## $t3 = 00000000
|
||||
/* 00744 809C2E14 5160000A */ beql $t3, $zero, .L809C2E40
|
||||
/* 00748 809C2E18 860E01F8 */ lh $t6, 0x01F8($s0) ## 000001F8
|
||||
/* 0074C 809C2E1C 8E0C0158 */ lw $t4, 0x0158($s0) ## 00000158
|
||||
/* 00750 809C2E20 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
|
||||
/* 00754 809C2E24 918D0002 */ lbu $t5, 0x0002($t4) ## 00000002
|
||||
/* 00758 809C2E28 55A10005 */ bnel $t5, $at, .L809C2E40
|
||||
/* 0075C 809C2E2C 860E01F8 */ lh $t6, 0x01F8($s0) ## 000001F8
|
||||
/* 00760 809C2E30 A60001F8 */ sh $zero, 0x01F8($s0) ## 000001F8
|
||||
.L809C2E34:
|
||||
/* 00764 809C2E34 1000000C */ beq $zero, $zero, .L809C2E68
|
||||
/* 00768 809C2E38 A60000B8 */ sh $zero, 0x00B8($s0) ## 000000B8
|
||||
/* 0076C 809C2E3C 860E01F8 */ lh $t6, 0x01F8($s0) ## 000001F8
|
||||
.L809C2E40:
|
||||
/* 00770 809C2E40 8FA40094 */ lw $a0, 0x0094($sp)
|
||||
/* 00774 809C2E44 8FA50034 */ lw $a1, 0x0034($sp)
|
||||
/* 00778 809C2E48 29C10065 */ slti $at, $t6, 0x0065
|
||||
/* 0077C 809C2E4C 14200006 */ bne $at, $zero, .L809C2E68
|
||||
/* 00780 809C2E50 3C0641F0 */ lui $a2, 0x41F0 ## $a2 = 41F00000
|
||||
/* 00784 809C2E54 0C023BD7 */ jal func_8008EF5C
|
||||
/* 00788 809C2E58 3C074248 */ lui $a3, 0x4248 ## $a3 = 42480000
|
||||
/* 0078C 809C2E5C 10400002 */ beq $v0, $zero, .L809C2E68
|
||||
/* 00790 809C2E60 240F0064 */ addiu $t7, $zero, 0x0064 ## $t7 = 00000064
|
||||
/* 00794 809C2E64 A60F01F8 */ sh $t7, 0x01F8($s0) ## 000001F8
|
||||
.L809C2E68:
|
||||
/* 00798 809C2E68 3C01809C */ lui $at, %hi(D_809C3520) ## $at = 809C0000
|
||||
/* 0079C 809C2E6C C4263520 */ lwc1 $f6, %lo(D_809C3520)($at)
|
||||
/* 007A0 809C2E70 8FAA0034 */ lw $t2, 0x0034($sp)
|
||||
/* 007A4 809C2E74 27B90060 */ addiu $t9, $sp, 0x0060 ## $t9 = FFFFFFD0
|
||||
/* 007A8 809C2E78 E7A60058 */ swc1 $f6, 0x0058($sp)
|
||||
/* 007AC 809C2E7C 8D4B0000 */ lw $t3, 0x0000($t2) ## 00000000
|
||||
/* 007B0 809C2E80 3C014120 */ lui $at, 0x4120 ## $at = 41200000
|
||||
/* 007B4 809C2E84 44815000 */ mtc1 $at, $f10 ## $f10 = 10.00
|
||||
/* 007B8 809C2E88 AF2B0000 */ sw $t3, 0x0000($t9) ## FFFFFFD0
|
||||
/* 007BC 809C2E8C 8D580004 */ lw $t8, 0x0004($t2) ## 00000004
|
||||
/* 007C0 809C2E90 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
|
||||
/* 007C4 809C2E94 AF380004 */ sw $t8, 0x0004($t9) ## FFFFFFD4
|
||||
/* 007C8 809C2E98 8D4B0008 */ lw $t3, 0x0008($t2) ## 00000008
|
||||
/* 007CC 809C2E9C AF2B0008 */ sw $t3, 0x0008($t9) ## FFFFFFD8
|
||||
/* 007D0 809C2EA0 C7A80064 */ lwc1 $f8, 0x0064($sp)
|
||||
/* 007D4 809C2EA4 460A4400 */ add.s $f16, $f8, $f10
|
||||
/* 007D8 809C2EA8 E7B00064 */ swc1 $f16, 0x0064($sp)
|
||||
/* 007DC 809C2EAC 860201F8 */ lh $v0, 0x01F8($s0) ## 000001F8
|
||||
/* 007E0 809C2EB0 10410005 */ beq $v0, $at, .L809C2EC8
|
||||
/* 007E4 809C2EB4 24010014 */ addiu $at, $zero, 0x0014 ## $at = 00000014
|
||||
/* 007E8 809C2EB8 10410003 */ beq $v0, $at, .L809C2EC8
|
||||
/* 007EC 809C2EBC 24010028 */ addiu $at, $zero, 0x0028 ## $at = 00000028
|
||||
/* 007F0 809C2EC0 54410007 */ bnel $v0, $at, .L809C2EE0
|
||||
/* 007F4 809C2EC4 28410064 */ slti $at, $v0, 0x0064
|
||||
.L809C2EC8:
|
||||
/* 007F8 809C2EC8 860C01FA */ lh $t4, 0x01FA($s0) ## 000001FA
|
||||
/* 007FC 809C2ECC A60000B8 */ sh $zero, 0x00B8($s0) ## 000000B8
|
||||
/* 00800 809C2ED0 860201F8 */ lh $v0, 0x01F8($s0) ## 000001F8
|
||||
/* 00804 809C2ED4 000C6843 */ sra $t5, $t4, 1
|
||||
/* 00808 809C2ED8 A60D01FA */ sh $t5, 0x01FA($s0) ## 000001FA
|
||||
/* 0080C 809C2EDC 28410064 */ slti $at, $v0, 0x0064
|
||||
.L809C2EE0:
|
||||
/* 00810 809C2EE0 50200016 */ beql $at, $zero, .L809C2F3C
|
||||
/* 00814 809C2EE4 861901FA */ lh $t9, 0x01FA($s0) ## 000001FA
|
||||
/* 00818 809C2EE8 860301FA */ lh $v1, 0x01FA($s0) ## 000001FA
|
||||
/* 0081C 809C2EEC 246E0001 */ addiu $t6, $v1, 0x0001 ## $t6 = 00000001
|
||||
/* 00820 809C2EF0 004E7824 */ and $t7, $v0, $t6
|
||||
/* 00824 809C2EF4 51E00011 */ beql $t7, $zero, .L809C2F3C
|
||||
/* 00828 809C2EF8 861901FA */ lh $t9, 0x01FA($s0) ## 000001FA
|
||||
/* 0082C 809C2EFC 44839000 */ mtc1 $v1, $f18 ## $f18 = 0.00
|
||||
/* 00830 809C2F00 3C01430C */ lui $at, 0x430C ## $at = 430C0000
|
||||
/* 00834 809C2F04 44810000 */ mtc1 $at, $f0 ## $f0 = 140.00
|
||||
/* 00838 809C2F08 46809120 */ cvt.s.w $f4, $f18
|
||||
/* 0083C 809C2F0C 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
|
||||
/* 00840 809C2F10 44050000 */ mfc1 $a1, $f0
|
||||
/* 00844 809C2F14 260401FC */ addiu $a0, $s0, 0x01FC ## $a0 = 000001FC
|
||||
/* 00848 809C2F18 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
|
||||
/* 0084C 809C2F1C E7A20010 */ swc1 $f2, 0x0010($sp)
|
||||
/* 00850 809C2F20 46040183 */ div.s $f6, $f0, $f4
|
||||
/* 00854 809C2F24 44073000 */ mfc1 $a3, $f6
|
||||
/* 00858 809C2F28 0C01E0C4 */ jal Math_SmoothScaleMaxMinF
|
||||
|
||||
/* 0085C 809C2F2C 00000000 */ nop
|
||||
/* 00860 809C2F30 10000010 */ beq $zero, $zero, .L809C2F74
|
||||
/* 00864 809C2F34 860201F8 */ lh $v0, 0x01F8($s0) ## 000001F8
|
||||
/* 00868 809C2F38 861901FA */ lh $t9, 0x01FA($s0) ## 000001FA
|
||||
.L809C2F3C:
|
||||
/* 0086C 809C2F3C 3C01430C */ lui $at, 0x430C ## $at = 430C0000
|
||||
/* 00870 809C2F40 44810000 */ mtc1 $at, $f0 ## $f0 = 140.00
|
||||
/* 00874 809C2F44 44994000 */ mtc1 $t9, $f8 ## $f8 = 0.00
|
||||
/* 00878 809C2F48 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
|
||||
/* 0087C 809C2F4C 260401FC */ addiu $a0, $s0, 0x01FC ## $a0 = 000001FC
|
||||
/* 00880 809C2F50 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 00884 809C2F54 44051000 */ mfc1 $a1, $f2
|
||||
/* 00888 809C2F58 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
|
||||
/* 0088C 809C2F5C E7A20010 */ swc1 $f2, 0x0010($sp)
|
||||
/* 00890 809C2F60 460A0403 */ div.s $f16, $f0, $f10
|
||||
/* 00894 809C2F64 44078000 */ mfc1 $a3, $f16
|
||||
/* 00898 809C2F68 0C01E0C4 */ jal Math_SmoothScaleMaxMinF
|
||||
|
||||
/* 0089C 809C2F6C 00000000 */ nop
|
||||
/* 008A0 809C2F70 860201F8 */ lh $v0, 0x01F8($s0) ## 000001F8
|
||||
.L809C2F74:
|
||||
/* 008A4 809C2F74 28410003 */ slti $at, $v0, 0x0003
|
||||
/* 008A8 809C2F78 10200009 */ beq $at, $zero, .L809C2FA0
|
||||
/* 008AC 809C2F7C 3C01809C */ lui $at, %hi(D_809C3524) ## $at = 809C0000
|
||||
/* 008B0 809C2F80 C4243524 */ lwc1 $f4, %lo(D_809C3524)($at)
|
||||
/* 008B4 809C2F84 C6120050 */ lwc1 $f18, 0x0050($s0) ## 00000050
|
||||
/* 008B8 809C2F88 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 008BC 809C2F8C 46049180 */ add.s $f6, $f18, $f4
|
||||
/* 008C0 809C2F90 44053000 */ mfc1 $a1, $f6
|
||||
/* 008C4 809C2F94 0C00B58B */ jal Actor_SetScale
|
||||
|
||||
/* 008C8 809C2F98 00000000 */ nop
|
||||
/* 008CC 809C2F9C 860201F8 */ lh $v0, 0x01F8($s0) ## 000001F8
|
||||
.L809C2FA0:
|
||||
/* 008D0 809C2FA0 14400057 */ bne $v0, $zero, .L809C3100
|
||||
/* 008D4 809C2FA4 8FB80034 */ lw $t8, 0x0034($sp)
|
||||
/* 008D8 809C2FA8 8F0C0000 */ lw $t4, 0x0000($t8) ## 00000000
|
||||
/* 008DC 809C2FAC 8FA50094 */ lw $a1, 0x0094($sp)
|
||||
/* 008E0 809C2FB0 27AA0060 */ addiu $t2, $sp, 0x0060 ## $t2 = FFFFFFD0
|
||||
/* 008E4 809C2FB4 AD4C0000 */ sw $t4, 0x0000($t2) ## FFFFFFD0
|
||||
/* 008E8 809C2FB8 8F0B0004 */ lw $t3, 0x0004($t8) ## 00000004
|
||||
/* 008EC 809C2FBC 3C014120 */ lui $at, 0x4120 ## $at = 41200000
|
||||
/* 008F0 809C2FC0 44815000 */ mtc1 $at, $f10 ## $f10 = 10.00
|
||||
/* 008F4 809C2FC4 AD4B0004 */ sw $t3, 0x0004($t2) ## FFFFFFD4
|
||||
/* 008F8 809C2FC8 8F0C0008 */ lw $t4, 0x0008($t8) ## 00000008
|
||||
/* 008FC 809C2FCC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00900 809C2FD0 00A11821 */ addu $v1, $a1, $at
|
||||
/* 00904 809C2FD4 AD4C0008 */ sw $t4, 0x0008($t2) ## FFFFFFD8
|
||||
/* 00908 809C2FD8 C7A80064 */ lwc1 $f8, 0x0064($sp)
|
||||
/* 0090C 809C2FDC AFA30038 */ sw $v1, 0x0038($sp)
|
||||
/* 00910 809C2FE0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00914 809C2FE4 460A4400 */ add.s $f16, $f8, $f10
|
||||
/* 00918 809C2FE8 0C00BD04 */ jal func_8002F410
|
||||
/* 0091C 809C2FEC E7B00064 */ swc1 $f16, 0x0064($sp)
|
||||
/* 00920 809C2FF0 10400006 */ beq $v0, $zero, .L809C300C
|
||||
/* 00924 809C2FF4 8FA30038 */ lw $v1, 0x0038($sp)
|
||||
/* 00928 809C2FF8 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
|
||||
/* 0092C 809C2FFC 44812000 */ mtc1 $at, $f4 ## $f4 = 30.00
|
||||
/* 00930 809C3000 C7B20064 */ lwc1 $f18, 0x0064($sp)
|
||||
/* 00934 809C3004 46049180 */ add.s $f6, $f18, $f4
|
||||
/* 00938 809C3008 E7A60064 */ swc1 $f6, 0x0064($sp)
|
||||
.L809C300C:
|
||||
/* 0093C 809C300C 240D0064 */ addiu $t5, $zero, 0x0064 ## $t5 = 00000064
|
||||
/* 00940 809C3010 AFAD0010 */ sw $t5, 0x0010($sp)
|
||||
/* 00944 809C3014 860E00B8 */ lh $t6, 0x00B8($s0) ## 000000B8
|
||||
/* 00948 809C3018 AFA30038 */ sw $v1, 0x0038($sp)
|
||||
/* 0094C 809C301C 8FA40094 */ lw $a0, 0x0094($sp)
|
||||
/* 00950 809C3020 000E7880 */ sll $t7, $t6, 2
|
||||
/* 00954 809C3024 01EE7823 */ subu $t7, $t7, $t6
|
||||
/* 00958 809C3028 000F7840 */ sll $t7, $t7, 1
|
||||
/* 0095C 809C302C 25F90013 */ addiu $t9, $t7, 0x0013 ## $t9 = 00000013
|
||||
/* 00960 809C3030 AFB90014 */ sw $t9, 0x0014($sp)
|
||||
/* 00964 809C3034 27A50060 */ addiu $a1, $sp, 0x0060 ## $a1 = FFFFFFD0
|
||||
/* 00968 809C3038 27A60084 */ addiu $a2, $sp, 0x0084 ## $a2 = FFFFFFF4
|
||||
/* 0096C 809C303C 0C00A3A1 */ jal func_80028E84
|
||||
/* 00970 809C3040 27A70078 */ addiu $a3, $sp, 0x0078 ## $a3 = FFFFFFE8
|
||||
/* 00974 809C3044 C6080080 */ lwc1 $f8, 0x0080($s0) ## 00000080
|
||||
/* 00978 809C3048 3C01C6FA */ lui $at, 0xC6FA ## $at = C6FA0000
|
||||
/* 0097C 809C304C 44815000 */ mtc1 $at, $f10 ## $f10 = -32000.00
|
||||
/* 00980 809C3050 E7A80064 */ swc1 $f8, 0x0064($sp)
|
||||
/* 00984 809C3054 C6100080 */ lwc1 $f16, 0x0080($s0) ## 00000080
|
||||
/* 00988 809C3058 8FA30038 */ lw $v1, 0x0038($sp)
|
||||
/* 0098C 809C305C 8FA40094 */ lw $a0, 0x0094($sp)
|
||||
/* 00990 809C3060 4610503C */ c.lt.s $f10, $f16
|
||||
/* 00994 809C3064 27A50060 */ addiu $a1, $sp, 0x0060 ## $a1 = FFFFFFD0
|
||||
/* 00998 809C3068 27A60084 */ addiu $a2, $sp, 0x0084 ## $a2 = FFFFFFF4
|
||||
/* 0099C 809C306C 27A7006C */ addiu $a3, $sp, 0x006C ## $a3 = FFFFFFDC
|
||||
/* 009A0 809C3070 45020005 */ bc1fl .L809C3088
|
||||
/* 009A4 809C3074 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 009A8 809C3078 0C00A409 */ jal func_80029024
|
||||
/* 009AC 809C307C AFA30038 */ sw $v1, 0x0038($sp)
|
||||
/* 009B0 809C3080 8FA30038 */ lw $v1, 0x0038($sp)
|
||||
/* 009B4 809C3084 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L809C3088:
|
||||
/* 009B8 809C3088 2405180E */ addiu $a1, $zero, 0x180E ## $a1 = 0000180E
|
||||
/* 009BC 809C308C 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 009C0 809C3090 AFA30038 */ sw $v1, 0x0038($sp)
|
||||
/* 009C4 809C3094 8FA30038 */ lw $v1, 0x0038($sp)
|
||||
/* 009C8 809C3098 8FA90094 */ lw $t1, 0x0094($sp)
|
||||
/* 009CC 809C309C 240800FA */ addiu $t0, $zero, 0x00FA ## $t0 = 000000FA
|
||||
/* 009D0 809C30A0 A4680ABA */ sh $t0, 0x0ABA($v1) ## 00000ABA
|
||||
/* 009D4 809C30A4 84620ABA */ lh $v0, 0x0ABA($v1) ## 00000ABA
|
||||
/* 009D8 809C30A8 A4680AB4 */ sh $t0, 0x0AB4($v1) ## 00000AB4
|
||||
/* 009DC 809C30AC 24050002 */ addiu $a1, $zero, 0x0002 ## $a1 = 00000002
|
||||
/* 009E0 809C30B0 A4620AB8 */ sh $v0, 0x0AB8($v1) ## 00000AB8
|
||||
/* 009E4 809C30B4 A4620AB6 */ sh $v0, 0x0AB6($v1) ## 00000AB6
|
||||
/* 009E8 809C30B8 84620AB4 */ lh $v0, 0x0AB4($v1) ## 00000AB4
|
||||
/* 009EC 809C30BC 2406000B */ addiu $a2, $zero, 0x000B ## $a2 = 0000000B
|
||||
/* 009F0 809C30C0 24070008 */ addiu $a3, $zero, 0x0008 ## $a3 = 00000008
|
||||
/* 009F4 809C30C4 252401E0 */ addiu $a0, $t1, 0x01E0 ## $a0 = 000001E0
|
||||
/* 009F8 809C30C8 A4620AB2 */ sh $v0, 0x0AB2($v1) ## 00000AB2
|
||||
/* 009FC 809C30CC 0C016A87 */ jal func_8005AA1C
|
||||
/* 00A00 809C30D0 A4620AB0 */ sh $v0, 0x0AB0($v1) ## 00000AB0
|
||||
/* 00A04 809C30D4 8E0B0004 */ lw $t3, 0x0004($s0) ## 00000004
|
||||
/* 00A08 809C30D8 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
|
||||
/* 00A0C 809C30DC 2418000A */ addiu $t8, $zero, 0x000A ## $t8 = 0000000A
|
||||
/* 00A10 809C30E0 3C05809C */ lui $a1, %hi(func_809C2A38) ## $a1 = 809C0000
|
||||
/* 00A14 809C30E4 356C0020 */ ori $t4, $t3, 0x0020 ## $t4 = 00000020
|
||||
/* 00A18 809C30E8 A60A001C */ sh $t2, 0x001C($s0) ## 0000001C
|
||||
/* 00A1C 809C30EC A61801F8 */ sh $t8, 0x01F8($s0) ## 000001F8
|
||||
/* 00A20 809C30F0 AE0C0004 */ sw $t4, 0x0004($s0) ## 00000004
|
||||
/* 00A24 809C30F4 24A52A38 */ addiu $a1, $a1, %lo(func_809C2A38) ## $a1 = 809C2A38
|
||||
/* 00A28 809C30F8 0C2709B4 */ jal func_809C26D0
|
||||
/* 00A2C 809C30FC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L809C3100:
|
||||
/* 00A30 809C3100 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L809C3104:
|
||||
/* 00A34 809C3104 0C00B56E */ jal Actor_SetHeight
|
||||
|
||||
/* 00A38 809C3108 3C0541A0 */ lui $a1, 0x41A0 ## $a1 = 41A00000
|
||||
/* 00A3C 809C310C 860D001C */ lh $t5, 0x001C($s0) ## 0000001C
|
||||
/* 00A40 809C3110 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00A44 809C3114 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
|
||||
/* 00A48 809C3118 1DA00016 */ bgtz $t5, .L809C3174
|
||||
/* 00A4C 809C311C 00000000 */ nop
|
||||
/* 00A50 809C3120 0C0189B7 */ jal Collider_CylinderUpdate
|
||||
|
||||
/* 00A54 809C3124 AFA50038 */ sw $a1, 0x0038($sp)
|
||||
/* 00A58 809C3128 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00A5C 809C312C 0C00BD04 */ jal func_8002F410
|
||||
/* 00A60 809C3130 8FA50094 */ lw $a1, 0x0094($sp)
|
||||
/* 00A64 809C3134 5440000A */ bnel $v0, $zero, .L809C3160
|
||||
/* 00A68 809C3138 8FA40094 */ lw $a0, 0x0094($sp)
|
||||
/* 00A6C 809C313C 920E0200 */ lbu $t6, 0x0200($s0) ## 00000200
|
||||
/* 00A70 809C3140 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00A74 809C3144 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
||||
/* 00A78 809C3148 11C00004 */ beq $t6, $zero, .L809C315C
|
||||
/* 00A7C 809C314C 8FA40094 */ lw $a0, 0x0094($sp)
|
||||
/* 00A80 809C3150 00812821 */ addu $a1, $a0, $at
|
||||
/* 00A84 809C3154 0C017713 */ jal CollisionCheck_SetOC
|
||||
## CollisionCheck_setOT
|
||||
/* 00A88 809C3158 8FA60038 */ lw $a2, 0x0038($sp)
|
||||
.L809C315C:
|
||||
/* 00A8C 809C315C 8FA40094 */ lw $a0, 0x0094($sp)
|
||||
.L809C3160:
|
||||
/* 00A90 809C3160 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00A94 809C3164 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
||||
/* 00A98 809C3168 8FA60038 */ lw $a2, 0x0038($sp)
|
||||
/* 00A9C 809C316C 0C01767D */ jal CollisionCheck_SetAC
|
||||
## CollisionCheck_setAC
|
||||
/* 00AA0 809C3170 00812821 */ addu $a1, $a0, $at
|
||||
.L809C3174:
|
||||
/* 00AA4 809C3174 3C01809C */ lui $at, %hi(D_809C3528) ## $at = 809C0000
|
||||
/* 00AA8 809C3178 C4243528 */ lwc1 $f4, %lo(D_809C3528)($at)
|
||||
/* 00AAC 809C317C C6120050 */ lwc1 $f18, 0x0050($s0) ## 00000050
|
||||
/* 00AB0 809C3180 4612203E */ c.le.s $f4, $f18
|
||||
/* 00AB4 809C3184 00000000 */ nop
|
||||
/* 00AB8 809C3188 4502001F */ bc1fl .L809C3208
|
||||
/* 00ABC 809C318C 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 00AC0 809C3190 860A001C */ lh $t2, 0x001C($s0) ## 0000001C
|
||||
/* 00AC4 809C3194 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
|
||||
/* 00AC8 809C3198 1141001A */ beq $t2, $at, .L809C3204
|
||||
/* 00ACC 809C319C 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
|
||||
/* 00AD0 809C31A0 44814000 */ mtc1 $at, $f8 ## $f8 = 20.00
|
||||
/* 00AD4 809C31A4 C6060084 */ lwc1 $f6, 0x0084($s0) ## 00000084
|
||||
/* 00AD8 809C31A8 8FA40094 */ lw $a0, 0x0094($sp)
|
||||
/* 00ADC 809C31AC 260500E4 */ addiu $a1, $s0, 0x00E4 ## $a1 = 000000E4
|
||||
/* 00AE0 809C31B0 4606403E */ c.le.s $f8, $f6
|
||||
/* 00AE4 809C31B4 2406180F */ addiu $a2, $zero, 0x180F ## $a2 = 0000180F
|
||||
/* 00AE8 809C31B8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 00AEC 809C31BC 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
|
||||
/* 00AF0 809C31C0 45000008 */ bc1f .L809C31E4
|
||||
/* 00AF4 809C31C4 240B000A */ addiu $t3, $zero, 0x000A ## $t3 = 0000000A
|
||||
/* 00AF8 809C31C8 AFB80010 */ sw $t8, 0x0010($sp)
|
||||
/* 00AFC 809C31CC 0C00AA7D */ jal func_8002A9F4
|
||||
/* 00B00 809C31D0 AFAB0014 */ sw $t3, 0x0014($sp)
|
||||
/* 00B04 809C31D4 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 00B08 809C31D8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00B0C 809C31DC 1000000A */ beq $zero, $zero, .L809C3208
|
||||
/* 00B10 809C31E0 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
.L809C31E4:
|
||||
/* 00B14 809C31E4 96020088 */ lhu $v0, 0x0088($s0) ## 00000088
|
||||
/* 00B18 809C31E8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00B1C 809C31EC 24052817 */ addiu $a1, $zero, 0x2817 ## $a1 = 00002817
|
||||
/* 00B20 809C31F0 304C0040 */ andi $t4, $v0, 0x0040 ## $t4 = 00000000
|
||||
/* 00B24 809C31F4 11800003 */ beq $t4, $zero, .L809C3204
|
||||
/* 00B28 809C31F8 304DFFBF */ andi $t5, $v0, 0xFFBF ## $t5 = 00000000
|
||||
/* 00B2C 809C31FC 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 00B30 809C3200 A60D0088 */ sh $t5, 0x0088($s0) ## 00000088
|
||||
.L809C3204:
|
||||
/* 00B34 809C3204 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
.L809C3208:
|
||||
/* 00B38 809C3208 8FB00028 */ lw $s0, 0x0028($sp)
|
||||
/* 00B3C 809C320C 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000
|
||||
/* 00B40 809C3210 03E00008 */ jr $ra
|
||||
/* 00B44 809C3214 00000000 */ nop
|
@ -1,3 +0,0 @@
|
||||
glabel func_809C26D0
|
||||
/* 00000 809C26D0 03E00008 */ jr $ra
|
||||
/* 00004 809C26D4 AC850204 */ sw $a1, 0x0204($a0) ## 00000204
|
@ -1,137 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_809C3510
|
||||
.float 0.7
|
||||
|
||||
glabel D_809C3514
|
||||
.word 0xBE99999A
|
||||
|
||||
.text
|
||||
glabel func_809C282C
|
||||
/* 0015C 809C282C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 00160 809C2830 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00164 809C2834 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00168 809C2838 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 0016C 809C283C 0C00BD04 */ jal func_8002F410
|
||||
/* 00170 809C2840 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00174 809C2844 10400007 */ beq $v0, $zero, .L809C2864
|
||||
/* 00178 809C2848 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0017C 809C284C 3C05809C */ lui $a1, %hi(func_809C29F4) ## $a1 = 809C0000
|
||||
/* 00180 809C2850 0C2709B4 */ jal func_809C26D0
|
||||
/* 00184 809C2854 24A529F4 */ addiu $a1, $a1, %lo(func_809C29F4) ## $a1 = 809C29F4
|
||||
/* 00188 809C2858 240EFFFF */ addiu $t6, $zero, 0xFFFF ## $t6 = FFFFFFFF
|
||||
/* 0018C 809C285C 10000060 */ beq $zero, $zero, .L809C29E0
|
||||
/* 00190 809C2860 A20E0003 */ sb $t6, 0x0003($s0) ## 00000003
|
||||
.L809C2864:
|
||||
/* 00194 809C2864 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
|
||||
/* 00198 809C2868 C6000060 */ lwc1 $f0, 0x0060($s0) ## 00000060
|
||||
/* 0019C 809C286C 4600103C */ c.lt.s $f2, $f0
|
||||
/* 001A0 809C2870 00000000 */ nop
|
||||
/* 001A4 809C2874 45020008 */ bc1fl .L809C2898
|
||||
/* 001A8 809C2878 C6060068 */ lwc1 $f6, 0x0068($s0) ## 00000068
|
||||
/* 001AC 809C287C 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088
|
||||
/* 001B0 809C2880 31F80010 */ andi $t8, $t7, 0x0010 ## $t8 = 00000000
|
||||
/* 001B4 809C2884 53000004 */ beql $t8, $zero, .L809C2898
|
||||
/* 001B8 809C2888 C6060068 */ lwc1 $f6, 0x0068($s0) ## 00000068
|
||||
/* 001BC 809C288C 46000107 */ neg.s $f4, $f0
|
||||
/* 001C0 809C2890 E6040060 */ swc1 $f4, 0x0060($s0) ## 00000060
|
||||
/* 001C4 809C2894 C6060068 */ lwc1 $f6, 0x0068($s0) ## 00000068
|
||||
.L809C2898:
|
||||
/* 001C8 809C2898 96020088 */ lhu $v0, 0x0088($s0) ## 00000088
|
||||
/* 001CC 809C289C 46061032 */ c.eq.s $f2, $f6
|
||||
/* 001D0 809C28A0 30590008 */ andi $t9, $v0, 0x0008 ## $t9 = 00000000
|
||||
/* 001D4 809C28A4 45030022 */ bc1tl .L809C2930
|
||||
/* 001D8 809C28A8 304D0001 */ andi $t5, $v0, 0x0001 ## $t5 = 00000000
|
||||
/* 001DC 809C28AC 53200020 */ beql $t9, $zero, .L809C2930
|
||||
/* 001E0 809C28B0 304D0001 */ andi $t5, $v0, 0x0001 ## $t5 = 00000000
|
||||
/* 001E4 809C28B4 8603007E */ lh $v1, 0x007E($s0) ## 0000007E
|
||||
/* 001E8 809C28B8 86080032 */ lh $t0, 0x0032($s0) ## 00000032
|
||||
/* 001EC 809C28BC 00682023 */ subu $a0, $v1, $t0
|
||||
/* 001F0 809C28C0 00041400 */ sll $v0, $a0, 16
|
||||
/* 001F4 809C28C4 00021403 */ sra $v0, $v0, 16
|
||||
/* 001F8 809C28C8 04400003 */ bltz $v0, .L809C28D8
|
||||
/* 001FC 809C28CC 00022823 */ subu $a1, $zero, $v0
|
||||
/* 00200 809C28D0 10000001 */ beq $zero, $zero, .L809C28D8
|
||||
/* 00204 809C28D4 00402825 */ or $a1, $v0, $zero ## $a1 = 00000000
|
||||
.L809C28D8:
|
||||
/* 00208 809C28D8 28A14001 */ slti $at, $a1, 0x4001
|
||||
/* 0020C 809C28DC 14200005 */ bne $at, $zero, .L809C28F4
|
||||
/* 00210 809C28E0 2405282F */ addiu $a1, $zero, 0x282F ## $a1 = 0000282F
|
||||
/* 00214 809C28E4 00834821 */ addu $t1, $a0, $v1
|
||||
/* 00218 809C28E8 24018000 */ addiu $at, $zero, 0x8000 ## $at = FFFF8000
|
||||
/* 0021C 809C28EC 01215021 */ addu $t2, $t1, $at
|
||||
/* 00220 809C28F0 A60A0032 */ sh $t2, 0x0032($s0) ## 00000032
|
||||
.L809C28F4:
|
||||
/* 00224 809C28F4 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 00228 809C28F8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0022C 809C28FC 0C00B638 */ jal Actor_MoveForward
|
||||
|
||||
/* 00230 809C2900 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00234 809C2904 3C01809C */ lui $at, %hi(D_809C3510) ## $at = 809C0000
|
||||
/* 00238 809C2908 C42A3510 */ lwc1 $f10, %lo(D_809C3510)($at)
|
||||
/* 0023C 809C290C C6080068 */ lwc1 $f8, 0x0068($s0) ## 00000068
|
||||
/* 00240 809C2910 960B0088 */ lhu $t3, 0x0088($s0) ## 00000088
|
||||
/* 00244 809C2914 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
|
||||
/* 00248 809C2918 460A4402 */ mul.s $f16, $f8, $f10
|
||||
/* 0024C 809C291C 316CFFF7 */ andi $t4, $t3, 0xFFF7 ## $t4 = 00000000
|
||||
/* 00250 809C2920 A60C0088 */ sh $t4, 0x0088($s0) ## 00000088
|
||||
/* 00254 809C2924 3182FFFF */ andi $v0, $t4, 0xFFFF ## $v0 = 00000000
|
||||
/* 00258 809C2928 E6100068 */ swc1 $f16, 0x0068($s0) ## 00000068
|
||||
/* 0025C 809C292C 304D0001 */ andi $t5, $v0, 0x0001 ## $t5 = 00000000
|
||||
.L809C2930:
|
||||
/* 00260 809C2930 15A00008 */ bne $t5, $zero, .L809C2954
|
||||
/* 00264 809C2934 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
|
||||
/* 00268 809C2938 44051000 */ mfc1 $a1, $f2
|
||||
/* 0026C 809C293C 3C063DA3 */ lui $a2, 0x3DA3 ## $a2 = 3DA30000
|
||||
/* 00270 809C2940 34C6D70A */ ori $a2, $a2, 0xD70A ## $a2 = 3DA3D70A
|
||||
/* 00274 809C2944 0C01DE80 */ jal Math_ApproxF
|
||||
|
||||
/* 00278 809C2948 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
|
||||
/* 0027C 809C294C 10000022 */ beq $zero, $zero, .L809C29D8
|
||||
/* 00280 809C2950 00000000 */ nop
|
||||
.L809C2954:
|
||||
/* 00284 809C2954 44051000 */ mfc1 $a1, $f2
|
||||
/* 00288 809C2958 0C01DE80 */ jal Math_ApproxF
|
||||
|
||||
/* 0028C 809C295C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
|
||||
/* 00290 809C2960 960E0088 */ lhu $t6, 0x0088($s0) ## 00000088
|
||||
/* 00294 809C2964 3C01C040 */ lui $at, 0xC040 ## $at = C0400000
|
||||
/* 00298 809C2968 31CF0002 */ andi $t7, $t6, 0x0002 ## $t7 = 00000000
|
||||
/* 0029C 809C296C 51E00014 */ beql $t7, $zero, .L809C29C0
|
||||
/* 002A0 809C2970 860801F8 */ lh $t0, 0x01F8($s0) ## 000001F8
|
||||
/* 002A4 809C2974 C6120060 */ lwc1 $f18, 0x0060($s0) ## 00000060
|
||||
/* 002A8 809C2978 44812000 */ mtc1 $at, $f4 ## $f4 = -3.00
|
||||
/* 002AC 809C297C 8FA40024 */ lw $a0, 0x0024($sp)
|
||||
/* 002B0 809C2980 4604903C */ c.lt.s $f18, $f4
|
||||
/* 002B4 809C2984 00000000 */ nop
|
||||
/* 002B8 809C2988 4502000D */ bc1fl .L809C29C0
|
||||
/* 002BC 809C298C 860801F8 */ lh $t0, 0x01F8($s0) ## 000001F8
|
||||
/* 002C0 809C2990 0C00BE14 */ jal func_8002F850
|
||||
/* 002C4 809C2994 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 002C8 809C2998 3C01809C */ lui $at, %hi(D_809C3514) ## $at = 809C0000
|
||||
/* 002CC 809C299C C4283514 */ lwc1 $f8, %lo(D_809C3514)($at)
|
||||
/* 002D0 809C29A0 C6060060 */ lwc1 $f6, 0x0060($s0) ## 00000060
|
||||
/* 002D4 809C29A4 96180088 */ lhu $t8, 0x0088($s0) ## 00000088
|
||||
/* 002D8 809C29A8 46083282 */ mul.s $f10, $f6, $f8
|
||||
/* 002DC 809C29AC 3319FFFD */ andi $t9, $t8, 0xFFFD ## $t9 = 00000000
|
||||
/* 002E0 809C29B0 A6190088 */ sh $t9, 0x0088($s0) ## 00000088
|
||||
/* 002E4 809C29B4 10000008 */ beq $zero, $zero, .L809C29D8
|
||||
/* 002E8 809C29B8 E60A0060 */ swc1 $f10, 0x0060($s0) ## 00000060
|
||||
/* 002EC 809C29BC 860801F8 */ lh $t0, 0x01F8($s0) ## 000001F8
|
||||
.L809C29C0:
|
||||
/* 002F0 809C29C0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 002F4 809C29C4 29010004 */ slti $at, $t0, 0x0004
|
||||
/* 002F8 809C29C8 14200003 */ bne $at, $zero, .L809C29D8
|
||||
/* 002FC 809C29CC 00000000 */ nop
|
||||
/* 00300 809C29D0 0C00BD60 */ jal func_8002F580
|
||||
/* 00304 809C29D4 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
.L809C29D8:
|
||||
/* 00308 809C29D8 0C00B638 */ jal Actor_MoveForward
|
||||
|
||||
/* 0030C 809C29DC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L809C29E0:
|
||||
/* 00310 809C29E0 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00314 809C29E4 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 00318 809C29E8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 0031C 809C29EC 03E00008 */ jr $ra
|
||||
/* 00320 809C29F0 00000000 */ nop
|
@ -1,19 +0,0 @@
|
||||
glabel func_809C29F4
|
||||
/* 00324 809C29F4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00328 809C29F8 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 0032C 809C29FC AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 00330 809C2A00 0C00BD68 */ jal func_8002F5A0
|
||||
/* 00334 809C2A04 AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 00338 809C2A08 10400007 */ beq $v0, $zero, .L809C2A28
|
||||
/* 0033C 809C2A0C 8FA40018 */ lw $a0, 0x0018($sp)
|
||||
/* 00340 809C2A10 3C05809C */ lui $a1, %hi(func_809C282C) ## $a1 = 809C0000
|
||||
/* 00344 809C2A14 0C2709B4 */ jal func_809C26D0
|
||||
/* 00348 809C2A18 24A5282C */ addiu $a1, $a1, %lo(func_809C282C) ## $a1 = 809C282C
|
||||
/* 0034C 809C2A1C 8FA40018 */ lw $a0, 0x0018($sp)
|
||||
/* 00350 809C2A20 0C270A0B */ jal func_809C282C
|
||||
/* 00354 809C2A24 8FA5001C */ lw $a1, 0x001C($sp)
|
||||
.L809C2A28:
|
||||
/* 00358 809C2A28 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 0035C 809C2A2C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00360 809C2A30 03E00008 */ jr $ra
|
||||
/* 00364 809C2A34 00000000 */ nop
|
@ -1,97 +0,0 @@
|
||||
glabel func_809C2A38
|
||||
/* 00368 809C2A38 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 0036C 809C2A3C AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00370 809C2A40 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00374 809C2A44 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00378 809C2A48 8C8201B4 */ lw $v0, 0x01B4($a0) ## 000001B4
|
||||
/* 0037C 809C2A4C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00380 809C2A50 240500FF */ addiu $a1, $zero, 0x00FF ## $a1 = 000000FF
|
||||
/* 00384 809C2A54 844E002E */ lh $t6, 0x002E($v0) ## 0000002E
|
||||
/* 00388 809C2A58 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014
|
||||
/* 0038C 809C2A5C 55C00009 */ bnel $t6, $zero, .L809C2A84
|
||||
/* 00390 809C2A60 84590036 */ lh $t9, 0x0036($v0) ## 00000036
|
||||
/* 00394 809C2A64 8C8F0004 */ lw $t7, 0x0004($a0) ## 00000004
|
||||
/* 00398 809C2A68 C48C0090 */ lwc1 $f12, 0x0090($a0) ## 00000090
|
||||
/* 0039C 809C2A6C 24070096 */ addiu $a3, $zero, 0x0096 ## $a3 = 00000096
|
||||
/* 003A0 809C2A70 35F80020 */ ori $t8, $t7, 0x0020 ## $t8 = 00000020
|
||||
/* 003A4 809C2A74 0C02A800 */ jal func_800AA000
|
||||
/* 003A8 809C2A78 AC980004 */ sw $t8, 0x0004($a0) ## 00000004
|
||||
/* 003AC 809C2A7C 8E0201B4 */ lw $v0, 0x01B4($s0) ## 000001B4
|
||||
/* 003B0 809C2A80 84590036 */ lh $t9, 0x0036($v0) ## 00000036
|
||||
.L809C2A84:
|
||||
/* 003B4 809C2A84 860800B8 */ lh $t0, 0x00B8($s0) ## 000000B8
|
||||
/* 003B8 809C2A88 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
|
||||
/* 003BC 809C2A8C 26060198 */ addiu $a2, $s0, 0x0198 ## $a2 = 00000198
|
||||
/* 003C0 809C2A90 03284821 */ addu $t1, $t9, $t0
|
||||
/* 003C4 809C2A94 252A0008 */ addiu $t2, $t1, 0x0008 ## $t2 = 00000008
|
||||
/* 003C8 809C2A98 A44A0036 */ sh $t2, 0x0036($v0) ## 00000036
|
||||
/* 003CC 809C2A9C 860B001C */ lh $t3, 0x001C($s0) ## 0000001C
|
||||
/* 003D0 809C2AA0 8FA40024 */ lw $a0, 0x0024($sp)
|
||||
/* 003D4 809C2AA4 15610004 */ bne $t3, $at, .L809C2AB8
|
||||
/* 003D8 809C2AA8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 003DC 809C2AAC 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
||||
/* 003E0 809C2AB0 0C0175E7 */ jal CollisionCheck_SetAT
|
||||
## CollisionCheck_setAT
|
||||
/* 003E4 809C2AB4 00812821 */ addu $a1, $a0, $at
|
||||
.L809C2AB8:
|
||||
/* 003E8 809C2AB8 8FA20024 */ lw $v0, 0x0024($sp)
|
||||
/* 003EC 809C2ABC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 003F0 809C2AC0 00411021 */ addu $v0, $v0, $at
|
||||
/* 003F4 809C2AC4 84430AB6 */ lh $v1, 0x0AB6($v0) ## 00000AB6
|
||||
/* 003F8 809C2AC8 10600002 */ beq $v1, $zero, .L809C2AD4
|
||||
/* 003FC 809C2ACC 246DFFE7 */ addiu $t5, $v1, 0xFFE7 ## $t5 = FFFFFFE7
|
||||
/* 00400 809C2AD0 A44D0AB6 */ sh $t5, 0x0AB6($v0) ## 00000AB6
|
||||
.L809C2AD4:
|
||||
/* 00404 809C2AD4 84430AB8 */ lh $v1, 0x0AB8($v0) ## 00000AB8
|
||||
/* 00408 809C2AD8 10600002 */ beq $v1, $zero, .L809C2AE4
|
||||
/* 0040C 809C2ADC 246EFFE7 */ addiu $t6, $v1, 0xFFE7 ## $t6 = FFFFFFE7
|
||||
/* 00410 809C2AE0 A44E0AB8 */ sh $t6, 0x0AB8($v0) ## 00000AB8
|
||||
.L809C2AE4:
|
||||
/* 00414 809C2AE4 84430ABA */ lh $v1, 0x0ABA($v0) ## 00000ABA
|
||||
/* 00418 809C2AE8 10600002 */ beq $v1, $zero, .L809C2AF4
|
||||
/* 0041C 809C2AEC 246FFFE7 */ addiu $t7, $v1, 0xFFE7 ## $t7 = FFFFFFE7
|
||||
/* 00420 809C2AF0 A44F0ABA */ sh $t7, 0x0ABA($v0) ## 00000ABA
|
||||
.L809C2AF4:
|
||||
/* 00424 809C2AF4 84430AB0 */ lh $v1, 0x0AB0($v0) ## 00000AB0
|
||||
/* 00428 809C2AF8 10600002 */ beq $v1, $zero, .L809C2B04
|
||||
/* 0042C 809C2AFC 2478FFE7 */ addiu $t8, $v1, 0xFFE7 ## $t8 = FFFFFFE7
|
||||
/* 00430 809C2B00 A4580AB0 */ sh $t8, 0x0AB0($v0) ## 00000AB0
|
||||
.L809C2B04:
|
||||
/* 00434 809C2B04 84430AB2 */ lh $v1, 0x0AB2($v0) ## 00000AB2
|
||||
/* 00438 809C2B08 10600002 */ beq $v1, $zero, .L809C2B14
|
||||
/* 0043C 809C2B0C 2479FFE7 */ addiu $t9, $v1, 0xFFE7 ## $t9 = FFFFFFE7
|
||||
/* 00440 809C2B10 A4590AB2 */ sh $t9, 0x0AB2($v0) ## 00000AB2
|
||||
.L809C2B14:
|
||||
/* 00444 809C2B14 84430AB4 */ lh $v1, 0x0AB4($v0) ## 00000AB4
|
||||
/* 00448 809C2B18 10600002 */ beq $v1, $zero, .L809C2B24
|
||||
/* 0044C 809C2B1C 2468FFE7 */ addiu $t0, $v1, 0xFFE7 ## $t0 = FFFFFFE7
|
||||
/* 00450 809C2B20 A4480AB4 */ sh $t0, 0x0AB4($v0) ## 00000AB4
|
||||
.L809C2B24:
|
||||
/* 00454 809C2B24 860901F8 */ lh $t1, 0x01F8($s0) ## 000001F8
|
||||
/* 00458 809C2B28 8FAA0024 */ lw $t2, 0x0024($sp)
|
||||
/* 0045C 809C2B2C 55200012 */ bnel $t1, $zero, .L809C2B78
|
||||
/* 00460 809C2B30 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00464 809C2B34 8D421C44 */ lw $v0, 0x1C44($t2) ## 00001C44
|
||||
/* 00468 809C2B38 8C43067C */ lw $v1, 0x067C($v0) ## 0000067C
|
||||
/* 0046C 809C2B3C 306B0800 */ andi $t3, $v1, 0x0800 ## $t3 = 00000000
|
||||
/* 00470 809C2B40 1160000A */ beq $t3, $zero, .L809C2B6C
|
||||
/* 00474 809C2B44 00000000 */ nop
|
||||
/* 00478 809C2B48 8C4C03AC */ lw $t4, 0x03AC($v0) ## 000003AC
|
||||
/* 0047C 809C2B4C 2401F7FF */ addiu $at, $zero, 0xF7FF ## $at = FFFFF7FF
|
||||
/* 00480 809C2B50 00616824 */ and $t5, $v1, $at
|
||||
/* 00484 809C2B54 160C0005 */ bne $s0, $t4, .L809C2B6C
|
||||
/* 00488 809C2B58 00000000 */ nop
|
||||
/* 0048C 809C2B5C AC40011C */ sw $zero, 0x011C($v0) ## 0000011C
|
||||
/* 00490 809C2B60 AC4003AC */ sw $zero, 0x03AC($v0) ## 000003AC
|
||||
/* 00494 809C2B64 AC400438 */ sw $zero, 0x0438($v0) ## 00000438
|
||||
/* 00498 809C2B68 AC4D067C */ sw $t5, 0x067C($v0) ## 0000067C
|
||||
.L809C2B6C:
|
||||
/* 0049C 809C2B6C 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 004A0 809C2B70 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 004A4 809C2B74 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L809C2B78:
|
||||
/* 004A8 809C2B78 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 004AC 809C2B7C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 004B0 809C2B80 03E00008 */ jr $ra
|
||||
/* 004B4 809C2B84 00000000 */ nop
|
@ -1,18 +0,0 @@
|
||||
glabel EnBombf_Destroy
|
||||
/* 001E0 809C7140 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 001E4 809C7144 AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 001E8 809C7148 AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 001EC 809C714C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 001F0 809C7150 8FA50018 */ lw $a1, 0x0018($sp)
|
||||
/* 001F4 809C7154 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 001F8 809C7158 0C0170EB */ jal Collider_DestroyCylinder
|
||||
|
||||
/* 001FC 809C715C 24A5014C */ addiu $a1, $a1, 0x014C ## $a1 = 0000014C
|
||||
/* 00200 809C7160 8FA50018 */ lw $a1, 0x0018($sp)
|
||||
/* 00204 809C7164 8FA4001C */ lw $a0, 0x001C($sp)
|
||||
/* 00208 809C7168 0C016F32 */ jal Collider_DestroyJntSph
|
||||
/* 0020C 809C716C 24A50198 */ addiu $a1, $a1, 0x0198 ## $a1 = 00000198
|
||||
/* 00210 809C7170 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00214 809C7174 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00218 809C7178 03E00008 */ jr $ra
|
||||
/* 0021C 809C717C 00000000 */ nop
|
@ -1,185 +0,0 @@
|
||||
.rdata
|
||||
glabel D_809C8310
|
||||
.asciz "../z_en_bombf.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_809C8320
|
||||
.asciz "../z_en_bombf.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_809C8330
|
||||
.asciz "../z_en_bombf.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_809C8340
|
||||
.asciz "../z_en_bombf.c"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel EnBombf_Draw
|
||||
/* 01054 809C7FB4 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
|
||||
/* 01058 809C7FB8 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 0105C 809C7FBC AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 01060 809C7FC0 AFA40068 */ sw $a0, 0x0068($sp)
|
||||
/* 01064 809C7FC4 AFA5006C */ sw $a1, 0x006C($sp)
|
||||
/* 01068 809C7FC8 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
|
||||
/* 0106C 809C7FCC 3C06809D */ lui $a2, %hi(D_809C8310) ## $a2 = 809D0000
|
||||
/* 01070 809C7FD0 24C68310 */ addiu $a2, $a2, %lo(D_809C8310) ## $a2 = 809C8310
|
||||
/* 01074 809C7FD4 27A4004C */ addiu $a0, $sp, 0x004C ## $a0 = FFFFFFE4
|
||||
/* 01078 809C7FD8 2407040A */ addiu $a3, $zero, 0x040A ## $a3 = 0000040A
|
||||
/* 0107C 809C7FDC 0C031AB1 */ jal Graph_OpenDisps
|
||||
/* 01080 809C7FE0 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
|
||||
/* 01084 809C7FE4 8FA20068 */ lw $v0, 0x0068($sp)
|
||||
/* 01088 809C7FE8 8FB8006C */ lw $t8, 0x006C($sp)
|
||||
/* 0108C 809C7FEC 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
|
||||
/* 01090 809C7FF0 844F001C */ lh $t7, 0x001C($v0) ## 0000001C
|
||||
/* 01094 809C7FF4 1DE00083 */ bgtz $t7, .L809C8204
|
||||
/* 01098 809C7FF8 00000000 */ nop
|
||||
/* 0109C 809C7FFC 0C024F46 */ jal func_80093D18
|
||||
/* 010A0 809C8000 8F040000 */ lw $a0, 0x0000($t8) ## 00000000
|
||||
/* 010A4 809C8004 8FB90068 */ lw $t9, 0x0068($sp)
|
||||
/* 010A8 809C8008 3C0ADA38 */ lui $t2, 0xDA38 ## $t2 = DA380000
|
||||
/* 010AC 809C800C 8728001C */ lh $t0, 0x001C($t9) ## 0000001C
|
||||
/* 010B0 809C8010 5100002B */ beql $t0, $zero, .L809C80C0
|
||||
/* 010B4 809C8014 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 010B8 809C8018 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 010BC 809C801C 354A0003 */ ori $t2, $t2, 0x0003 ## $t2 = DA380003
|
||||
/* 010C0 809C8020 3C05809D */ lui $a1, %hi(D_809C8320) ## $a1 = 809D0000
|
||||
/* 010C4 809C8024 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
|
||||
/* 010C8 809C8028 AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0
|
||||
/* 010CC 809C802C AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
|
||||
/* 010D0 809C8030 8FAB006C */ lw $t3, 0x006C($sp)
|
||||
/* 010D4 809C8034 24A58320 */ addiu $a1, $a1, %lo(D_809C8320) ## $a1 = 809C8320
|
||||
/* 010D8 809C8038 24060411 */ addiu $a2, $zero, 0x0411 ## $a2 = 00000411
|
||||
/* 010DC 809C803C 8D640000 */ lw $a0, 0x0000($t3) ## 00000000
|
||||
/* 010E0 809C8040 0C0346A2 */ jal Matrix_NewMtx
|
||||
/* 010E4 809C8044 AFA20048 */ sw $v0, 0x0048($sp)
|
||||
/* 010E8 809C8048 8FA30048 */ lw $v1, 0x0048($sp)
|
||||
/* 010EC 809C804C 3C0D0600 */ lui $t5, 0x0600 ## $t5 = 06000000
|
||||
/* 010F0 809C8050 25AD0340 */ addiu $t5, $t5, 0x0340 ## $t5 = 06000340
|
||||
/* 010F4 809C8054 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 010F8 809C8058 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 010FC 809C805C 3C04DE00 */ lui $a0, 0xDE00 ## $a0 = DE000000
|
||||
/* 01100 809C8060 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
|
||||
/* 01104 809C8064 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
|
||||
/* 01108 809C8068 AE0C02C0 */ sw $t4, 0x02C0($s0) ## 000002C0
|
||||
/* 0110C 809C806C AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
|
||||
/* 01110 809C8070 AC440000 */ sw $a0, 0x0000($v0) ## 00000000
|
||||
/* 01114 809C8074 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 01118 809C8078 3C0F0600 */ lui $t7, 0x0600 ## $t7 = 06000000
|
||||
/* 0111C 809C807C 3C01447A */ lui $at, 0x447A ## $at = 447A0000
|
||||
/* 01120 809C8080 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
|
||||
/* 01124 809C8084 AE0E02C0 */ sw $t6, 0x02C0($s0) ## 000002C0
|
||||
/* 01128 809C8088 25EF0530 */ addiu $t7, $t7, 0x0530 ## $t7 = 06000530
|
||||
/* 0112C 809C808C 44817000 */ mtc1 $at, $f14 ## $f14 = 1000.00
|
||||
/* 01130 809C8090 44066000 */ mfc1 $a2, $f12
|
||||
/* 01134 809C8094 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 01138 809C8098 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
|
||||
/* 0113C 809C809C 0C034261 */ jal Matrix_Translate
|
||||
/* 01140 809C80A0 AC440000 */ sw $a0, 0x0000($v0) ## 00000000
|
||||
/* 01144 809C80A4 8FB80068 */ lw $t8, 0x0068($sp)
|
||||
/* 01148 809C80A8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 0114C 809C80AC C70C020C */ lwc1 $f12, 0x020C($t8) ## 0000020C
|
||||
/* 01150 809C80B0 44066000 */ mfc1 $a2, $f12
|
||||
/* 01154 809C80B4 0C0342A3 */ jal Matrix_Scale
|
||||
/* 01158 809C80B8 46006386 */ mov.s $f14, $f12
|
||||
/* 0115C 809C80BC 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
.L809C80C0:
|
||||
/* 01160 809C80C0 3C09C8FF */ lui $t1, 0xC8FF ## $t1 = C8FF0000
|
||||
/* 01164 809C80C4 3529C8FF */ ori $t1, $t1, 0xC8FF ## $t1 = C8FFC8FF
|
||||
/* 01168 809C80C8 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
|
||||
/* 0116C 809C80CC AE1902C0 */ sw $t9, 0x02C0($s0) ## 000002C0
|
||||
/* 01170 809C80D0 3C08FA00 */ lui $t0, 0xFA00 ## $t0 = FA000000
|
||||
/* 01174 809C80D4 AC480000 */ sw $t0, 0x0000($v0) ## 00000000
|
||||
/* 01178 809C80D8 AC490004 */ sw $t1, 0x0004($v0) ## 00000004
|
||||
/* 0117C 809C80DC 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 01180 809C80E0 3C0BE700 */ lui $t3, 0xE700 ## $t3 = E7000000
|
||||
/* 01184 809C80E4 3C0DFB00 */ lui $t5, 0xFB00 ## $t5 = FB000000
|
||||
/* 01188 809C80E8 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
|
||||
/* 0118C 809C80EC AE0A02C0 */ sw $t2, 0x02C0($s0) ## 000002C0
|
||||
/* 01190 809C80F0 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
|
||||
/* 01194 809C80F4 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
|
||||
/* 01198 809C80F8 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 0119C 809C80FC 3C010014 */ lui $at, 0x0014 ## $at = 00140000
|
||||
/* 011A0 809C8100 3C05809D */ lui $a1, %hi(D_809C8330) ## $a1 = 809D0000
|
||||
/* 011A4 809C8104 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
|
||||
/* 011A8 809C8108 AE0C02C0 */ sw $t4, 0x02C0($s0) ## 000002C0
|
||||
/* 011AC 809C810C AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
|
||||
/* 011B0 809C8110 8FAE0068 */ lw $t6, 0x0068($sp)
|
||||
/* 011B4 809C8114 24A58330 */ addiu $a1, $a1, %lo(D_809C8330) ## $a1 = 809C8330
|
||||
/* 011B8 809C8118 2406041E */ addiu $a2, $zero, 0x041E ## $a2 = 0000041E
|
||||
/* 011BC 809C811C C5C40208 */ lwc1 $f4, 0x0208($t6) ## 00000208
|
||||
/* 011C0 809C8120 3C0EDA38 */ lui $t6, 0xDA38 ## $t6 = DA380000
|
||||
/* 011C4 809C8124 35CE0003 */ ori $t6, $t6, 0x0003 ## $t6 = DA380003
|
||||
/* 011C8 809C8128 4600218D */ trunc.w.s $f6, $f4
|
||||
/* 011CC 809C812C 44093000 */ mfc1 $t1, $f6
|
||||
/* 011D0 809C8130 00000000 */ nop
|
||||
/* 011D4 809C8134 00095600 */ sll $t2, $t1, 24
|
||||
/* 011D8 809C8138 01415825 */ or $t3, $t2, $at ## $t3 = 00140008
|
||||
/* 011DC 809C813C 356C0A00 */ ori $t4, $t3, 0x0A00 ## $t4 = 00140A08
|
||||
/* 011E0 809C8140 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
|
||||
/* 011E4 809C8144 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 011E8 809C8148 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
|
||||
/* 011EC 809C814C AE0D02C0 */ sw $t5, 0x02C0($s0) ## 000002C0
|
||||
/* 011F0 809C8150 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
|
||||
/* 011F4 809C8154 8FAF006C */ lw $t7, 0x006C($sp)
|
||||
/* 011F8 809C8158 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
|
||||
/* 011FC 809C815C 0C0346A2 */ jal Matrix_NewMtx
|
||||
/* 01200 809C8160 AFA20030 */ sw $v0, 0x0030($sp)
|
||||
/* 01204 809C8164 8FA30030 */ lw $v1, 0x0030($sp)
|
||||
/* 01208 809C8168 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000
|
||||
/* 0120C 809C816C 37390020 */ ori $t9, $t9, 0x0020 ## $t9 = DB060020
|
||||
/* 01210 809C8170 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 01214 809C8174 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 01218 809C8178 8FA5006C */ lw $a1, 0x006C($sp)
|
||||
/* 0121C 809C817C 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
|
||||
/* 01220 809C8180 AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0
|
||||
/* 01224 809C8184 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
|
||||
/* 01228 809C8188 8CA40000 */ lw $a0, 0x0000($a1) ## 00000000
|
||||
/* 0122C 809C818C 0C271FC9 */ jal func_809C7F24
|
||||
/* 01230 809C8190 AFA2002C */ sw $v0, 0x002C($sp)
|
||||
/* 01234 809C8194 8FA5006C */ lw $a1, 0x006C($sp)
|
||||
/* 01238 809C8198 AFA20024 */ sw $v0, 0x0024($sp)
|
||||
/* 0123C 809C819C 0C271FC9 */ jal func_809C7F24
|
||||
/* 01240 809C81A0 8CA40000 */ lw $a0, 0x0000($a1) ## 00000000
|
||||
/* 01244 809C81A4 8FAA0024 */ lw $t2, 0x0024($sp)
|
||||
/* 01248 809C81A8 3C0E8016 */ lui $t6, %hi(gSegments)
|
||||
/* 0124C 809C81AC 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
|
||||
/* 01250 809C81B0 000A5900 */ sll $t3, $t2, 4
|
||||
/* 01254 809C81B4 000B6702 */ srl $t4, $t3, 28
|
||||
/* 01258 809C81B8 000C6880 */ sll $t5, $t4, 2
|
||||
/* 0125C 809C81BC 01CD7021 */ addu $t6, $t6, $t5
|
||||
/* 01260 809C81C0 8DCE6FA8 */ lw $t6, %lo(gSegments)($t6)
|
||||
/* 01264 809C81C4 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
|
||||
/* 01268 809C81C8 00414824 */ and $t1, $v0, $at
|
||||
/* 0126C 809C81CC 8FB9002C */ lw $t9, 0x002C($sp)
|
||||
/* 01270 809C81D0 3C018000 */ lui $at, 0x8000 ## $at = 80000000
|
||||
/* 01274 809C81D4 012E7821 */ addu $t7, $t1, $t6
|
||||
/* 01278 809C81D8 01E1C021 */ addu $t8, $t7, $at
|
||||
/* 0127C 809C81DC AF380004 */ sw $t8, 0x0004($t9) ## 00000004
|
||||
/* 01280 809C81E0 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 01284 809C81E4 3C0B0600 */ lui $t3, 0x0600 ## $t3 = 06000000
|
||||
/* 01288 809C81E8 256B0408 */ addiu $t3, $t3, 0x0408 ## $t3 = 06000408
|
||||
/* 0128C 809C81EC 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008
|
||||
/* 01290 809C81F0 AE0802C0 */ sw $t0, 0x02C0($s0) ## 000002C0
|
||||
/* 01294 809C81F4 3C0ADE00 */ lui $t2, 0xDE00 ## $t2 = DE000000
|
||||
/* 01298 809C81F8 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
|
||||
/* 0129C 809C81FC 10000003 */ beq $zero, $zero, .L809C820C
|
||||
/* 012A0 809C8200 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
|
||||
.L809C8204:
|
||||
/* 012A4 809C8204 0C018A29 */ jal func_800628A4
|
||||
/* 012A8 809C8208 24450198 */ addiu $a1, $v0, 0x0198 ## $a1 = 00000198
|
||||
.L809C820C:
|
||||
/* 012AC 809C820C 8FAC006C */ lw $t4, 0x006C($sp)
|
||||
/* 012B0 809C8210 3C06809D */ lui $a2, %hi(D_809C8340) ## $a2 = 809D0000
|
||||
/* 012B4 809C8214 24C68340 */ addiu $a2, $a2, %lo(D_809C8340) ## $a2 = 809C8340
|
||||
/* 012B8 809C8218 27A4004C */ addiu $a0, $sp, 0x004C ## $a0 = FFFFFFE4
|
||||
/* 012BC 809C821C 24070427 */ addiu $a3, $zero, 0x0427 ## $a3 = 00000427
|
||||
/* 012C0 809C8220 0C031AD5 */ jal Graph_CloseDisps
|
||||
/* 012C4 809C8224 8D850000 */ lw $a1, 0x0000($t4) ## 00000000
|
||||
/* 012C8 809C8228 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 012CC 809C822C 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 012D0 809C8230 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000
|
||||
/* 012D4 809C8234 03E00008 */ jr $ra
|
||||
/* 012D8 809C8238 00000000 */ nop
|
||||
/* 012DC 809C823C 00000000 */ nop
|
@ -1,137 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_809C8350
|
||||
.float 10000.0
|
||||
|
||||
glabel D_809C8354
|
||||
.word 0x46F23000
|
||||
|
||||
.text
|
||||
glabel EnBombf_Init
|
||||
/* 00008 809C6F68 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
|
||||
/* 0000C 809C6F6C AFB10020 */ sw $s1, 0x0020($sp)
|
||||
/* 00010 809C6F70 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
|
||||
/* 00014 809C6F74 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
|
||||
/* 00018 809C6F78 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 0001C 809C6F7C AFB0001C */ sw $s0, 0x001C($sp)
|
||||
/* 00020 809C6F80 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
|
||||
/* 00024 809C6F84 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00028 809C6F88 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
|
||||
/* 0002C 809C6F8C 0C00B58B */ jal Actor_SetScale
|
||||
|
||||
/* 00030 809C6F90 E7A4003C */ swc1 $f4, 0x003C($sp)
|
||||
/* 00034 809C6F94 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
|
||||
/* 00038 809C6F98 AE0E0200 */ sw $t6, 0x0200($s0) ## 00000200
|
||||
/* 0003C 809C6F9C 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
|
||||
/* 00040 809C6FA0 AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 00044 809C6FA4 0C0170D9 */ jal Collider_InitCylinder
|
||||
|
||||
/* 00048 809C6FA8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 0004C 809C6FAC 26050198 */ addiu $a1, $s0, 0x0198 ## $a1 = 00000198
|
||||
/* 00050 809C6FB0 AFA50030 */ sw $a1, 0x0030($sp)
|
||||
/* 00054 809C6FB4 0C016EFE */ jal Collider_InitJntSph
|
||||
/* 00058 809C6FB8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 0005C 809C6FBC 3C07809D */ lui $a3, %hi(D_809C8260) ## $a3 = 809D0000
|
||||
/* 00060 809C6FC0 24E78260 */ addiu $a3, $a3, %lo(D_809C8260) ## $a3 = 809C8260
|
||||
/* 00064 809C6FC4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00068 809C6FC8 8FA5002C */ lw $a1, 0x002C($sp)
|
||||
/* 0006C 809C6FCC 0C01712B */ jal Collider_SetCylinder
|
||||
|
||||
/* 00070 809C6FD0 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 00074 809C6FD4 3C07809D */ lui $a3, %hi(D_809C82B0) ## $a3 = 809D0000
|
||||
/* 00078 809C6FD8 260F01B8 */ addiu $t7, $s0, 0x01B8 ## $t7 = 000001B8
|
||||
/* 0007C 809C6FDC AFAF0010 */ sw $t7, 0x0010($sp)
|
||||
/* 00080 809C6FE0 24E782B0 */ addiu $a3, $a3, %lo(D_809C82B0) ## $a3 = 809C82B0
|
||||
/* 00084 809C6FE4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00088 809C6FE8 8FA50030 */ lw $a1, 0x0030($sp)
|
||||
/* 0008C 809C6FEC 0C017014 */ jal Collider_SetJntSph
|
||||
/* 00090 809C6FF0 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 00094 809C6FF4 8618001C */ lh $t8, 0x001C($s0) ## 0000001C
|
||||
/* 00098 809C6FF8 3C068003 */ lui $a2, %hi(ActorShadow_DrawFunc_Circle)
|
||||
/* 0009C 809C6FFC 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawFunc_Circle)
|
||||
/* 000A0 809C7000 17000005 */ bne $t8, $zero, .L809C7018
|
||||
/* 000A4 809C7004 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
|
||||
/* 000A8 809C7008 3C01447A */ lui $at, 0x447A ## $at = 447A0000
|
||||
/* 000AC 809C700C 44813000 */ mtc1 $at, $f6 ## $f6 = 1000.00
|
||||
/* 000B0 809C7010 00000000 */ nop
|
||||
/* 000B4 809C7014 E7A6003C */ swc1 $f6, 0x003C($sp)
|
||||
.L809C7018:
|
||||
/* 000B8 809C7018 8FA5003C */ lw $a1, 0x003C($sp)
|
||||
/* 000BC 809C701C 0C00AC78 */ jal ActorShape_Init
|
||||
|
||||
/* 000C0 809C7020 3C074140 */ lui $a3, 0x4140 ## $a3 = 41400000
|
||||
/* 000C4 809C7024 8E080024 */ lw $t0, 0x0024($s0) ## 00000024
|
||||
/* 000C8 809C7028 8E190028 */ lw $t9, 0x0028($s0) ## 00000028
|
||||
/* 000CC 809C702C 3C01809D */ lui $at, %hi(D_809C8350) ## $at = 809D0000
|
||||
/* 000D0 809C7030 AE080038 */ sw $t0, 0x0038($s0) ## 00000038
|
||||
/* 000D4 809C7034 8E08002C */ lw $t0, 0x002C($s0) ## 0000002C
|
||||
/* 000D8 809C7038 AE19003C */ sw $t9, 0x003C($s0) ## 0000003C
|
||||
/* 000DC 809C703C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 000E0 809C7040 AE080040 */ sw $t0, 0x0040($s0) ## 00000040
|
||||
/* 000E4 809C7044 C4288350 */ lwc1 $f8, %lo(D_809C8350)($at)
|
||||
/* 000E8 809C7048 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 000EC 809C704C 2406005C */ addiu $a2, $zero, 0x005C ## $a2 = 0000005C
|
||||
/* 000F0 809C7050 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 000F4 809C7054 0C00D4FD */ jal Actor_FindNearby
|
||||
|
||||
/* 000F8 809C7058 E7A80010 */ swc1 $f8, 0x0010($sp)
|
||||
/* 000FC 809C705C 10400004 */ beq $v0, $zero, .L809C7070
|
||||
/* 00100 809C7060 241900FF */ addiu $t9, $zero, 0x00FF ## $t9 = 000000FF
|
||||
/* 00104 809C7064 8E090004 */ lw $t1, 0x0004($s0) ## 00000004
|
||||
/* 00108 809C7068 352A0020 */ ori $t2, $t1, 0x0020 ## $t2 = 00000020
|
||||
/* 0010C 809C706C AE0A0004 */ sw $t2, 0x0004($s0) ## 00000004
|
||||
.L809C7070:
|
||||
/* 00110 809C7070 860B001C */ lh $t3, 0x001C($s0) ## 0000001C
|
||||
/* 00114 809C7074 2402000A */ addiu $v0, $zero, 0x000A ## $v0 = 0000000A
|
||||
/* 00118 809C7078 A60200A8 */ sh $v0, 0x00A8($s0) ## 000000A8
|
||||
/* 0011C 809C707C A60200AA */ sh $v0, 0x00AA($s0) ## 000000AA
|
||||
/* 00120 809C7080 15600019 */ bne $t3, $zero, .L809C70E8
|
||||
/* 00124 809C7084 A200001F */ sb $zero, 0x001F($s0) ## 0000001F
|
||||
/* 00128 809C7088 3C01BFC0 */ lui $at, 0xBFC0 ## $at = BFC00000
|
||||
/* 0012C 809C708C 44815000 */ mtc1 $at, $f10 ## $f10 = -1.50
|
||||
/* 00130 809C7090 240C008C */ addiu $t4, $zero, 0x008C ## $t4 = 0000008C
|
||||
/* 00134 809C7094 240D000F */ addiu $t5, $zero, 0x000F ## $t5 = 0000000F
|
||||
/* 00138 809C7098 A60C01F8 */ sh $t4, 0x01F8($s0) ## 000001F8
|
||||
/* 0013C 809C709C A60D0206 */ sh $t5, 0x0206($s0) ## 00000206
|
||||
/* 00140 809C70A0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00144 809C70A4 26251C24 */ addiu $a1, $s1, 0x1C24 ## $a1 = 00001C24
|
||||
/* 00148 809C70A8 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 0014C 809C70AC 24070003 */ addiu $a3, $zero, 0x0003 ## $a3 = 00000003
|
||||
/* 00150 809C70B0 0C00CDD2 */ jal Actor_ChangeType
|
||||
|
||||
/* 00154 809C70B4 E60A006C */ swc1 $f10, 0x006C($s0) ## 0000006C
|
||||
/* 00158 809C70B8 8E0F0004 */ lw $t7, 0x0004($s0) ## 00000004
|
||||
/* 0015C 809C70BC 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
|
||||
/* 00160 809C70C0 240E00C8 */ addiu $t6, $zero, 0x00C8 ## $t6 = 000000C8
|
||||
/* 00164 809C70C4 3C05809C */ lui $a1, %hi(func_809C74AC) ## $a1 = 809C0000
|
||||
/* 00168 809C70C8 01E1C024 */ and $t8, $t7, $at
|
||||
/* 0016C 809C70CC A20E00AE */ sb $t6, 0x00AE($s0) ## 000000AE
|
||||
/* 00170 809C70D0 AE180004 */ sw $t8, 0x0004($s0) ## 00000004
|
||||
/* 00174 809C70D4 24A574AC */ addiu $a1, $a1, %lo(func_809C74AC) ## $a1 = 809C74AC
|
||||
/* 00178 809C70D8 0C271BD8 */ jal func_809C6F60
|
||||
/* 0017C 809C70DC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00180 809C70E0 1000000A */ beq $zero, $zero, .L809C710C
|
||||
/* 00184 809C70E4 00000000 */ nop
|
||||
.L809C70E8:
|
||||
/* 00188 809C70E8 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
|
||||
/* 0018C 809C70EC 44818000 */ mtc1 $at, $f16 ## $f16 = 1.00
|
||||
/* 00190 809C70F0 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
|
||||
/* 00194 809C70F4 A21900AE */ sb $t9, 0x00AE($s0) ## 000000AE
|
||||
/* 00198 809C70F8 A2080204 */ sb $t0, 0x0204($s0) ## 00000204
|
||||
/* 0019C 809C70FC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 001A0 809C7100 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
|
||||
/* 001A4 809C7104 0C271C60 */ jal func_809C7180
|
||||
/* 001A8 809C7108 E610020C */ swc1 $f16, 0x020C($s0) ## 0000020C
|
||||
.L809C710C:
|
||||
/* 001AC 809C710C 3C01809D */ lui $at, %hi(D_809C8354) ## $at = 809D0000
|
||||
/* 001B0 809C7110 C4208354 */ lwc1 $f0, %lo(D_809C8354)($at)
|
||||
/* 001B4 809C7114 C61200F8 */ lwc1 $f18, 0x00F8($s0) ## 000000F8
|
||||
/* 001B8 809C7118 C60600F4 */ lwc1 $f6, 0x00F4($s0) ## 000000F4
|
||||
/* 001BC 809C711C 46009100 */ add.s $f4, $f18, $f0
|
||||
/* 001C0 809C7120 46003200 */ add.s $f8, $f6, $f0
|
||||
/* 001C4 809C7124 E60400F8 */ swc1 $f4, 0x00F8($s0) ## 000000F8
|
||||
/* 001C8 809C7128 E60800F4 */ swc1 $f8, 0x00F4($s0) ## 000000F4
|
||||
/* 001CC 809C712C 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 001D0 809C7130 8FB10020 */ lw $s1, 0x0020($sp)
|
||||
/* 001D4 809C7134 8FB0001C */ lw $s0, 0x001C($sp)
|
||||
/* 001D8 809C7138 03E00008 */ jr $ra
|
||||
/* 001DC 809C713C 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
|
@ -448,13 +448,13 @@ glabel EnBombf_Update
|
||||
/* 00E5C 809C7DBC 8E180004 */ lw $t8, 0x0004($s0) ## 00000004
|
||||
/* 00E60 809C7DC0 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
|
||||
/* 00E64 809C7DC4 2409000A */ addiu $t1, $zero, 0x000A ## $t1 = 0000000A
|
||||
/* 00E68 809C7DC8 3C05809C */ lui $a1, %hi(func_809C7624) ## $a1 = 809C0000
|
||||
/* 00E68 809C7DC8 3C05809C */ lui $a1, %hi(EnBombf_Explode) ## $a1 = 809C0000
|
||||
/* 00E6C 809C7DCC 370A0020 */ ori $t2, $t8, 0x0020 ## $t2 = 00000020
|
||||
/* 00E70 809C7DD0 A619001C */ sh $t9, 0x001C($s0) ## 0000001C
|
||||
/* 00E74 809C7DD4 A60901F8 */ sh $t1, 0x01F8($s0) ## 000001F8
|
||||
/* 00E78 809C7DD8 AE0A0004 */ sw $t2, 0x0004($s0) ## 00000004
|
||||
/* 00E7C 809C7DDC 24A57624 */ addiu $a1, $a1, %lo(func_809C7624) ## $a1 = 809C7624
|
||||
/* 00E80 809C7DE0 0C271BD8 */ jal func_809C6F60
|
||||
/* 00E7C 809C7DDC 24A57624 */ addiu $a1, $a1, %lo(EnBombf_Explode) ## $a1 = 809C7624
|
||||
/* 00E80 809C7DE0 0C271BD8 */ jal EnBombf_SetupAction
|
||||
/* 00E84 809C7DE4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L809C7DE8:
|
||||
/* 00E88 809C7DE8 8E0B0028 */ lw $t3, 0x0028($s0) ## 00000028
|
||||
|
@ -1,3 +0,0 @@
|
||||
glabel func_809C6F60
|
||||
/* 00000 809C6F60 03E00008 */ jr $ra
|
||||
/* 00004 809C6F64 AC8501FC */ sw $a1, 0x01FC($a0) ## 000001FC
|
@ -1,11 +0,0 @@
|
||||
glabel func_809C7180
|
||||
/* 00220 809C7180 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00224 809C7184 AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 00228 809C7188 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 0022C 809C718C 3C05809C */ lui $a1, %hi(func_809C71A8) ## $a1 = 809C0000
|
||||
/* 00230 809C7190 0C271BD8 */ jal func_809C6F60
|
||||
/* 00234 809C7194 24A571A8 */ addiu $a1, $a1, %lo(func_809C71A8) ## $a1 = 809C71A8
|
||||
/* 00238 809C7198 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 0023C 809C719C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00240 809C71A0 03E00008 */ jr $ra
|
||||
/* 00244 809C71A4 00000000 */ nop
|
@ -1,212 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_809C8358
|
||||
.float 0.05
|
||||
|
||||
.text
|
||||
glabel func_809C71A8
|
||||
/* 00248 809C71A8 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
|
||||
/* 0024C 809C71AC AFBF0034 */ sw $ra, 0x0034($sp)
|
||||
/* 00250 809C71B0 AFB10030 */ sw $s1, 0x0030($sp)
|
||||
/* 00254 809C71B4 AFB0002C */ sw $s0, 0x002C($sp)
|
||||
/* 00258 809C71B8 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
|
||||
/* 0025C 809C71BC 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00
|
||||
/* 00260 809C71C0 C480020C */ lwc1 $f0, 0x020C($a0) ## 0000020C
|
||||
/* 00264 809C71C4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00268 809C71C8 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
|
||||
/* 0026C 809C71CC 4600103E */ c.le.s $f2, $f0
|
||||
/* 00270 809C71D0 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44
|
||||
/* 00274 809C71D4 4502008F */ bc1fl .L809C7414
|
||||
/* 00278 809C71D8 861801F8 */ lh $t8, 0x01F8($s0) ## 000001F8
|
||||
/* 0027C 809C71DC 0C00BD04 */ jal func_8002F410
|
||||
/* 00280 809C71E0 AFA30040 */ sw $v1, 0x0040($sp)
|
||||
/* 00284 809C71E4 1040002A */ beq $v0, $zero, .L809C7290
|
||||
/* 00288 809C71E8 8FA30040 */ lw $v1, 0x0040($sp)
|
||||
/* 0028C 809C71EC C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
|
||||
/* 00290 809C71F0 8E070024 */ lw $a3, 0x0024($s0) ## 00000024
|
||||
/* 00294 809C71F4 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24
|
||||
/* 00298 809C71F8 E7A40010 */ swc1 $f4, 0x0010($sp)
|
||||
/* 0029C 809C71FC C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
|
||||
/* 002A0 809C7200 AFA30040 */ sw $v1, 0x0040($sp)
|
||||
/* 002A4 809C7204 AFA00024 */ sw $zero, 0x0024($sp)
|
||||
/* 002A8 809C7208 AFA00020 */ sw $zero, 0x0020($sp)
|
||||
/* 002AC 809C720C AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 002B0 809C7210 AFA00018 */ sw $zero, 0x0018($sp)
|
||||
/* 002B4 809C7214 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 002B8 809C7218 2406004C */ addiu $a2, $zero, 0x004C ## $a2 = 0000004C
|
||||
/* 002BC 809C721C 0C00C7D4 */ jal Actor_Spawn
|
||||
## ActorSpawn
|
||||
/* 002C0 809C7220 E7A60014 */ swc1 $f6, 0x0014($sp)
|
||||
/* 002C4 809C7224 8FA30040 */ lw $v1, 0x0040($sp)
|
||||
/* 002C8 809C7228 10400010 */ beq $v0, $zero, .L809C726C
|
||||
/* 002CC 809C722C 00402825 */ or $a1, $v0, $zero ## $a1 = 00000000
|
||||
/* 002D0 809C7230 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 002D4 809C7234 0C00BD71 */ jal func_8002F5C4
|
||||
/* 002D8 809C7238 02203025 */ or $a2, $s1, $zero ## $a2 = 00000000
|
||||
/* 002DC 809C723C 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00
|
||||
/* 002E0 809C7240 240E00B4 */ addiu $t6, $zero, 0x00B4 ## $t6 = 000000B4
|
||||
/* 002E4 809C7244 A60E01F8 */ sh $t6, 0x01F8($s0) ## 000001F8
|
||||
/* 002E8 809C7248 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 002EC 809C724C 2405086A */ addiu $a1, $zero, 0x086A ## $a1 = 0000086A
|
||||
/* 002F0 809C7250 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 002F4 809C7254 E608020C */ swc1 $f8, 0x020C($s0) ## 0000020C
|
||||
/* 002F8 809C7258 8E0F0004 */ lw $t7, 0x0004($s0) ## 00000004
|
||||
/* 002FC 809C725C 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
|
||||
/* 00300 809C7260 01E1C024 */ and $t8, $t7, $at
|
||||
/* 00304 809C7264 1000008C */ beq $zero, $zero, .L809C7498
|
||||
/* 00308 809C7268 AE180004 */ sw $t8, 0x0004($s0) ## 00000004
|
||||
.L809C726C:
|
||||
/* 0030C 809C726C AC60011C */ sw $zero, 0x011C($v1) ## 0000011C
|
||||
/* 00310 809C7270 AC6003AC */ sw $zero, 0x03AC($v1) ## 000003AC
|
||||
/* 00314 809C7274 AC600438 */ sw $zero, 0x0438($v1) ## 00000438
|
||||
/* 00318 809C7278 AE000118 */ sw $zero, 0x0118($s0) ## 00000118
|
||||
/* 0031C 809C727C 8C79067C */ lw $t9, 0x067C($v1) ## 0000067C
|
||||
/* 00320 809C7280 2401F7FF */ addiu $at, $zero, 0xF7FF ## $at = FFFFF7FF
|
||||
/* 00324 809C7284 03214024 */ and $t0, $t9, $at
|
||||
/* 00328 809C7288 10000083 */ beq $zero, $zero, .L809C7498
|
||||
/* 0032C 809C728C AC68067C */ sw $t0, 0x067C($v1) ## 0000067C
|
||||
.L809C7290:
|
||||
/* 00330 809C7290 9202015D */ lbu $v0, 0x015D($s0) ## 0000015D
|
||||
/* 00334 809C7294 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00338 809C7298 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
|
||||
/* 0033C 809C729C 30490002 */ andi $t1, $v0, 0x0002 ## $t1 = 00000000
|
||||
/* 00340 809C72A0 11200021 */ beq $t1, $zero, .L809C7328
|
||||
/* 00344 809C72A4 3C0641F0 */ lui $a2, 0x41F0 ## $a2 = 41F00000
|
||||
/* 00348 809C72A8 8E0B0154 */ lw $t3, 0x0154($s0) ## 00000154
|
||||
/* 0034C 809C72AC 304AFFFD */ andi $t2, $v0, 0xFFFD ## $t2 = 00000000
|
||||
/* 00350 809C72B0 A20A015D */ sb $t2, 0x015D($s0) ## 0000015D
|
||||
/* 00354 809C72B4 916C0002 */ lbu $t4, 0x0002($t3) ## 00000002
|
||||
/* 00358 809C72B8 24010009 */ addiu $at, $zero, 0x0009 ## $at = 00000009
|
||||
/* 0035C 809C72BC 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24
|
||||
/* 00360 809C72C0 11810075 */ beq $t4, $at, .L809C7498
|
||||
/* 00364 809C72C4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 00368 809C72C8 C60A0028 */ lwc1 $f10, 0x0028($s0) ## 00000028
|
||||
/* 0036C 809C72CC 8E070024 */ lw $a3, 0x0024($s0) ## 00000024
|
||||
/* 00370 809C72D0 2406004C */ addiu $a2, $zero, 0x004C ## $a2 = 0000004C
|
||||
/* 00374 809C72D4 E7AA0010 */ swc1 $f10, 0x0010($sp)
|
||||
/* 00378 809C72D8 C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
|
||||
/* 0037C 809C72DC AFA00024 */ sw $zero, 0x0024($sp)
|
||||
/* 00380 809C72E0 AFA00020 */ sw $zero, 0x0020($sp)
|
||||
/* 00384 809C72E4 AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 00388 809C72E8 AFA00018 */ sw $zero, 0x0018($sp)
|
||||
/* 0038C 809C72EC 0C00C7D4 */ jal Actor_Spawn
|
||||
## ActorSpawn
|
||||
/* 00390 809C72F0 E7B00014 */ swc1 $f16, 0x0014($sp)
|
||||
/* 00394 809C72F4 10400068 */ beq $v0, $zero, .L809C7498
|
||||
/* 00398 809C72F8 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001
|
||||
/* 0039C 809C72FC AC4D0200 */ sw $t5, 0x0200($v0) ## 00000200
|
||||
/* 003A0 809C7300 A44001F8 */ sh $zero, 0x01F8($v0) ## 000001F8
|
||||
/* 003A4 809C7304 8E0F0004 */ lw $t7, 0x0004($s0) ## 00000004
|
||||
/* 003A8 809C7308 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
|
||||
/* 003AC 809C730C 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
|
||||
/* 003B0 809C7310 240E00B4 */ addiu $t6, $zero, 0x00B4 ## $t6 = 000000B4
|
||||
/* 003B4 809C7314 01E1C024 */ and $t8, $t7, $at
|
||||
/* 003B8 809C7318 A60E01F8 */ sh $t6, 0x01F8($s0) ## 000001F8
|
||||
/* 003BC 809C731C AE180004 */ sw $t8, 0x0004($s0) ## 00000004
|
||||
/* 003C0 809C7320 1000005D */ beq $zero, $zero, .L809C7498
|
||||
/* 003C4 809C7324 E612020C */ swc1 $f18, 0x020C($s0) ## 0000020C
|
||||
.L809C7328:
|
||||
/* 003C8 809C7328 3C074248 */ lui $a3, 0x4248 ## $a3 = 42480000
|
||||
/* 003CC 809C732C AFA30040 */ sw $v1, 0x0040($sp)
|
||||
/* 003D0 809C7330 0C023BD7 */ jal func_8008EF5C
|
||||
/* 003D4 809C7334 AFA50038 */ sw $a1, 0x0038($sp)
|
||||
/* 003D8 809C7338 1040001A */ beq $v0, $zero, .L809C73A4
|
||||
/* 003DC 809C733C 8FA30040 */ lw $v1, 0x0040($sp)
|
||||
/* 003E0 809C7340 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
|
||||
/* 003E4 809C7344 8E070024 */ lw $a3, 0x0024($s0) ## 00000024
|
||||
/* 003E8 809C7348 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24
|
||||
/* 003EC 809C734C E7A40010 */ swc1 $f4, 0x0010($sp)
|
||||
/* 003F0 809C7350 C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
|
||||
/* 003F4 809C7354 AFA00024 */ sw $zero, 0x0024($sp)
|
||||
/* 003F8 809C7358 AFA00020 */ sw $zero, 0x0020($sp)
|
||||
/* 003FC 809C735C AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 00400 809C7360 AFA00018 */ sw $zero, 0x0018($sp)
|
||||
/* 00404 809C7364 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 00408 809C7368 2406004C */ addiu $a2, $zero, 0x004C ## $a2 = 0000004C
|
||||
/* 0040C 809C736C 0C00C7D4 */ jal Actor_Spawn
|
||||
## ActorSpawn
|
||||
/* 00410 809C7370 E7A60014 */ swc1 $f6, 0x0014($sp)
|
||||
/* 00414 809C7374 10400048 */ beq $v0, $zero, .L809C7498
|
||||
/* 00418 809C7378 24190064 */ addiu $t9, $zero, 0x0064 ## $t9 = 00000064
|
||||
/* 0041C 809C737C A45901F8 */ sh $t9, 0x01F8($v0) ## 000001F8
|
||||
/* 00420 809C7380 8E090004 */ lw $t1, 0x0004($s0) ## 00000004
|
||||
/* 00424 809C7384 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00
|
||||
/* 00428 809C7388 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
|
||||
/* 0042C 809C738C 240800B4 */ addiu $t0, $zero, 0x00B4 ## $t0 = 000000B4
|
||||
/* 00430 809C7390 01215024 */ and $t2, $t1, $at
|
||||
/* 00434 809C7394 A60801F8 */ sh $t0, 0x01F8($s0) ## 000001F8
|
||||
/* 00438 809C7398 AE0A0004 */ sw $t2, 0x0004($s0) ## 00000004
|
||||
/* 0043C 809C739C 1000003E */ beq $zero, $zero, .L809C7498
|
||||
/* 00440 809C73A0 E608020C */ swc1 $f8, 0x020C($s0) ## 0000020C
|
||||
.L809C73A4:
|
||||
/* 00444 809C73A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00448 809C73A8 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 0044C 809C73AC 0C00BD04 */ jal func_8002F410
|
||||
/* 00450 809C73B0 AFA30040 */ sw $v1, 0x0040($sp)
|
||||
/* 00454 809C73B4 14400006 */ bne $v0, $zero, .L809C73D0
|
||||
/* 00458 809C73B8 8FA30040 */ lw $v1, 0x0040($sp)
|
||||
/* 0045C 809C73BC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00460 809C73C0 0C00BD60 */ jal func_8002F580
|
||||
/* 00464 809C73C4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 00468 809C73C8 10000034 */ beq $zero, $zero, .L809C749C
|
||||
/* 0046C 809C73CC 8FBF0034 */ lw $ra, 0x0034($sp)
|
||||
.L809C73D0:
|
||||
/* 00470 809C73D0 AC60011C */ sw $zero, 0x011C($v1) ## 0000011C
|
||||
/* 00474 809C73D4 AC6003AC */ sw $zero, 0x03AC($v1) ## 000003AC
|
||||
/* 00478 809C73D8 AC600438 */ sw $zero, 0x0438($v1) ## 00000438
|
||||
/* 0047C 809C73DC AE000118 */ sw $zero, 0x0118($s0) ## 00000118
|
||||
/* 00480 809C73E0 8C6B067C */ lw $t3, 0x067C($v1) ## 0000067C
|
||||
/* 00484 809C73E4 2401F7FF */ addiu $at, $zero, 0xF7FF ## $at = FFFFF7FF
|
||||
/* 00488 809C73E8 01616024 */ and $t4, $t3, $at
|
||||
/* 0048C 809C73EC AC6C067C */ sw $t4, 0x067C($v1) ## 0000067C
|
||||
/* 00490 809C73F0 8E0F0008 */ lw $t7, 0x0008($s0) ## 00000008
|
||||
/* 00494 809C73F4 8FAD0038 */ lw $t5, 0x0038($sp)
|
||||
/* 00498 809C73F8 ADAF0000 */ sw $t7, 0x0000($t5) ## 00000000
|
||||
/* 0049C 809C73FC 8E0E000C */ lw $t6, 0x000C($s0) ## 0000000C
|
||||
/* 004A0 809C7400 ADAE0004 */ sw $t6, 0x0004($t5) ## 00000004
|
||||
/* 004A4 809C7404 8E0F0010 */ lw $t7, 0x0010($s0) ## 00000010
|
||||
/* 004A8 809C7408 10000023 */ beq $zero, $zero, .L809C7498
|
||||
/* 004AC 809C740C ADAF0008 */ sw $t7, 0x0008($t5) ## 00000008
|
||||
/* 004B0 809C7410 861801F8 */ lh $t8, 0x01F8($s0) ## 000001F8
|
||||
.L809C7414:
|
||||
/* 004B4 809C7414 3C01809D */ lui $at, %hi(D_809C8358) ## $at = 809D0000
|
||||
/* 004B8 809C7418 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 004BC 809C741C 1700000C */ bne $t8, $zero, .L809C7450
|
||||
/* 004C0 809C7420 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 004C4 809C7424 C42A8358 */ lwc1 $f10, %lo(D_809C8358)($at)
|
||||
/* 004C8 809C7428 460A0400 */ add.s $f16, $f0, $f10
|
||||
/* 004CC 809C742C E610020C */ swc1 $f16, 0x020C($s0) ## 0000020C
|
||||
/* 004D0 809C7430 C612020C */ lwc1 $f18, 0x020C($s0) ## 0000020C
|
||||
/* 004D4 809C7434 4612103E */ c.le.s $f2, $f18
|
||||
/* 004D8 809C7438 00000000 */ nop
|
||||
/* 004DC 809C743C 45000004 */ bc1f .L809C7450
|
||||
/* 004E0 809C7440 00000000 */ nop
|
||||
/* 004E4 809C7444 8E190004 */ lw $t9, 0x0004($s0) ## 00000004
|
||||
/* 004E8 809C7448 37280001 */ ori $t0, $t9, 0x0001 ## $t0 = 00000001
|
||||
/* 004EC 809C744C AE080004 */ sw $t0, 0x0004($s0) ## 00000004
|
||||
.L809C7450:
|
||||
/* 004F0 809C7450 0C00BD04 */ jal func_8002F410
|
||||
/* 004F4 809C7454 AFA30040 */ sw $v1, 0x0040($sp)
|
||||
/* 004F8 809C7458 1040000F */ beq $v0, $zero, .L809C7498
|
||||
/* 004FC 809C745C 8FA30040 */ lw $v1, 0x0040($sp)
|
||||
/* 00500 809C7460 AC60011C */ sw $zero, 0x011C($v1) ## 0000011C
|
||||
/* 00504 809C7464 AC6003AC */ sw $zero, 0x03AC($v1) ## 000003AC
|
||||
/* 00508 809C7468 AC600438 */ sw $zero, 0x0438($v1) ## 00000438
|
||||
/* 0050C 809C746C AE000118 */ sw $zero, 0x0118($s0) ## 00000118
|
||||
/* 00510 809C7470 8C69067C */ lw $t1, 0x067C($v1) ## 0000067C
|
||||
/* 00514 809C7474 2401F7FF */ addiu $at, $zero, 0xF7FF ## $at = FFFFF7FF
|
||||
/* 00518 809C7478 01215024 */ and $t2, $t1, $at
|
||||
/* 0051C 809C747C AC6A067C */ sw $t2, 0x067C($v1) ## 0000067C
|
||||
/* 00520 809C7480 8E0C0008 */ lw $t4, 0x0008($s0) ## 00000008
|
||||
/* 00524 809C7484 8E0B000C */ lw $t3, 0x000C($s0) ## 0000000C
|
||||
/* 00528 809C7488 AE0C0024 */ sw $t4, 0x0024($s0) ## 00000024
|
||||
/* 0052C 809C748C 8E0C0010 */ lw $t4, 0x0010($s0) ## 00000010
|
||||
/* 00530 809C7490 AE0B0028 */ sw $t3, 0x0028($s0) ## 00000028
|
||||
/* 00534 809C7494 AE0C002C */ sw $t4, 0x002C($s0) ## 0000002C
|
||||
.L809C7498:
|
||||
/* 00538 809C7498 8FBF0034 */ lw $ra, 0x0034($sp)
|
||||
.L809C749C:
|
||||
/* 0053C 809C749C 8FB0002C */ lw $s0, 0x002C($sp)
|
||||
/* 00540 809C74A0 8FB10030 */ lw $s1, 0x0030($sp)
|
||||
/* 00544 809C74A4 03E00008 */ jr $ra
|
||||
/* 00548 809C74A8 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
|
@ -1,79 +0,0 @@
|
||||
glabel func_809C74AC
|
||||
/* 0054C 809C74AC 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 00550 809C74B0 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 00554 809C74B4 AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 00558 809C74B8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 0055C 809C74BC 0C00BD04 */ jal func_8002F410
|
||||
/* 00560 809C74C0 AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 00564 809C74C4 10400009 */ beq $v0, $zero, .L809C74EC
|
||||
/* 00568 809C74C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0056C 809C74CC 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 00570 809C74D0 3C05809C */ lui $a1, %hi(func_809C75C8) ## $a1 = 809C0000
|
||||
/* 00574 809C74D4 24A575C8 */ addiu $a1, $a1, %lo(func_809C75C8) ## $a1 = 809C75C8
|
||||
/* 00578 809C74D8 0C271BD8 */ jal func_809C6F60
|
||||
/* 0057C 809C74DC E600020C */ swc1 $f0, 0x020C($s0) ## 0000020C
|
||||
/* 00580 809C74E0 240EFFFF */ addiu $t6, $zero, 0xFFFF ## $t6 = FFFFFFFF
|
||||
/* 00584 809C74E4 10000033 */ beq $zero, $zero, .L809C75B4
|
||||
/* 00588 809C74E8 A20E0003 */ sb $t6, 0x0003($s0) ## 00000003
|
||||
.L809C74EC:
|
||||
/* 0058C 809C74EC 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088
|
||||
/* 00590 809C74F0 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
|
||||
/* 00594 809C74F4 44811000 */ mtc1 $at, $f2 ## $f2 = 1.00
|
||||
/* 00598 809C74F8 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
|
||||
/* 0059C 809C74FC 1700000B */ bne $t8, $zero, .L809C752C
|
||||
/* 005A0 809C7500 E602020C */ swc1 $f2, 0x020C($s0) ## 0000020C
|
||||
/* 005A4 809C7504 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 005A8 809C7508 44061000 */ mfc1 $a2, $f2
|
||||
/* 005AC 809C750C 3C073CCC */ lui $a3, 0x3CCC ## $a3 = 3CCC0000
|
||||
/* 005B0 809C7510 44050000 */ mfc1 $a1, $f0
|
||||
/* 005B4 809C7514 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3CCCCCCD
|
||||
/* 005B8 809C7518 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
|
||||
/* 005BC 809C751C 0C01E0C4 */ jal Math_SmoothScaleMaxMinF
|
||||
|
||||
/* 005C0 809C7520 E7A00010 */ swc1 $f0, 0x0010($sp)
|
||||
/* 005C4 809C7524 10000024 */ beq $zero, $zero, .L809C75B8
|
||||
/* 005C8 809C7528 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L809C752C:
|
||||
/* 005CC 809C752C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 005D0 809C7530 44061000 */ mfc1 $a2, $f2
|
||||
/* 005D4 809C7534 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
|
||||
/* 005D8 809C7538 44050000 */ mfc1 $a1, $f0
|
||||
/* 005DC 809C753C 3C073FC0 */ lui $a3, 0x3FC0 ## $a3 = 3FC00000
|
||||
/* 005E0 809C7540 0C01E0C4 */ jal Math_SmoothScaleMaxMinF
|
||||
|
||||
/* 005E4 809C7544 E7A00010 */ swc1 $f0, 0x0010($sp)
|
||||
/* 005E8 809C7548 96190088 */ lhu $t9, 0x0088($s0) ## 00000088
|
||||
/* 005EC 809C754C 3C01C0C0 */ lui $at, 0xC0C0 ## $at = C0C00000
|
||||
/* 005F0 809C7550 33280002 */ andi $t0, $t9, 0x0002 ## $t0 = 00000000
|
||||
/* 005F4 809C7554 51000011 */ beql $t0, $zero, .L809C759C
|
||||
/* 005F8 809C7558 860901F8 */ lh $t1, 0x01F8($s0) ## 000001F8
|
||||
/* 005FC 809C755C C6040060 */ lwc1 $f4, 0x0060($s0) ## 00000060
|
||||
/* 00600 809C7560 44813000 */ mtc1 $at, $f6 ## $f6 = -6.00
|
||||
/* 00604 809C7564 8FA4002C */ lw $a0, 0x002C($sp)
|
||||
/* 00608 809C7568 4606203C */ c.lt.s $f4, $f6
|
||||
/* 0060C 809C756C 00000000 */ nop
|
||||
/* 00610 809C7570 4502000A */ bc1fl .L809C759C
|
||||
/* 00614 809C7574 860901F8 */ lh $t1, 0x01F8($s0) ## 000001F8
|
||||
/* 00618 809C7578 0C00BE14 */ jal func_8002F850
|
||||
/* 0061C 809C757C 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00620 809C7580 3C01BF00 */ lui $at, 0xBF00 ## $at = BF000000
|
||||
/* 00624 809C7584 44815000 */ mtc1 $at, $f10 ## $f10 = -0.50
|
||||
/* 00628 809C7588 C6080060 */ lwc1 $f8, 0x0060($s0) ## 00000060
|
||||
/* 0062C 809C758C 460A4402 */ mul.s $f16, $f8, $f10
|
||||
/* 00630 809C7590 10000008 */ beq $zero, $zero, .L809C75B4
|
||||
/* 00634 809C7594 E6100060 */ swc1 $f16, 0x0060($s0) ## 00000060
|
||||
/* 00638 809C7598 860901F8 */ lh $t1, 0x01F8($s0) ## 000001F8
|
||||
.L809C759C:
|
||||
/* 0063C 809C759C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00640 809C75A0 29210004 */ slti $at, $t1, 0x0004
|
||||
/* 00644 809C75A4 54200004 */ bnel $at, $zero, .L809C75B8
|
||||
/* 00648 809C75A8 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 0064C 809C75AC 0C00BD60 */ jal func_8002F580
|
||||
/* 00650 809C75B0 8FA5002C */ lw $a1, 0x002C($sp)
|
||||
.L809C75B4:
|
||||
/* 00654 809C75B4 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L809C75B8:
|
||||
/* 00658 809C75B8 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 0065C 809C75BC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
/* 00660 809C75C0 03E00008 */ jr $ra
|
||||
/* 00664 809C75C4 00000000 */ nop
|
@ -1,26 +0,0 @@
|
||||
glabel func_809C75C8
|
||||
/* 00668 809C75C8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 0066C 809C75CC AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00670 809C75D0 AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 00674 809C75D4 0C00BD68 */ jal func_8002F5A0
|
||||
/* 00678 809C75D8 AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 0067C 809C75DC 1040000A */ beq $v0, $zero, .L809C7608
|
||||
/* 00680 809C75E0 8FAE0018 */ lw $t6, 0x0018($sp)
|
||||
/* 00684 809C75E4 3C05809C */ lui $a1, %hi(func_809C74AC) ## $a1 = 809C0000
|
||||
/* 00688 809C75E8 24A574AC */ addiu $a1, $a1, %lo(func_809C74AC) ## $a1 = 809C74AC
|
||||
/* 0068C 809C75EC 0C271BD8 */ jal func_809C6F60
|
||||
/* 00690 809C75F0 8FA40018 */ lw $a0, 0x0018($sp)
|
||||
/* 00694 809C75F4 8FA40018 */ lw $a0, 0x0018($sp)
|
||||
/* 00698 809C75F8 0C271D2B */ jal func_809C74AC
|
||||
/* 0069C 809C75FC 8FA5001C */ lw $a1, 0x001C($sp)
|
||||
/* 006A0 809C7600 10000005 */ beq $zero, $zero, .L809C7618
|
||||
/* 006A4 809C7604 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
.L809C7608:
|
||||
/* 006A8 809C7608 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
|
||||
/* 006AC 809C760C 00000000 */ nop
|
||||
/* 006B0 809C7610 E5C40060 */ swc1 $f4, 0x0060($t6) ## 00000060
|
||||
/* 006B4 809C7614 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
.L809C7618:
|
||||
/* 006B8 809C7618 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 006BC 809C761C 03E00008 */ jr $ra
|
||||
/* 006C0 809C7620 00000000 */ nop
|
@ -1,98 +0,0 @@
|
||||
glabel func_809C7624
|
||||
/* 006C4 809C7624 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 006C8 809C7628 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 006CC 809C762C AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 006D0 809C7630 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 006D4 809C7634 8C8201B4 */ lw $v0, 0x01B4($a0) ## 000001B4
|
||||
/* 006D8 809C7638 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 006DC 809C763C 240500FF */ addiu $a1, $zero, 0x00FF ## $a1 = 000000FF
|
||||
/* 006E0 809C7640 8443002E */ lh $v1, 0x002E($v0) ## 0000002E
|
||||
/* 006E4 809C7644 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014
|
||||
/* 006E8 809C7648 5460000A */ bnel $v1, $zero, .L809C7674
|
||||
/* 006EC 809C764C 24780008 */ addiu $t8, $v1, 0x0008 ## $t8 = 00000008
|
||||
/* 006F0 809C7650 8C8E0004 */ lw $t6, 0x0004($a0) ## 00000004
|
||||
/* 006F4 809C7654 C48C0090 */ lwc1 $f12, 0x0090($a0) ## 00000090
|
||||
/* 006F8 809C7658 24070096 */ addiu $a3, $zero, 0x0096 ## $a3 = 00000096
|
||||
/* 006FC 809C765C 35CF0020 */ ori $t7, $t6, 0x0020 ## $t7 = 00000020
|
||||
/* 00700 809C7660 0C02A800 */ jal func_800AA000
|
||||
/* 00704 809C7664 AC8F0004 */ sw $t7, 0x0004($a0) ## 00000004
|
||||
/* 00708 809C7668 8E0201B4 */ lw $v0, 0x01B4($s0) ## 000001B4
|
||||
/* 0070C 809C766C 8443002E */ lh $v1, 0x002E($v0) ## 0000002E
|
||||
/* 00710 809C7670 24780008 */ addiu $t8, $v1, 0x0008 ## $t8 = 00000008
|
||||
.L809C7674:
|
||||
/* 00714 809C7674 A458002E */ sh $t8, 0x002E($v0) ## 0000002E
|
||||
/* 00718 809C7678 8E0201B4 */ lw $v0, 0x01B4($s0) ## 000001B4
|
||||
/* 0071C 809C767C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
|
||||
/* 00720 809C7680 26060198 */ addiu $a2, $s0, 0x0198 ## $a2 = 00000198
|
||||
/* 00724 809C7684 8459002E */ lh $t9, 0x002E($v0) ## 0000002E
|
||||
/* 00728 809C7688 A4590036 */ sh $t9, 0x0036($v0) ## 00000036
|
||||
/* 0072C 809C768C 8608001C */ lh $t0, 0x001C($s0) ## 0000001C
|
||||
/* 00730 809C7690 8FA40024 */ lw $a0, 0x0024($sp)
|
||||
/* 00734 809C7694 15010004 */ bne $t0, $at, .L809C76A8
|
||||
/* 00738 809C7698 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 0073C 809C769C 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
||||
/* 00740 809C76A0 0C0175E7 */ jal CollisionCheck_SetAT
|
||||
## CollisionCheck_setAT
|
||||
/* 00744 809C76A4 00812821 */ addu $a1, $a0, $at
|
||||
.L809C76A8:
|
||||
/* 00748 809C76A8 8FA20024 */ lw $v0, 0x0024($sp)
|
||||
/* 0074C 809C76AC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00750 809C76B0 00411021 */ addu $v0, $v0, $at
|
||||
/* 00754 809C76B4 84430AB6 */ lh $v1, 0x0AB6($v0) ## 00000AB6
|
||||
/* 00758 809C76B8 10600002 */ beq $v1, $zero, .L809C76C4
|
||||
/* 0075C 809C76BC 246AFFE7 */ addiu $t2, $v1, 0xFFE7 ## $t2 = FFFFFFE7
|
||||
/* 00760 809C76C0 A44A0AB6 */ sh $t2, 0x0AB6($v0) ## 00000AB6
|
||||
.L809C76C4:
|
||||
/* 00764 809C76C4 84430AB8 */ lh $v1, 0x0AB8($v0) ## 00000AB8
|
||||
/* 00768 809C76C8 10600002 */ beq $v1, $zero, .L809C76D4
|
||||
/* 0076C 809C76CC 246BFFE7 */ addiu $t3, $v1, 0xFFE7 ## $t3 = FFFFFFE7
|
||||
/* 00770 809C76D0 A44B0AB8 */ sh $t3, 0x0AB8($v0) ## 00000AB8
|
||||
.L809C76D4:
|
||||
/* 00774 809C76D4 84430ABA */ lh $v1, 0x0ABA($v0) ## 00000ABA
|
||||
/* 00778 809C76D8 10600002 */ beq $v1, $zero, .L809C76E4
|
||||
/* 0077C 809C76DC 246CFFE7 */ addiu $t4, $v1, 0xFFE7 ## $t4 = FFFFFFE7
|
||||
/* 00780 809C76E0 A44C0ABA */ sh $t4, 0x0ABA($v0) ## 00000ABA
|
||||
.L809C76E4:
|
||||
/* 00784 809C76E4 84430AB0 */ lh $v1, 0x0AB0($v0) ## 00000AB0
|
||||
/* 00788 809C76E8 10600002 */ beq $v1, $zero, .L809C76F4
|
||||
/* 0078C 809C76EC 246DFFE7 */ addiu $t5, $v1, 0xFFE7 ## $t5 = FFFFFFE7
|
||||
/* 00790 809C76F0 A44D0AB0 */ sh $t5, 0x0AB0($v0) ## 00000AB0
|
||||
.L809C76F4:
|
||||
/* 00794 809C76F4 84430AB2 */ lh $v1, 0x0AB2($v0) ## 00000AB2
|
||||
/* 00798 809C76F8 10600002 */ beq $v1, $zero, .L809C7704
|
||||
/* 0079C 809C76FC 246EFFE7 */ addiu $t6, $v1, 0xFFE7 ## $t6 = FFFFFFE7
|
||||
/* 007A0 809C7700 A44E0AB2 */ sh $t6, 0x0AB2($v0) ## 00000AB2
|
||||
.L809C7704:
|
||||
/* 007A4 809C7704 84430AB4 */ lh $v1, 0x0AB4($v0) ## 00000AB4
|
||||
/* 007A8 809C7708 10600002 */ beq $v1, $zero, .L809C7714
|
||||
/* 007AC 809C770C 246FFFE7 */ addiu $t7, $v1, 0xFFE7 ## $t7 = FFFFFFE7
|
||||
/* 007B0 809C7710 A44F0AB4 */ sh $t7, 0x0AB4($v0) ## 00000AB4
|
||||
.L809C7714:
|
||||
/* 007B4 809C7714 861801F8 */ lh $t8, 0x01F8($s0) ## 000001F8
|
||||
/* 007B8 809C7718 8FB90024 */ lw $t9, 0x0024($sp)
|
||||
/* 007BC 809C771C 57000012 */ bnel $t8, $zero, .L809C7768
|
||||
/* 007C0 809C7720 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 007C4 809C7724 8F221C44 */ lw $v0, 0x1C44($t9) ## 00001C44
|
||||
/* 007C8 809C7728 8C43067C */ lw $v1, 0x067C($v0) ## 0000067C
|
||||
/* 007CC 809C772C 30680800 */ andi $t0, $v1, 0x0800 ## $t0 = 00000000
|
||||
/* 007D0 809C7730 1100000A */ beq $t0, $zero, .L809C775C
|
||||
/* 007D4 809C7734 00000000 */ nop
|
||||
/* 007D8 809C7738 8C4903AC */ lw $t1, 0x03AC($v0) ## 000003AC
|
||||
/* 007DC 809C773C 2401F7FF */ addiu $at, $zero, 0xF7FF ## $at = FFFFF7FF
|
||||
/* 007E0 809C7740 00615024 */ and $t2, $v1, $at
|
||||
/* 007E4 809C7744 16090005 */ bne $s0, $t1, .L809C775C
|
||||
/* 007E8 809C7748 00000000 */ nop
|
||||
/* 007EC 809C774C AC40011C */ sw $zero, 0x011C($v0) ## 0000011C
|
||||
/* 007F0 809C7750 AC4003AC */ sw $zero, 0x03AC($v0) ## 000003AC
|
||||
/* 007F4 809C7754 AC400438 */ sw $zero, 0x0438($v0) ## 00000438
|
||||
/* 007F8 809C7758 AC4A067C */ sw $t2, 0x067C($v0) ## 0000067C
|
||||
.L809C775C:
|
||||
/* 007FC 809C775C 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 00800 809C7760 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00804 809C7764 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L809C7768:
|
||||
/* 00808 809C7768 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 0080C 809C776C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 00810 809C7770 03E00008 */ jr $ra
|
||||
/* 00814 809C7774 00000000 */ nop
|
@ -1,44 +0,0 @@
|
||||
.rdata
|
||||
glabel D_809C8300
|
||||
.asciz "../z_en_bombf.c"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel func_809C7F24
|
||||
/* 00FC4 809C7F24 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 00FC8 809C7F28 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00FCC 809C7F2C AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 00FD0 809C7F30 AFA40028 */ sw $a0, 0x0028($sp)
|
||||
/* 00FD4 809C7F34 0C031A73 */ jal Graph_Alloc
|
||||
|
||||
/* 00FD8 809C7F38 24050028 */ addiu $a1, $zero, 0x0028 ## $a1 = 00000028
|
||||
/* 00FDC 809C7F3C 8FA4002C */ lw $a0, 0x002C($sp)
|
||||
/* 00FE0 809C7F40 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00FE4 809C7F44 34211DA0 */ ori $at, $at, 0x1DA0 ## $at = 00011DA0
|
||||
/* 00FE8 809C7F48 AFA20024 */ sw $v0, 0x0024($sp)
|
||||
/* 00FEC 809C7F4C AFA20020 */ sw $v0, 0x0020($sp)
|
||||
/* 00FF0 809C7F50 0C0347F5 */ jal func_800D1FD4
|
||||
/* 00FF4 809C7F54 00812021 */ addu $a0, $a0, $at
|
||||
/* 00FF8 809C7F58 8FA70020 */ lw $a3, 0x0020($sp)
|
||||
/* 00FFC 809C7F5C 3C0EDA38 */ lui $t6, 0xDA38 ## $t6 = DA380000
|
||||
/* 01000 809C7F60 35CE0003 */ ori $t6, $t6, 0x0003 ## $t6 = DA380003
|
||||
/* 01004 809C7F64 ACEE0000 */ sw $t6, 0x0000($a3) ## 00000000
|
||||
/* 01008 809C7F68 3C05809D */ lui $a1, %hi(D_809C8300) ## $a1 = 809D0000
|
||||
/* 0100C 809C7F6C 24E30008 */ addiu $v1, $a3, 0x0008 ## $v1 = 00000008
|
||||
/* 01010 809C7F70 AFA30020 */ sw $v1, 0x0020($sp)
|
||||
/* 01014 809C7F74 24A58300 */ addiu $a1, $a1, %lo(D_809C8300) ## $a1 = 809C8300
|
||||
/* 01018 809C7F78 8FA40028 */ lw $a0, 0x0028($sp)
|
||||
/* 0101C 809C7F7C 240603FD */ addiu $a2, $zero, 0x03FD ## $a2 = 000003FD
|
||||
/* 01020 809C7F80 0C0346A2 */ jal Matrix_NewMtx
|
||||
/* 01024 809C7F84 AFA7001C */ sw $a3, 0x001C($sp)
|
||||
/* 01028 809C7F88 8FA30020 */ lw $v1, 0x0020($sp)
|
||||
/* 0102C 809C7F8C 8FA7001C */ lw $a3, 0x001C($sp)
|
||||
/* 01030 809C7F90 3C0FDF00 */ lui $t7, 0xDF00 ## $t7 = DF000000
|
||||
/* 01034 809C7F94 ACE20004 */ sw $v0, 0x0004($a3) ## 00000004
|
||||
/* 01038 809C7F98 AC600004 */ sw $zero, 0x0004($v1) ## 00000004
|
||||
/* 0103C 809C7F9C AC6F0000 */ sw $t7, 0x0000($v1) ## 00000000
|
||||
/* 01040 809C7FA0 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 01044 809C7FA4 8FA20024 */ lw $v0, 0x0024($sp)
|
||||
/* 01048 809C7FA8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
/* 0104C 809C7FAC 03E00008 */ jr $ra
|
||||
/* 01050 809C7FB0 00000000 */ nop
|
@ -1,37 +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 En_Bom_InitVars
|
||||
.word 0x00100300, 0x00000030, 0x00010000, 0x00000208
|
||||
.word EnBom_Init
|
||||
.word EnBom_Destroy
|
||||
.word EnBom_Update
|
||||
.word EnBom_Draw
|
||||
glabel D_809C3430
|
||||
.word 0x00002939, 0x20010000, 0x02000000, 0x00000000, 0x00000000, 0x0003F828, 0x00000000, 0x00010100, 0x0006000B, 0x000E0000, 0x00000000
|
||||
glabel D_809C345C
|
||||
.word 0x00000000, 0x00000008, 0x00080000, 0x00000000, 0x00000000, 0x19000000, 0x00000000, 0x00000000, 0x00000064
|
||||
glabel D_809C3480
|
||||
.word 0x00390000, 0x00000000, 0x00000001
|
||||
.word D_809C345C
|
||||
glabel D_809C3490
|
||||
.word 0xC0500000, 0xB04C07D0, 0x386CF060
|
||||
glabel D_809C349C
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
glabel D_809C34A8
|
||||
.word 0x00000000, 0x3DCCCCCD, 0x00000000
|
||||
glabel D_809C34B4
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
glabel D_809C34C0
|
||||
.word 0x00000000, 0x3F19999A, 0x00000000
|
||||
glabel D_809C34CC
|
||||
.word 0xFFFFFFFF
|
||||
|
@ -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_809C3530
|
||||
.incbin "baserom/ovl_En_Bom", 0xE60, 0x00000100
|
@ -1,35 +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 En_Bombf_InitVars
|
||||
.word 0x004C0600, 0x00000011, 0x00310000, 0x00000210
|
||||
.word EnBombf_Init
|
||||
.word EnBombf_Destroy
|
||||
.word EnBombf_Update
|
||||
.word EnBombf_Draw
|
||||
glabel D_809C8260
|
||||
.word 0x0A002939, 0x20010000, 0x02000000, 0x00000000, 0x00000000, 0x0003F828, 0x00000000, 0x00010100, 0x00090012, 0x000A0000, 0x00000000
|
||||
glabel D_809C828C
|
||||
.word 0x00000000, 0x00000008, 0x00080000, 0x00000000, 0x00000000, 0x19000000, 0x00000000, 0x00000000, 0x00000064
|
||||
glabel D_809C82B0
|
||||
.word 0x0A390000, 0x00000000, 0x00000001
|
||||
.word D_809C828C
|
||||
glabel D_809C82C0
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
glabel D_809C82CC
|
||||
.word 0x00000000, 0x3DCCCCCD, 0x00000000
|
||||
glabel D_809C82D8
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
glabel D_809C82E4
|
||||
.word 0x00000000, 0x3F19999A, 0x00000000
|
||||
glabel D_809C82F0
|
||||
.word 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000
|
||||
|
@ -836,6 +836,7 @@ void Collider_CylinderUpdate(Actor* actor, ColliderCylinder* collider);
|
||||
void func_80062718(ColliderCylinder* collider, Vec3s* pos);
|
||||
// ? func_80062734(?);
|
||||
void func_800627A0(ColliderTris* collider, s32 index, Vec3f* a, Vec3f* b, Vec3f* c);
|
||||
void func_800628A4(s32 arg0, ColliderJntSph* collider);
|
||||
void func_80062A28(GlobalContext*, Vec3f*);
|
||||
void func_80062B80(GlobalContext*, Vec3f*);
|
||||
void func_80062CD4(GlobalContext* globalCtx, Vec3f* v);
|
||||
@ -1100,6 +1101,7 @@ void func_8008ECAC(GlobalContext*, Player* player);
|
||||
void func_8008EDF0(Player*);
|
||||
// ? func_8008EE08(?);
|
||||
s32 func_8008EF44(GlobalContext*, s32);
|
||||
s32 func_8008EF5C(GlobalContext* globalCtx, Vec3f* pos, f32 radius, f32 arg3);
|
||||
// ? func_8008F034(?);
|
||||
u8 func_8008F080(GlobalContext*);
|
||||
Player* func_8008F08C(GlobalContext*);
|
||||
|
8
spec
8
spec
@ -2097,8 +2097,7 @@ endseg
|
||||
beginseg
|
||||
name "ovl_En_Bom"
|
||||
include "build/src/overlays/actors/ovl_En_Bom/z_en_bom.o"
|
||||
include "build/data/overlays/actors/z_en_bom.data.o"
|
||||
include "build/data/overlays/actors/z_en_bom.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Bom/ovl_En_Bom_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@ -2125,8 +2124,11 @@ endseg
|
||||
beginseg
|
||||
name "ovl_En_Bombf"
|
||||
include "build/src/overlays/actors/ovl_En_Bombf/z_en_bombf.o"
|
||||
include "build/data/overlays/actors/z_en_bombf.data.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/actors/ovl_En_Bombf/ovl_En_Bombf_reloc.o"
|
||||
#else
|
||||
include "build/data/overlays/actors/z_en_bombf.reloc.o"
|
||||
#endif
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
@ -1,3 +1,9 @@
|
||||
/*
|
||||
* File: z_en_bom.c
|
||||
* Overlay: ovl_En_Bom
|
||||
* Description: Bomb
|
||||
*/
|
||||
|
||||
#include "z_en_bom.h"
|
||||
|
||||
#define FLAGS 0x00000030
|
||||
@ -9,7 +15,9 @@ void EnBom_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnBom_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnBom_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
void EnBom_Move(EnBom* this, GlobalContext* globalCtx);
|
||||
void EnBom_WaitForRelease(EnBom* this, GlobalContext* globalCtx);
|
||||
|
||||
const ActorInit En_Bom_InitVars = {
|
||||
ACTOR_EN_BOM,
|
||||
ACTORTYPE_EXPLOSIVES,
|
||||
@ -21,19 +29,329 @@ const ActorInit En_Bom_InitVars = {
|
||||
(ActorFunc)EnBom_Update,
|
||||
(ActorFunc)EnBom_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bom/func_809C26D0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bom/EnBom_Init.s")
|
||||
static ColliderCylinderInit sCylinderInit = {
|
||||
{ COLTYPE_UNK0, 0x00, 0x29, 0x39, 0x20, COLSHAPE_CYLINDER },
|
||||
{ 0x02, { 0x00000000, 0x00, 0x00 }, { 0x0003F828, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
|
||||
{ 6, 11, 14, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bom/EnBom_Destroy.s")
|
||||
static ColliderJntSphItemInit sJntSphItemsInit[1] = {
|
||||
{
|
||||
{ 0x00, { 0x00000008, 0x00, 0x08 }, { 0x00000000, 0x00, 0x00 }, 0x19, 0x00, 0x00 },
|
||||
{ 0, { { 0, 0, 0 }, 0 }, 100 },
|
||||
},
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bom/func_809C282C.s")
|
||||
static ColliderJntSphInit sJntSphInit = {
|
||||
{ COLTYPE_UNK0, 0x39, 0x00, 0x00, 0x00, COLSHAPE_JNTSPH },
|
||||
1,
|
||||
sJntSphItemsInit,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bom/func_809C29F4.s")
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F(scale, 0, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(unk_4C, 2000, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32_DIV1000(gravity, 61536, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bom/func_809C2A38.s")
|
||||
extern Gfx D_04007A50[]; // gold fuse cap
|
||||
extern Gfx D_04007860[]; // bomb
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bom/EnBom_Update.s")
|
||||
void EnBom_SetupAction(EnBom* this, EnBomActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bom/EnBom_Draw.s")
|
||||
void EnBom_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnBom* this = THIS;
|
||||
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
ActorShape_Init(&this->actor.shape, 700.0f, ActorShadow_DrawFunc_Circle, 16.0f);
|
||||
this->actor.colChkInfo.mass = 200;
|
||||
this->actor.colChkInfo.unk_10 = 5;
|
||||
this->actor.colChkInfo.unk_12 = 0xA;
|
||||
this->timer = 70;
|
||||
this->flashSpeedScale = 7;
|
||||
Collider_InitCylinder(globalCtx, &this->bombCollider);
|
||||
Collider_InitJntSph(globalCtx, &this->explosionCollider);
|
||||
Collider_SetCylinder(globalCtx, &this->bombCollider, &this->actor, &sCylinderInit);
|
||||
Collider_SetJntSph(globalCtx, &this->explosionCollider, &this->actor, &sJntSphInit,
|
||||
&this->explosionColliderItems[0]);
|
||||
this->explosionColliderItems[0].body.toucher.damage += (thisx->shape.rot.z & 0xFF00) >> 8;
|
||||
|
||||
this->actor.shape.rot.z &= 0xFF;
|
||||
if (this->actor.shape.rot.z & 0x80) {
|
||||
this->actor.shape.rot.z |= 0xFF00;
|
||||
}
|
||||
|
||||
EnBom_SetupAction(this, EnBom_Move);
|
||||
}
|
||||
|
||||
void EnBom_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnBom* this = THIS;
|
||||
|
||||
Collider_DestroyJntSph(globalCtx, &this->explosionCollider);
|
||||
Collider_DestroyCylinder(globalCtx, &this->bombCollider);
|
||||
}
|
||||
|
||||
void EnBom_Move(EnBom* this, GlobalContext* globalCtx) {
|
||||
// if attached A is not null, the bomb hasnt been released yet
|
||||
if (func_8002F410(&this->actor, globalCtx)) {
|
||||
EnBom_SetupAction(this, EnBom_WaitForRelease);
|
||||
this->actor.room = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
if ((this->actor.velocity.y > 0.0f) && (this->actor.bgCheckFlags & 0x10)) {
|
||||
this->actor.velocity.y = -this->actor.velocity.y;
|
||||
}
|
||||
|
||||
// rebound bomb off the wall it hits
|
||||
if ((this->actor.speedXZ != 0.0f) && (this->actor.bgCheckFlags & 8)) {
|
||||
if (ABS((s16)(this->actor.wallPolyRot - this->actor.posRot.rot.y)) > 0x4000) {
|
||||
this->actor.posRot.rot.y =
|
||||
((this->actor.wallPolyRot - this->actor.posRot.rot.y) + this->actor.wallPolyRot) - 0x8000;
|
||||
}
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EV_BOMB_BOUND);
|
||||
Actor_MoveForward(&this->actor);
|
||||
this->actor.speedXZ *= 0.7f;
|
||||
this->actor.bgCheckFlags &= ~8;
|
||||
}
|
||||
|
||||
if (!(this->actor.bgCheckFlags & 1)) {
|
||||
Math_ApproxF(&this->actor.speedXZ, 0.0f, 0.08f);
|
||||
} else {
|
||||
Math_ApproxF(&this->actor.speedXZ, 0.0f, 1.0f);
|
||||
if ((this->actor.bgCheckFlags & 2) && (this->actor.velocity.y < -3.0f)) {
|
||||
func_8002F850(globalCtx, &this->actor);
|
||||
this->actor.velocity.y *= -0.3f;
|
||||
this->actor.bgCheckFlags &= ~2;
|
||||
} else if (this->timer >= 4) {
|
||||
func_8002F580(&this->actor, globalCtx);
|
||||
}
|
||||
}
|
||||
|
||||
Actor_MoveForward(&this->actor);
|
||||
}
|
||||
|
||||
void EnBom_WaitForRelease(EnBom* this, GlobalContext* globalCtx) {
|
||||
// if attachedA is NULL bomb has been released
|
||||
if (func_8002F5A0(&this->actor, globalCtx)) {
|
||||
EnBom_SetupAction(this, EnBom_Move);
|
||||
EnBom_Move(this, globalCtx);
|
||||
}
|
||||
}
|
||||
|
||||
void EnBom_Explode(EnBom* this, GlobalContext* globalCtx) {
|
||||
Player* player;
|
||||
|
||||
if (this->explosionCollider.list->dim.modelSphere.radius == 0) {
|
||||
this->actor.flags |= 0x20;
|
||||
func_800AA000(this->actor.xzDistFromLink, 0xFF, 0x14, 0x96);
|
||||
}
|
||||
|
||||
this->explosionCollider.list->dim.worldSphere.radius += this->actor.shape.rot.z + 8;
|
||||
|
||||
if (this->actor.params == BOMB_EXPLOSION) {
|
||||
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->explosionCollider.base);
|
||||
}
|
||||
|
||||
if (globalCtx->envCtx.unk_8C[3] != 0) {
|
||||
globalCtx->envCtx.unk_8C[3] -= 0x19;
|
||||
}
|
||||
|
||||
if (globalCtx->envCtx.unk_8C[4] != 0) {
|
||||
globalCtx->envCtx.unk_8C[4] -= 0x19;
|
||||
}
|
||||
|
||||
if (globalCtx->envCtx.unk_8C[5] != 0) {
|
||||
globalCtx->envCtx.unk_8C[5] -= 0x19;
|
||||
}
|
||||
|
||||
if (globalCtx->envCtx.unk_8C[0] != 0) {
|
||||
globalCtx->envCtx.unk_8C[0] -= 0x19;
|
||||
}
|
||||
|
||||
if (globalCtx->envCtx.unk_8C[1] != 0) {
|
||||
globalCtx->envCtx.unk_8C[1] -= 0x19;
|
||||
}
|
||||
|
||||
if (globalCtx->envCtx.unk_8C[2] != 0) {
|
||||
globalCtx->envCtx.unk_8C[2] -= 0x19;
|
||||
}
|
||||
|
||||
if (this->timer == 0) {
|
||||
player = PLAYER;
|
||||
|
||||
if ((player->stateFlags1 & 0x800) && (player->heldActor == &this->actor)) {
|
||||
player->actor.attachedB = NULL;
|
||||
player->heldActor = NULL;
|
||||
player->interactRangeActor = NULL;
|
||||
player->stateFlags1 &= ~0x800;
|
||||
}
|
||||
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
}
|
||||
|
||||
void EnBom_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Vec3f effVelocity = { 0.0f, 0.0f, 0.0f };
|
||||
Vec3f bomb2Accel = { 0.0f, 0.1f, 0.0f };
|
||||
Vec3f effAccel = { 0.0f, 0.0f, 0.0f };
|
||||
Vec3f effPos;
|
||||
Vec3f dustAccel = { 0.0f, 0.6f, 0.0f };
|
||||
Color_RGBA8_n dustColor = { 255, 255, 255, 255 };
|
||||
s32 pad[2];
|
||||
EnBom* this = THIS;
|
||||
|
||||
this->actor.gravity = -1.2f;
|
||||
|
||||
if (this->timer != 0) {
|
||||
this->timer--;
|
||||
}
|
||||
|
||||
if (this->timer == 67) {
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_PL_TAKE_OUT_SHIELD);
|
||||
Actor_SetScale(&this->actor, 0.01f);
|
||||
}
|
||||
|
||||
if ((this->actor.xzDistFromLink >= 20.0f) || (ABS(this->actor.yDistFromLink) >= 80.0f)) {
|
||||
this->bumpOn = true;
|
||||
}
|
||||
|
||||
this->actionFunc(this, globalCtx);
|
||||
|
||||
func_8002E4B4(globalCtx, &this->actor, 5.0f, 10.0f, 15.0f, 0x1F);
|
||||
|
||||
if (this->actor.params == BOMB_BODY) {
|
||||
if (this->timer < 63) {
|
||||
dustAccel.y = 0.2f;
|
||||
|
||||
// spawn spark effect on even frames
|
||||
effPos = this->actor.posRot.pos;
|
||||
effPos.y += 17.0f;
|
||||
if ((globalCtx->gameplayFrames % 2) == 0) {
|
||||
func_80029184(globalCtx, this, &effPos, &effVelocity, &effAccel);
|
||||
}
|
||||
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_IT_BOMB_IGNIT - SFX_FLAG);
|
||||
|
||||
effPos.y += 3.0f;
|
||||
func_8002829C(globalCtx, &effPos, &effVelocity, &dustAccel, &dustColor, &dustColor, 0x32, 5);
|
||||
}
|
||||
|
||||
if ((this->bombCollider.base.acFlags & 2) ||
|
||||
((this->bombCollider.base.maskA & 2) && (this->bombCollider.base.oc->type == ACTORTYPE_ENEMY))) {
|
||||
this->timer = 0;
|
||||
this->actor.shape.rot.z = 0;
|
||||
} else {
|
||||
// if a lit stick touches the bomb, set timer to 100
|
||||
// these bombs never have a timer over 70, so this isnt used
|
||||
if ((this->timer > 100) && func_8008EF5C(globalCtx, &this->actor.posRot.pos, 30.0f, 50.0f)) {
|
||||
this->timer = 100;
|
||||
}
|
||||
}
|
||||
|
||||
dustAccel.y = 0.2f;
|
||||
effPos = this->actor.posRot.pos;
|
||||
effPos.y += 10.0f;
|
||||
|
||||
// double bomb flash speed and adjust red color at certain times during the countdown
|
||||
if ((this->timer == 3) || (this->timer == 20) || (this->timer == 40)) {
|
||||
this->actor.shape.rot.z = 0;
|
||||
this->flashSpeedScale >>= 1;
|
||||
}
|
||||
|
||||
if ((this->timer < 100) && ((this->timer & (this->flashSpeedScale + 1)) != 0)) {
|
||||
Math_SmoothScaleMaxMinF(&this->flashIntensity, 140.0f, 1.0f, 140.0f / this->flashSpeedScale, 0.0f);
|
||||
} else {
|
||||
Math_SmoothScaleMaxMinF(&this->flashIntensity, 0.0f, 1.0f, 140.0f / this->flashSpeedScale, 0.0f);
|
||||
}
|
||||
|
||||
if (this->timer < 3) {
|
||||
Actor_SetScale(&this->actor, this->actor.scale.x + 0.002f);
|
||||
}
|
||||
|
||||
if (this->timer == 0) {
|
||||
effPos = this->actor.posRot.pos;
|
||||
|
||||
effPos.y += 10.0f;
|
||||
if (func_8002F410(&this->actor, globalCtx)) {
|
||||
effPos.y += 30.0f;
|
||||
}
|
||||
|
||||
func_80028E84(globalCtx, &effPos, &effVelocity, &bomb2Accel, 0x64, (this->actor.shape.rot.z * 6) + 0x13);
|
||||
|
||||
effPos.y = this->actor.groundY;
|
||||
if (this->actor.groundY > -32000.0f) {
|
||||
func_80029024(globalCtx, &effPos, &effVelocity, &effAccel);
|
||||
}
|
||||
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_IT_BOMB_EXPLOSION);
|
||||
if (globalCtx) {};
|
||||
globalCtx->envCtx.unk_8C[3] = globalCtx->envCtx.unk_8C[4] = globalCtx->envCtx.unk_8C[5] = 0xFA;
|
||||
globalCtx->envCtx.unk_8C[0] = globalCtx->envCtx.unk_8C[1] = globalCtx->envCtx.unk_8C[2] = 0xFA;
|
||||
func_8005AA1C(&globalCtx->cameras[0], 2, 0xB, 8);
|
||||
this->actor.params = BOMB_EXPLOSION;
|
||||
this->timer = 10;
|
||||
this->actor.flags |= 0x20;
|
||||
EnBom_SetupAction(this, EnBom_Explode);
|
||||
}
|
||||
}
|
||||
|
||||
Actor_SetHeight(&this->actor, 20.0f);
|
||||
|
||||
if (this->actor.params <= BOMB_BODY) {
|
||||
Collider_CylinderUpdate(&this->actor, &this->bombCollider);
|
||||
|
||||
// if link is not holding the bomb anymore and bump conditions are met, subscribe to OC
|
||||
if (!func_8002F410(&this->actor, globalCtx) && this->bumpOn) {
|
||||
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->bombCollider.base);
|
||||
}
|
||||
|
||||
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->bombCollider.base);
|
||||
}
|
||||
|
||||
if ((this->actor.scale.x >= 0.01f) && (this->actor.params != BOMB_EXPLOSION)) {
|
||||
if (this->actor.waterY >= 20.0f) {
|
||||
func_8002A9F4(globalCtx, &this->actor.projectedPos, NA_SE_IT_BOMB_UNEXPLOSION, 1, 1, 0xA);
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
if (this->actor.bgCheckFlags & 0x40) {
|
||||
this->actor.bgCheckFlags &= ~0x40;
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EV_BOMB_DROP_WATER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EnBom_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
EnBom* this = THIS;
|
||||
GraphicsContext* gfxCtx;
|
||||
Gfx* dispRefs[4];
|
||||
|
||||
if (1) {}
|
||||
gfxCtx = globalCtx->state.gfxCtx;
|
||||
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_bom.c", 913);
|
||||
|
||||
if (this->actor.params == BOMB_BODY) {
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
func_800D1FD4(&globalCtx->mf_11DA0);
|
||||
func_8002EBCC(&this->actor, globalCtx, 0);
|
||||
|
||||
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_bom.c", 928),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gfxCtx->polyOpa.p++, D_04007A50);
|
||||
Matrix_RotateRPY(0x4000, 0, 0, MTXMODE_APPLY);
|
||||
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_bom.c", 934),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gDPPipeSync(gfxCtx->polyOpa.p++);
|
||||
gDPSetEnvColor(gfxCtx->polyOpa.p++, (s16)this->flashIntensity, 0, 40, 255);
|
||||
gDPSetPrimColor(gfxCtx->polyOpa.p++, 0, 0, (s16)this->flashIntensity, 0, 40, 255);
|
||||
gSPDisplayList(gfxCtx->polyOpa.p++, D_04007860);
|
||||
func_800628A4(0, &this->explosionCollider);
|
||||
}
|
||||
|
||||
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_bom.c", 951);
|
||||
}
|
||||
|
@ -6,11 +6,25 @@
|
||||
|
||||
struct EnBom;
|
||||
|
||||
typedef void (*EnBomActionFunc)(struct EnBom*, struct GlobalContext*);
|
||||
|
||||
typedef struct EnBom {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0xBC];
|
||||
/* 0x014C */ ColliderCylinder bombCollider;
|
||||
/* 0x0198 */ ColliderJntSph explosionCollider;
|
||||
/* 0x01B8 */ ColliderJntSphItem explosionColliderItems[1];
|
||||
/* 0x01F8 */ s16 timer;
|
||||
/* 0x01FA */ s16 flashSpeedScale;
|
||||
/* 0x01FC */ f32 flashIntensity;
|
||||
/* 0x0200 */ u8 bumpOn;
|
||||
/* 0x0204 */ EnBomActionFunc actionFunc;
|
||||
} EnBom; // size = 0x0208
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ BOMB_BODY,
|
||||
/* 0x01 */ BOMB_EXPLOSION,
|
||||
} EnBomType;
|
||||
|
||||
extern const ActorInit En_Bom_InitVars;
|
||||
|
||||
#endif
|
||||
|
@ -1,3 +1,9 @@
|
||||
/*
|
||||
* File: z_en_bombf.c
|
||||
* Overlay: ovl_En_Bombf
|
||||
* Description: Bomb Flower
|
||||
*/
|
||||
|
||||
#include "z_en_bombf.h"
|
||||
|
||||
#define FLAGS 0x00000011
|
||||
@ -9,7 +15,12 @@ void EnBombf_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnBombf_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnBombf_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
void EnBombf_Move(EnBombf* this, GlobalContext* globalCtx);
|
||||
void EnBombf_GrowBomb(EnBombf* this, GlobalContext* globalCtx);
|
||||
void EnBombf_WaitForRelease(EnBombf* this, GlobalContext* globalCtx);
|
||||
void EnBombf_Explode(EnBombf* this, GlobalContext* globalCtx);
|
||||
void EnBombf_SetupGrowBomb(EnBombf* this, s16 params);
|
||||
|
||||
const ActorInit En_Bombf_InitVars = {
|
||||
ACTOR_EN_BOMBF,
|
||||
ACTORTYPE_PROP,
|
||||
@ -21,25 +32,475 @@ const ActorInit En_Bombf_InitVars = {
|
||||
(ActorFunc)EnBombf_Update,
|
||||
(ActorFunc)EnBombf_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bombf/func_809C6F60.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bombf/EnBombf_Init.s")
|
||||
static ColliderCylinderInit sCylinderInit = {
|
||||
{ COLTYPE_UNK10, 0x00, 0x29, 0x39, 0x20, COLSHAPE_CYLINDER },
|
||||
{ 0x02, { 0x00000000, 0x00, 0x00 }, { 0x0003F828, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
|
||||
{ 9, 18, 10, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bombf/EnBombf_Destroy.s")
|
||||
static ColliderJntSphItemInit sJntSphItemsInit[1] = {
|
||||
{
|
||||
{ 0x00, { 0x00000008, 0x00, 0x08 }, { 0x00000000, 0x00, 0x00 }, 0x19, 0x00, 0x00 },
|
||||
{ 0, { { 0, 0, 0 }, 0 }, 100 },
|
||||
},
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bombf/func_809C7180.s")
|
||||
static ColliderJntSphInit sJntSphInit = {
|
||||
{ COLTYPE_UNK10, 0x39, 0x00, 0x00, 0x00, COLSHAPE_JNTSPH },
|
||||
1,
|
||||
sJntSphItemsInit,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bombf/func_809C71A8.s")
|
||||
extern Gfx D_06000340[];
|
||||
extern Gfx D_06000408[];
|
||||
extern Gfx D_06000530[];
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bombf/func_809C74AC.s")
|
||||
void EnBombf_SetupAction(EnBombf* this, EnBombfActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bombf/func_809C75C8.s")
|
||||
void EnBombf_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
f32 shapeUnk10 = 0.0f;
|
||||
s32 pad;
|
||||
EnBombf* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bombf/func_809C7624.s")
|
||||
Actor_SetScale(&this->actor, 0.01f);
|
||||
this->unk_200 = 1;
|
||||
Collider_InitCylinder(globalCtx, &this->bombCollider);
|
||||
Collider_InitJntSph(globalCtx, &this->explosionCollider);
|
||||
Collider_SetCylinder(globalCtx, &this->bombCollider, &this->actor, &sCylinderInit);
|
||||
Collider_SetJntSph(globalCtx, &this->explosionCollider, &this->actor, &sJntSphInit,
|
||||
&this->explosionColliderItems[0]);
|
||||
|
||||
if (this->actor.params == BOMBFLOWER_BODY) {
|
||||
shapeUnk10 = 1000.0f;
|
||||
}
|
||||
|
||||
ActorShape_Init(&this->actor.shape, shapeUnk10, ActorShadow_DrawFunc_Circle, 12.0f);
|
||||
this->actor.posRot2.pos = this->actor.posRot.pos;
|
||||
|
||||
if (Actor_FindNearby(globalCtx, &this->actor, ACTOR_BG_DDAN_KD, ACTORTYPE_BG, 10000.0f) != NULL) {
|
||||
this->actor.flags |= 0x20;
|
||||
}
|
||||
|
||||
this->actor.colChkInfo.unk_10 = 10.0f;
|
||||
this->actor.colChkInfo.unk_12 = 10;
|
||||
this->actor.unk_1F = 0;
|
||||
|
||||
if (this->actor.params == BOMBFLOWER_BODY) {
|
||||
this->timer = 140;
|
||||
this->flashSpeedScale = 15;
|
||||
this->actor.gravity = -1.5f;
|
||||
Actor_ChangeType(globalCtx, &globalCtx->actorCtx, &this->actor, ACTORTYPE_EXPLOSIVES);
|
||||
this->actor.colChkInfo.mass = 200;
|
||||
this->actor.flags &= ~1;
|
||||
EnBombf_SetupAction(this, EnBombf_Move);
|
||||
} else {
|
||||
this->actor.colChkInfo.mass = 0xFF;
|
||||
this->bumpOn = true;
|
||||
this->flowerBombScale = 1.0f;
|
||||
EnBombf_SetupGrowBomb(this, thisx->params);
|
||||
}
|
||||
|
||||
this->actor.uncullZoneScale += 31000.0f;
|
||||
this->actor.uncullZoneForward += 31000.0f;
|
||||
}
|
||||
|
||||
void EnBombf_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnBombf* this = THIS;
|
||||
|
||||
Collider_DestroyCylinder(globalCtx, &this->bombCollider);
|
||||
Collider_DestroyJntSph(globalCtx, &this->explosionCollider);
|
||||
}
|
||||
|
||||
void EnBombf_SetupGrowBomb(EnBombf* this, s16 params) {
|
||||
EnBombf_SetupAction(this, EnBombf_GrowBomb);
|
||||
}
|
||||
|
||||
void EnBombf_GrowBomb(EnBombf* this, GlobalContext* globalCtx) {
|
||||
EnBombf* bombFlower;
|
||||
s32 pad;
|
||||
s32 pad1;
|
||||
Player* player = PLAYER;
|
||||
s32 pad2;
|
||||
|
||||
if (this->flowerBombScale >= 1.0f) {
|
||||
if (func_8002F410(&this->actor, globalCtx)) {
|
||||
bombFlower =
|
||||
(EnBombf*)Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_BOMBF, this->actor.posRot.pos.x,
|
||||
this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0, 0, 0, 0);
|
||||
if (bombFlower != NULL) {
|
||||
func_8002F5C4(&this->actor, bombFlower, globalCtx);
|
||||
this->timer = 180;
|
||||
this->flowerBombScale = 0.0f;
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_PL_PULL_UP_ROCK);
|
||||
this->actor.flags &= ~1;
|
||||
} else {
|
||||
player->actor.attachedB = NULL;
|
||||
player->heldActor = NULL;
|
||||
player->interactRangeActor = NULL;
|
||||
this->actor.attachedA = NULL;
|
||||
player->stateFlags1 &= ~0x800;
|
||||
}
|
||||
} else if (this->bombCollider.base.acFlags & 2) {
|
||||
this->bombCollider.base.acFlags &= ~2;
|
||||
|
||||
if (this->bombCollider.base.ac->type != ACTORTYPE_BOSS) {
|
||||
bombFlower =
|
||||
(EnBombf*)Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_BOMBF, this->actor.posRot.pos.x,
|
||||
this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0, 0, 0, 0);
|
||||
if (bombFlower != NULL) {
|
||||
bombFlower->unk_200 = 1;
|
||||
bombFlower->timer = 0;
|
||||
this->timer = 180;
|
||||
this->actor.flags &= ~1;
|
||||
this->flowerBombScale = 0.0f;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (func_8008EF5C(globalCtx, &this->actor.posRot.pos, 30.0f, 50.0f)) {
|
||||
bombFlower =
|
||||
(EnBombf*)Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_BOMBF, this->actor.posRot.pos.x,
|
||||
this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0, 0, 0, 0);
|
||||
if (bombFlower != NULL) {
|
||||
bombFlower->timer = 100;
|
||||
this->timer = 180;
|
||||
this->actor.flags &= ~1;
|
||||
this->flowerBombScale = 0.0f;
|
||||
}
|
||||
} else {
|
||||
if (!func_8002F410(&this->actor, globalCtx)) {
|
||||
func_8002F580(&this->actor, globalCtx);
|
||||
} else {
|
||||
player->actor.attachedB = NULL;
|
||||
player->heldActor = NULL;
|
||||
player->interactRangeActor = NULL;
|
||||
this->actor.attachedA = NULL;
|
||||
player->stateFlags1 &= ~0x800;
|
||||
this->actor.posRot.pos = this->actor.initPosRot.pos;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (this->timer == 0) {
|
||||
this->flowerBombScale += 0.05f;
|
||||
if (this->flowerBombScale >= 1.0f) {
|
||||
this->actor.flags |= 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (func_8002F410(&this->actor, globalCtx)) {
|
||||
player->actor.attachedB = NULL;
|
||||
player->heldActor = NULL;
|
||||
player->interactRangeActor = NULL;
|
||||
this->actor.attachedA = NULL;
|
||||
player->stateFlags1 &= ~0x800;
|
||||
this->actor.posRot.pos = this->actor.initPosRot.pos;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EnBombf_Move(EnBombf* this, GlobalContext* globalCtx) {
|
||||
if (func_8002F410(&this->actor, globalCtx)) {
|
||||
// setting flowerBombScale does not do anything in the context of a bomb that link picks up
|
||||
// this and the assignment below are probably left overs
|
||||
this->flowerBombScale = 0.0f;
|
||||
EnBombf_SetupAction(this, EnBombf_WaitForRelease);
|
||||
this->actor.room = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
this->flowerBombScale = 1.0f;
|
||||
|
||||
if (!(this->actor.bgCheckFlags & 1)) {
|
||||
Math_SmoothScaleMaxMinF(&this->actor.speedXZ, 0.0f, 1.0f, 0.025f, 0.0f);
|
||||
} else {
|
||||
Math_SmoothScaleMaxMinF(&this->actor.speedXZ, 0.0f, 1.0f, 1.5f, 0.0f);
|
||||
if ((this->actor.bgCheckFlags & 2) && (this->actor.velocity.y < -6.0f)) {
|
||||
func_8002F850(globalCtx, &this->actor);
|
||||
this->actor.velocity.y *= -0.5f;
|
||||
} else if (this->timer >= 4) {
|
||||
func_8002F580(&this->actor, globalCtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EnBombf_WaitForRelease(EnBombf* this, GlobalContext* globalCtx) {
|
||||
// if attachedA is NULL bomb has been released
|
||||
if (func_8002F5A0(&this->actor, globalCtx)) {
|
||||
EnBombf_SetupAction(this, EnBombf_Move);
|
||||
EnBombf_Move(this, globalCtx);
|
||||
} else {
|
||||
this->actor.velocity.y = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
void EnBombf_Explode(EnBombf* this, GlobalContext* globalCtx) {
|
||||
Player* player;
|
||||
|
||||
if (this->explosionCollider.list->dim.modelSphere.radius == 0) {
|
||||
this->actor.flags |= 0x20;
|
||||
func_800AA000(this->actor.xzDistFromLink, 0xFF, 0x14, 0x96);
|
||||
}
|
||||
|
||||
this->explosionCollider.list->dim.modelSphere.radius += 8;
|
||||
this->explosionCollider.list->dim.worldSphere.radius = this->explosionCollider.list->dim.modelSphere.radius;
|
||||
|
||||
if (this->actor.params == BOMBFLOWER_EXPLOSION) {
|
||||
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->explosionCollider.base);
|
||||
}
|
||||
|
||||
if (globalCtx->envCtx.unk_8C[3] != 0) {
|
||||
globalCtx->envCtx.unk_8C[3] -= 0x19;
|
||||
}
|
||||
|
||||
if (globalCtx->envCtx.unk_8C[4] != 0) {
|
||||
globalCtx->envCtx.unk_8C[4] -= 0x19;
|
||||
}
|
||||
|
||||
if (globalCtx->envCtx.unk_8C[5] != 0) {
|
||||
globalCtx->envCtx.unk_8C[5] -= 0x19;
|
||||
}
|
||||
|
||||
if (globalCtx->envCtx.unk_8C[0] != 0) {
|
||||
globalCtx->envCtx.unk_8C[0] -= 0x19;
|
||||
}
|
||||
|
||||
if (globalCtx->envCtx.unk_8C[1] != 0) {
|
||||
globalCtx->envCtx.unk_8C[1] -= 0x19;
|
||||
}
|
||||
|
||||
if (globalCtx->envCtx.unk_8C[2] != 0) {
|
||||
globalCtx->envCtx.unk_8C[2] -= 0x19;
|
||||
}
|
||||
|
||||
if (this->timer == 0) {
|
||||
player = PLAYER;
|
||||
|
||||
if ((player->stateFlags1 & 0x800) && (player->heldActor == &this->actor)) {
|
||||
player->actor.attachedB = NULL;
|
||||
player->heldActor = NULL;
|
||||
player->interactRangeActor = NULL;
|
||||
player->stateFlags1 &= ~0x800;
|
||||
}
|
||||
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// stack issues. exact problems are commented in the function
|
||||
void EnBombf_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Vec3f effVelocity = { 0.0f, 0.0f, 0.0f };
|
||||
Vec3f bomb2Accel = { 0.0f, 0.1f, 0.0f };
|
||||
Vec3f effAccel = { 0.0f, 0.0f, 0.0f };
|
||||
Vec3f effPos;
|
||||
Vec3f dustAccel = { 0.0f, 0.6f, 0.0f };
|
||||
Color_RGBA8_n dustColor = { 255, 255, 255, 255 };
|
||||
EnBombf* this = THIS;
|
||||
s32 pad1;
|
||||
s32 pad2;
|
||||
|
||||
if ((this->unk_200 != 0) && (this->timer != 0)) {
|
||||
this->timer--;
|
||||
}
|
||||
|
||||
if ((!this->bumpOn) && (!func_8002F410(&this->actor, globalCtx)) &&
|
||||
((this->actor.xzDistFromLink >= 20.0f) || (ABS(this->actor.yDistFromLink) >= 80.0f))) {
|
||||
this->bumpOn = true;
|
||||
}
|
||||
|
||||
this->actionFunc(this, globalCtx);
|
||||
|
||||
if (this->actor.params == BOMBFLOWER_BODY) {
|
||||
Actor_MoveForward(&this->actor);
|
||||
}
|
||||
|
||||
if (this->actor.gravity != 0.0f) {
|
||||
DREG(6) = 1;
|
||||
func_8002E4B4(globalCtx, &this->actor, 5.0f, 10.0f, 0.0f, 0x1F);
|
||||
DREG(6) = 0;
|
||||
}
|
||||
|
||||
if (this->actor.params == BOMBFLOWER_BODY) {
|
||||
|
||||
if ((this->actor.velocity.y > 0.0f) && (this->actor.bgCheckFlags & 0x10)) {
|
||||
this->actor.velocity.y = -this->actor.velocity.y;
|
||||
}
|
||||
|
||||
// rebound bomb off the wall it hits
|
||||
if ((this->actor.speedXZ != 0.0f) && (this->actor.bgCheckFlags & 8)) {
|
||||
|
||||
if (ABS((s16)(this->actor.wallPolyRot - this->actor.posRot.rot.y)) > 0x4000) {
|
||||
this->actor.posRot.rot.y =
|
||||
((this->actor.wallPolyRot - this->actor.posRot.rot.y) + this->actor.wallPolyRot) - 0x8000;
|
||||
}
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EV_BOMB_BOUND);
|
||||
Actor_MoveForward(&this->actor);
|
||||
DREG(6) = 1;
|
||||
func_8002E4B4(globalCtx, &this->actor, 5.0f, 10.0f, 0.0f, 0x1F);
|
||||
DREG(6) = 0;
|
||||
this->actor.speedXZ *= 0.7f;
|
||||
this->actor.bgCheckFlags &= ~8;
|
||||
}
|
||||
|
||||
if ((this->bombCollider.base.acFlags & 2) ||
|
||||
((this->bombCollider.base.maskA & 2) && (this->bombCollider.base.oc->type == ACTORTYPE_ENEMY))) {
|
||||
this->unk_200 = 1;
|
||||
this->timer = 0;
|
||||
} else {
|
||||
// if a lit stick touches the bomb, set timer to 100
|
||||
if ((this->timer > 100) && func_8008EF5C(globalCtx, &this->actor.posRot.pos, 30.0f, 50.0f)) {
|
||||
this->timer = 100;
|
||||
}
|
||||
}
|
||||
|
||||
if (this->unk_200 != 0) {
|
||||
dustAccel.y = 0.2f;
|
||||
effPos = this->actor.posRot.pos; // pointer to position supposed to go to sp3C, goes to 38
|
||||
effPos.y += 25.0f;
|
||||
if (this->timer < 127) {
|
||||
// spawn spark effect on even frames
|
||||
if ((globalCtx->gameplayFrames % 2) == 0) {
|
||||
func_80029184(globalCtx, this, &effPos, &effVelocity, &effAccel);
|
||||
}
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_IT_BOMB_IGNIT - SFX_FLAG);
|
||||
|
||||
effPos.y += 3.0f;
|
||||
func_8002829C(globalCtx, &effPos, &effVelocity, &dustAccel, &dustColor, &dustColor, 50, 5);
|
||||
if (1) {}
|
||||
}
|
||||
|
||||
// double bomb flash speed and adjust red color at certain times during the countdown
|
||||
if ((this->timer == 3) || (this->timer == 30) || (this->timer == 50) || (this->timer == 70)) {
|
||||
this->flashSpeedScale >>= 1;
|
||||
}
|
||||
|
||||
if ((this->timer < 100) && ((this->timer & (this->flashSpeedScale + 1)) != 0)) {
|
||||
Math_SmoothScaleMaxMinF(&this->flashIntensity, 150.0f, 1.0f, 150.0f / this->flashSpeedScale, 0.0f);
|
||||
} else {
|
||||
Math_SmoothScaleMaxMinF(&this->flashIntensity, 0.0f, 1.0f, 150.0f / this->flashSpeedScale, 0.0f);
|
||||
}
|
||||
|
||||
if (this->timer < 3) {
|
||||
Actor_SetScale(&this->actor, this->actor.scale.x + 0.002f);
|
||||
}
|
||||
|
||||
if (this->timer == 0) {
|
||||
effPos =
|
||||
this->actor.posRot.pos; // same position copy from earlier, gets loaded from sp38 instead of sp3C
|
||||
|
||||
effPos.y += 10.0f;
|
||||
|
||||
// globalCtx+0x10000 gets stored to sp3C here instead of sp38
|
||||
if (func_8002F410(&this->actor, globalCtx)) {
|
||||
effPos.y += 30.0f;
|
||||
}
|
||||
|
||||
func_80028E84(globalCtx, &effPos, &effVelocity, &bomb2Accel, 0x64, 0x13);
|
||||
|
||||
effPos.y = this->actor.groundY;
|
||||
if (this->actor.groundY > -32000.0f) {
|
||||
func_80029024(globalCtx, &effPos, &effVelocity, &effAccel);
|
||||
}
|
||||
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_IT_BOMB_EXPLOSION);
|
||||
globalCtx->envCtx.unk_8C[3] = globalCtx->envCtx.unk_8C[4] = globalCtx->envCtx.unk_8C[5] = 0xFA;
|
||||
globalCtx->envCtx.unk_8C[0] = globalCtx->envCtx.unk_8C[1] = globalCtx->envCtx.unk_8C[2] = 0xFA;
|
||||
func_8005AA1C(&globalCtx->cameras[0], 2, 0xB, 8);
|
||||
this->actor.params = BOMBFLOWER_EXPLOSION;
|
||||
this->timer = 10;
|
||||
this->actor.flags |= 0x20;
|
||||
EnBombf_SetupAction(this, EnBombf_Explode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this->actor.posRot2.pos = this->actor.posRot.pos;
|
||||
this->actor.posRot2.pos.y += 10.0f;
|
||||
|
||||
if (this->actor.params <= BOMBFLOWER_BODY) {
|
||||
|
||||
Collider_CylinderUpdate(&this->actor, &this->bombCollider); // bombCollider goes to sp38 instead of sp3C
|
||||
|
||||
if ((this->flowerBombScale >= 1.0f) && (this->bumpOn)) {
|
||||
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx,
|
||||
&this->bombCollider.base); // bombCollider loads from sp38 instead of sp3C
|
||||
}
|
||||
|
||||
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx,
|
||||
&this->bombCollider.base); // bombCollider loads from sp38 instead of sp3C
|
||||
}
|
||||
|
||||
if ((this->actor.scale.x >= 0.01f) && (this->actor.params != BOMBFLOWER_EXPLOSION)) {
|
||||
if (this->actor.waterY >= 20.0f) {
|
||||
func_8002A9F4(globalCtx, &this->actor.projectedPos, NA_SE_IT_BOMB_UNEXPLOSION, 1, 1, 0xA);
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
if (this->actor.bgCheckFlags & 0x40) {
|
||||
this->actor.bgCheckFlags &= ~0x40;
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EV_BOMB_DROP_WATER);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
Vec3f D_809C82C0 = { 0.0f, 0.0f, 0.0f };
|
||||
Vec3f D_809C82CC = { 0.0f, 0.1f, 0.0f };
|
||||
Vec3f D_809C82D8 = { 0.0f, 0.0f, 0.0f };
|
||||
Vec3f D_809C82E4 = { 0.0f, 0.6f, 0.0f };
|
||||
Color_RGBA8_n D_809C82F0 = { 255, 255, 255, 255 };
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bombf/EnBombf_Update.s")
|
||||
#endif
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bombf/func_809C7F24.s")
|
||||
Gfx* EnBombf_NewMtxDList(GraphicsContext* gfxCtx, GlobalContext* globalCtx) {
|
||||
Gfx* displayList;
|
||||
Gfx* displayListHead;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Bombf/EnBombf_Draw.s")
|
||||
displayList = Graph_Alloc(gfxCtx, 5 * sizeof(Gfx));
|
||||
displayListHead = displayList;
|
||||
func_800D1FD4(&globalCtx->mf_11DA0);
|
||||
gSPMatrix(displayListHead++, Matrix_NewMtx(gfxCtx, "../z_en_bombf.c", 1021),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPEndDisplayList(displayListHead);
|
||||
return displayList;
|
||||
}
|
||||
|
||||
void EnBombf_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
EnBombf* this = THIS;
|
||||
GraphicsContext* gfxCtx;
|
||||
Gfx* disRefs[4];
|
||||
|
||||
if (1) {}
|
||||
gfxCtx = globalCtx->state.gfxCtx;
|
||||
Graph_OpenDisps(&disRefs, globalCtx->state.gfxCtx, "../z_en_bombf.c", 1034);
|
||||
|
||||
if (this->actor.params <= BOMBFLOWER_BODY) {
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
|
||||
if (this->actor.params != BOMBFLOWER_BODY) {
|
||||
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_bombf.c", 1041),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(gfxCtx->polyOpa.p++, D_06000340);
|
||||
gSPDisplayList(gfxCtx->polyOpa.p++, D_06000530);
|
||||
|
||||
Matrix_Translate(0.0f, 1000.0f, 0.0f, MTXMODE_APPLY);
|
||||
Matrix_Scale(this->flowerBombScale, this->flowerBombScale, this->flowerBombScale, MTXMODE_APPLY);
|
||||
}
|
||||
|
||||
gDPSetPrimColor(gfxCtx->polyOpa.p++, 0, 0, 200, 255, 200, 255);
|
||||
gDPPipeSync(gfxCtx->polyOpa.p++);
|
||||
gDPSetEnvColor(gfxCtx->polyOpa.p++, (s16)this->flashIntensity, 20, 10, 0);
|
||||
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_bombf.c", 1054),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPSegment(gfxCtx->polyOpa.p++, 0x08,
|
||||
SEGMENTED_TO_VIRTUAL(EnBombf_NewMtxDList(globalCtx->state.gfxCtx, globalCtx)));
|
||||
gSPDisplayList(gfxCtx->polyOpa.p++, D_06000408);
|
||||
} else {
|
||||
func_800628A4(0, &this->explosionCollider);
|
||||
}
|
||||
|
||||
Graph_CloseDisps(&disRefs, globalCtx->state.gfxCtx, "../z_en_bombf.c", 1063);
|
||||
}
|
||||
|
@ -6,11 +6,28 @@
|
||||
|
||||
struct EnBombf;
|
||||
|
||||
typedef void (*EnBombfActionFunc)(struct EnBombf*, struct GlobalContext*);
|
||||
|
||||
typedef struct EnBombf {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0xC4];
|
||||
/* 0x014C */ ColliderCylinder bombCollider;
|
||||
/* 0x0198 */ ColliderJntSph explosionCollider;
|
||||
/* 0x01B8 */ ColliderJntSphItem explosionColliderItems[1];
|
||||
/* 0x01F8 */ s16 timer;
|
||||
/* 0x01FC */ EnBombfActionFunc actionFunc;
|
||||
/* 0x0200 */ s32 unk_200;
|
||||
/* 0x0204 */ u8 bumpOn;
|
||||
/* 0x0206 */ s16 flashSpeedScale;
|
||||
/* 0x0208 */ f32 flashIntensity;
|
||||
/* 0x020C */ f32 flowerBombScale;
|
||||
} EnBombf; // size = 0x0210
|
||||
|
||||
typedef enum {
|
||||
/* 0xFFFF */ BOMBFLOWER_FLOWER = -1,
|
||||
/* 0x0000 */ BOMBFLOWER_BODY,
|
||||
/* 0x0001 */ BOMBFLOWER_EXPLOSION,
|
||||
} EnBombfType;
|
||||
|
||||
extern const ActorInit En_Bombf_InitVars;
|
||||
|
||||
#endif
|
||||
|
@ -710,6 +710,15 @@ D_06005880 = 0x06005880;
|
||||
D_06005C30 = 0x06005C30;
|
||||
D_0600BAC8 = 0x0600BAC8;
|
||||
|
||||
// z_en_bom
|
||||
D_04007A50 = 0x04007A50;
|
||||
D_04007860 = 0x04007860;
|
||||
|
||||
// z_en_bombf
|
||||
D_06000340 = 0x06000340;
|
||||
D_06000408 = 0x06000408;
|
||||
D_06000530 = 0x06000530;
|
||||
|
||||
// z_eff_ss_dust
|
||||
D_04010050 = 0x04010050;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user