1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-29 16:26:18 +00:00

z_bg_jya_ironobj and object_jya_iron OK (#676)

* z_bg_jya_ironobj OK

* decompile object_jya_iron, clean up code

* implement requested changes
This commit is contained in:
mzxrules 2021-02-13 19:10:40 -05:00 committed by GitHub
parent f9886c1097
commit d615ec4f31
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 246 additions and 966 deletions

View file

@ -1,21 +0,0 @@
glabel BgJyaIronobj_Destroy
/* 009F0 80899290 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 009F4 80899294 AFA40018 */ sw $a0, 0x0018($sp)
/* 009F8 80899298 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 009FC 8089929C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00A00 808992A0 8FA50018 */ lw $a1, 0x0018($sp)
/* 00A04 808992A4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00A08 808992A8 AFA7001C */ sw $a3, 0x001C($sp)
/* 00A0C 808992AC 0C0170EB */ jal Collider_DestroyCylinder
/* 00A10 808992B0 24A50168 */ addiu $a1, $a1, 0x0168 ## $a1 = 00000168
/* 00A14 808992B4 8FA4001C */ lw $a0, 0x001C($sp)
/* 00A18 808992B8 8FAE0018 */ lw $t6, 0x0018($sp)
/* 00A1C 808992BC 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 00A20 808992C0 0C00FB56 */ jal DynaPoly_DeleteBgActor
## DynaPoly_DeleteBgActor
/* 00A24 808992C4 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 00A28 808992C8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00A2C 808992CC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00A30 808992D0 03E00008 */ jr $ra
/* 00A34 808992D4 00000000 */ nop

View file

@ -1,17 +0,0 @@
glabel BgJyaIronobj_Draw
/* 00BA4 80899444 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00BA8 80899448 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00BAC 8089944C 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00BB0 80899450 84EE001C */ lh $t6, 0x001C($a3) ## 0000001C
/* 00BB4 80899454 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00BB8 80899458 3C05808A */ lui $a1, %hi(D_808994A4) ## $a1 = 808A0000
/* 00BBC 8089945C 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000
/* 00BC0 80899460 000FC080 */ sll $t8, $t7, 2
/* 00BC4 80899464 00B82821 */ addu $a1, $a1, $t8
/* 00BC8 80899468 0C00D498 */ jal Gfx_DrawDListOpa
/* 00BCC 8089946C 8CA594A4 */ lw $a1, %lo(D_808994A4)($a1)
/* 00BD0 80899470 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00BD4 80899474 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00BD8 80899478 03E00008 */ jr $ra
/* 00BDC 8089947C 00000000 */ nop

View file

@ -1,41 +0,0 @@
glabel BgJyaIronobj_Init
/* 00960 80899200 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00964 80899204 AFBF001C */ sw $ra, 0x001C($sp)
/* 00968 80899208 AFB00018 */ sw $s0, 0x0018($sp)
/* 0096C 8089920C AFA50034 */ sw $a1, 0x0034($sp)
/* 00970 80899210 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00974 80899214 AFA00024 */ sw $zero, 0x0024($sp)
/* 00978 80899218 0C010D20 */ jal DynaPolyActor_Init
/* 0097C 8089921C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00980 80899220 3C05808A */ lui $a1, %hi(D_80899540) ## $a1 = 808A0000
/* 00984 80899224 24A59540 */ addiu $a1, $a1, %lo(D_80899540) ## $a1 = 80899540
/* 00988 80899228 0C01E037 */ jal Actor_ProcessInitChain
/* 0098C 8089922C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00990 80899230 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00994 80899234 0C226228 */ jal func_808988A0
/* 00998 80899238 8FA50034 */ lw $a1, 0x0034($sp)
/* 0099C 8089923C 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 009A0 80899240 3C04808A */ lui $a0, %hi(D_80899550) ## $a0 = 808A0000
/* 009A4 80899244 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 009A8 80899248 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000
/* 009AC 8089924C 000FC080 */ sll $t8, $t7, 2
/* 009B0 80899250 00982021 */ addu $a0, $a0, $t8
/* 009B4 80899254 0C010620 */ jal CollisionHeader_GetVirtual
/* 009B8 80899258 8C849550 */ lw $a0, %lo(D_80899550)($a0)
/* 009BC 8089925C 8FA40034 */ lw $a0, 0x0034($sp)
/* 009C0 80899260 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 009C4 80899264 8FA70024 */ lw $a3, 0x0024($sp)
/* 009C8 80899268 0C00FA9D */ jal DynaPoly_SetBgActor
## DynaPoly_SetBgActor
/* 009CC 8089926C 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 009D0 80899270 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 009D4 80899274 0C2264B6 */ jal func_808992D8
/* 009D8 80899278 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 009DC 8089927C 8FBF001C */ lw $ra, 0x001C($sp)
/* 009E0 80899280 8FB00018 */ lw $s0, 0x0018($sp)
/* 009E4 80899284 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 009E8 80899288 03E00008 */ jr $ra
/* 009EC 8089928C 00000000 */ nop

View file

@ -1,10 +0,0 @@
glabel BgJyaIronobj_Update
/* 00B80 80899420 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00B84 80899424 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00B88 80899428 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
/* 00B8C 8089942C 0320F809 */ jalr $ra, $t9
/* 00B90 80899430 00000000 */ nop
/* 00B94 80899434 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00B98 80899438 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00B9C 8089943C 03E00008 */ jr $ra
/* 00BA0 80899440 00000000 */ nop

View file

@ -1,37 +0,0 @@
glabel func_808988A0
/* 00000 808988A0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00004 808988A4 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00008 808988A8 AFA50024 */ sw $a1, 0x0024($sp)
/* 0000C 808988AC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00010 808988B0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00014 808988B4 24C50168 */ addiu $a1, $a2, 0x0168 ## $a1 = 00000168
/* 00018 808988B8 AFA50018 */ sw $a1, 0x0018($sp)
/* 0001C 808988BC 0C0170D9 */ jal Collider_InitCylinder
/* 00020 808988C0 AFA60020 */ sw $a2, 0x0020($sp)
/* 00024 808988C4 3C07808A */ lui $a3, %hi(D_808994AC) ## $a3 = 808A0000
/* 00028 808988C8 8FA60020 */ lw $a2, 0x0020($sp)
/* 0002C 808988CC 24E794AC */ addiu $a3, $a3, %lo(D_808994AC) ## $a3 = 808994AC
/* 00030 808988D0 8FA40024 */ lw $a0, 0x0024($sp)
/* 00034 808988D4 0C01712B */ jal Collider_SetCylinder
/* 00038 808988D8 8FA50018 */ lw $a1, 0x0018($sp)
/* 0003C 808988DC 8FA60020 */ lw $a2, 0x0020($sp)
/* 00040 808988E0 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00044 808988E4 24180028 */ addiu $t8, $zero, 0x0028 ## $t8 = 00000028
/* 00048 808988E8 84CE001C */ lh $t6, 0x001C($a2) ## 0000001C
/* 0004C 808988EC 24190064 */ addiu $t9, $zero, 0x0064 ## $t9 = 00000064
/* 00050 808988F0 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00054 808988F4 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000
/* 00058 808988F8 15E10003 */ bne $t7, $at, .L80898908
/* 0005C 808988FC 00000000 */ nop
/* 00060 80898900 A4D801A8 */ sh $t8, 0x01A8($a2) ## 000001A8
/* 00064 80898904 A4D901AA */ sh $t9, 0x01AA($a2) ## 000001AA
.L80898908:
/* 00068 80898908 0C0189B7 */ jal Collider_UpdateCylinder
/* 0006C 8089890C 8FA50018 */ lw $a1, 0x0018($sp)
/* 00070 80898910 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00074 80898914 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00078 80898918 03E00008 */ jr $ra
/* 0007C 8089891C 00000000 */ nop

View file

@ -1,348 +0,0 @@
.rdata
glabel D_80899560
.asciz "Error (%s %d)\n"
.balign 4
glabel D_80899584
.asciz "../z_bg_jya_ironobj.c"
.balign 4
glabel D_8089959C
.asciz "¢ attack_type(%d)\n"
.balign 4
.late_rodata
glabel D_80899600
.float 0.1
glabel D_80899604
.float 0.8
glabel D_80899608
.word 0x3D042108
glabel D_8089960C
.word 0x3E851EB8
.text
glabel func_80898920
/* 00080 80898920 27BDFF10 */ addiu $sp, $sp, 0xFF10 ## $sp = FFFFFF10
/* 00084 80898924 AFBF0094 */ sw $ra, 0x0094($sp)
/* 00088 80898928 AFB60090 */ sw $s6, 0x0090($sp)
/* 0008C 8089892C AFB5008C */ sw $s5, 0x008C($sp)
/* 00090 80898930 AFB40088 */ sw $s4, 0x0088($sp)
/* 00094 80898934 AFB30084 */ sw $s3, 0x0084($sp)
/* 00098 80898938 AFB20080 */ sw $s2, 0x0080($sp)
/* 0009C 8089893C AFB1007C */ sw $s1, 0x007C($sp)
/* 000A0 80898940 AFB00078 */ sw $s0, 0x0078($sp)
/* 000A4 80898944 F7BE0070 */ sdc1 $f30, 0x0070($sp)
/* 000A8 80898948 F7BC0068 */ sdc1 $f28, 0x0068($sp)
/* 000AC 8089894C F7BA0060 */ sdc1 $f26, 0x0060($sp)
/* 000B0 80898950 F7B80058 */ sdc1 $f24, 0x0058($sp)
/* 000B4 80898954 F7B60050 */ sdc1 $f22, 0x0050($sp)
/* 000B8 80898958 F7B40048 */ sdc1 $f20, 0x0048($sp)
/* 000BC 8089895C 80C702FF */ lb $a3, 0x02FF($a2) ## 000002FF
/* 000C0 80898960 00C08025 */ or $s0, $a2, $zero ## $s0 = 00000000
/* 000C4 80898964 00809825 */ or $s3, $a0, $zero ## $s3 = 00000000
/* 000C8 80898968 18E00004 */ blez $a3, .L8089897C
/* 000CC 8089896C 00A0A825 */ or $s5, $a1, $zero ## $s5 = 00000000
/* 000D0 80898970 28E10004 */ slti $at, $a3, 0x0004
/* 000D4 80898974 14200009 */ bne $at, $zero, .L8089899C
/* 000D8 80898978 3C04808A */ lui $a0, %hi(D_8089959C) ## $a0 = 808A0000
.L8089897C:
/* 000DC 8089897C 3C04808A */ lui $a0, %hi(D_80899560) ## $a0 = 808A0000
/* 000E0 80898980 3C05808A */ lui $a1, %hi(D_80899584) ## $a1 = 808A0000
/* 000E4 80898984 24A59584 */ addiu $a1, $a1, %lo(D_80899584) ## $a1 = 80899584
/* 000E8 80898988 24849560 */ addiu $a0, $a0, %lo(D_80899560) ## $a0 = 80899560
/* 000EC 8089898C 0C00084C */ jal osSyncPrintf
/* 000F0 80898990 240600E9 */ addiu $a2, $zero, 0x00E9 ## $a2 = 000000E9
/* 000F4 80898994 100000F8 */ beq $zero, $zero, .L80898D78
/* 000F8 80898998 8FBF0094 */ lw $ra, 0x0094($sp)
.L8089899C:
/* 000FC 8089899C 2484959C */ addiu $a0, $a0, %lo(D_8089959C) ## $a0 = FFFF959C
/* 00100 808989A0 0C00084C */ jal osSyncPrintf
/* 00104 808989A4 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000
/* 00108 808989A8 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
/* 0010C 808989AC 0C00B69E */ jal Actor_WorldYawTowardActor
/* 00110 808989B0 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00114 808989B4 820E02FF */ lb $t6, 0x02FF($s0) ## 000002FF
/* 00118 808989B8 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 0011C 808989BC 4481F000 */ mtc1 $at, $f30 ## $f30 = 10.00
/* 00120 808989C0 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000
/* 00124 808989C4 3C18808A */ lui $t8, %hi(D_808994AC+0x2A) ## $t8 = 808A0000
/* 00128 808989C8 4481E000 */ mtc1 $at, $f28 ## $f28 = 6.00
/* 0012C 808989CC 000E7840 */ sll $t7, $t6, 1
/* 00130 808989D0 030FC021 */ addu $t8, $t8, $t7
/* 00134 808989D4 3C014100 */ lui $at, 0x4100 ## $at = 41000000
/* 00138 808989D8 871894D6 */ lh $t8, %lo(D_808994AC+0x2A)($t8)
/* 0013C 808989DC 4481D000 */ mtc1 $at, $f26 ## $f26 = 8.00
/* 00140 808989E0 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00144 808989E4 4481C000 */ mtc1 $at, $f24 ## $f24 = 20.00
/* 00148 808989E8 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 0014C 808989EC 0302B021 */ addu $s6, $t8, $v0
/* 00150 808989F0 0016B400 */ sll $s6, $s6, 16
/* 00154 808989F4 4481B000 */ mtc1 $at, $f22 ## $f22 = 80.00
/* 00158 808989F8 0016B403 */ sra $s6, $s6, 16
/* 0015C 808989FC 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000
/* 00160 80898A00 26B41C24 */ addiu $s4, $s5, 0x1C24 ## $s4 = 00001C24
/* 00164 80898A04 24120008 */ addiu $s2, $zero, 0x0008 ## $s2 = 00000008
.L80898A08:
/* 00168 80898A08 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 0016C 80898A0C 00000000 */ nop
/* 00170 80898A10 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00174 80898A14 46000506 */ mov.s $f20, $f0
/* 00178 80898A18 4616A102 */ mul.s $f4, $f20, $f22
/* 0017C 80898A1C C6660028 */ lwc1 $f6, 0x0028($s3) ## 00000028
/* 00180 80898A20 3C014680 */ lui $at, 0x4680 ## $at = 46800000
/* 00184 80898A24 44819000 */ mtc1 $at, $f18 ## $f18 = 16384.00
/* 00188 80898A28 8E670024 */ lw $a3, 0x0024($s3) ## 00000024
/* 0018C 80898A2C 02802025 */ or $a0, $s4, $zero ## $a0 = 00001C24
/* 00190 80898A30 02A02825 */ or $a1, $s5, $zero ## $a1 = 00000000
/* 00194 80898A34 46062200 */ add.s $f8, $f4, $f6
/* 00198 80898A38 46120102 */ mul.s $f4, $f0, $f18
/* 0019C 80898A3C 2406018F */ addiu $a2, $zero, 0x018F ## $a2 = 0000018F
/* 001A0 80898A40 46184280 */ add.s $f10, $f8, $f24
/* 001A4 80898A44 4600218D */ trunc.w.s $f6, $f4
/* 001A8 80898A48 E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 001AC 80898A4C C670002C */ lwc1 $f16, 0x002C($s3) ## 0000002C
/* 001B0 80898A50 AFA00024 */ sw $zero, 0x0024($sp)
/* 001B4 80898A54 44083000 */ mfc1 $t0, $f6
/* 001B8 80898A58 AFA00020 */ sw $zero, 0x0020($sp)
/* 001BC 80898A5C AFA00018 */ sw $zero, 0x0018($sp)
/* 001C0 80898A60 00084C00 */ sll $t1, $t0, 16
/* 001C4 80898A64 00095403 */ sra $t2, $t1, 16
/* 001C8 80898A68 01565821 */ addu $t3, $t2, $s6
/* 001CC 80898A6C 256CE000 */ addiu $t4, $t3, 0xE000 ## $t4 = FFFFE000
/* 001D0 80898A70 AFAC001C */ sw $t4, 0x001C($sp)
/* 001D4 80898A74 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 001D8 80898A78 E7B00014 */ swc1 $f16, 0x0014($sp)
/* 001DC 80898A7C 1040000D */ beq $v0, $zero, .L80898AB4
/* 001E0 80898A80 00408025 */ or $s0, $v0, $zero ## $s0 = 00000000
/* 001E4 80898A84 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 001E8 80898A88 00000000 */ nop
/* 001EC 80898A8C 461A0202 */ mul.s $f8, $f0, $f26
/* 001F0 80898A90 3C014110 */ lui $at, 0x4110 ## $at = 41100000
/* 001F4 80898A94 44815000 */ mtc1 $at, $f10 ## $f10 = 9.00
/* 001F8 80898A98 00000000 */ nop
/* 001FC 80898A9C 460A4400 */ add.s $f16, $f8, $f10
/* 00200 80898AA0 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00204 80898AA4 E6100068 */ swc1 $f16, 0x0068($s0) ## 00000068
/* 00208 80898AA8 461E0482 */ mul.s $f18, $f0, $f30
/* 0020C 80898AAC 461C9100 */ add.s $f4, $f18, $f28
/* 00210 80898AB0 E6040060 */ swc1 $f4, 0x0060($s0) ## 00000060
.L80898AB4:
/* 00214 80898AB4 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
/* 00218 80898AB8 1632FFD3 */ bne $s1, $s2, .L80898A08
/* 0021C 80898ABC 00000000 */ nop
/* 00220 80898AC0 3C014316 */ lui $at, 0x4316 ## $at = 43160000
/* 00224 80898AC4 44814000 */ mtc1 $at, $f8 ## $f8 = 150.00
/* 00228 80898AC8 C6660028 */ lwc1 $f6, 0x0028($s3) ## 00000028
/* 0022C 80898ACC 8E670024 */ lw $a3, 0x0024($s3) ## 00000024
/* 00230 80898AD0 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001
/* 00234 80898AD4 46083280 */ add.s $f10, $f6, $f8
/* 00238 80898AD8 02802025 */ or $a0, $s4, $zero ## $a0 = 00001C24
/* 0023C 80898ADC 02A02825 */ or $a1, $s5, $zero ## $a1 = 00000000
/* 00240 80898AE0 2406018F */ addiu $a2, $zero, 0x018F ## $a2 = 0000018F
/* 00244 80898AE4 E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 00248 80898AE8 C670002C */ lwc1 $f16, 0x002C($s3) ## 0000002C
/* 0024C 80898AEC AFAD0024 */ sw $t5, 0x0024($sp)
/* 00250 80898AF0 AFA00020 */ sw $zero, 0x0020($sp)
/* 00254 80898AF4 AFA0001C */ sw $zero, 0x001C($sp)
/* 00258 80898AF8 AFA00018 */ sw $zero, 0x0018($sp)
/* 0025C 80898AFC 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 00260 80898B00 E7B00014 */ swc1 $f16, 0x0014($sp)
/* 00264 80898B04 C6720028 */ lwc1 $f18, 0x0028($s3) ## 00000028
/* 00268 80898B08 8E670024 */ lw $a3, 0x0024($s3) ## 00000024
/* 0026C 80898B0C 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
/* 00270 80898B10 E7B20010 */ swc1 $f18, 0x0010($sp)
/* 00274 80898B14 C664002C */ lwc1 $f4, 0x002C($s3) ## 0000002C
/* 00278 80898B18 AFAE0024 */ sw $t6, 0x0024($sp)
/* 0027C 80898B1C AFA00020 */ sw $zero, 0x0020($sp)
/* 00280 80898B20 AFA0001C */ sw $zero, 0x001C($sp)
/* 00284 80898B24 AFA00018 */ sw $zero, 0x0018($sp)
/* 00288 80898B28 02802025 */ or $a0, $s4, $zero ## $a0 = 00001C24
/* 0028C 80898B2C 02A02825 */ or $a1, $s5, $zero ## $a1 = 00000000
/* 00290 80898B30 2406018F */ addiu $a2, $zero, 0x018F ## $a2 = 0000018F
/* 00294 80898B34 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 00298 80898B38 E7A40014 */ swc1 $f4, 0x0014($sp)
/* 0029C 80898B3C 00162400 */ sll $a0, $s6, 16
/* 002A0 80898B40 0C01DE1C */ jal Math_SinS
## sins?
/* 002A4 80898B44 00042403 */ sra $a0, $a0, 16
/* 002A8 80898B48 00162400 */ sll $a0, $s6, 16
/* 002AC 80898B4C E7A000BC */ swc1 $f0, 0x00BC($sp)
/* 002B0 80898B50 0C01DE0D */ jal Math_CosS
## coss?
/* 002B4 80898B54 00042403 */ sra $a0, $a0, 16
/* 002B8 80898B58 3C014040 */ lui $at, 0x4040 ## $at = 40400000
/* 002BC 80898B5C 4481C000 */ mtc1 $at, $f24 ## $f24 = 3.00
/* 002C0 80898B60 E7A000C4 */ swc1 $f0, 0x00C4($sp)
/* 002C4 80898B64 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000
/* 002C8 80898B68 27B600C8 */ addiu $s6, $sp, 0x00C8 ## $s6 = FFFFFFD8
/* 002CC 80898B6C 27B400D4 */ addiu $s4, $sp, 0x00D4 ## $s4 = FFFFFFE4
.L80898B70:
/* 002D0 80898B70 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 002D4 80898B74 00000000 */ nop
/* 002D8 80898B78 3C01808A */ lui $at, %hi(D_80899600) ## $at = 808A0000
/* 002DC 80898B7C C4269600 */ lwc1 $f6, %lo(D_80899600)($at)
/* 002E0 80898B80 44928000 */ mtc1 $s2, $f16 ## $f16 = 0.00
/* 002E4 80898B84 3C01808A */ lui $at, %hi(D_80899604) ## $at = 808A0000
/* 002E8 80898B88 4606003C */ c.lt.s $f0, $f6
/* 002EC 80898B8C 468080A0 */ cvt.s.w $f2, $f16
/* 002F0 80898B90 45000003 */ bc1f .L80898BA0
/* 002F4 80898B94 00000000 */ nop
/* 002F8 80898B98 10000009 */ beq $zero, $zero, .L80898BC0
/* 002FC 80898B9C 24110060 */ addiu $s1, $zero, 0x0060 ## $s1 = 00000060
.L80898BA0:
/* 00300 80898BA0 C4289604 */ lwc1 $f8, %lo(D_80899604)($at)
/* 00304 80898BA4 24110020 */ addiu $s1, $zero, 0x0020 ## $s1 = 00000020
/* 00308 80898BA8 4608003C */ c.lt.s $f0, $f8
/* 0030C 80898BAC 00000000 */ nop
/* 00310 80898BB0 45000003 */ bc1f .L80898BC0
/* 00314 80898BB4 00000000 */ nop
/* 00318 80898BB8 10000001 */ beq $zero, $zero, .L80898BC0
/* 0031C 80898BBC 24110040 */ addiu $s1, $zero, 0x0040 ## $s1 = 00000040
.L80898BC0:
/* 00320 80898BC0 3C01408C */ lui $at, 0x408C ## $at = 408C0000
/* 00324 80898BC4 44812000 */ mtc1 $at, $f4 ## $f4 = 4.38
/* 00328 80898BC8 3C014178 */ lui $at, 0x4178 ## $at = 41780000
/* 0032C 80898BCC C66A0024 */ lwc1 $f10, 0x0024($s3) ## 00000024
/* 00330 80898BD0 46022182 */ mul.s $f6, $f4, $f2
/* 00334 80898BD4 44812000 */ mtc1 $at, $f4 ## $f4 = 15.50
/* 00338 80898BD8 E7AA00D4 */ swc1 $f10, 0x00D4($sp)
/* 0033C 80898BDC C6720028 */ lwc1 $f18, 0x0028($s3) ## 00000028
/* 00340 80898BE0 3C01808A */ lui $at, %hi(D_80899608) ## $at = 808A0000
/* 00344 80898BE4 46041001 */ sub.s $f0, $f2, $f4
/* 00348 80898BE8 461E3200 */ add.s $f8, $f6, $f30
/* 0034C 80898BEC C4269608 */ lwc1 $f6, %lo(D_80899608)($at)
/* 00350 80898BF0 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00354 80898BF4 46000005 */ abs.s $f0, $f0
/* 00358 80898BF8 46089280 */ add.s $f10, $f18, $f8
/* 0035C 80898BFC 46060482 */ mul.s $f18, $f0, $f6
/* 00360 80898C00 44814000 */ mtc1 $at, $f8 ## $f8 = 0.50
/* 00364 80898C04 E7AA00D8 */ swc1 $f10, 0x00D8($sp)
/* 00368 80898C08 C670002C */ lwc1 $f16, 0x002C($s3) ## 0000002C
/* 0036C 80898C0C 46089580 */ add.s $f22, $f18, $f8
/* 00370 80898C10 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00374 80898C14 E7B000DC */ swc1 $f16, 0x00DC($sp)
/* 00378 80898C18 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 0037C 80898C1C 46000506 */ mov.s $f20, $f0
/* 00380 80898C20 461CA282 */ mul.s $f10, $f20, $f28
/* 00384 80898C24 C7B000BC */ lwc1 $f16, 0x00BC($sp)
/* 00388 80898C28 46100102 */ mul.s $f4, $f0, $f16
/* 0038C 80898C2C 46185081 */ sub.s $f2, $f10, $f24
/* 00390 80898C30 461A2182 */ mul.s $f6, $f4, $f26
/* 00394 80898C34 46021200 */ add.s $f8, $f2, $f2
/* 00398 80898C38 46163482 */ mul.s $f18, $f6, $f22
/* 0039C 80898C3C 46089280 */ add.s $f10, $f18, $f8
/* 003A0 80898C40 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 003A4 80898C44 E7AA00C8 */ swc1 $f10, 0x00C8($sp)
/* 003A8 80898C48 461A0402 */ mul.s $f16, $f0, $f26
/* 003AC 80898C4C 46188101 */ sub.s $f4, $f16, $f24
/* 003B0 80898C50 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 003B4 80898C54 E7A400CC */ swc1 $f4, 0x00CC($sp)
/* 003B8 80898C58 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 003BC 80898C5C 46000506 */ mov.s $f20, $f0
/* 003C0 80898C60 461CA182 */ mul.s $f6, $f20, $f28
/* 003C4 80898C64 C7B200C4 */ lwc1 $f18, 0x00C4($sp)
/* 003C8 80898C68 32420007 */ andi $v0, $s2, 0x0007 ## $v0 = 00000000
/* 003CC 80898C6C 00021040 */ sll $v0, $v0, 1
/* 003D0 80898C70 46120202 */ mul.s $f8, $f0, $f18
/* 003D4 80898C74 3C08808A */ lui $t0, %hi(D_808994E0) ## $t0 = 808A0000
/* 003D8 80898C78 250894E0 */ addiu $t0, $t0, %lo(D_808994E0) ## $t0 = 808994E0
/* 003DC 80898C7C 3C18808A */ lui $t8, %hi(D_80899500) ## $t8 = 808A0000
/* 003E0 80898C80 3C0B808A */ lui $t3, %hi(D_808994F0) ## $t3 = 808A0000
/* 003E4 80898C84 46183081 */ sub.s $f2, $f6, $f24
/* 003E8 80898C88 01625821 */ addu $t3, $t3, $v0
/* 003EC 80898C8C 461A4282 */ mul.s $f10, $f8, $f26
/* 003F0 80898C90 0302C021 */ addu $t8, $t8, $v0
/* 003F4 80898C94 46021100 */ add.s $f4, $f2, $f2
/* 003F8 80898C98 00488021 */ addu $s0, $v0, $t0
/* 003FC 80898C9C 86090000 */ lh $t1, 0x0000($s0) ## 00000000
/* 00400 80898CA0 87189500 */ lh $t8, %lo(D_80899500)($t8)
/* 00404 80898CA4 856B94F0 */ lh $t3, %lo(D_808994F0)($t3)
/* 00408 80898CA8 46165402 */ mul.s $f16, $f10, $f22
/* 0040C 80898CAC 3C0E0600 */ lui $t6, %hi(D_06000880) ## $t6 = 06000000
/* 00410 80898CB0 25CE0880 */ addiu $t6, $t6, %lo(D_06000880) ## $t6 = 06000880
/* 00414 80898CB4 240FFEA2 */ addiu $t7, $zero, 0xFEA2 ## $t7 = FFFFFEA2
/* 00418 80898CB8 24190004 */ addiu $t9, $zero, 0x0004 ## $t9 = 00000004
/* 0041C 80898CBC 240A0005 */ addiu $t2, $zero, 0x0005 ## $t2 = 00000005
/* 00420 80898CC0 240CFFFF */ addiu $t4, $zero, 0xFFFF ## $t4 = FFFFFFFF
/* 00424 80898CC4 46048180 */ add.s $f6, $f16, $f4
/* 00428 80898CC8 240D016C */ addiu $t5, $zero, 0x016C ## $t5 = 0000016C
/* 0042C 80898CCC AFAD0038 */ sw $t5, 0x0038($sp)
/* 00430 80898CD0 AFAC0034 */ sw $t4, 0x0034($sp)
/* 00434 80898CD4 E7A600D0 */ swc1 $f6, 0x00D0($sp)
/* 00438 80898CD8 AFAA002C */ sw $t2, 0x002C($sp)
/* 0043C 80898CDC AFB9001C */ sw $t9, 0x001C($sp)
/* 00440 80898CE0 AFAF0010 */ sw $t7, 0x0010($sp)
/* 00444 80898CE4 AFAE003C */ sw $t6, 0x003C($sp)
/* 00448 80898CE8 02A02025 */ or $a0, $s5, $zero ## $a0 = 00000000
/* 0044C 80898CEC 02802825 */ or $a1, $s4, $zero ## $a1 = FFFFFFE4
/* 00450 80898CF0 02C03025 */ or $a2, $s6, $zero ## $a2 = FFFFFFD8
/* 00454 80898CF4 02803825 */ or $a3, $s4, $zero ## $a3 = FFFFFFE4
/* 00458 80898CF8 AFB10014 */ sw $s1, 0x0014($sp)
/* 0045C 80898CFC AFA00020 */ sw $zero, 0x0020($sp)
/* 00460 80898D00 AFA00028 */ sw $zero, 0x0028($sp)
/* 00464 80898D04 AFA90024 */ sw $t1, 0x0024($sp)
/* 00468 80898D08 AFB80018 */ sw $t8, 0x0018($sp)
/* 0046C 80898D0C 0C00A7A3 */ jal EffectSsKakera_Spawn
/* 00470 80898D10 AFAB0030 */ sw $t3, 0x0030($sp)
/* 00474 80898D14 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00478 80898D18 00000000 */ nop
/* 0047C 80898D1C 3C01808A */ lui $at, %hi(D_8089960C) ## $at = 808A0000
/* 00480 80898D20 C432960C */ lwc1 $f18, %lo(D_8089960C)($at)
/* 00484 80898D24 02A02025 */ or $a0, $s5, $zero ## $a0 = 00000000
/* 00488 80898D28 02802825 */ or $a1, $s4, $zero ## $a1 = FFFFFFE4
/* 0048C 80898D2C 4612003C */ c.lt.s $f0, $f18
/* 00490 80898D30 3C064348 */ lui $a2, 0x4348 ## $a2 = 43480000
/* 00494 80898D34 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00498 80898D38 4502000B */ bc1fl .L80898D68
/* 0049C 80898D3C 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001
/* 004A0 80898D40 86020000 */ lh $v0, 0x0000($s0) ## 00000000
/* 004A4 80898D44 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
/* 004A8 80898D48 AFB90018 */ sw $t9, 0x0018($sp)
/* 004AC 80898D4C 00021080 */ sll $v0, $v0, 2
/* 004B0 80898D50 244F003C */ addiu $t7, $v0, 0x003C ## $t7 = 0000003C
/* 004B4 80898D54 24580050 */ addiu $t8, $v0, 0x0050 ## $t8 = 00000050
/* 004B8 80898D58 AFB80014 */ sw $t8, 0x0014($sp)
/* 004BC 80898D5C 0C00CD20 */ jal func_80033480
/* 004C0 80898D60 AFAF0010 */ sw $t7, 0x0010($sp)
/* 004C4 80898D64 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000002
.L80898D68:
/* 004C8 80898D68 24010020 */ addiu $at, $zero, 0x0020 ## $at = 00000020
/* 004CC 80898D6C 1641FF80 */ bne $s2, $at, .L80898B70
/* 004D0 80898D70 00000000 */ nop
/* 004D4 80898D74 8FBF0094 */ lw $ra, 0x0094($sp)
.L80898D78:
/* 004D8 80898D78 D7B40048 */ ldc1 $f20, 0x0048($sp)
/* 004DC 80898D7C D7B60050 */ ldc1 $f22, 0x0050($sp)
/* 004E0 80898D80 D7B80058 */ ldc1 $f24, 0x0058($sp)
/* 004E4 80898D84 D7BA0060 */ ldc1 $f26, 0x0060($sp)
/* 004E8 80898D88 D7BC0068 */ ldc1 $f28, 0x0068($sp)
/* 004EC 80898D8C D7BE0070 */ ldc1 $f30, 0x0070($sp)
/* 004F0 80898D90 8FB00078 */ lw $s0, 0x0078($sp)
/* 004F4 80898D94 8FB1007C */ lw $s1, 0x007C($sp)
/* 004F8 80898D98 8FB20080 */ lw $s2, 0x0080($sp)
/* 004FC 80898D9C 8FB30084 */ lw $s3, 0x0084($sp)
/* 00500 80898DA0 8FB40088 */ lw $s4, 0x0088($sp)
/* 00504 80898DA4 8FB5008C */ lw $s5, 0x008C($sp)
/* 00508 80898DA8 8FB60090 */ lw $s6, 0x0090($sp)
/* 0050C 80898DAC 03E00008 */ jr $ra
/* 00510 80898DB0 27BD00F0 */ addiu $sp, $sp, 0x00F0 ## $sp = 00000000

View file

@ -1,330 +0,0 @@
.rdata
glabel D_808995B0
.asciz "Error (%s %d)\n"
.balign 4
glabel D_808995D4
.asciz "../z_bg_jya_ironobj.c"
.balign 4
glabel D_808995EC
.asciz "¢ attack_type(%d)\n"
.balign 4
.late_rodata
glabel D_80899610
.float 0.1
glabel D_80899614
.float 0.8
glabel D_80899618
.word 0x3D042108
glabel D_8089961C
.word 0x3E851EB8
.text
glabel func_80898DB4
/* 00514 80898DB4 27BDFF10 */ addiu $sp, $sp, 0xFF10 ## $sp = FFFFFF10
/* 00518 80898DB8 AFBF0094 */ sw $ra, 0x0094($sp)
/* 0051C 80898DBC AFB60090 */ sw $s6, 0x0090($sp)
/* 00520 80898DC0 AFB5008C */ sw $s5, 0x008C($sp)
/* 00524 80898DC4 AFB40088 */ sw $s4, 0x0088($sp)
/* 00528 80898DC8 AFB30084 */ sw $s3, 0x0084($sp)
/* 0052C 80898DCC AFB20080 */ sw $s2, 0x0080($sp)
/* 00530 80898DD0 AFB1007C */ sw $s1, 0x007C($sp)
/* 00534 80898DD4 AFB00078 */ sw $s0, 0x0078($sp)
/* 00538 80898DD8 F7BE0070 */ sdc1 $f30, 0x0070($sp)
/* 0053C 80898DDC F7BC0068 */ sdc1 $f28, 0x0068($sp)
/* 00540 80898DE0 F7BA0060 */ sdc1 $f26, 0x0060($sp)
/* 00544 80898DE4 F7B80058 */ sdc1 $f24, 0x0058($sp)
/* 00548 80898DE8 F7B60050 */ sdc1 $f22, 0x0050($sp)
/* 0054C 80898DEC F7B40048 */ sdc1 $f20, 0x0048($sp)
/* 00550 80898DF0 80C702FF */ lb $a3, 0x02FF($a2) ## 000002FF
/* 00554 80898DF4 00C08025 */ or $s0, $a2, $zero ## $s0 = 00000000
/* 00558 80898DF8 00809825 */ or $s3, $a0, $zero ## $s3 = 00000000
/* 0055C 80898DFC 18E00004 */ blez $a3, .L80898E10
/* 00560 80898E00 00A0B025 */ or $s6, $a1, $zero ## $s6 = 00000000
/* 00564 80898E04 28E10004 */ slti $at, $a3, 0x0004
/* 00568 80898E08 14200009 */ bne $at, $zero, .L80898E30
/* 0056C 80898E0C 3C04808A */ lui $a0, %hi(D_808995EC) ## $a0 = 808A0000
.L80898E10:
/* 00570 80898E10 3C04808A */ lui $a0, %hi(D_808995B0) ## $a0 = 808A0000
/* 00574 80898E14 3C05808A */ lui $a1, %hi(D_808995D4) ## $a1 = 808A0000
/* 00578 80898E18 24A595D4 */ addiu $a1, $a1, %lo(D_808995D4) ## $a1 = 808995D4
/* 0057C 80898E1C 248495B0 */ addiu $a0, $a0, %lo(D_808995B0) ## $a0 = 808995B0
/* 00580 80898E20 0C00084C */ jal osSyncPrintf
/* 00584 80898E24 2406016A */ addiu $a2, $zero, 0x016A ## $a2 = 0000016A
/* 00588 80898E28 100000E6 */ beq $zero, $zero, .L808991C4
/* 0058C 80898E2C 8FBF0094 */ lw $ra, 0x0094($sp)
.L80898E30:
/* 00590 80898E30 248495EC */ addiu $a0, $a0, %lo(D_808995EC) ## $a0 = FFFF95EC
/* 00594 80898E34 0C00084C */ jal osSyncPrintf
/* 00598 80898E38 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000
/* 0059C 80898E3C 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
/* 005A0 80898E40 0C00B69E */ jal Actor_WorldYawTowardActor
/* 005A4 80898E44 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 005A8 80898E48 820E02FF */ lb $t6, 0x02FF($s0) ## 000002FF
/* 005AC 80898E4C 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000
/* 005B0 80898E50 3C18808A */ lui $t8, %hi(D_808994AC+0x2A) ## $t8 = 808A0000
/* 005B4 80898E54 4481E000 */ mtc1 $at, $f28 ## $f28 = 6.00
/* 005B8 80898E58 000E7840 */ sll $t7, $t6, 1
/* 005BC 80898E5C 030FC021 */ addu $t8, $t8, $t7
/* 005C0 80898E60 3C014100 */ lui $at, 0x4100 ## $at = 41000000
/* 005C4 80898E64 871894D6 */ lh $t8, %lo(D_808994AC+0x2A)($t8)
/* 005C8 80898E68 4481D000 */ mtc1 $at, $f26 ## $f26 = 8.00
/* 005CC 80898E6C 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 005D0 80898E70 4481C000 */ mtc1 $at, $f24 ## $f24 = 80.00
/* 005D4 80898E74 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 005D8 80898E78 0302A821 */ addu $s5, $t8, $v0
/* 005DC 80898E7C 0015AC00 */ sll $s5, $s5, 16
/* 005E0 80898E80 4481B000 */ mtc1 $at, $f22 ## $f22 = 10.00
/* 005E4 80898E84 0015AC03 */ sra $s5, $s5, 16
/* 005E8 80898E88 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000
/* 005EC 80898E8C 26D21C24 */ addiu $s2, $s6, 0x1C24 ## $s2 = 00001C24
/* 005F0 80898E90 24140008 */ addiu $s4, $zero, 0x0008 ## $s4 = 00000008
.L80898E94:
/* 005F4 80898E94 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 005F8 80898E98 00000000 */ nop
/* 005FC 80898E9C 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00600 80898EA0 46000506 */ mov.s $f20, $f0
/* 00604 80898EA4 4618A102 */ mul.s $f4, $f20, $f24
/* 00608 80898EA8 C6660028 */ lwc1 $f6, 0x0028($s3) ## 00000028
/* 0060C 80898EAC 3C014680 */ lui $at, 0x4680 ## $at = 46800000
/* 00610 80898EB0 44819000 */ mtc1 $at, $f18 ## $f18 = 16384.00
/* 00614 80898EB4 8E670024 */ lw $a3, 0x0024($s3) ## 00000024
/* 00618 80898EB8 02402025 */ or $a0, $s2, $zero ## $a0 = 00001C24
/* 0061C 80898EBC 02C02825 */ or $a1, $s6, $zero ## $a1 = 00000000
/* 00620 80898EC0 46062200 */ add.s $f8, $f4, $f6
/* 00624 80898EC4 46120102 */ mul.s $f4, $f0, $f18
/* 00628 80898EC8 2406018F */ addiu $a2, $zero, 0x018F ## $a2 = 0000018F
/* 0062C 80898ECC 46164280 */ add.s $f10, $f8, $f22
/* 00630 80898ED0 4600218D */ trunc.w.s $f6, $f4
/* 00634 80898ED4 E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 00638 80898ED8 C670002C */ lwc1 $f16, 0x002C($s3) ## 0000002C
/* 0063C 80898EDC AFA00024 */ sw $zero, 0x0024($sp)
/* 00640 80898EE0 44083000 */ mfc1 $t0, $f6
/* 00644 80898EE4 AFA00020 */ sw $zero, 0x0020($sp)
/* 00648 80898EE8 AFA00018 */ sw $zero, 0x0018($sp)
/* 0064C 80898EEC 00084C00 */ sll $t1, $t0, 16
/* 00650 80898EF0 00095403 */ sra $t2, $t1, 16
/* 00654 80898EF4 01555821 */ addu $t3, $t2, $s5
/* 00658 80898EF8 256CE000 */ addiu $t4, $t3, 0xE000 ## $t4 = FFFFE000
/* 0065C 80898EFC AFAC001C */ sw $t4, 0x001C($sp)
/* 00660 80898F00 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 00664 80898F04 E7B00014 */ swc1 $f16, 0x0014($sp)
/* 00668 80898F08 1040000D */ beq $v0, $zero, .L80898F40
/* 0066C 80898F0C 00408025 */ or $s0, $v0, $zero ## $s0 = 00000000
/* 00670 80898F10 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00674 80898F14 00000000 */ nop
/* 00678 80898F18 461A0202 */ mul.s $f8, $f0, $f26
/* 0067C 80898F1C 3C014110 */ lui $at, 0x4110 ## $at = 41100000
/* 00680 80898F20 44815000 */ mtc1 $at, $f10 ## $f10 = 9.00
/* 00684 80898F24 00000000 */ nop
/* 00688 80898F28 460A4400 */ add.s $f16, $f8, $f10
/* 0068C 80898F2C 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00690 80898F30 E6100068 */ swc1 $f16, 0x0068($s0) ## 00000068
/* 00694 80898F34 46160482 */ mul.s $f18, $f0, $f22
/* 00698 80898F38 461C9100 */ add.s $f4, $f18, $f28
/* 0069C 80898F3C E6040060 */ swc1 $f4, 0x0060($s0) ## 00000060
.L80898F40:
/* 006A0 80898F40 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
/* 006A4 80898F44 1634FFD3 */ bne $s1, $s4, .L80898E94
/* 006A8 80898F48 00000000 */ nop
/* 006AC 80898F4C 00152400 */ sll $a0, $s5, 16
/* 006B0 80898F50 0C01DE1C */ jal Math_SinS
## sins?
/* 006B4 80898F54 00042403 */ sra $a0, $a0, 16
/* 006B8 80898F58 00152400 */ sll $a0, $s5, 16
/* 006BC 80898F5C E7A000BC */ swc1 $f0, 0x00BC($sp)
/* 006C0 80898F60 0C01DE0D */ jal Math_CosS
## coss?
/* 006C4 80898F64 00042403 */ sra $a0, $a0, 16
/* 006C8 80898F68 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 006CC 80898F6C 4481F000 */ mtc1 $at, $f30 ## $f30 = 40.00
/* 006D0 80898F70 3C014040 */ lui $at, 0x4040 ## $at = 40400000
/* 006D4 80898F74 4481C000 */ mtc1 $at, $f24 ## $f24 = 3.00
/* 006D8 80898F78 E7A000C4 */ swc1 $f0, 0x00C4($sp)
/* 006DC 80898F7C 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000
/* 006E0 80898F80 27B500C8 */ addiu $s5, $sp, 0x00C8 ## $s5 = FFFFFFD8
/* 006E4 80898F84 27B400D4 */ addiu $s4, $sp, 0x00D4 ## $s4 = FFFFFFE4
.L80898F88:
/* 006E8 80898F88 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 006EC 80898F8C 00000000 */ nop
/* 006F0 80898F90 3C01808A */ lui $at, %hi(D_80899610) ## $at = 808A0000
/* 006F4 80898F94 C4269610 */ lwc1 $f6, %lo(D_80899610)($at)
/* 006F8 80898F98 3C01808A */ lui $at, %hi(D_80899614) ## $at = 808A0000
/* 006FC 80898F9C 4606003C */ c.lt.s $f0, $f6
/* 00700 80898FA0 00000000 */ nop
/* 00704 80898FA4 45000003 */ bc1f .L80898FB4
/* 00708 80898FA8 00000000 */ nop
/* 0070C 80898FAC 10000009 */ beq $zero, $zero, .L80898FD4
/* 00710 80898FB0 24110060 */ addiu $s1, $zero, 0x0060 ## $s1 = 00000060
.L80898FB4:
/* 00714 80898FB4 C4289614 */ lwc1 $f8, %lo(D_80899614)($at)
/* 00718 80898FB8 24110020 */ addiu $s1, $zero, 0x0020 ## $s1 = 00000020
/* 0071C 80898FBC 4608003C */ c.lt.s $f0, $f8
/* 00720 80898FC0 00000000 */ nop
/* 00724 80898FC4 45000003 */ bc1f .L80898FD4
/* 00728 80898FC8 00000000 */ nop
/* 0072C 80898FCC 10000001 */ beq $zero, $zero, .L80898FD4
/* 00730 80898FD0 24110040 */ addiu $s1, $zero, 0x0040 ## $s1 = 00000040
.L80898FD4:
/* 00734 80898FD4 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00738 80898FD8 00000000 */ nop
/* 0073C 80898FDC 461E0282 */ mul.s $f10, $f0, $f30
/* 00740 80898FE0 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00744 80898FE4 44818000 */ mtc1 $at, $f16 ## $f16 = 20.00
/* 00748 80898FE8 44924000 */ mtc1 $s2, $f8 ## $f8 = 0.00
/* 0074C 80898FEC C6640024 */ lwc1 $f4, 0x0024($s3) ## 00000024
/* 00750 80898FF0 3C014070 */ lui $at, 0x4070 ## $at = 40700000
/* 00754 80898FF4 46804520 */ cvt.s.w $f20, $f8
/* 00758 80898FF8 46105481 */ sub.s $f18, $f10, $f16
/* 0075C 80898FFC 44818000 */ mtc1 $at, $f16 ## $f16 = 3.75
/* 00760 80899000 46049180 */ add.s $f6, $f18, $f4
/* 00764 80899004 46148482 */ mul.s $f18, $f16, $f20
/* 00768 80899008 E7A600D4 */ swc1 $f6, 0x00D4($sp)
/* 0076C 8089900C C66A0028 */ lwc1 $f10, 0x0028($s3) ## 00000028
/* 00770 80899010 46125100 */ add.s $f4, $f10, $f18
/* 00774 80899014 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00778 80899018 E7A400D8 */ swc1 $f4, 0x00D8($sp)
/* 0077C 8089901C 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00780 80899020 461E0182 */ mul.s $f6, $f0, $f30
/* 00784 80899024 44814000 */ mtc1 $at, $f8 ## $f8 = 20.00
/* 00788 80899028 3C014178 */ lui $at, 0x4178 ## $at = 41780000
/* 0078C 8089902C 44812000 */ mtc1 $at, $f4 ## $f4 = 15.50
/* 00790 80899030 3C01808A */ lui $at, %hi(D_80899618) ## $at = 808A0000
/* 00794 80899034 C66A002C */ lwc1 $f10, 0x002C($s3) ## 0000002C
/* 00798 80899038 4604A001 */ sub.s $f0, $f20, $f4
/* 0079C 8089903C 46083401 */ sub.s $f16, $f6, $f8
/* 007A0 80899040 C4269618 */ lwc1 $f6, %lo(D_80899618)($at)
/* 007A4 80899044 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 007A8 80899048 46000005 */ abs.s $f0, $f0
/* 007AC 8089904C 460A8480 */ add.s $f18, $f16, $f10
/* 007B0 80899050 46060202 */ mul.s $f8, $f0, $f6
/* 007B4 80899054 44818000 */ mtc1 $at, $f16 ## $f16 = 0.50
/* 007B8 80899058 E7B200DC */ swc1 $f18, 0x00DC($sp)
/* 007BC 8089905C 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 007C0 80899060 46104580 */ add.s $f22, $f8, $f16
/* 007C4 80899064 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 007C8 80899068 46000506 */ mov.s $f20, $f0
/* 007CC 8089906C 461CA282 */ mul.s $f10, $f20, $f28
/* 007D0 80899070 C7B200BC */ lwc1 $f18, 0x00BC($sp)
/* 007D4 80899074 46120102 */ mul.s $f4, $f0, $f18
/* 007D8 80899078 46185081 */ sub.s $f2, $f10, $f24
/* 007DC 8089907C 461A2182 */ mul.s $f6, $f4, $f26
/* 007E0 80899080 46021400 */ add.s $f16, $f2, $f2
/* 007E4 80899084 46163202 */ mul.s $f8, $f6, $f22
/* 007E8 80899088 46104280 */ add.s $f10, $f8, $f16
/* 007EC 8089908C 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 007F0 80899090 E7AA00C8 */ swc1 $f10, 0x00C8($sp)
/* 007F4 80899094 461A0482 */ mul.s $f18, $f0, $f26
/* 007F8 80899098 46189101 */ sub.s $f4, $f18, $f24
/* 007FC 8089909C 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00800 808990A0 E7A400CC */ swc1 $f4, 0x00CC($sp)
/* 00804 808990A4 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 00808 808990A8 46000506 */ mov.s $f20, $f0
/* 0080C 808990AC 461CA182 */ mul.s $f6, $f20, $f28
/* 00810 808990B0 C7A800C4 */ lwc1 $f8, 0x00C4($sp)
/* 00814 808990B4 32420007 */ andi $v0, $s2, 0x0007 ## $v0 = 00000000
/* 00818 808990B8 00021040 */ sll $v0, $v0, 1
/* 0081C 808990BC 46080402 */ mul.s $f16, $f0, $f8
/* 00820 808990C0 3C18808A */ lui $t8, %hi(D_80899510) ## $t8 = 808A0000
/* 00824 808990C4 27189510 */ addiu $t8, $t8, %lo(D_80899510) ## $t8 = 80899510
/* 00828 808990C8 3C0E808A */ lui $t6, %hi(D_80899530) ## $t6 = 808A0000
/* 0082C 808990CC 3C09808A */ lui $t1, %hi(D_80899520) ## $t1 = 808A0000
/* 00830 808990D0 46183081 */ sub.s $f2, $f6, $f24
/* 00834 808990D4 01224821 */ addu $t1, $t1, $v0
/* 00838 808990D8 461A8282 */ mul.s $f10, $f16, $f26
/* 0083C 808990DC 01C27021 */ addu $t6, $t6, $v0
/* 00840 808990E0 46021100 */ add.s $f4, $f2, $f2
/* 00844 808990E4 00588021 */ addu $s0, $v0, $t8
/* 00848 808990E8 86190000 */ lh $t9, 0x0000($s0) ## 00000000
/* 0084C 808990EC 85CE9530 */ lh $t6, %lo(D_80899530)($t6)
/* 00850 808990F0 85299520 */ lh $t1, %lo(D_80899520)($t1)
/* 00854 808990F4 46165482 */ mul.s $f18, $f10, $f22
/* 00858 808990F8 3C0C0600 */ lui $t4, %hi(D_06000880) ## $t4 = 06000000
/* 0085C 808990FC 258C0880 */ addiu $t4, $t4, %lo(D_06000880) ## $t4 = 06000880
/* 00860 80899100 240DFEA2 */ addiu $t5, $zero, 0xFEA2 ## $t5 = FFFFFEA2
/* 00864 80899104 240F0004 */ addiu $t7, $zero, 0x0004 ## $t7 = 00000004
/* 00868 80899108 24080005 */ addiu $t0, $zero, 0x0005 ## $t0 = 00000005
/* 0086C 8089910C 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF
/* 00870 80899110 46049180 */ add.s $f6, $f18, $f4
/* 00874 80899114 240B016C */ addiu $t3, $zero, 0x016C ## $t3 = 0000016C
/* 00878 80899118 AFAB0038 */ sw $t3, 0x0038($sp)
/* 0087C 8089911C AFAA0034 */ sw $t2, 0x0034($sp)
/* 00880 80899120 E7A600D0 */ swc1 $f6, 0x00D0($sp)
/* 00884 80899124 AFA8002C */ sw $t0, 0x002C($sp)
/* 00888 80899128 AFAF001C */ sw $t7, 0x001C($sp)
/* 0088C 8089912C AFAD0010 */ sw $t5, 0x0010($sp)
/* 00890 80899130 AFAC003C */ sw $t4, 0x003C($sp)
/* 00894 80899134 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000
/* 00898 80899138 02802825 */ or $a1, $s4, $zero ## $a1 = FFFFFFE4
/* 0089C 8089913C 02A03025 */ or $a2, $s5, $zero ## $a2 = FFFFFFD8
/* 008A0 80899140 02803825 */ or $a3, $s4, $zero ## $a3 = FFFFFFE4
/* 008A4 80899144 AFB10014 */ sw $s1, 0x0014($sp)
/* 008A8 80899148 AFA00020 */ sw $zero, 0x0020($sp)
/* 008AC 8089914C AFA00028 */ sw $zero, 0x0028($sp)
/* 008B0 80899150 AFB90024 */ sw $t9, 0x0024($sp)
/* 008B4 80899154 AFAE0018 */ sw $t6, 0x0018($sp)
/* 008B8 80899158 0C00A7A3 */ jal EffectSsKakera_Spawn
/* 008BC 8089915C AFA90030 */ sw $t1, 0x0030($sp)
/* 008C0 80899160 0C03F66B */ jal Rand_ZeroOne
## Rand.Next() float
/* 008C4 80899164 00000000 */ nop
/* 008C8 80899168 3C01808A */ lui $at, %hi(D_8089961C) ## $at = 808A0000
/* 008CC 8089916C C428961C */ lwc1 $f8, %lo(D_8089961C)($at)
/* 008D0 80899170 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000
/* 008D4 80899174 02802825 */ or $a1, $s4, $zero ## $a1 = FFFFFFE4
/* 008D8 80899178 4608003C */ c.lt.s $f0, $f8
/* 008DC 8089917C 3C064348 */ lui $a2, 0x4348 ## $a2 = 43480000
/* 008E0 80899180 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 008E4 80899184 4502000B */ bc1fl .L808991B4
/* 008E8 80899188 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001
/* 008EC 8089918C 86020000 */ lh $v0, 0x0000($s0) ## 00000000
/* 008F0 80899190 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 008F4 80899194 AFAF0018 */ sw $t7, 0x0018($sp)
/* 008F8 80899198 00021080 */ sll $v0, $v0, 2
/* 008FC 8089919C 244D003C */ addiu $t5, $v0, 0x003C ## $t5 = 0000003C
/* 00900 808991A0 244E0050 */ addiu $t6, $v0, 0x0050 ## $t6 = 00000050
/* 00904 808991A4 AFAE0014 */ sw $t6, 0x0014($sp)
/* 00908 808991A8 0C00CD20 */ jal func_80033480
/* 0090C 808991AC AFAD0010 */ sw $t5, 0x0010($sp)
/* 00910 808991B0 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000002
.L808991B4:
/* 00914 808991B4 24010020 */ addiu $at, $zero, 0x0020 ## $at = 00000020
/* 00918 808991B8 1641FF73 */ bne $s2, $at, .L80898F88
/* 0091C 808991BC 00000000 */ nop
/* 00920 808991C0 8FBF0094 */ lw $ra, 0x0094($sp)
.L808991C4:
/* 00924 808991C4 D7B40048 */ ldc1 $f20, 0x0048($sp)
/* 00928 808991C8 D7B60050 */ ldc1 $f22, 0x0050($sp)
/* 0092C 808991CC D7B80058 */ ldc1 $f24, 0x0058($sp)
/* 00930 808991D0 D7BA0060 */ ldc1 $f26, 0x0060($sp)
/* 00934 808991D4 D7BC0068 */ ldc1 $f28, 0x0068($sp)
/* 00938 808991D8 D7BE0070 */ ldc1 $f30, 0x0070($sp)
/* 0093C 808991DC 8FB00078 */ lw $s0, 0x0078($sp)
/* 00940 808991E0 8FB1007C */ lw $s1, 0x007C($sp)
/* 00944 808991E4 8FB20080 */ lw $s2, 0x0080($sp)
/* 00948 808991E8 8FB30084 */ lw $s3, 0x0084($sp)
/* 0094C 808991EC 8FB40088 */ lw $s4, 0x0088($sp)
/* 00950 808991F0 8FB5008C */ lw $s5, 0x008C($sp)
/* 00954 808991F4 8FB60090 */ lw $s6, 0x0090($sp)
/* 00958 808991F8 03E00008 */ jr $ra
/* 0095C 808991FC 27BD00F0 */ addiu $sp, $sp, 0x00F0 ## $sp = 00000000

View file

@ -1,5 +0,0 @@
glabel func_808992D8
/* 00A38 808992D8 3C0E808A */ lui $t6, %hi(func_808992E8) ## $t6 = 808A0000
/* 00A3C 808992DC 25CE92E8 */ addiu $t6, $t6, %lo(func_808992E8) ## $t6 = 808992E8
/* 00A40 808992E0 03E00008 */ jr $ra
/* 00A44 808992E4 AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164

View file

@ -1,86 +0,0 @@
glabel func_808992E8
/* 00A48 808992E8 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 00A4C 808992EC AFBF0034 */ sw $ra, 0x0034($sp)
/* 00A50 808992F0 AFB40030 */ sw $s4, 0x0030($sp)
/* 00A54 808992F4 AFB3002C */ sw $s3, 0x002C($sp)
/* 00A58 808992F8 AFB20028 */ sw $s2, 0x0028($sp)
/* 00A5C 808992FC AFB10024 */ sw $s1, 0x0024($sp)
/* 00A60 80899300 AFB00020 */ sw $s0, 0x0020($sp)
/* 00A64 80899304 F7B40018 */ sdc1 $f20, 0x0018($sp)
/* 00A68 80899308 90820179 */ lbu $v0, 0x0179($a0) ## 00000179
/* 00A6C 8089930C 00A09825 */ or $s3, $a1, $zero ## $s3 = 00000000
/* 00A70 80899310 0080A025 */ or $s4, $a0, $zero ## $s4 = 00000000
/* 00A74 80899314 304E0002 */ andi $t6, $v0, 0x0002 ## $t6 = 00000000
/* 00A78 80899318 11C00033 */ beq $t6, $zero, .L808993E8
/* 00A7C 8089931C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00A80 80899320 8C860170 */ lw $a2, 0x0170($a0) ## 00000170
/* 00A84 80899324 304FFFFD */ andi $t7, $v0, 0xFFFD ## $t7 = 00000000
/* 00A88 80899328 A08F0179 */ sb $t7, 0x0179($a0) ## 00000179
/* 00A8C 8089932C 50C00034 */ beql $a2, $zero, .L80899400
/* 00A90 80899330 8FBF0034 */ lw $ra, 0x0034($sp)
/* 00A94 80899334 84D80000 */ lh $t8, 0x0000($a2) ## 00000000
/* 00A98 80899338 24010113 */ addiu $at, $zero, 0x0113 ## $at = 00000113
/* 00A9C 8089933C 57010030 */ bnel $t8, $at, .L80899400
/* 00AA0 80899340 8FBF0034 */ lw $ra, 0x0034($sp)
/* 00AA4 80899344 8699001C */ lh $t9, 0x001C($s4) ## 0000001C
/* 00AA8 80899348 33280001 */ andi $t0, $t9, 0x0001 ## $t0 = 00000000
/* 00AAC 8089934C 00084880 */ sll $t1, $t0, 2
/* 00AB0 80899350 3C19808A */ lui $t9, %hi(D_80899558) ## $t9 = 808A0000
/* 00AB4 80899354 0329C821 */ addu $t9, $t9, $t1
/* 00AB8 80899358 8F399558 */ lw $t9, %lo(D_80899558)($t9)
/* 00ABC 8089935C 0320F809 */ jalr $ra, $t9
/* 00AC0 80899360 00000000 */ nop
/* 00AC4 80899364 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
/* 00AC8 80899368 26850024 */ addiu $a1, $s4, 0x0024 ## $a1 = 00000024
/* 00ACC 8089936C 24060050 */ addiu $a2, $zero, 0x0050 ## $a2 = 00000050
/* 00AD0 80899370 0C01AEB6 */ jal Audio_PlaySoundAtPosition
/* 00AD4 80899374 240739AD */ addiu $a3, $zero, 0x39AD ## $a3 = 000039AD
/* 00AD8 80899378 C6840024 */ lwc1 $f4, 0x0024($s4) ## 00000024
/* 00ADC 8089937C 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00AE0 80899380 44814000 */ mtc1 $at, $f8 ## $f8 = 20.00
/* 00AE4 80899384 E7A40040 */ swc1 $f4, 0x0040($sp)
/* 00AE8 80899388 C6860028 */ lwc1 $f6, 0x0028($s4) ## 00000028
/* 00AEC 8089938C 3C014190 */ lui $at, 0x4190 ## $at = 41900000
/* 00AF0 80899390 4481A000 */ mtc1 $at, $f20 ## $f20 = 18.00
/* 00AF4 80899394 46083280 */ add.s $f10, $f6, $f8
/* 00AF8 80899398 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 00AFC 8089939C 24120003 */ addiu $s2, $zero, 0x0003 ## $s2 = 00000003
/* 00B00 808993A0 27B10040 */ addiu $s1, $sp, 0x0040 ## $s1 = FFFFFFF0
/* 00B04 808993A4 E7AA0044 */ swc1 $f10, 0x0044($sp)
/* 00B08 808993A8 C690002C */ lwc1 $f16, 0x002C($s4) ## 0000002C
/* 00B0C 808993AC E7B00048 */ swc1 $f16, 0x0048($sp)
.L808993B0:
/* 00B10 808993B0 00123400 */ sll $a2, $s2, 16
/* 00B14 808993B4 00063403 */ sra $a2, $a2, 16
/* 00B18 808993B8 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
/* 00B1C 808993BC 0C007D52 */ jal Item_DropCollectible
/* 00B20 808993C0 02202825 */ or $a1, $s1, $zero ## $a1 = FFFFFFF0
/* 00B24 808993C4 C7B20044 */ lwc1 $f18, 0x0044($sp)
/* 00B28 808993C8 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 00B2C 808993CC 46149100 */ add.s $f4, $f18, $f20
/* 00B30 808993D0 1612FFF7 */ bne $s0, $s2, .L808993B0
/* 00B34 808993D4 E7A40044 */ swc1 $f4, 0x0044($sp)
/* 00B38 808993D8 0C00B55C */ jal Actor_Kill
/* 00B3C 808993DC 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000
/* 00B40 808993E0 10000007 */ beq $zero, $zero, .L80899400
/* 00B44 808993E4 8FBF0034 */ lw $ra, 0x0034($sp)
.L808993E8:
/* 00B48 808993E8 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00001E60
/* 00B4C 808993EC 02612821 */ addu $a1, $s3, $at
/* 00B50 808993F0 02602025 */ or $a0, $s3, $zero ## $a0 = 00000000
/* 00B54 808993F4 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 00B58 808993F8 26860168 */ addiu $a2, $s4, 0x0168 ## $a2 = 00000168
/* 00B5C 808993FC 8FBF0034 */ lw $ra, 0x0034($sp)
.L80899400:
/* 00B60 80899400 D7B40018 */ ldc1 $f20, 0x0018($sp)
/* 00B64 80899404 8FB00020 */ lw $s0, 0x0020($sp)
/* 00B68 80899408 8FB10024 */ lw $s1, 0x0024($sp)
/* 00B6C 8089940C 8FB20028 */ lw $s2, 0x0028($sp)
/* 00B70 80899410 8FB3002C */ lw $s3, 0x002C($sp)
/* 00B74 80899414 8FB40030 */ lw $s4, 0x0030($sp)
/* 00B78 80899418 03E00008 */ jr $ra
/* 00B7C 8089941C 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000

View file

@ -0,0 +1,13 @@
<Root>
<File Name="object_jya_iron" Segment="6">
<DList Name="gPillarDL" Offset="0x0240"/>
<DList Name="gObjectJyaIronDL_000600" Offset="0x0600"/>
<DList Name="gObjectJyaIronDL_000880" Offset="0x0880"/>
<DList Name="gObjectJyaIronDL_000AE0" Offset="0x0AE0"/>
<Collision Name="gPillarCol" Offset="0x0D48"/>
<DList Name="gThroneDL" Offset="0x1050"/>
<Collision Name="gThroneCol" Offset="0x1430"/>
<Texture Name="gPillarSideTex" OutName="pillar_side" Format="rgb5a1" Width="16" Height="128" Offset="0x1460"/>
<Texture Name="gPillarTopTex" OutName="pillar_top" Format="rgb5a1" Width="16" Height="16" Offset="0x2460"/>
</File>
</Root>

View file

@ -1,40 +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
.word 0x00000000
glabel Bg_Jya_Ironobj_InitVars
.word 0x01690600, 0x00000000, 0x016C0000, 0x000001B4
.word BgJyaIronobj_Init
.word BgJyaIronobj_Destroy
.word BgJyaIronobj_Update
.word BgJyaIronobj_Draw
glabel D_808994A4
.word 0x06000240, 0x06001050
glabel D_808994AC
.byte 0x0A, 0x00, 0x11, 0x00, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xCF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x40, 0x00, 0xC0, 0x00, 0x00, 0x00
glabel D_808994E0
.word 0x00050008, 0x000B000E, 0x00110014, 0x0017001A
glabel D_808994F0
.word 0x0012001A, 0x0022002A, 0x0032003C, 0x00460050
glabel D_80899500
.word 0x0030002A, 0x00240020, 0x001C0018, 0x00140010
glabel D_80899510
.word 0x00050008, 0x000B000E, 0x00110014, 0x0017001A
glabel D_80899520
.word 0x0012001A, 0x0022002A, 0x0032003C, 0x00460050
glabel D_80899530
.word 0x0030002A, 0x00240020, 0x001C0018, 0x00140010
glabel D_80899540
.word 0xC8500064, 0xB0F403E8, 0xB0F801F4, 0x30FC03E8
glabel D_80899550
.word 0x06000D48, 0x06001430
glabel D_80899558
.word func_80898920
.word func_80898DB4

View file

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

6
spec
View file

@ -969,8 +969,7 @@ endseg
beginseg
name "ovl_Bg_Jya_Ironobj"
include "build/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.o"
include "build/data/overlays/actors/z_bg_jya_ironobj.data.o"
include "build/data/overlays/actors/z_bg_jya_ironobj.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Jya_Ironobj/ovl_Bg_Jya_Ironobj_reloc.o"
endseg
beginseg
@ -5621,7 +5620,8 @@ endseg
beginseg
name "object_jya_iron"
romalign 0x1000
include "build/baserom/object_jya_iron.o"
include "build/assets/objects/object_jya_iron/object_jya_iron.o"
number 6
endseg
beginseg

View file

@ -1,17 +1,31 @@
/*
* File: z_bg_jya_ironobj.c
* Overlay: ovl_Bg_Jya_Ironobj
* Description: Destructable Iron Knuckle objects
*/
#include "z_bg_jya_ironobj.h"
#include "objects/object_jya_iron/object_jya_iron.h"
#include "overlays/actors/ovl_En_Ik/z_en_ik.h"
#define FLAGS 0x00000000
#define THIS ((BgJyaIronobj*)thisx)
typedef void (*BgJyaIronobjIkFunc)(BgJyaIronobj*, GlobalContext*, EnIk*);
void BgJyaIronobj_Init(Actor* thisx, GlobalContext* globalCtx);
void BgJyaIronobj_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgJyaIronobj_Update(Actor* thisx, GlobalContext* globalCtx);
void BgJyaIronobj_Draw(Actor* thisx, GlobalContext* globalCtx);
void func_808992D8(BgJyaIronobj* this);
void func_808992E8(BgJyaIronobj* this, GlobalContext* globalCtx);
extern UNK_TYPE D_06000880;
void BgJyaIronobj_SpawnPillarParticles(BgJyaIronobj* this, GlobalContext* globalCtx, EnIk* enIk);
void BgJyaIronobj_SpawnThoneParticles(BgJyaIronobj* this, GlobalContext* arg1, EnIk* enIk);
static int sUnused = 0;
/*
const ActorInit Bg_Jya_Ironobj_InitVars = {
ACTOR_BG_JYA_IRONOBJ,
ACTORCAT_PROP,
@ -24,7 +38,9 @@ const ActorInit Bg_Jya_Ironobj_InitVars = {
(ActorFunc)BgJyaIronobj_Draw,
};
static ColliderCylinderInit D_808994AC = {
static Gfx* sOpaDL[] = { gPillarDL, gThroneDL };
static ColliderCylinderInit sCylinderInit = {
{
COLTYPE_NONE,
AT_NONE,
@ -43,21 +59,217 @@ static ColliderCylinderInit D_808994AC = {
},
{ 30, 150, 0, { 0, 0, 0 } },
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Ironobj/func_808988A0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Ironobj/func_80898920.s")
static s16 D_808994D8[] = { 0x8700, 0x4000, 0xC000, 0x0000 };
// Pillar
static s16 D_808994E0[] = { 5, 8, 11, 14, 17, 20, 23, 26 };
static s16 D_808994F0[] = { 18, 26, 34, 42, 50, 60, 70, 80 };
static s16 D_80899500[] = { 48, 42, 36, 32, 28, 24, 20, 16 };
// Throne
static s16 D_80899510[] = { 5, 8, 11, 14, 17, 20, 23, 26 };
static s16 D_80899520[] = { 18, 26, 34, 42, 50, 60, 70, 80 };
static s16 D_80899530[] = { 48, 42, 36, 32, 28, 24, 20, 16 };
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale.x, 100, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 500, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
};
static CollisionHeader* sCollisionHeaders[] = { &gPillarCol, &gThroneCol };
void BgJyaIronobj_InitCylinder(BgJyaIronobj* this, GlobalContext* globalCtx) {
ColliderCylinder* colCylinder = &this->colCylinder;
Collider_InitCylinder(globalCtx, colCylinder);
Collider_SetCylinder(globalCtx, colCylinder, &this->dyna.actor, &sCylinderInit);
if ((this->dyna.actor.params & 1) == 1) {
this->colCylinder.dim.radius = 40;
this->colCylinder.dim.height = 100;
}
Collider_UpdateCylinder(&this->dyna.actor, colCylinder);
}
/*
* Spawns particles for the destroyed pillar
*/
void BgJyaIronobj_SpawnPillarParticles(BgJyaIronobj* this, GlobalContext* globalCtx, EnIk* enIk) {
s32 i;
s32 j;
s16 unkArg5;
f32 temp_f22;
Vec3f pos;
Vec3f vel;
f32 coss;
s16 rotY;
f32 sins;
s32 pad[2];
if (enIk->unk_2FF <= 0 || enIk->unk_2FF >= 4) {
osSyncPrintf("Error 攻撃方法が分からない(%s %d)\n", "../z_bg_jya_ironobj.c", 233, enIk->unk_2FF);
return;
}
osSyncPrintf("¢ attack_type(%d)\n", enIk->unk_2FF);
rotY = Actor_WorldYawTowardActor(&this->dyna.actor, &enIk->actor) + D_808994D8[enIk->unk_2FF - 1];
for (i = 0; i < 8; i++) {
Actor* actor =
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_BG_JYA_HAHENIRON, this->dyna.actor.world.pos.x,
Rand_ZeroOne() * 80.0f + this->dyna.actor.world.pos.y + 20.0f, this->dyna.actor.world.pos.z,
0, (s16)(Rand_ZeroOne() * 0x4000) + rotY - 0x2000, 0, 0);
if (actor != NULL) {
actor->speedXZ = Rand_ZeroOne() * 8.0f + 9.0f;
actor->velocity.y = Rand_ZeroOne() * 10.0f + 6.0f;
}
}
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_BG_JYA_HAHENIRON, this->dyna.actor.world.pos.x,
this->dyna.actor.world.pos.y + 150.0f, this->dyna.actor.world.pos.z, 0, 0, 0, 1);
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_BG_JYA_HAHENIRON, this->dyna.actor.world.pos.x,
this->dyna.actor.world.pos.y, this->dyna.actor.world.pos.z, 0, 0, 0, 2);
sins = Math_SinS(rotY);
coss = Math_CosS(rotY);
for (j = 0; j < 32; j++) {
f32 rand = Rand_ZeroOne();
if (rand < 0.1f) {
unkArg5 = 0x60;
} else if (rand < 0.8f) {
unkArg5 = 0x40;
} else {
unkArg5 = 0x20;
}
pos.x = this->dyna.actor.world.pos.x;
pos.y = this->dyna.actor.world.pos.y + ((4.375f * j) + 10.0f);
pos.z = this->dyna.actor.world.pos.z;
temp_f22 = fabsf(j - 15.5f) * (1.0f / 31) + 0.5f;
vel.x = 2.0f * ((Rand_ZeroOne() * 6.0f) - 3.0f) + (Rand_ZeroOne() * sins * 8.0f * temp_f22);
vel.y = (Rand_ZeroOne() * 8.0f) - 3.0f;
vel.z = 2.0f * ((Rand_ZeroOne() * 6.0f) - 3.0f) + (Rand_ZeroOne() * coss * 8.0f * temp_f22);
EffectSsKakera_Spawn(globalCtx, &pos, &vel, &pos, -350, unkArg5, D_80899500[j & 7], 4, 0,
D_808994E0[j & 7], 0, 5, D_808994F0[j & 7], -1, OBJECT_JYA_IRON, gObjectJyaIronDL_000880);
if (Rand_ZeroOne() < 0.26f) {
func_80033480(globalCtx, &pos, 200.0f, 1, D_808994E0[j & 7] * 4 + 60, D_808994E0[j & 7] * 4 + 80, 1);
}
}
}
/*
* Spawns particles for the destroyed throne
*/
void BgJyaIronobj_SpawnThoneParticles(BgJyaIronobj* this, GlobalContext* arg1, EnIk* enIk) {
s32 i;
s32 j;
s16 unkArg5;
f32 temp_f22;
Vec3f pos;
Vec3f vel;
f32 coss;
s16 rotY;
f32 sins;
s32 pad[2];
if (enIk->unk_2FF <= 0 || enIk->unk_2FF >= 4) {
osSyncPrintf("Error 攻撃方法が分からない(%s %d)\n", "../z_bg_jya_ironobj.c", 362, enIk->unk_2FF);
return;
}
osSyncPrintf("¢ attack_type(%d)\n", enIk->unk_2FF);
rotY = Actor_WorldYawTowardActor(&this->dyna.actor, &enIk->actor) + D_808994D8[enIk->unk_2FF - 1];
for (i = 0; i < 8; i++) {
Actor* actor =
Actor_Spawn(&arg1->actorCtx, arg1, ACTOR_BG_JYA_HAHENIRON, this->dyna.actor.world.pos.x,
(Rand_ZeroOne() * 80.0f) + this->dyna.actor.world.pos.y + 10.0f, this->dyna.actor.world.pos.z,
0, ((s16)(s32)(Rand_ZeroOne() * 0x4000) + rotY) - 0x2000, 0, 0);
if (actor != NULL) {
actor->speedXZ = Rand_ZeroOne() * 8.0f + 9.0f;
actor->velocity.y = Rand_ZeroOne() * 10.0f + 6.0f;
}
}
sins = Math_SinS(rotY);
coss = Math_CosS(rotY);
for (j = 0; j < 32; j++) {
f32 rand = Rand_ZeroOne();
if (rand < 0.1f) {
unkArg5 = 0x60;
} else if (rand < 0.8f) {
unkArg5 = 0x40;
} else {
unkArg5 = 0x20;
}
pos.x = this->dyna.actor.world.pos.x + (Rand_ZeroOne() * 40 - 20);
pos.y = this->dyna.actor.world.pos.y + (3.75f * j);
pos.z = this->dyna.actor.world.pos.z + (Rand_ZeroOne() * 40 - 20);
temp_f22 = fabsf(j - 15.5f) * (1.0f / 31) + 0.5f;
vel.x = 2.0f * (Rand_ZeroOne() * 6.0f - 3.0f) + (Rand_ZeroOne() * sins * 8.0f * temp_f22);
vel.y = Rand_ZeroOne() * 8.0f - 3.0f;
vel.z = 2.0f * (Rand_ZeroOne() * 6.0f - 3.0f) + (Rand_ZeroOne() * coss * 8.0f * temp_f22);
EffectSsKakera_Spawn(arg1, &pos, &vel, &pos, -350, unkArg5, D_80899530[j & 7], 4, 0, D_80899510[j & 7], 0,
5, D_80899520[j & 7], -1, OBJECT_JYA_IRON, gObjectJyaIronDL_000880);
if (Rand_ZeroOne() < 0.26f) {
func_80033480(arg1, &pos, 200.0f, 1, D_80899510[j & 7] * 4 + 60, D_80899510[j & 7] * 4 + 80, 1);
}
}
}
void BgJyaIronobj_Init(Actor* thisx, GlobalContext* globalCtx) {
BgJyaIronobj* this = THIS;
s32 pad;
CollisionHeader* colHeader = NULL;
DynaPolyActor_Init(&this->dyna, 0);
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
BgJyaIronobj_InitCylinder(this, globalCtx);
CollisionHeader_GetVirtual(sCollisionHeaders[thisx->params & 1], &colHeader);
this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
func_808992D8(this);
}
void BgJyaIronobj_Destroy(Actor* thisx, GlobalContext* globalCtx) {
BgJyaIronobj* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Ironobj/func_80898DB4.s")
Collider_DestroyCylinder(globalCtx, &this->colCylinder);
DynaPoly_DeleteBgActor(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Ironobj/BgJyaIronobj_Init.s")
void func_808992D8(BgJyaIronobj* this) {
this->actionFunc = func_808992E8;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Ironobj/BgJyaIronobj_Destroy.s")
void func_808992E8(BgJyaIronobj* this, GlobalContext* globalCtx) {
static BgJyaIronobjIkFunc particleFunc[] = { BgJyaIronobj_SpawnPillarParticles, BgJyaIronobj_SpawnThoneParticles };
Actor* actor;
Vec3f dropPos;
s32 i;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Ironobj/func_808992D8.s")
if (this->colCylinder.base.acFlags & AC_HIT) {
actor = this->colCylinder.base.ac;
this->colCylinder.base.acFlags &= ~AC_HIT;
if (actor != NULL && actor->id == ACTOR_EN_IK) {
particleFunc[this->dyna.actor.params & 1](this, globalCtx, (EnIk*)actor);
Audio_PlaySoundAtPosition(globalCtx, &this->dyna.actor.world.pos, 80, NA_SE_EN_IRONNACK_BREAK_PILLAR);
dropPos.x = this->dyna.actor.world.pos.x;
dropPos.y = this->dyna.actor.world.pos.y + 20.0f;
dropPos.z = this->dyna.actor.world.pos.z;
for (i = 0; i < 3; i++) {
Item_DropCollectible(globalCtx, &dropPos, ITEM00_HEART);
dropPos.y += 18.0f;
}
Actor_Kill(&this->dyna.actor);
return;
}
} else {
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->colCylinder.base);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Ironobj/func_808992E8.s")
void BgJyaIronobj_Update(Actor* thisx, GlobalContext* globalCtx) {
BgJyaIronobj* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Ironobj/BgJyaIronobj_Update.s")
this->actionFunc(this, globalCtx);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Ironobj/BgJyaIronobj_Draw.s")
void BgJyaIronobj_Draw(Actor* thisx, GlobalContext* globalCtx) {
Gfx_DrawDListOpa(globalCtx, sOpaDL[thisx->params & 1]);
}

View file

@ -6,9 +6,12 @@
struct BgJyaIronobj;
typedef void (*BgJyaIronobjActionFunc)(struct BgJyaIronobj*, GlobalContext*);
typedef struct BgJyaIronobj {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x68];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ BgJyaIronobjActionFunc actionFunc;
/* 0x0168 */ ColliderCylinder colCylinder;
} BgJyaIronobj; // size = 0x01B4
extern const ActorInit Bg_Jya_Ironobj_InitVars;