mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-25 09:45:02 +00:00
ovl_Item_Shield OK (#717)
* ovl_Item_Shield OK * ovl_Item_Shield fix spec * review changes * review comments 2
This commit is contained in:
parent
7c5ae8cc03
commit
8e0fa07a7e
14 changed files with 196 additions and 720 deletions
|
@ -1,12 +0,0 @@
|
|||
glabel ItemShield_Destroy
|
||||
/* 00180 80B86AA0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00184 80B86AA4 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
|
||||
/* 00188 80B86AA8 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 0018C 80B86AAC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 00190 80B86AB0 0C0170EB */ jal Collider_DestroyCylinder
|
||||
|
||||
/* 00194 80B86AB4 24C5014C */ addiu $a1, $a2, 0x014C ## $a1 = 0000014C
|
||||
/* 00198 80B86AB8 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 0019C 80B86ABC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 001A0 80B86AC0 03E00008 */ jr $ra
|
||||
/* 001A4 80B86AC4 00000000 */ nop
|
|
@ -1,82 +0,0 @@
|
|||
.rdata
|
||||
glabel D_80B87298
|
||||
.asciz "../z_item_shield.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_80B872AC
|
||||
.asciz "../z_item_shield.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_80B872C0
|
||||
.asciz "../z_item_shield.c"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel ItemShield_Draw
|
||||
/* 00778 80B87098 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
|
||||
/* 0077C 80B8709C AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00780 80B870A0 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00784 80B870A4 AFA5004C */ sw $a1, 0x004C($sp)
|
||||
/* 00788 80B870A8 848E019C */ lh $t6, 0x019C($a0) ## 0000019C
|
||||
/* 0078C 80B870AC 3C0680B8 */ lui $a2, %hi(D_80B87298) ## $a2 = 80B80000
|
||||
/* 00790 80B870B0 24C67298 */ addiu $a2, $a2, %lo(D_80B87298) ## $a2 = 80B87298
|
||||
/* 00794 80B870B4 31CF0002 */ andi $t7, $t6, 0x0002 ## $t7 = 00000000
|
||||
/* 00798 80B870B8 15E00032 */ bne $t7, $zero, .L80B87184
|
||||
/* 0079C 80B870BC 27A40030 */ addiu $a0, $sp, 0x0030 ## $a0 = FFFFFFE8
|
||||
/* 007A0 80B870C0 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
|
||||
/* 007A4 80B870C4 240701C9 */ addiu $a3, $zero, 0x01C9 ## $a3 = 000001C9
|
||||
/* 007A8 80B870C8 0C031AB1 */ jal Graph_OpenDisps
|
||||
/* 007AC 80B870CC 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
|
||||
/* 007B0 80B870D0 8FB9004C */ lw $t9, 0x004C($sp)
|
||||
/* 007B4 80B870D4 0C024F46 */ jal func_80093D18
|
||||
/* 007B8 80B870D8 8F240000 */ lw $a0, 0x0000($t9) ## 00000000
|
||||
/* 007BC 80B870DC 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 007C0 80B870E0 3C09DA38 */ lui $t1, 0xDA38 ## $t1 = DA380000
|
||||
/* 007C4 80B870E4 35290003 */ ori $t1, $t1, 0x0003 ## $t1 = DA380003
|
||||
/* 007C8 80B870E8 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008
|
||||
/* 007CC 80B870EC AE0802C0 */ sw $t0, 0x02C0($s0) ## 000002C0
|
||||
/* 007D0 80B870F0 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
|
||||
/* 007D4 80B870F4 8FAA004C */ lw $t2, 0x004C($sp)
|
||||
/* 007D8 80B870F8 3C0580B8 */ lui $a1, %hi(D_80B872AC) ## $a1 = 80B80000
|
||||
/* 007DC 80B870FC 24A572AC */ addiu $a1, $a1, %lo(D_80B872AC) ## $a1 = 80B872AC
|
||||
/* 007E0 80B87100 8D440000 */ lw $a0, 0x0000($t2) ## 00000000
|
||||
/* 007E4 80B87104 240601CC */ addiu $a2, $zero, 0x01CC ## $a2 = 000001CC
|
||||
/* 007E8 80B87108 0C0346A2 */ jal Matrix_NewMtx
|
||||
/* 007EC 80B8710C AFA2002C */ sw $v0, 0x002C($sp)
|
||||
/* 007F0 80B87110 8FA3002C */ lw $v1, 0x002C($sp)
|
||||
/* 007F4 80B87114 3C040602 */ lui $a0, %hi(D_060224F8) ## $a0 = 06020000
|
||||
/* 007F8 80B87118 248424F8 */ addiu $a0, $a0, %lo(D_060224F8) ## $a0 = 060224F8
|
||||
/* 007FC 80B8711C AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 00800 80B87120 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 00804 80B87124 00046900 */ sll $t5, $a0, 4
|
||||
/* 00808 80B87128 000D7702 */ srl $t6, $t5, 28
|
||||
/* 0080C 80B8712C 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
|
||||
/* 00810 80B87130 AE0B02C0 */ sw $t3, 0x02C0($s0) ## 000002C0
|
||||
/* 00814 80B87134 000E7880 */ sll $t7, $t6, 2
|
||||
/* 00818 80B87138 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000
|
||||
/* 0081C 80B8713C 3C188016 */ lui $t8, %hi(gSegments)
|
||||
/* 00820 80B87140 030FC021 */ addu $t8, $t8, $t7
|
||||
/* 00824 80B87144 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
|
||||
/* 00828 80B87148 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
|
||||
/* 0082C 80B8714C 8F186FA8 */ lw $t8, %lo(gSegments)($t8)
|
||||
/* 00830 80B87150 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
|
||||
/* 00834 80B87154 0081C824 */ and $t9, $a0, $at
|
||||
/* 00838 80B87158 3C018000 */ lui $at, 0x8000 ## $at = 80000000
|
||||
/* 0083C 80B8715C 03194021 */ addu $t0, $t8, $t9
|
||||
/* 00840 80B87160 01014821 */ addu $t1, $t0, $at
|
||||
/* 00844 80B87164 AC490004 */ sw $t1, 0x0004($v0) ## 00000004
|
||||
/* 00848 80B87168 8FAA004C */ lw $t2, 0x004C($sp)
|
||||
/* 0084C 80B8716C 3C0680B8 */ lui $a2, %hi(D_80B872C0) ## $a2 = 80B80000
|
||||
/* 00850 80B87170 24C672C0 */ addiu $a2, $a2, %lo(D_80B872C0) ## $a2 = 80B872C0
|
||||
/* 00854 80B87174 27A40030 */ addiu $a0, $sp, 0x0030 ## $a0 = FFFFFFE8
|
||||
/* 00858 80B87178 240701D1 */ addiu $a3, $zero, 0x01D1 ## $a3 = 000001D1
|
||||
/* 0085C 80B8717C 0C031AD5 */ jal Graph_CloseDisps
|
||||
/* 00860 80B87180 8D450000 */ lw $a1, 0x0000($t2) ## 00000000
|
||||
.L80B87184:
|
||||
/* 00864 80B87184 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00868 80B87188 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 0086C 80B8718C 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
|
||||
/* 00870 80B87190 03E00008 */ jr $ra
|
||||
/* 00874 80B87194 00000000 */ nop
|
||||
/* 00878 80B87198 00000000 */ nop
|
||||
/* 0087C 80B8719C 00000000 */ nop
|
|
@ -1,114 +0,0 @@
|
|||
.rdata
|
||||
glabel D_80B87280
|
||||
.asciz "\x1b[32mItem_Shild %d \n\x1b[m"
|
||||
.balign 4
|
||||
|
||||
.text
|
||||
glabel ItemShield_Init
|
||||
/* 00008 80B86928 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
|
||||
/* 0000C 80B8692C AFBF0034 */ sw $ra, 0x0034($sp)
|
||||
/* 00010 80B86930 AFB40030 */ sw $s4, 0x0030($sp)
|
||||
/* 00014 80B86934 AFB3002C */ sw $s3, 0x002C($sp)
|
||||
/* 00018 80B86938 AFB20028 */ sw $s2, 0x0028($sp)
|
||||
/* 0001C 80B8693C AFB10024 */ sw $s1, 0x0024($sp)
|
||||
/* 00020 80B86940 AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 00024 80B86944 F7B40018 */ sdc1 $f20, 0x0018($sp)
|
||||
/* 00028 80B86948 AFA5003C */ sw $a1, 0x003C($sp)
|
||||
/* 0002C 80B8694C 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
|
||||
/* 00030 80B86950 00809825 */ or $s3, $a0, $zero ## $s3 = 00000000
|
||||
/* 00034 80B86954 A480019A */ sh $zero, 0x019A($a0) ## 0000019A
|
||||
/* 00038 80B86958 10400006 */ beq $v0, $zero, .L80B86974
|
||||
/* 0003C 80B8695C A480019C */ sh $zero, 0x019C($a0) ## 0000019C
|
||||
/* 00040 80B86960 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
|
||||
/* 00044 80B86964 50410012 */ beql $v0, $at, .L80B869B0
|
||||
/* 00048 80B86968 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 0004C 80B8696C 10000032 */ beq $zero, $zero, .L80B86A38
|
||||
/* 00050 80B86970 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
|
||||
.L80B86974:
|
||||
/* 00054 80B86974 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
/* 00058 80B86978 266400B4 */ addiu $a0, $s3, 0x00B4 ## $a0 = 000000B4
|
||||
/* 0005C 80B8697C 3C0544AF */ lui $a1, 0x44AF ## $a1 = 44AF0000
|
||||
/* 00060 80B86980 44070000 */ mfc1 $a3, $f0
|
||||
/* 00064 80B86984 0C00AC78 */ jal ActorShape_Init
|
||||
|
||||
/* 00068 80B86988 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
|
||||
/* 0006C 80B8698C 240E4000 */ addiu $t6, $zero, 0x4000 ## $t6 = 00004000
|
||||
/* 00070 80B86990 3C0580B8 */ lui $a1, %hi(func_80B86BC8) ## $a1 = 80B80000
|
||||
/* 00074 80B86994 A66E00B4 */ sh $t6, 0x00B4($s3) ## 000000B4
|
||||
/* 00078 80B86998 24A56BC8 */ addiu $a1, $a1, %lo(func_80B86BC8) ## $a1 = 80B86BC8
|
||||
/* 0007C 80B8699C 0C2E1A48 */ jal func_80B86920
|
||||
/* 00080 80B869A0 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
|
||||
/* 00084 80B869A4 10000024 */ beq $zero, $zero, .L80B86A38
|
||||
/* 00088 80B869A8 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
|
||||
/* 0008C 80B869AC 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
|
||||
.L80B869B0:
|
||||
/* 00090 80B869B0 266400B4 */ addiu $a0, $s3, 0x00B4 ## $a0 = 000000B4
|
||||
/* 00094 80B869B4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
|
||||
/* 00098 80B869B8 44050000 */ mfc1 $a1, $f0
|
||||
/* 0009C 80B869BC 44070000 */ mfc1 $a3, $f0
|
||||
/* 000A0 80B869C0 0C00AC78 */ jal ActorShape_Init
|
||||
|
||||
/* 000A4 80B869C4 00000000 */ nop
|
||||
/* 000A8 80B869C8 3C0580B8 */ lui $a1, %hi(func_80B86F68) ## $a1 = 80B80000
|
||||
/* 000AC 80B869CC 24A56F68 */ addiu $a1, $a1, %lo(func_80B86F68) ## $a1 = 80B86F68
|
||||
/* 000B0 80B869D0 0C2E1A48 */ jal func_80B86920
|
||||
/* 000B4 80B869D4 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
|
||||
/* 000B8 80B869D8 866F019C */ lh $t7, 0x019C($s3) ## 0000019C
|
||||
/* 000BC 80B869DC 3C014120 */ lui $at, 0x4120 ## $at = 41200000
|
||||
/* 000C0 80B869E0 4481A000 */ mtc1 $at, $f20 ## $f20 = 10.00
|
||||
/* 000C4 80B869E4 35F80002 */ ori $t8, $t7, 0x0002 ## $t8 = 00000002
|
||||
/* 000C8 80B869E8 A678019C */ sh $t8, 0x019C($s3) ## 0000019C
|
||||
/* 000CC 80B869EC 24110001 */ addiu $s1, $zero, 0x0001 ## $s1 = 00000001
|
||||
/* 000D0 80B869F0 02608025 */ or $s0, $s3, $zero ## $s0 = 00000000
|
||||
/* 000D4 80B869F4 02609025 */ or $s2, $s3, $zero ## $s2 = 00000000
|
||||
/* 000D8 80B869F8 24140011 */ addiu $s4, $zero, 0x0011 ## $s4 = 00000011
|
||||
.L80B869FC:
|
||||
/* 000DC 80B869FC A251019E */ sb $s1, 0x019E($s2) ## 0000019E
|
||||
/* 000E0 80B86A00 0C00CFC8 */ jal Rand_CenteredFloat
|
||||
|
||||
/* 000E4 80B86A04 4600A306 */ mov.s $f12, $f20
|
||||
/* 000E8 80B86A08 E60001A8 */ swc1 $f0, 0x01A8($s0) ## 000001A8
|
||||
/* 000EC 80B86A0C 0C00CFC8 */ jal Rand_CenteredFloat
|
||||
|
||||
/* 000F0 80B86A10 4600A306 */ mov.s $f12, $f20
|
||||
/* 000F4 80B86A14 E60001AC */ swc1 $f0, 0x01AC($s0) ## 000001AC
|
||||
/* 000F8 80B86A18 0C00CFC8 */ jal Rand_CenteredFloat
|
||||
|
||||
/* 000FC 80B86A1C 4600A306 */ mov.s $f12, $f20
|
||||
/* 00100 80B86A20 26310002 */ addiu $s1, $s1, 0x0002 ## $s1 = 00000003
|
||||
/* 00104 80B86A24 2610000C */ addiu $s0, $s0, 0x000C ## $s0 = 0000000C
|
||||
/* 00108 80B86A28 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001
|
||||
/* 0010C 80B86A2C 1634FFF3 */ bne $s1, $s4, .L80B869FC
|
||||
/* 00110 80B86A30 E60001A4 */ swc1 $f0, 0x01A4($s0) ## 000001B0
|
||||
/* 00114 80B86A34 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
|
||||
.L80B86A38:
|
||||
/* 00118 80B86A38 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
|
||||
/* 0011C 80B86A3C 0C00B58B */ jal Actor_SetScale
|
||||
|
||||
/* 00120 80B86A40 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
|
||||
/* 00124 80B86A44 2670014C */ addiu $s0, $s3, 0x014C ## $s0 = 0000014C
|
||||
/* 00128 80B86A48 02002825 */ or $a1, $s0, $zero ## $a1 = 0000014C
|
||||
/* 0012C 80B86A4C 0C0170D9 */ jal Collider_InitCylinder
|
||||
|
||||
/* 00130 80B86A50 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 00134 80B86A54 3C0780B8 */ lui $a3, %hi(D_80B871A0) ## $a3 = 80B80000
|
||||
/* 00138 80B86A58 24E771A0 */ addiu $a3, $a3, %lo(D_80B871A0) ## $a3 = 80B871A0
|
||||
/* 0013C 80B86A5C 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 00140 80B86A60 02002825 */ or $a1, $s0, $zero ## $a1 = 0000014C
|
||||
/* 00144 80B86A64 0C01712B */ jal Collider_SetCylinder
|
||||
|
||||
/* 00148 80B86A68 02603025 */ or $a2, $s3, $zero ## $a2 = 00000000
|
||||
/* 0014C 80B86A6C 3C0480B8 */ lui $a0, %hi(D_80B87280) ## $a0 = 80B80000
|
||||
/* 00150 80B86A70 24847280 */ addiu $a0, $a0, %lo(D_80B87280) ## $a0 = 80B87280
|
||||
/* 00154 80B86A74 0C00084C */ jal osSyncPrintf
|
||||
|
||||
/* 00158 80B86A78 8665001C */ lh $a1, 0x001C($s3) ## 0000001C
|
||||
/* 0015C 80B86A7C 8FBF0034 */ lw $ra, 0x0034($sp)
|
||||
/* 00160 80B86A80 D7B40018 */ ldc1 $f20, 0x0018($sp)
|
||||
/* 00164 80B86A84 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 00168 80B86A88 8FB10024 */ lw $s1, 0x0024($sp)
|
||||
/* 0016C 80B86A8C 8FB20028 */ lw $s2, 0x0028($sp)
|
||||
/* 00170 80B86A90 8FB3002C */ lw $s3, 0x002C($sp)
|
||||
/* 00174 80B86A94 8FB40030 */ lw $s4, 0x0030($sp)
|
||||
/* 00178 80B86A98 03E00008 */ jr $ra
|
||||
/* 0017C 80B86A9C 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
|
|
@ -1,10 +0,0 @@
|
|||
glabel ItemShield_Update
|
||||
/* 00754 80B87074 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00758 80B87078 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 0075C 80B8707C 8C990208 */ lw $t9, 0x0208($a0) ## 00000208
|
||||
/* 00760 80B87080 0320F809 */ jalr $ra, $t9
|
||||
/* 00764 80B87084 00000000 */ nop
|
||||
/* 00768 80B87088 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 0076C 80B8708C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00770 80B87090 03E00008 */ jr $ra
|
||||
/* 00774 80B87094 00000000 */ nop
|
|
@ -1,3 +0,0 @@
|
|||
glabel func_80B86920
|
||||
/* 00000 80B86920 03E00008 */ jr $ra
|
||||
/* 00004 80B86924 AC850208 */ sw $a1, 0x0208($a0) ## 00000208
|
|
@ -1,72 +0,0 @@
|
|||
glabel func_80B86AC8
|
||||
/* 001A8 80B86AC8 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 001AC 80B86ACC AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 001B0 80B86AD0 AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 001B4 80B86AD4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 001B8 80B86AD8 0C00B638 */ jal Actor_MoveForward
|
||||
|
||||
/* 001BC 80B86ADC AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 001C0 80B86AE0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 001C4 80B86AE4 0C00BD04 */ jal Actor_HasParent
|
||||
/* 001C8 80B86AE8 8FA5002C */ lw $a1, 0x002C($sp)
|
||||
/* 001CC 80B86AEC 10400005 */ beq $v0, $zero, .L80B86B04
|
||||
/* 001D0 80B86AF0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 001D4 80B86AF4 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 001D8 80B86AF8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 001DC 80B86AFC 1000002E */ beq $zero, $zero, .L80B86BB8
|
||||
/* 001E0 80B86B00 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L80B86B04:
|
||||
/* 001E4 80B86B04 3C014248 */ lui $at, 0x4248 ## $at = 42480000
|
||||
/* 001E8 80B86B08 44812000 */ mtc1 $at, $f4 ## $f4 = 50.00
|
||||
/* 001EC 80B86B0C 8FA5002C */ lw $a1, 0x002C($sp)
|
||||
/* 001F0 80B86B10 24060029 */ addiu $a2, $zero, 0x0029 ## $a2 = 00000029
|
||||
/* 001F4 80B86B14 3C0741F0 */ lui $a3, 0x41F0 ## $a3 = 41F00000
|
||||
/* 001F8 80B86B18 0C00BD0D */ jal func_8002F434
|
||||
/* 001FC 80B86B1C E7A40010 */ swc1 $f4, 0x0010($sp)
|
||||
/* 00200 80B86B20 3C014120 */ lui $at, 0x4120 ## $at = 41200000
|
||||
/* 00204 80B86B24 44810000 */ mtc1 $at, $f0 ## $f0 = 10.00
|
||||
/* 00208 80B86B28 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
|
||||
/* 0020C 80B86B2C 240E0005 */ addiu $t6, $zero, 0x0005 ## $t6 = 00000005
|
||||
/* 00210 80B86B30 44060000 */ mfc1 $a2, $f0
|
||||
/* 00214 80B86B34 44070000 */ mfc1 $a3, $f0
|
||||
/* 00218 80B86B38 AFAE0014 */ sw $t6, 0x0014($sp)
|
||||
/* 0021C 80B86B3C 8FA4002C */ lw $a0, 0x002C($sp)
|
||||
/* 00220 80B86B40 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00224 80B86B44 0C00B92D */ jal Actor_UpdateBgCheckInfo
|
||||
/* 00228 80B86B48 E7A60010 */ swc1 $f6, 0x0010($sp)
|
||||
/* 0022C 80B86B4C 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088
|
||||
/* 00230 80B86B50 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
|
||||
/* 00234 80B86B54 53000018 */ beql $t8, $zero, .L80B86BB8
|
||||
/* 00238 80B86B58 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 0023C 80B86B5C 8619019A */ lh $t9, 0x019A($s0) ## 0000019A
|
||||
/* 00240 80B86B60 2728FFFF */ addiu $t0, $t9, 0xFFFF ## $t0 = FFFFFFFF
|
||||
/* 00244 80B86B64 A608019A */ sh $t0, 0x019A($s0) ## 0000019A
|
||||
/* 00248 80B86B68 8602019A */ lh $v0, 0x019A($s0) ## 0000019A
|
||||
/* 0024C 80B86B6C 2841003C */ slti $at, $v0, 0x003C
|
||||
/* 00250 80B86B70 1020000C */ beq $at, $zero, .L80B86BA4
|
||||
/* 00254 80B86B74 30490001 */ andi $t1, $v0, 0x0001 ## $t1 = 00000000
|
||||
/* 00258 80B86B78 51200007 */ beql $t1, $zero, .L80B86B98
|
||||
/* 0025C 80B86B7C 860C019C */ lh $t4, 0x019C($s0) ## 0000019C
|
||||
/* 00260 80B86B80 860A019C */ lh $t2, 0x019C($s0) ## 0000019C
|
||||
/* 00264 80B86B84 8602019A */ lh $v0, 0x019A($s0) ## 0000019A
|
||||
/* 00268 80B86B88 354B0002 */ ori $t3, $t2, 0x0002 ## $t3 = 00000002
|
||||
/* 0026C 80B86B8C 10000005 */ beq $zero, $zero, .L80B86BA4
|
||||
/* 00270 80B86B90 A60B019C */ sh $t3, 0x019C($s0) ## 0000019C
|
||||
/* 00274 80B86B94 860C019C */ lh $t4, 0x019C($s0) ## 0000019C
|
||||
.L80B86B98:
|
||||
/* 00278 80B86B98 8602019A */ lh $v0, 0x019A($s0) ## 0000019A
|
||||
/* 0027C 80B86B9C 318DFFFD */ andi $t5, $t4, 0xFFFD ## $t5 = 00000000
|
||||
/* 00280 80B86BA0 A60D019C */ sh $t5, 0x019C($s0) ## 0000019C
|
||||
.L80B86BA4:
|
||||
/* 00284 80B86BA4 54400004 */ bnel $v0, $zero, .L80B86BB8
|
||||
/* 00288 80B86BA8 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 0028C 80B86BAC 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 00290 80B86BB0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00294 80B86BB4 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L80B86BB8:
|
||||
/* 00298 80B86BB8 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 0029C 80B86BBC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
/* 002A0 80B86BC0 03E00008 */ jr $ra
|
||||
/* 002A4 80B86BC4 00000000 */ nop
|
|
@ -1,69 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_80B872D4
|
||||
.float -0.8
|
||||
|
||||
.text
|
||||
glabel func_80B86BC8
|
||||
/* 002A8 80B86BC8 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
|
||||
/* 002AC 80B86BCC AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 002B0 80B86BD0 AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 002B4 80B86BD4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 002B8 80B86BD8 0C00BD04 */ jal Actor_HasParent
|
||||
/* 002BC 80B86BDC AFA50034 */ sw $a1, 0x0034($sp)
|
||||
/* 002C0 80B86BE0 10400005 */ beq $v0, $zero, .L80B86BF8
|
||||
/* 002C4 80B86BE4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 002C8 80B86BE8 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 002CC 80B86BEC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 002D0 80B86BF0 10000029 */ beq $zero, $zero, .L80B86C98
|
||||
/* 002D4 80B86BF4 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L80B86BF8:
|
||||
/* 002D8 80B86BF8 3C014248 */ lui $at, 0x4248 ## $at = 42480000
|
||||
/* 002DC 80B86BFC 44812000 */ mtc1 $at, $f4 ## $f4 = 50.00
|
||||
/* 002E0 80B86C00 8FA50034 */ lw $a1, 0x0034($sp)
|
||||
/* 002E4 80B86C04 24060029 */ addiu $a2, $zero, 0x0029 ## $a2 = 00000029
|
||||
/* 002E8 80B86C08 3C0741F0 */ lui $a3, 0x41F0 ## $a3 = 41F00000
|
||||
/* 002EC 80B86C0C 0C00BD0D */ jal func_8002F434
|
||||
/* 002F0 80B86C10 E7A40010 */ swc1 $f4, 0x0010($sp)
|
||||
/* 002F4 80B86C14 920E015D */ lbu $t6, 0x015D($s0) ## 0000015D
|
||||
/* 002F8 80B86C18 2606014C */ addiu $a2, $s0, 0x014C ## $a2 = 0000014C
|
||||
/* 002FC 80B86C1C 00C02825 */ or $a1, $a2, $zero ## $a1 = 0000014C
|
||||
/* 00300 80B86C20 31CF0002 */ andi $t7, $t6, 0x0002 ## $t7 = 00000000
|
||||
/* 00304 80B86C24 11E00013 */ beq $t7, $zero, .L80B86C74
|
||||
/* 00308 80B86C28 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0030C 80B86C2C 3C0580B8 */ lui $a1, %hi(func_80B86AC8) ## $a1 = 80B80000
|
||||
/* 00310 80B86C30 24A56AC8 */ addiu $a1, $a1, %lo(func_80B86AC8) ## $a1 = 80B86AC8
|
||||
/* 00314 80B86C34 0C2E1A48 */ jal func_80B86920
|
||||
/* 00318 80B86C38 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0031C 80B86C3C 3C014080 */ lui $at, 0x4080 ## $at = 40800000
|
||||
/* 00320 80B86C40 44813000 */ mtc1 $at, $f6 ## $f6 = 4.00
|
||||
/* 00324 80B86C44 3C01C080 */ lui $at, 0xC080 ## $at = C0800000
|
||||
/* 00328 80B86C48 44814000 */ mtc1 $at, $f8 ## $f8 = -4.00
|
||||
/* 0032C 80B86C4C 3C0180B8 */ lui $at, %hi(D_80B872D4) ## $at = 80B80000
|
||||
/* 00330 80B86C50 E6060060 */ swc1 $f6, 0x0060($s0) ## 00000060
|
||||
/* 00334 80B86C54 E6080070 */ swc1 $f8, 0x0070($s0) ## 00000070
|
||||
/* 00338 80B86C58 C42A72D4 */ lwc1 $f10, %lo(D_80B872D4)($at)
|
||||
/* 0033C 80B86C5C 44808000 */ mtc1 $zero, $f16 ## $f16 = 0.00
|
||||
/* 00340 80B86C60 241800A0 */ addiu $t8, $zero, 0x00A0 ## $t8 = 000000A0
|
||||
/* 00344 80B86C64 A618019A */ sh $t8, 0x019A($s0) ## 0000019A
|
||||
/* 00348 80B86C68 E60A006C */ swc1 $f10, 0x006C($s0) ## 0000006C
|
||||
/* 0034C 80B86C6C 10000009 */ beq $zero, $zero, .L80B86C94
|
||||
/* 00350 80B86C70 E6100068 */ swc1 $f16, 0x0068($s0) ## 00000068
|
||||
.L80B86C74:
|
||||
/* 00354 80B86C74 0C0189B7 */ jal Collider_UpdateCylinder
|
||||
|
||||
/* 00358 80B86C78 AFA6002C */ sw $a2, 0x002C($sp)
|
||||
/* 0035C 80B86C7C 8FA40034 */ lw $a0, 0x0034($sp)
|
||||
/* 00360 80B86C80 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00364 80B86C84 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
||||
/* 00368 80B86C88 8FA6002C */ lw $a2, 0x002C($sp)
|
||||
/* 0036C 80B86C8C 0C01767D */ jal CollisionCheck_SetAC
|
||||
## CollisionCheck_setAC
|
||||
/* 00370 80B86C90 00812821 */ addu $a1, $a0, $at
|
||||
.L80B86C94:
|
||||
/* 00374 80B86C94 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L80B86C98:
|
||||
/* 00378 80B86C98 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 0037C 80B86C9C 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
|
||||
/* 00380 80B86CA0 03E00008 */ jr $ra
|
||||
/* 00384 80B86CA4 00000000 */ nop
|
|
@ -1,210 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_80B872D8
|
||||
.float 1500.0
|
||||
|
||||
glabel D_80B872DC
|
||||
.float 0.01
|
||||
|
||||
glabel D_80B872E0
|
||||
.float 0.2
|
||||
|
||||
glabel D_80B872E4
|
||||
.word 0x3A23D70A
|
||||
|
||||
.text
|
||||
glabel func_80B86CA8
|
||||
/* 00388 80B86CA8 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90
|
||||
/* 0038C 80B86CAC AFBF006C */ sw $ra, 0x006C($sp)
|
||||
/* 00390 80B86CB0 AFB30054 */ sw $s3, 0x0054($sp)
|
||||
/* 00394 80B86CB4 00809825 */ or $s3, $a0, $zero ## $s3 = 00000000
|
||||
/* 00398 80B86CB8 AFBE0068 */ sw $s8, 0x0068($sp)
|
||||
/* 0039C 80B86CBC AFB70064 */ sw $s7, 0x0064($sp)
|
||||
/* 003A0 80B86CC0 AFB60060 */ sw $s6, 0x0060($sp)
|
||||
/* 003A4 80B86CC4 AFB5005C */ sw $s5, 0x005C($sp)
|
||||
/* 003A8 80B86CC8 AFB40058 */ sw $s4, 0x0058($sp)
|
||||
/* 003AC 80B86CCC AFB20050 */ sw $s2, 0x0050($sp)
|
||||
/* 003B0 80B86CD0 AFB1004C */ sw $s1, 0x004C($sp)
|
||||
/* 003B4 80B86CD4 AFB00048 */ sw $s0, 0x0048($sp)
|
||||
/* 003B8 80B86CD8 F7BC0040 */ sdc1 $f28, 0x0040($sp)
|
||||
/* 003BC 80B86CDC F7BA0038 */ sdc1 $f26, 0x0038($sp)
|
||||
/* 003C0 80B86CE0 F7B80030 */ sdc1 $f24, 0x0030($sp)
|
||||
/* 003C4 80B86CE4 F7B60028 */ sdc1 $f22, 0x0028($sp)
|
||||
/* 003C8 80B86CE8 F7B40020 */ sdc1 $f20, 0x0020($sp)
|
||||
/* 003CC 80B86CEC 0C00B638 */ jal Actor_MoveForward
|
||||
|
||||
/* 003D0 80B86CF0 AFA50074 */ sw $a1, 0x0074($sp)
|
||||
/* 003D4 80B86CF4 3C014120 */ lui $at, 0x4120 ## $at = 41200000
|
||||
/* 003D8 80B86CF8 4481E000 */ mtc1 $at, $f28 ## $f28 = 10.00
|
||||
/* 003DC 80B86CFC 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
|
||||
/* 003E0 80B86D00 240E0005 */ addiu $t6, $zero, 0x0005 ## $t6 = 00000005
|
||||
/* 003E4 80B86D04 4406E000 */ mfc1 $a2, $f28
|
||||
/* 003E8 80B86D08 4407E000 */ mfc1 $a3, $f28
|
||||
/* 003EC 80B86D0C AFAE0014 */ sw $t6, 0x0014($sp)
|
||||
/* 003F0 80B86D10 8FA40074 */ lw $a0, 0x0074($sp)
|
||||
/* 003F4 80B86D14 02602825 */ or $a1, $s3, $zero ## $a1 = 00000000
|
||||
/* 003F8 80B86D18 0C00B92D */ jal Actor_UpdateBgCheckInfo
|
||||
/* 003FC 80B86D1C E7A40010 */ swc1 $f4, 0x0010($sp)
|
||||
/* 00400 80B86D20 0C01DE1C */ jal Math_SinS
|
||||
## sins?
|
||||
/* 00404 80B86D24 866400B4 */ lh $a0, 0x00B4($s3) ## 000000B4
|
||||
/* 00408 80B86D28 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00
|
||||
/* 0040C 80B86D2C 00000000 */ nop
|
||||
/* 00410 80B86D30 4600303E */ c.le.s $f6, $f0
|
||||
/* 00414 80B86D34 00000000 */ nop
|
||||
/* 00418 80B86D38 45000005 */ bc1f .L80B86D50
|
||||
/* 0041C 80B86D3C 00000000 */ nop
|
||||
/* 00420 80B86D40 0C01DE1C */ jal Math_SinS
|
||||
## sins?
|
||||
/* 00424 80B86D44 866400B4 */ lh $a0, 0x00B4($s3) ## 000000B4
|
||||
/* 00428 80B86D48 10000004 */ beq $zero, $zero, .L80B86D5C
|
||||
/* 0042C 80B86D4C 46000086 */ mov.s $f2, $f0
|
||||
.L80B86D50:
|
||||
/* 00430 80B86D50 0C01DE1C */ jal Math_SinS
|
||||
## sins?
|
||||
/* 00434 80B86D54 866400B4 */ lh $a0, 0x00B4($s3) ## 000000B4
|
||||
/* 00438 80B86D58 46000087 */ neg.s $f2, $f0
|
||||
.L80B86D5C:
|
||||
/* 0043C 80B86D5C 3C0180B8 */ lui $at, %hi(D_80B872D8) ## $at = 80B80000
|
||||
/* 00440 80B86D60 C42872D8 */ lwc1 $f8, %lo(D_80B872D8)($at)
|
||||
/* 00444 80B86D64 3C0180B8 */ lui $at, %hi(D_80B872DC) ## $at = 80B80000
|
||||
/* 00448 80B86D68 3C1780B8 */ lui $s7, %hi(D_80B87240) ## $s7 = 80B80000
|
||||
/* 0044C 80B86D6C 46081282 */ mul.s $f10, $f2, $f8
|
||||
/* 00450 80B86D70 3C1680B8 */ lui $s6, %hi(D_80B871F4) ## $s6 = 80B80000
|
||||
/* 00454 80B86D74 3C1580B8 */ lui $s5, %hi(D_80B87200) ## $s5 = 80B80000
|
||||
/* 00458 80B86D78 26B57200 */ addiu $s5, $s5, %lo(D_80B87200) ## $s5 = 80B87200
|
||||
/* 0045C 80B86D7C 26D671F4 */ addiu $s6, $s6, %lo(D_80B871F4) ## $s6 = 80B871F4
|
||||
/* 00460 80B86D80 26F77240 */ addiu $s7, $s7, %lo(D_80B87240) ## $s7 = 80B87240
|
||||
/* 00464 80B86D84 02608825 */ or $s1, $s3, $zero ## $s1 = 00000000
|
||||
/* 00468 80B86D88 E66A00BC */ swc1 $f10, 0x00BC($s3) ## 000000BC
|
||||
/* 0046C 80B86D8C C43A72DC */ lwc1 $f26, %lo(D_80B872DC)($at)
|
||||
/* 00470 80B86D90 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
|
||||
/* 00474 80B86D94 4481C000 */ mtc1 $at, $f24 ## $f24 = -10.00
|
||||
/* 00478 80B86D98 3C014170 */ lui $at, 0x4170 ## $at = 41700000
|
||||
/* 0047C 80B86D9C 4481B000 */ mtc1 $at, $f22 ## $f22 = 15.00
|
||||
/* 00480 80B86DA0 3C0180B8 */ lui $at, %hi(D_80B872E0) ## $at = 80B80000
|
||||
/* 00484 80B86DA4 C43472E0 */ lwc1 $f20, %lo(D_80B872E0)($at)
|
||||
/* 00488 80B86DA8 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000
|
||||
/* 0048C 80B86DAC 02608025 */ or $s0, $s3, $zero ## $s0 = 00000000
|
||||
/* 00490 80B86DB0 241E0060 */ addiu $s8, $zero, 0x0060 ## $s8 = 00000060
|
||||
/* 00494 80B86DB4 2414000F */ addiu $s4, $zero, 0x000F ## $s4 = 0000000F
|
||||
.L80B86DB8:
|
||||
/* 00498 80B86DB8 C61001A8 */ lwc1 $f16, 0x01A8($s0) ## 000001A8
|
||||
/* 0049C 80B86DBC 922F019E */ lbu $t7, 0x019E($s1) ## 0000019E
|
||||
/* 004A0 80B86DC0 3C0180B8 */ lui $at, %hi(D_80B871F4) ## $at = 80B80000
|
||||
/* 004A4 80B86DC4 E43071F4 */ swc1 $f16, %lo(D_80B871F4)($at)
|
||||
/* 004A8 80B86DC8 C66400BC */ lwc1 $f4, 0x00BC($s3) ## 000000BC
|
||||
/* 004AC 80B86DCC 028F1823 */ subu $v1, $s4, $t7
|
||||
/* 004B0 80B86DD0 00031080 */ sll $v0, $v1, 2
|
||||
/* 004B4 80B86DD4 02A2C021 */ addu $t8, $s5, $v0
|
||||
/* 004B8 80B86DD8 461A2182 */ mul.s $f6, $f4, $f26
|
||||
/* 004BC 80B86DDC C7000000 */ lwc1 $f0, 0x0000($t8) ## 00000000
|
||||
/* 004C0 80B86DE0 C61201AC */ lwc1 $f18, 0x01AC($s0) ## 000001AC
|
||||
/* 004C4 80B86DE4 02E24021 */ addu $t0, $s7, $v0
|
||||
/* 004C8 80B86DE8 46180282 */ mul.s $f10, $f0, $f24
|
||||
/* 004CC 80B86DEC 2419FFFF */ addiu $t9, $zero, 0xFFFF ## $t9 = FFFFFFFF
|
||||
/* 004D0 80B86DF0 8FA40074 */ lw $a0, 0x0074($sp)
|
||||
/* 004D4 80B86DF4 02602825 */ or $a1, $s3, $zero ## $a1 = 00000000
|
||||
/* 004D8 80B86DF8 02C03025 */ or $a2, $s6, $zero ## $a2 = 80B871F4
|
||||
/* 004DC 80B86DFC 46069200 */ add.s $f8, $f18, $f6
|
||||
/* 004E0 80B86E00 46145402 */ mul.s $f16, $f10, $f20
|
||||
/* 004E4 80B86E04 46088100 */ add.s $f4, $f16, $f8
|
||||
/* 004E8 80B86E08 46140182 */ mul.s $f6, $f0, $f20
|
||||
/* 004EC 80B86E0C E42471F8 */ swc1 $f4, %lo(D_80B871F8)($at)
|
||||
/* 004F0 80B86E10 C61201B0 */ lwc1 $f18, 0x01B0($s0) ## 000001B0
|
||||
/* 004F4 80B86E14 AFB90010 */ sw $t9, 0x0010($sp)
|
||||
/* 004F8 80B86E18 E43271FC */ swc1 $f18, %lo(D_80B871FC)($at)
|
||||
/* 004FC 80B86E1C C50A0000 */ lwc1 $f10, 0x0000($t0) ## 00000000
|
||||
/* 00500 80B86E20 44073000 */ mfc1 $a3, $f6
|
||||
/* 00504 80B86E24 0C00A8F1 */ jal EffectSsFireTail_SpawnFlame
|
||||
/* 00508 80B86E28 E7AA0014 */ swc1 $f10, 0x0014($sp)
|
||||
/* 0050C 80B86E2C 9222019E */ lbu $v0, 0x019E($s1) ## 0000019E
|
||||
/* 00510 80B86E30 10400003 */ beq $v0, $zero, .L80B86E40
|
||||
/* 00514 80B86E34 2449FFFF */ addiu $t1, $v0, 0xFFFF ## $t1 = FFFFFFFF
|
||||
/* 00518 80B86E38 10000010 */ beq $zero, $zero, .L80B86E7C
|
||||
/* 0051C 80B86E3C A229019E */ sb $t1, 0x019E($s1) ## 0000019E
|
||||
.L80B86E40:
|
||||
/* 00520 80B86E40 866A019A */ lh $t2, 0x019A($s3) ## 0000019A
|
||||
/* 00524 80B86E44 240B000F */ addiu $t3, $zero, 0x000F ## $t3 = 0000000F
|
||||
/* 00528 80B86E48 29410011 */ slti $at, $t2, 0x0011
|
||||
/* 0052C 80B86E4C 5420000C */ bnel $at, $zero, .L80B86E80
|
||||
/* 00530 80B86E50 2652000C */ addiu $s2, $s2, 0x000C ## $s2 = 0000000C
|
||||
/* 00534 80B86E54 A22B019E */ sb $t3, 0x019E($s1) ## 0000019E
|
||||
/* 00538 80B86E58 0C00CFC8 */ jal Rand_CenteredFloat
|
||||
|
||||
/* 0053C 80B86E5C 4600B306 */ mov.s $f12, $f22
|
||||
/* 00540 80B86E60 E60001A8 */ swc1 $f0, 0x01A8($s0) ## 000001A8
|
||||
/* 00544 80B86E64 0C00CFC8 */ jal Rand_CenteredFloat
|
||||
|
||||
/* 00548 80B86E68 4600E306 */ mov.s $f12, $f28
|
||||
/* 0054C 80B86E6C E60001AC */ swc1 $f0, 0x01AC($s0) ## 000001AC
|
||||
/* 00550 80B86E70 0C00CFC8 */ jal Rand_CenteredFloat
|
||||
|
||||
/* 00554 80B86E74 4600B306 */ mov.s $f12, $f22
|
||||
/* 00558 80B86E78 E60001B0 */ swc1 $f0, 0x01B0($s0) ## 000001B0
|
||||
.L80B86E7C:
|
||||
/* 0055C 80B86E7C 2652000C */ addiu $s2, $s2, 0x000C ## $s2 = 00000018
|
||||
.L80B86E80:
|
||||
/* 00560 80B86E80 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
|
||||
/* 00564 80B86E84 165EFFCC */ bne $s2, $s8, .L80B86DB8
|
||||
/* 00568 80B86E88 2610000C */ addiu $s0, $s0, 0x000C ## $s0 = 0000000C
|
||||
/* 0056C 80B86E8C 966C0088 */ lhu $t4, 0x0088($s3) ## 00000088
|
||||
/* 00570 80B86E90 318D0001 */ andi $t5, $t4, 0x0001 ## $t5 = 00000000
|
||||
/* 00574 80B86E94 51A00024 */ beql $t5, $zero, .L80B86F28
|
||||
/* 00578 80B86E98 8FBF006C */ lw $ra, 0x006C($sp)
|
||||
/* 0057C 80B86E9C 866200B4 */ lh $v0, 0x00B4($s3) ## 000000B4
|
||||
/* 00580 80B86EA0 866E0198 */ lh $t6, 0x0198($s3) ## 00000198
|
||||
/* 00584 80B86EA4 8670019A */ lh $s0, 0x019A($s3) ## 0000019A
|
||||
/* 00588 80B86EA8 00027843 */ sra $t7, $v0, 1
|
||||
/* 0058C 80B86EAC 01CFC023 */ subu $t8, $t6, $t7
|
||||
/* 00590 80B86EB0 A6780198 */ sh $t8, 0x0198($s3) ## 00000198
|
||||
/* 00594 80B86EB4 86630198 */ lh $v1, 0x0198($s3) ## 00000198
|
||||
/* 00598 80B86EB8 2A010008 */ slti $at, $s0, 0x0008
|
||||
/* 0059C 80B86EBC 0003C883 */ sra $t9, $v1, 2
|
||||
/* 005A0 80B86EC0 00794023 */ subu $t0, $v1, $t9
|
||||
/* 005A4 80B86EC4 A6680198 */ sh $t0, 0x0198($s3) ## 00000198
|
||||
/* 005A8 80B86EC8 86690198 */ lh $t1, 0x0198($s3) ## 00000198
|
||||
/* 005AC 80B86ECC 00495021 */ addu $t2, $v0, $t1
|
||||
/* 005B0 80B86ED0 1420000E */ bne $at, $zero, .L80B86F0C
|
||||
/* 005B4 80B86ED4 A66A00B4 */ sh $t2, 0x00B4($s3) ## 000000B4
|
||||
/* 005B8 80B86ED8 2A010018 */ slti $at, $s0, 0x0018
|
||||
/* 005BC 80B86EDC 1020000B */ beq $at, $zero, .L80B86F0C
|
||||
/* 005C0 80B86EE0 260BFFF8 */ addiu $t3, $s0, 0xFFF8 ## $t3 = 00000004
|
||||
/* 005C4 80B86EE4 448B8000 */ mtc1 $t3, $f16 ## $f16 = 0.00
|
||||
/* 005C8 80B86EE8 3C0180B8 */ lui $at, %hi(D_80B872E4) ## $at = 80B80000
|
||||
/* 005CC 80B86EEC C42472E4 */ lwc1 $f4, %lo(D_80B872E4)($at)
|
||||
/* 005D0 80B86EF0 46808220 */ cvt.s.w $f8, $f16
|
||||
/* 005D4 80B86EF4 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
|
||||
/* 005D8 80B86EF8 46044482 */ mul.s $f18, $f8, $f4
|
||||
/* 005DC 80B86EFC 44059000 */ mfc1 $a1, $f18
|
||||
/* 005E0 80B86F00 0C00B58B */ jal Actor_SetScale
|
||||
|
||||
/* 005E4 80B86F04 00000000 */ nop
|
||||
/* 005E8 80B86F08 8670019A */ lh $s0, 0x019A($s3) ## 0000019A
|
||||
.L80B86F0C:
|
||||
/* 005EC 80B86F0C 12000003 */ beq $s0, $zero, .L80B86F1C
|
||||
/* 005F0 80B86F10 260CFFFF */ addiu $t4, $s0, 0xFFFF ## $t4 = 0000000B
|
||||
/* 005F4 80B86F14 10000003 */ beq $zero, $zero, .L80B86F24
|
||||
/* 005F8 80B86F18 A66C019A */ sh $t4, 0x019A($s3) ## 0000019A
|
||||
.L80B86F1C:
|
||||
/* 005FC 80B86F1C 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 00600 80B86F20 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
|
||||
.L80B86F24:
|
||||
/* 00604 80B86F24 8FBF006C */ lw $ra, 0x006C($sp)
|
||||
.L80B86F28:
|
||||
/* 00608 80B86F28 D7B40020 */ ldc1 $f20, 0x0020($sp)
|
||||
/* 0060C 80B86F2C D7B60028 */ ldc1 $f22, 0x0028($sp)
|
||||
/* 00610 80B86F30 D7B80030 */ ldc1 $f24, 0x0030($sp)
|
||||
/* 00614 80B86F34 D7BA0038 */ ldc1 $f26, 0x0038($sp)
|
||||
/* 00618 80B86F38 D7BC0040 */ ldc1 $f28, 0x0040($sp)
|
||||
/* 0061C 80B86F3C 8FB00048 */ lw $s0, 0x0048($sp)
|
||||
/* 00620 80B86F40 8FB1004C */ lw $s1, 0x004C($sp)
|
||||
/* 00624 80B86F44 8FB20050 */ lw $s2, 0x0050($sp)
|
||||
/* 00628 80B86F48 8FB30054 */ lw $s3, 0x0054($sp)
|
||||
/* 0062C 80B86F4C 8FB40058 */ lw $s4, 0x0058($sp)
|
||||
/* 00630 80B86F50 8FB5005C */ lw $s5, 0x005C($sp)
|
||||
/* 00634 80B86F54 8FB60060 */ lw $s6, 0x0060($sp)
|
||||
/* 00638 80B86F58 8FB70064 */ lw $s7, 0x0064($sp)
|
||||
/* 0063C 80B86F5C 8FBE0068 */ lw $s8, 0x0068($sp)
|
||||
/* 00640 80B86F60 03E00008 */ jr $ra
|
||||
/* 00644 80B86F64 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000
|
|
@ -1,77 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_80B872E8
|
||||
.float -0.8
|
||||
|
||||
.text
|
||||
glabel func_80B86F68
|
||||
/* 00648 80B86F68 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 0064C 80B86F6C AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00650 80B86F70 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00654 80B86F74 8CA61C44 */ lw $a2, 0x1C44($a1) ## 00001C44
|
||||
/* 00658 80B86F78 848E019C */ lh $t6, 0x019C($a0) ## 0000019C
|
||||
/* 0065C 80B86F7C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00660 80B86F80 C4C40A50 */ lwc1 $f4, 0x0A50($a2) ## 00000A50
|
||||
/* 00664 80B86F84 31CFFFFD */ andi $t7, $t6, 0xFFFD ## $t7 = 00000000
|
||||
/* 00668 80B86F88 E4840024 */ swc1 $f4, 0x0024($a0) ## 00000024
|
||||
/* 0066C 80B86F8C C4C60A54 */ lwc1 $f6, 0x0A54($a2) ## 00000A54
|
||||
/* 00670 80B86F90 E4860028 */ swc1 $f6, 0x0028($a0) ## 00000028
|
||||
/* 00674 80B86F94 C4C80A58 */ lwc1 $f8, 0x0A58($a2) ## 00000A58
|
||||
/* 00678 80B86F98 A48F019C */ sh $t7, 0x019C($a0) ## 0000019C
|
||||
/* 0067C 80B86F9C E488002C */ swc1 $f8, 0x002C($a0) ## 0000002C
|
||||
/* 00680 80B86FA0 C4CE0A40 */ lwc1 $f14, 0x0A40($a2) ## 00000A40
|
||||
/* 00684 80B86FA4 C4CC0A48 */ lwc1 $f12, 0x0A48($a2) ## 00000A48
|
||||
/* 00688 80B86FA8 AFA60020 */ sw $a2, 0x0020($sp)
|
||||
/* 0068C 80B86FAC 46007387 */ neg.s $f14, $f14
|
||||
/* 00690 80B86FB0 0C034199 */ jal Math_Atan2S
|
||||
|
||||
/* 00694 80B86FB4 46006307 */ neg.s $f12, $f12
|
||||
/* 00698 80B86FB8 8FA60020 */ lw $a2, 0x0020($sp)
|
||||
/* 0069C 80B86FBC A60200B6 */ sh $v0, 0x00B6($s0) ## 000000B6
|
||||
/* 006A0 80B86FC0 24C30A20 */ addiu $v1, $a2, 0x0A20 ## $v1 = 00000A20
|
||||
/* 006A4 80B86FC4 C4620028 */ lwc1 $f2, 0x0028($v1) ## 00000A48
|
||||
/* 006A8 80B86FC8 C4700020 */ lwc1 $f16, 0x0020($v1) ## 00000A40
|
||||
/* 006AC 80B86FCC C46C0024 */ lwc1 $f12, 0x0024($v1) ## 00000A44
|
||||
/* 006B0 80B86FD0 46021282 */ mul.s $f10, $f2, $f2
|
||||
/* 006B4 80B86FD4 46006307 */ neg.s $f12, $f12
|
||||
/* 006B8 80B86FD8 46108482 */ mul.s $f18, $f16, $f16
|
||||
/* 006BC 80B86FDC 46125000 */ add.s $f0, $f10, $f18
|
||||
/* 006C0 80B86FE0 0C034199 */ jal Math_Atan2S
|
||||
|
||||
/* 006C4 80B86FE4 46000384 */ sqrt.s $f14, $f0
|
||||
/* 006C8 80B86FE8 A60200B4 */ sh $v0, 0x00B4($s0) ## 000000B4
|
||||
/* 006CC 80B86FEC 860300B4 */ lh $v1, 0x00B4($s0) ## 000000B4
|
||||
/* 006D0 80B86FF0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 006D4 80B86FF4 3C0580B8 */ lui $a1, %hi(func_80B86CA8) ## $a1 = 80B80000
|
||||
/* 006D8 80B86FF8 04600003 */ bltz $v1, .L80B87008
|
||||
/* 006DC 80B86FFC 00031023 */ subu $v0, $zero, $v1
|
||||
/* 006E0 80B87000 10000001 */ beq $zero, $zero, .L80B87008
|
||||
/* 006E4 80B87004 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
|
||||
.L80B87008:
|
||||
/* 006E8 80B87008 28414001 */ slti $at, $v0, 0x4001
|
||||
/* 006EC 80B8700C 14200004 */ bne $at, $zero, .L80B87020
|
||||
/* 006F0 80B87010 00000000 */ nop
|
||||
/* 006F4 80B87014 8618019C */ lh $t8, 0x019C($s0) ## 0000019C
|
||||
/* 006F8 80B87018 37190001 */ ori $t9, $t8, 0x0001 ## $t9 = 00000001
|
||||
/* 006FC 80B8701C A619019C */ sh $t9, 0x019C($s0) ## 0000019C
|
||||
.L80B87020:
|
||||
/* 00700 80B87020 0C2E1A48 */ jal func_80B86920
|
||||
/* 00704 80B87024 24A56CA8 */ addiu $a1, $a1, %lo(func_80B86CA8) ## $a1 = 80B86CA8
|
||||
/* 00708 80B87028 3C014080 */ lui $at, 0x4080 ## $at = 40800000
|
||||
/* 0070C 80B8702C 44812000 */ mtc1 $at, $f4 ## $f4 = 4.00
|
||||
/* 00710 80B87030 3C01C080 */ lui $at, 0xC080 ## $at = C0800000
|
||||
/* 00714 80B87034 44813000 */ mtc1 $at, $f6 ## $f6 = -4.00
|
||||
/* 00718 80B87038 3C0180B8 */ lui $at, %hi(D_80B872E8) ## $at = 80B80000
|
||||
/* 0071C 80B8703C E6040060 */ swc1 $f4, 0x0060($s0) ## 00000060
|
||||
/* 00720 80B87040 E6060070 */ swc1 $f6, 0x0070($s0) ## 00000070
|
||||
/* 00724 80B87044 C42872E8 */ lwc1 $f8, %lo(D_80B872E8)($at)
|
||||
/* 00728 80B87048 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00
|
||||
/* 0072C 80B8704C 24080046 */ addiu $t0, $zero, 0x0046 ## $t0 = 00000046
|
||||
/* 00730 80B87050 A6000198 */ sh $zero, 0x0198($s0) ## 00000198
|
||||
/* 00734 80B87054 A608019A */ sh $t0, 0x019A($s0) ## 0000019A
|
||||
/* 00738 80B87058 E608006C */ swc1 $f8, 0x006C($s0) ## 0000006C
|
||||
/* 0073C 80B8705C E60A0068 */ swc1 $f10, 0x0068($s0) ## 00000068
|
||||
/* 00740 80B87060 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00744 80B87064 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 00748 80B87068 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
/* 0074C 80B8706C 03E00008 */ jr $ra
|
||||
/* 00750 80B87070 00000000 */ nop
|
|
@ -1,31 +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 D_80B871A0
|
||||
.word 0x0A000939, 0x10010000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x00010100, 0x000F000F, 0x00000000, 0x00000000
|
||||
glabel Item_Shield_InitVars
|
||||
.word 0x00EE0700, 0x00000010, 0x00150000, 0x0000020C
|
||||
.word ItemShield_Init
|
||||
.word ItemShield_Destroy
|
||||
.word ItemShield_Update
|
||||
.word ItemShield_Draw
|
||||
.word 0xFFFF00FF, 0xFF0000FF
|
||||
glabel D_80B871F4
|
||||
.word 0x00000000
|
||||
glabel D_80B871F8
|
||||
.word 0x00000000
|
||||
glabel D_80B871FC
|
||||
.word 0x00000000
|
||||
glabel D_80B87200
|
||||
.word 0x3E99999A, 0x3F19999A, 0x3F666666, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F59999A, 0x3F333333, 0x3F0CCCCD, 0x3ECCCCCD, 0x3E800000, 0x3DCCCCCD, 0x00000000
|
||||
glabel D_80B87240
|
||||
.word 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F4CCCCD, 0x3F19999A, 0x3ECCCCCD, 0x3E4CCCCD, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
|
@ -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_80B872F0
|
||||
.incbin "baserom/ovl_Item_Shield", 0x9D0, 0x000000E0
|
3
spec
3
spec
|
@ -3246,8 +3246,7 @@ endseg
|
|||
beginseg
|
||||
name "ovl_Item_Shield"
|
||||
include "build/src/overlays/actors/ovl_Item_Shield/z_item_shield.o"
|
||||
include "build/data/overlays/actors/z_item_shield.data.o"
|
||||
include "build/data/overlays/actors/z_item_shield.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Item_Shield/ovl_Item_Shield_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
* Description: Deku Shield
|
||||
*/
|
||||
|
||||
#include "vt.h"
|
||||
#include "z_item_shield.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
@ -15,22 +16,12 @@ void ItemShield_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
|||
void ItemShield_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void ItemShield_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
extern UNK_TYPE D_060224F8;
|
||||
void func_80B86F68(ItemShield* this, GlobalContext* globalCtx);
|
||||
void func_80B86BC8(ItemShield* this, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
const ActorInit Item_Shield_InitVars = {
|
||||
ACTOR_ITEM_SHIELD,
|
||||
ACTORCAT_ITEMACTION,
|
||||
FLAGS,
|
||||
OBJECT_LINK_CHILD,
|
||||
sizeof(ItemShield),
|
||||
(ActorFunc)ItemShield_Init,
|
||||
(ActorFunc)ItemShield_Destroy,
|
||||
(ActorFunc)ItemShield_Update,
|
||||
(ActorFunc)ItemShield_Draw,
|
||||
};
|
||||
extern Gfx D_060224F8[];
|
||||
|
||||
static ColliderCylinderInit D_80B871A0 = {
|
||||
static ColliderCylinderInit sCylinderInit = {
|
||||
{
|
||||
COLTYPE_NONE,
|
||||
AT_NONE,
|
||||
|
@ -49,21 +40,192 @@ static ColliderCylinderInit D_80B871A0 = {
|
|||
},
|
||||
{ 15, 15, 0, { 0, 0, 0 } },
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Item_Shield/func_80B86920.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Item_Shield/ItemShield_Init.s")
|
||||
const ActorInit Item_Shield_InitVars = {
|
||||
ACTOR_ITEM_SHIELD,
|
||||
ACTORCAT_ITEMACTION,
|
||||
FLAGS,
|
||||
OBJECT_LINK_CHILD,
|
||||
sizeof(ItemShield),
|
||||
(ActorFunc)ItemShield_Init,
|
||||
(ActorFunc)ItemShield_Destroy,
|
||||
(ActorFunc)ItemShield_Update,
|
||||
(ActorFunc)ItemShield_Draw,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Item_Shield/ItemShield_Destroy.s")
|
||||
static Color_RGBA8 unused = { 255, 255, 0, 255 };
|
||||
static Color_RGBA8 unused2 = { 255, 0, 0, 255 };
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Item_Shield/func_80B86AC8.s")
|
||||
void ItemShield_SetupAction(ItemShield* this, ItemShieldActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Item_Shield/func_80B86BC8.s")
|
||||
void ItemShield_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
ItemShield* this = THIS;
|
||||
s32 i;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Item_Shield/func_80B86CA8.s")
|
||||
this->timer = 0;
|
||||
this->unk_19C = 0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Item_Shield/func_80B86F68.s")
|
||||
switch (this->actor.params) {
|
||||
case 0:
|
||||
ActorShape_Init(&this->actor.shape, 1400.0f, NULL, 0.0f);
|
||||
this->actor.shape.rot.x = 0x4000;
|
||||
ItemShield_SetupAction(this, func_80B86BC8);
|
||||
break;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Item_Shield/ItemShield_Update.s")
|
||||
case 1:
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, NULL, 0.0f);
|
||||
ItemShield_SetupAction(this, func_80B86F68);
|
||||
this->unk_19C |= 2;
|
||||
for (i = 0; i < 8; i++) {
|
||||
this->unk_19E[i] = 1 + 2 * i;
|
||||
this->unk_1A8[i].x = Rand_CenteredFloat(10.0f);
|
||||
this->unk_1A8[i].y = Rand_CenteredFloat(10.0f);
|
||||
this->unk_1A8[i].z = Rand_CenteredFloat(10.0f);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Item_Shield/ItemShield_Draw.s")
|
||||
Actor_SetScale(&this->actor, 0.01f);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
osSyncPrintf(VT_FGCOL(GREEN) "Item_Shild %d \n" VT_RST, this->actor.params);
|
||||
}
|
||||
|
||||
void ItemShield_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
ItemShield* this = THIS;
|
||||
|
||||
Collider_DestroyCylinder(globalCtx, &this->collider);
|
||||
}
|
||||
|
||||
void func_80B86AC8(ItemShield* this, GlobalContext* globalCtx) {
|
||||
Actor_MoveForward(&this->actor);
|
||||
if (Actor_HasParent(&this->actor, globalCtx)) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
func_8002F434(&this->actor, globalCtx, GI_SHIELD_DEKU, 30.0f, 50.0f);
|
||||
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 10.0f, 10.0f, 0.0f, 5);
|
||||
if (this->actor.bgCheckFlags & 1) {
|
||||
this->timer--;
|
||||
if (this->timer < 60) {
|
||||
if (this->timer & 1) {
|
||||
this->unk_19C |= 2;
|
||||
} else {
|
||||
this->unk_19C &= ~2;
|
||||
}
|
||||
}
|
||||
if (this->timer == 0) {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_80B86BC8(ItemShield* this, GlobalContext* globalCtx) {
|
||||
if (Actor_HasParent(&this->actor, globalCtx)) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
func_8002F434(&this->actor, globalCtx, GI_SHIELD_DEKU, 30.0f, 50.0f);
|
||||
if (this->collider.base.acFlags & AC_HIT) {
|
||||
ItemShield_SetupAction(this, func_80B86AC8);
|
||||
this->actor.velocity.y = 4.0f;
|
||||
this->actor.minVelocityY = -4.0f;
|
||||
this->actor.gravity = -0.8f;
|
||||
this->actor.speedXZ = 0.0f;
|
||||
this->timer = 160;
|
||||
} else {
|
||||
Collider_UpdateCylinder(&this->actor, &this->collider);
|
||||
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||
}
|
||||
}
|
||||
|
||||
void func_80B86CA8(ItemShield* this, GlobalContext* globalCtx) {
|
||||
static Vec3f D_80B871F4 = { 0.0f, 0.0f, 0.0f };
|
||||
static f32 D_80B87200[] = { 0.3f, 0.6f, 0.9f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
|
||||
1.0f, 0.85f, 0.7f, 0.55f, 0.4f, 0.25f, 0.1f, 0.0f };
|
||||
static f32 D_80B87240[] = { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.8f,
|
||||
0.6f, 0.4f, 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
|
||||
s32 i;
|
||||
s32 temp;
|
||||
|
||||
Actor_MoveForward(&this->actor);
|
||||
Actor_UpdateBgCheckInfo(globalCtx, &this->actor, 10.0f, 10.0f, 0.0f, 5);
|
||||
this->actor.shape.yOffset = ABS(Math_SinS(this->actor.shape.rot.x)) * 1500.0f;
|
||||
|
||||
for (i = 0; i < 8; i++) {
|
||||
temp = 15 - this->unk_19E[i];
|
||||
D_80B871F4.x = this->unk_1A8[i].x;
|
||||
D_80B871F4.y = this->unk_1A8[i].y + (this->actor.shape.yOffset * 0.01f) + (D_80B87200[temp] * -10.0f * 0.2f);
|
||||
D_80B871F4.z = this->unk_1A8[i].z;
|
||||
EffectSsFireTail_SpawnFlame(globalCtx, &this->actor, &D_80B871F4, D_80B87200[temp] * 0.2f, -1, D_80B87240[temp]);
|
||||
if (this->unk_19E[i] != 0) {
|
||||
this->unk_19E[i]--;
|
||||
} else if (this->timer > 16) {
|
||||
this->unk_19E[i] = 15;
|
||||
this->unk_1A8[i].x = Rand_CenteredFloat(15.0f);
|
||||
this->unk_1A8[i].y = Rand_CenteredFloat(10.0f);
|
||||
this->unk_1A8[i].z = Rand_CenteredFloat(15.0f);
|
||||
}
|
||||
}
|
||||
if (this->actor.bgCheckFlags & 1) {
|
||||
this->unk_198 -= this->actor.shape.rot.x >> 1;
|
||||
this->unk_198 -= this->unk_198 >> 2;
|
||||
this->actor.shape.rot.x += this->unk_198;
|
||||
if ((this->timer >= 8) && (this->timer < 24)) {
|
||||
Actor_SetScale(&this->actor, (this->timer - 8) * 0.000625f);
|
||||
}
|
||||
if (this->timer != 0) {
|
||||
this->timer--;
|
||||
} else {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_80B86F68(ItemShield* this, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
Player* player = PLAYER;
|
||||
MtxF* shield = &player->shieldMf;
|
||||
|
||||
this->actor.world.pos.x = shield->wx;
|
||||
this->actor.world.pos.y = shield->wy;
|
||||
this->actor.world.pos.z = shield->wz;
|
||||
this->unk_19C &= ~2;
|
||||
|
||||
this->actor.shape.rot.y = Math_Atan2S(-shield->zz, -shield->zx);
|
||||
this->actor.shape.rot.x = Math_Atan2S(-shield->zy, sqrtf(shield->zz * shield->zz + shield->zx * shield->zx));
|
||||
|
||||
if (ABS(this->actor.shape.rot.x) > 0x4000) {
|
||||
this->unk_19C |= 1;
|
||||
}
|
||||
|
||||
ItemShield_SetupAction(this, func_80B86CA8);
|
||||
|
||||
this->actor.velocity.y = 4.0;
|
||||
this->actor.minVelocityY = -4.0;
|
||||
this->actor.gravity = -0.8;
|
||||
this->unk_198 = 0;
|
||||
this->timer = 70;
|
||||
this->actor.speedXZ = 0;
|
||||
}
|
||||
|
||||
void ItemShield_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
ItemShield* this = THIS;
|
||||
|
||||
this->actionFunc(this, globalCtx);
|
||||
}
|
||||
|
||||
void ItemShield_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
ItemShield* this = THIS;
|
||||
|
||||
if (!(this->unk_19C & 2)) {
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_item_shield.c", 457);
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_item_shield.c", 460),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, SEGMENTED_TO_VIRTUAL(D_060224F8));
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_item_shield.c", 465);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,9 +6,17 @@
|
|||
|
||||
struct ItemShield;
|
||||
|
||||
typedef void (*ItemShieldActionFunc)(struct ItemShield*, GlobalContext*);
|
||||
|
||||
typedef struct ItemShield {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0xC0];
|
||||
/* 0x014C */ ColliderCylinder collider;
|
||||
/* 0x0198 */ s16 unk_198;
|
||||
/* 0x019A */ s16 timer;
|
||||
/* 0x019C */ s16 unk_19C;
|
||||
/* 0x019E */ u8 unk_19E[8];
|
||||
/* 0x01A8 */ Vec3f unk_1A8[8];
|
||||
/* 0x0208 */ ItemShieldActionFunc actionFunc;
|
||||
} ItemShield; // size = 0x020C
|
||||
|
||||
extern const ActorInit Item_Shield_InitVars;
|
||||
|
|
Loading…
Reference in a new issue