1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-27 07:07:09 +00:00

ovl_En_Ishi (#425)

* merge upstream

* Merge upstream

* Use Petrie's data section

* Move assignment to declaration

* EnIshi_Init without messing with formatting

* EnIshi_Draw

* Update asm

* Remove war of the zeros

* Type function pointers

* Match a few

* Remove extra * in comment

* Progress

* func_80A7E5A8 and add translation

* Cleanup func_80A7E5A8 and work on func_80A7E824

* Work on func_80A7E824

* Cursed asf match for func_80A7E824

* Re-use variable in cursed function to avoid warning

* func_80A7F0A8

* func_80A7F514

* Use C data

* Various fixes

* Move data around

* Clang format and stuff

* Stuff

* Pretty suspicious just saying

* Add janky hack warnings

* Use enum for type

* Cleanup enum a bit

* Use small and large instead of rock and boulder

* Name EnIshi_SetupCollider

* Remove static var space

* Update translation

* Name some stuff

* Name sRockScales

* Use object id defines for func_80029E8C

* Properly type var to s16

* Make match slightly less fake

* Yay no more fake match for func_80A7E824!

* Use thisx all throughout func_80A7E824 for consistency

* Rename to EnIshi_InitCollider

* Remove asm

* Only use thisx where required in func_80A7E824

* Cleanup and naming

* More naming

* Naming

* Finish naming

* Rename sCylinderInit to sCylinderInits

* Actually finish naming

* Minor cleanup

* Header comment

* Format effect function usage properly

* More formatting

* Various changes

* Minor cleanup

* review

Co-authored-by: fig02 <fig02srl@gmail.com>
This commit is contained in:
Sirius902 2020-10-04 09:00:15 -07:00 committed by GitHub
parent 728a789a2f
commit 213bac4657
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 448 additions and 1673 deletions

View file

@ -1,12 +0,0 @@
glabel EnIshi_Destroy
/* 00C10 80A7F070 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00C14 80A7F074 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00C18 80A7F078 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C1C 80A7F07C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00C20 80A7F080 0C0170EB */ jal Collider_DestroyCylinder
/* 00C24 80A7F084 24E50150 */ addiu $a1, $a3, 0x0150 ## $a1 = 00000150
/* 00C28 80A7F088 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00C2C 80A7F08C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00C30 80A7F090 03E00008 */ jr $ra
/* 00C34 80A7F094 00000000 */ nop

View file

@ -1,17 +0,0 @@
glabel EnIshi_Draw
/* 01550 80A7F9B0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 01554 80A7F9B4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 01558 80A7F9B8 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 0155C 80A7F9BC 3C1980A8 */ lui $t9, %hi(D_80A873E4) ## $t9 = 80A80000
/* 01560 80A7F9C0 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000
/* 01564 80A7F9C4 000FC080 */ sll $t8, $t7, 2
/* 01568 80A7F9C8 0338C821 */ addu $t9, $t9, $t8
/* 0156C 80A7F9CC 8F3973E4 */ lw $t9, %lo(D_80A873E4)($t9)
/* 01570 80A7F9D0 0320F809 */ jalr $ra, $t9
/* 01574 80A7F9D4 00000000 */ nop
/* 01578 80A7F9D8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0157C 80A7F9DC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 01580 80A7F9E0 03E00008 */ jr $ra
/* 01584 80A7F9E4 00000000 */ nop
/* 01588 80A7F9E8 00000000 */ nop
/* 0158C 80A7F9EC 00000000 */ nop

View file

@ -1,114 +0,0 @@
glabel EnIshi_Init
/* 00A78 80A7EED8 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00A7C 80A7EEDC AFBF001C */ sw $ra, 0x001C($sp)
/* 00A80 80A7EEE0 AFB00018 */ sw $s0, 0x0018($sp)
/* 00A84 80A7EEE4 AFA50034 */ sw $a1, 0x0034($sp)
/* 00A88 80A7EEE8 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 00A8C 80A7EEEC 3C0F80A8 */ lui $t7, %hi(D_80A873B8) ## $t7 = 80A80000
/* 00A90 80A7EEF0 25EF73B8 */ addiu $t7, $t7, %lo(D_80A873B8) ## $t7 = 80A873B8
/* 00A94 80A7EEF4 30420001 */ andi $v0, $v0, 0x0001 ## $v0 = 00000000
/* 00A98 80A7EEF8 00021400 */ sll $v0, $v0, 16
/* 00A9C 80A7EEFC 00021403 */ sra $v0, $v0, 16
/* 00AA0 80A7EF00 00027080 */ sll $t6, $v0, 2
/* 00AA4 80A7EF04 01C27021 */ addu $t6, $t6, $v0
/* 00AA8 80A7EF08 000E7080 */ sll $t6, $t6, 2
/* 00AAC 80A7EF0C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00AB0 80A7EF10 01CF2821 */ addu $a1, $t6, $t7
/* 00AB4 80A7EF14 0C01E037 */ jal Actor_ProcessInitChain
/* 00AB8 80A7EF18 A7A2002A */ sh $v0, 0x002A($sp)
/* 00ABC 80A7EF1C 8FB80034 */ lw $t8, 0x0034($sp)
/* 00AC0 80A7EF20 3C01447A */ lui $at, 0x447A ## $at = 447A0000
/* 00AC4 80A7EF24 93191D6C */ lbu $t9, 0x1D6C($t8) ## 00001D6C
/* 00AC8 80A7EF28 53200007 */ beql $t9, $zero, .L80A7EF48
/* 00ACC 80A7EF2C 860800B6 */ lh $t0, 0x00B6($s0) ## 000000B6
/* 00AD0 80A7EF30 C60400F4 */ lwc1 $f4, 0x00F4($s0) ## 000000F4
/* 00AD4 80A7EF34 44813000 */ mtc1 $at, $f6 ## $f6 = 1000.00
/* 00AD8 80A7EF38 00000000 */ nop
/* 00ADC 80A7EF3C 46062200 */ add.s $f8, $f4, $f6
/* 00AE0 80A7EF40 E60800F4 */ swc1 $f8, 0x00F4($s0) ## 000000F4
/* 00AE4 80A7EF44 860800B6 */ lh $t0, 0x00B6($s0) ## 000000B6
.L80A7EF48:
/* 00AE8 80A7EF48 3C014780 */ lui $at, 0x4780 ## $at = 47800000
/* 00AEC 80A7EF4C 5500000A */ bnel $t0, $zero, .L80A7EF78
/* 00AF0 80A7EF50 87A2002A */ lh $v0, 0x002A($sp)
/* 00AF4 80A7EF54 44816000 */ mtc1 $at, $f12 ## $f12 = 65536.00
/* 00AF8 80A7EF58 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 00AFC 80A7EF5C 00000000 */ nop
/* 00B00 80A7EF60 4600028D */ trunc.w.s $f10, $f0
/* 00B04 80A7EF64 44025000 */ mfc1 $v0, $f10
/* 00B08 80A7EF68 00000000 */ nop
/* 00B0C 80A7EF6C A6020032 */ sh $v0, 0x0032($s0) ## 00000032
/* 00B10 80A7EF70 A60200B6 */ sh $v0, 0x00B6($s0) ## 000000B6
/* 00B14 80A7EF74 87A2002A */ lh $v0, 0x002A($sp)
.L80A7EF78:
/* 00B18 80A7EF78 3C0A80A8 */ lui $t2, %hi(D_80A7FA18) ## $t2 = 80A80000
/* 00B1C 80A7EF7C 254AFA18 */ addiu $t2, $t2, %lo(D_80A7FA18) ## $t2 = 80A7FA18
/* 00B20 80A7EF80 00021080 */ sll $v0, $v0, 2
/* 00B24 80A7EF84 004A1821 */ addu $v1, $v0, $t2
/* 00B28 80A7EF88 8C650000 */ lw $a1, 0x0000($v1) ## 00000000
/* 00B2C 80A7EF8C AFA30020 */ sw $v1, 0x0020($sp)
/* 00B30 80A7EF90 AFA20024 */ sw $v0, 0x0024($sp)
/* 00B34 80A7EF94 0C00B58B */ jal Actor_SetScale
/* 00B38 80A7EF98 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B3C 80A7EF9C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B40 80A7EFA0 0C29F918 */ jal func_80A7E460
/* 00B44 80A7EFA4 8FA50034 */ lw $a1, 0x0034($sp)
/* 00B48 80A7EFA8 8FAB0020 */ lw $t3, 0x0020($sp)
/* 00B4C 80A7EFAC 3C0C80A8 */ lui $t4, %hi(D_80A7FA1C) ## $t4 = 80A80000
/* 00B50 80A7EFB0 258CFA1C */ addiu $t4, $t4, %lo(D_80A7FA1C) ## $t4 = 80A7FA1C
/* 00B54 80A7EFB4 156C000F */ bne $t3, $t4, .L80A7EFF4
/* 00B58 80A7EFB8 00000000 */ nop
/* 00B5C 80A7EFBC 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 00B60 80A7EFC0 8FA40034 */ lw $a0, 0x0034($sp)
/* 00B64 80A7EFC4 00026A83 */ sra $t5, $v0, 10
/* 00B68 80A7EFC8 00027983 */ sra $t7, $v0, 6
/* 00B6C 80A7EFCC 31F80003 */ andi $t8, $t7, 0x0003 ## $t8 = 00000000
/* 00B70 80A7EFD0 31AE003C */ andi $t6, $t5, 0x003C ## $t6 = 00000000
/* 00B74 80A7EFD4 0C00B2D0 */ jal Flags_GetSwitch
/* 00B78 80A7EFD8 01D82825 */ or $a1, $t6, $t8 ## $a1 = 00000000
/* 00B7C 80A7EFDC 10400005 */ beq $v0, $zero, .L80A7EFF4
/* 00B80 80A7EFE0 00000000 */ nop
/* 00B84 80A7EFE4 0C00B55C */ jal Actor_Kill
/* 00B88 80A7EFE8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B8C 80A7EFEC 1000001C */ beq $zero, $zero, .L80A7F060
/* 00B90 80A7EFF0 8FBF001C */ lw $ra, 0x001C($sp)
.L80A7EFF4:
/* 00B94 80A7EFF4 3C0680A8 */ lui $a2, %hi(D_80A87390) ## $a2 = 80A80000
/* 00B98 80A7EFF8 24C67390 */ addiu $a2, $a2, %lo(D_80A87390) ## $a2 = 80A87390
/* 00B9C 80A7EFFC 26040098 */ addiu $a0, $s0, 0x0098 ## $a0 = 00000098
/* 00BA0 80A7F000 0C0187B5 */ jal func_80061ED4
/* 00BA4 80A7F004 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00BA8 80A7F008 8FB90024 */ lw $t9, 0x0024($sp)
/* 00BAC 80A7F00C 8608001C */ lh $t0, 0x001C($s0) ## 0000001C
/* 00BB0 80A7F010 3C0180A8 */ lui $at, %hi(D_80A7FA20) ## $at = 80A80000
/* 00BB4 80A7F014 00390821 */ addu $at, $at, $t9
/* 00BB8 80A7F018 C430FA20 */ lwc1 $f16, %lo(D_80A7FA20)($at)
/* 00BBC 80A7F01C 00084943 */ sra $t1, $t0, 5
/* 00BC0 80A7F020 312A0001 */ andi $t2, $t1, 0x0001 ## $t2 = 00000000
/* 00BC4 80A7F024 1540000B */ bne $t2, $zero, .L80A7F054
/* 00BC8 80A7F028 E61000BC */ swc1 $f16, 0x00BC($s0) ## 000000BC
/* 00BCC 80A7F02C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00BD0 80A7F030 8FA50034 */ lw $a1, 0x0034($sp)
/* 00BD4 80A7F034 0C29F936 */ jal func_80A7E4D8
/* 00BD8 80A7F038 24060000 */ addiu $a2, $zero, 0x0000 ## $a2 = 00000000
/* 00BDC 80A7F03C 14400005 */ bne $v0, $zero, .L80A7F054
/* 00BE0 80A7F040 00000000 */ nop
/* 00BE4 80A7F044 0C00B55C */ jal Actor_Kill
/* 00BE8 80A7F048 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00BEC 80A7F04C 10000004 */ beq $zero, $zero, .L80A7F060
/* 00BF0 80A7F050 8FBF001C */ lw $ra, 0x001C($sp)
.L80A7F054:
/* 00BF4 80A7F054 0C29FC26 */ jal func_80A7F098
/* 00BF8 80A7F058 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00BFC 80A7F05C 8FBF001C */ lw $ra, 0x001C($sp)
.L80A7F060:
/* 00C00 80A7F060 8FB00018 */ lw $s0, 0x0018($sp)
/* 00C04 80A7F064 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00C08 80A7F068 03E00008 */ jr $ra
/* 00C0C 80A7F06C 00000000 */ nop

View file

@ -1,10 +0,0 @@
glabel EnIshi_Update
/* 0141C 80A7F87C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 01420 80A7F880 AFBF0014 */ sw $ra, 0x0014($sp)
/* 01424 80A7F884 8C99014C */ lw $t9, 0x014C($a0) ## 0000014C
/* 01428 80A7F888 0320F809 */ jalr $ra, $t9
/* 0142C 80A7F88C 00000000 */ nop
/* 01430 80A7F890 8FBF0014 */ lw $ra, 0x0014($sp)
/* 01434 80A7F894 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 01438 80A7F898 03E00008 */ jr $ra
/* 0143C 80A7F89C 00000000 */ nop

View file

@ -1,34 +0,0 @@
glabel func_80A7E460
/* 00000 80A7E460 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00004 80A7E464 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00008 80A7E468 AFA50024 */ sw $a1, 0x0024($sp)
/* 0000C 80A7E46C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00010 80A7E470 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00014 80A7E474 24C50150 */ addiu $a1, $a2, 0x0150 ## $a1 = 00000150
/* 00018 80A7E478 AFA50018 */ sw $a1, 0x0018($sp)
/* 0001C 80A7E47C 0C0170D9 */ jal Collider_InitCylinder
/* 00020 80A7E480 AFA60020 */ sw $a2, 0x0020($sp)
/* 00024 80A7E484 8FA60020 */ lw $a2, 0x0020($sp)
/* 00028 80A7E488 3C1980A8 */ lui $t9, %hi(D_80A87338) ## $t9 = 80A80000
/* 0002C 80A7E48C 27397338 */ addiu $t9, $t9, %lo(D_80A87338) ## $t9 = 80A87338
/* 00030 80A7E490 84CE001C */ lh $t6, 0x001C($a2) ## 0000001C
/* 00034 80A7E494 8FA40024 */ lw $a0, 0x0024($sp)
/* 00038 80A7E498 8FA50018 */ lw $a1, 0x0018($sp)
/* 0003C 80A7E49C 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000
/* 00040 80A7E4A0 000FC080 */ sll $t8, $t7, 2
/* 00044 80A7E4A4 030FC023 */ subu $t8, $t8, $t7
/* 00048 80A7E4A8 0018C080 */ sll $t8, $t8, 2
/* 0004C 80A7E4AC 030FC023 */ subu $t8, $t8, $t7
/* 00050 80A7E4B0 0018C080 */ sll $t8, $t8, 2
/* 00054 80A7E4B4 0C01712B */ jal Collider_SetCylinder
/* 00058 80A7E4B8 03193821 */ addu $a3, $t8, $t9
/* 0005C 80A7E4BC 8FA40020 */ lw $a0, 0x0020($sp)
/* 00060 80A7E4C0 0C0189B7 */ jal Collider_CylinderUpdate
/* 00064 80A7E4C4 8FA50018 */ lw $a1, 0x0018($sp)
/* 00068 80A7E4C8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0006C 80A7E4CC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00070 80A7E4D0 03E00008 */ jr $ra
/* 00074 80A7E4D4 00000000 */ nop

View file

@ -1,77 +0,0 @@
.rdata
glabel D_80A873F0
.asciz "\x1b[43;30m"
.balign 4
glabel D_80A873FC
.asciz "(%s %d)\n"
.balign 4
glabel D_80A87414
.asciz "../z_en_ishi.c"
.balign 4
glabel D_80A87424
.asciz "\x1b[m"
.balign 4
.text
glabel func_80A7E4D8
/* 00078 80A7E4D8 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 0007C 80A7E4DC AFBF001C */ sw $ra, 0x001C($sp)
/* 00080 80A7E4E0 AFA5003C */ sw $a1, 0x003C($sp)
/* 00084 80A7E4E4 AFA60040 */ sw $a2, 0x0040($sp)
/* 00088 80A7E4E8 C4840024 */ lwc1 $f4, 0x0024($a0) ## 00000024
/* 0008C 80A7E4EC 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00090 80A7E4F0 44814000 */ mtc1 $at, $f8 ## $f8 = 30.00
/* 00094 80A7E4F4 E7A40028 */ swc1 $f4, 0x0028($sp)
/* 00098 80A7E4F8 C4860028 */ lwc1 $f6, 0x0028($a0) ## 00000028
/* 0009C 80A7E4FC 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 000A0 80A7E500 27AE0028 */ addiu $t6, $sp, 0x0028 ## $t6 = FFFFFFF0
/* 000A4 80A7E504 46083280 */ add.s $f10, $f6, $f8
/* 000A8 80A7E508 27A60024 */ addiu $a2, $sp, 0x0024 ## $a2 = FFFFFFEC
/* 000AC 80A7E50C E7AA002C */ swc1 $f10, 0x002C($sp)
/* 000B0 80A7E510 C490002C */ lwc1 $f16, 0x002C($a0) ## 0000002C
/* 000B4 80A7E514 24A407C0 */ addiu $a0, $a1, 0x07C0 ## $a0 = 000007C0
/* 000B8 80A7E518 27A50034 */ addiu $a1, $sp, 0x0034 ## $a1 = FFFFFFFC
/* 000BC 80A7E51C AFA70038 */ sw $a3, 0x0038($sp)
/* 000C0 80A7E520 AFAE0010 */ sw $t6, 0x0010($sp)
/* 000C4 80A7E524 0C00F269 */ jal func_8003C9A4
/* 000C8 80A7E528 E7B00030 */ swc1 $f16, 0x0030($sp)
/* 000CC 80A7E52C 3C01C6FA */ lui $at, 0xC6FA ## $at = C6FA0000
/* 000D0 80A7E530 44819000 */ mtc1 $at, $f18 ## $f18 = -32000.00
/* 000D4 80A7E534 8FA70038 */ lw $a3, 0x0038($sp)
/* 000D8 80A7E538 C7A40040 */ lwc1 $f4, 0x0040($sp)
/* 000DC 80A7E53C 4600903C */ c.lt.s $f18, $f0
/* 000E0 80A7E540 3C0480A8 */ lui $a0, %hi(D_80A873F0) ## $a0 = 80A80000
/* 000E4 80A7E544 45000008 */ bc1f .L80A7E568
/* 000E8 80A7E548 00000000 */ nop
/* 000EC 80A7E54C 46040180 */ add.s $f6, $f0, $f4
/* 000F0 80A7E550 24E40008 */ addiu $a0, $a3, 0x0008 ## $a0 = 00000008
/* 000F4 80A7E554 24E50024 */ addiu $a1, $a3, 0x0024 ## $a1 = 00000024
/* 000F8 80A7E558 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 000FC 80A7E55C E4E60028 */ swc1 $f6, 0x0028($a3) ## 00000028
/* 00100 80A7E560 1000000D */ beq $zero, $zero, .L80A7E598
/* 00104 80A7E564 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80A7E568:
/* 00108 80A7E568 0C00084C */ jal osSyncPrintf
/* 0010C 80A7E56C 248473F0 */ addiu $a0, $a0, %lo(D_80A873F0) ## $a0 = 000073F0
/* 00110 80A7E570 3C0480A8 */ lui $a0, %hi(D_80A873FC) ## $a0 = 80A80000
/* 00114 80A7E574 3C0580A8 */ lui $a1, %hi(D_80A87414) ## $a1 = 80A80000
/* 00118 80A7E578 24A57414 */ addiu $a1, $a1, %lo(D_80A87414) ## $a1 = 80A87414
/* 0011C 80A7E57C 248473FC */ addiu $a0, $a0, %lo(D_80A873FC) ## $a0 = 80A873FC
/* 00120 80A7E580 0C00084C */ jal osSyncPrintf
/* 00124 80A7E584 24060184 */ addiu $a2, $zero, 0x0184 ## $a2 = 00000184
/* 00128 80A7E588 3C0480A8 */ lui $a0, %hi(D_80A87424) ## $a0 = 80A80000
/* 0012C 80A7E58C 0C00084C */ jal osSyncPrintf
/* 00130 80A7E590 24847424 */ addiu $a0, $a0, %lo(D_80A87424) ## $a0 = 80A87424
/* 00134 80A7E594 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80A7E598:
/* 00138 80A7E598 8FBF001C */ lw $ra, 0x001C($sp)
/* 0013C 80A7E59C 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 00140 80A7E5A0 03E00008 */ jr $ra
/* 00144 80A7E5A4 00000000 */ nop

View file

@ -1,182 +0,0 @@
.late_rodata
glabel D_80A87458
.float -0.8
glabel D_80A8745C
.float 0.8
.text
glabel func_80A7E5A8
/* 00148 80A7E5A8 27BDFF30 */ addiu $sp, $sp, 0xFF30 ## $sp = FFFFFF30
/* 0014C 80A7E5AC F7BE0068 */ sdc1 $f30, 0x0068($sp)
/* 00150 80A7E5B0 3C014130 */ lui $at, 0x4130 ## $at = 41300000
/* 00154 80A7E5B4 4481F000 */ mtc1 $at, $f30 ## $f30 = 11.00
/* 00158 80A7E5B8 F7BC0060 */ sdc1 $f28, 0x0060($sp)
/* 0015C 80A7E5BC 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00160 80A7E5C0 4481E000 */ mtc1 $at, $f28 ## $f28 = 5.00
/* 00164 80A7E5C4 F7BA0058 */ sdc1 $f26, 0x0058($sp)
/* 00168 80A7E5C8 3C014100 */ lui $at, 0x4100 ## $at = 41000000
/* 0016C 80A7E5CC 4481D000 */ mtc1 $at, $f26 ## $f26 = 8.00
/* 00170 80A7E5D0 F7B80050 */ sdc1 $f24, 0x0050($sp)
/* 00174 80A7E5D4 3C0180A8 */ lui $at, %hi(D_80A87458) ## $at = 80A80000
/* 00178 80A7E5D8 C4387458 */ lwc1 $f24, %lo(D_80A87458)($at)
/* 0017C 80A7E5DC F7B60048 */ sdc1 $f22, 0x0048($sp)
/* 00180 80A7E5E0 3C0180A8 */ lui $at, %hi(D_80A8745C) ## $at = 80A80000
/* 00184 80A7E5E4 C436745C */ lwc1 $f22, %lo(D_80A8745C)($at)
/* 00188 80A7E5E8 AFB50088 */ sw $s5, 0x0088($sp)
/* 0018C 80A7E5EC AFB40084 */ sw $s4, 0x0084($sp)
/* 00190 80A7E5F0 AFB10078 */ sw $s1, 0x0078($sp)
/* 00194 80A7E5F4 F7B40040 */ sdc1 $f20, 0x0040($sp)
/* 00198 80A7E5F8 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 0019C 80A7E5FC AFB70090 */ sw $s7, 0x0090($sp)
/* 001A0 80A7E600 AFB6008C */ sw $s6, 0x008C($sp)
/* 001A4 80A7E604 AFB30080 */ sw $s3, 0x0080($sp)
/* 001A8 80A7E608 AFB2007C */ sw $s2, 0x007C($sp)
/* 001AC 80A7E60C AFB00074 */ sw $s0, 0x0074($sp)
/* 001B0 80A7E610 3C1180A8 */ lui $s1, %hi(D_80A87398) ## $s1 = 80A80000
/* 001B4 80A7E614 3C140501 */ lui $s4, 0x0501 ## $s4 = 05010000
/* 001B8 80A7E618 3C1580A8 */ lui $s5, %hi(D_80A873A4) ## $s5 = 80A80000
/* 001BC 80A7E61C 4481A000 */ mtc1 $at, $f20 ## $f20 = 0.50
/* 001C0 80A7E620 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 001C4 80A7E624 00A0B825 */ or $s7, $a1, $zero ## $s7 = 00000000
/* 001C8 80A7E628 AFBF0094 */ sw $ra, 0x0094($sp)
/* 001CC 80A7E62C 26B573A4 */ addiu $s5, $s5, %lo(D_80A873A4) ## $s5 = 80A873A4
/* 001D0 80A7E630 2694A880 */ addiu $s4, $s4, 0xA880 ## $s4 = 0500A880
/* 001D4 80A7E634 26317398 */ addiu $s1, $s1, %lo(D_80A87398) ## $s1 = 80A87398
/* 001D8 80A7E638 27B200C0 */ addiu $s2, $sp, 0x00C0 ## $s2 = FFFFFFF0
/* 001DC 80A7E63C 27B300B4 */ addiu $s3, $sp, 0x00B4 ## $s3 = FFFFFFE4
/* 001E0 80A7E640 2496005C */ addiu $s6, $a0, 0x005C ## $s6 = 0000005C
.L80A7E644:
/* 001E4 80A7E644 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 001E8 80A7E648 00000000 */ nop
/* 001EC 80A7E64C 46140101 */ sub.s $f4, $f0, $f20
/* 001F0 80A7E650 C6080024 */ lwc1 $f8, 0x0024($s0) ## 00000024
/* 001F4 80A7E654 461A2182 */ mul.s $f6, $f4, $f26
/* 001F8 80A7E658 46083280 */ add.s $f10, $f6, $f8
/* 001FC 80A7E65C 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00200 80A7E660 E7AA00B4 */ swc1 $f10, 0x00B4($sp)
/* 00204 80A7E664 461C0402 */ mul.s $f16, $f0, $f28
/* 00208 80A7E668 C6120028 */ lwc1 $f18, 0x0028($s0) ## 00000028
/* 0020C 80A7E66C 46128100 */ add.s $f4, $f16, $f18
/* 00210 80A7E670 461C2180 */ add.s $f6, $f4, $f28
/* 00214 80A7E674 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00218 80A7E678 E7A600B8 */ swc1 $f6, 0x00B8($sp)
/* 0021C 80A7E67C 46140201 */ sub.s $f8, $f0, $f20
/* 00220 80A7E680 C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
/* 00224 80A7E684 02402025 */ or $a0, $s2, $zero ## $a0 = FFFFFFF0
/* 00228 80A7E688 02C02825 */ or $a1, $s6, $zero ## $a1 = 0000005C
/* 0022C 80A7E68C 461A4282 */ mul.s $f10, $f8, $f26
/* 00230 80A7E690 46105480 */ add.s $f18, $f10, $f16
/* 00234 80A7E694 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 00238 80A7E698 E7B200BC */ swc1 $f18, 0x00BC($sp)
/* 0023C 80A7E69C 96020088 */ lhu $v0, 0x0088($s0) ## 00000088
/* 00240 80A7E6A0 C7A400C0 */ lwc1 $f4, 0x00C0($sp)
/* 00244 80A7E6A4 304E0001 */ andi $t6, $v0, 0x0001 ## $t6 = 00000000
/* 00248 80A7E6A8 11C0000B */ beq $t6, $zero, .L80A7E6D8
/* 0024C 80A7E6AC 304F0008 */ andi $t7, $v0, 0x0008 ## $t7 = 00000000
/* 00250 80A7E6B0 46162182 */ mul.s $f6, $f4, $f22
/* 00254 80A7E6B4 C7A800C4 */ lwc1 $f8, 0x00C4($sp)
/* 00258 80A7E6B8 C7B000C8 */ lwc1 $f16, 0x00C8($sp)
/* 0025C 80A7E6BC 46184282 */ mul.s $f10, $f8, $f24
/* 00260 80A7E6C0 00000000 */ nop
/* 00264 80A7E6C4 46168482 */ mul.s $f18, $f16, $f22
/* 00268 80A7E6C8 E7A600C0 */ swc1 $f6, 0x00C0($sp)
/* 0026C 80A7E6CC E7AA00C4 */ swc1 $f10, 0x00C4($sp)
/* 00270 80A7E6D0 1000000C */ beq $zero, $zero, .L80A7E704
/* 00274 80A7E6D4 E7B200C8 */ swc1 $f18, 0x00C8($sp)
.L80A7E6D8:
/* 00278 80A7E6D8 11E0000A */ beq $t7, $zero, .L80A7E704
/* 0027C 80A7E6DC C7A400C0 */ lwc1 $f4, 0x00C0($sp)
/* 00280 80A7E6E0 46182182 */ mul.s $f6, $f4, $f24
/* 00284 80A7E6E4 C7A800C4 */ lwc1 $f8, 0x00C4($sp)
/* 00288 80A7E6E8 C7B000C8 */ lwc1 $f16, 0x00C8($sp)
/* 0028C 80A7E6EC 46164282 */ mul.s $f10, $f8, $f22
/* 00290 80A7E6F0 00000000 */ nop
/* 00294 80A7E6F4 46188482 */ mul.s $f18, $f16, $f24
/* 00298 80A7E6F8 E7A600C0 */ swc1 $f6, 0x00C0($sp)
/* 0029C 80A7E6FC E7AA00C4 */ swc1 $f10, 0x00C4($sp)
/* 002A0 80A7E700 E7B200C8 */ swc1 $f18, 0x00C8($sp)
.L80A7E704:
/* 002A4 80A7E704 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 002A8 80A7E708 00000000 */ nop
/* 002AC 80A7E70C 46140181 */ sub.s $f6, $f0, $f20
/* 002B0 80A7E710 C7A400C0 */ lwc1 $f4, 0x00C0($sp)
/* 002B4 80A7E714 461E3202 */ mul.s $f8, $f6, $f30
/* 002B8 80A7E718 46082280 */ add.s $f10, $f4, $f8
/* 002BC 80A7E71C 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 002C0 80A7E720 E7AA00C0 */ swc1 $f10, 0x00C0($sp)
/* 002C4 80A7E724 3C0140C0 */ lui $at, 0x40C0 ## $at = 40C00000
/* 002C8 80A7E728 44819000 */ mtc1 $at, $f18 ## $f18 = 6.00
/* 002CC 80A7E72C C7B000C4 */ lwc1 $f16, 0x00C4($sp)
/* 002D0 80A7E730 46120182 */ mul.s $f6, $f0, $f18
/* 002D4 80A7E734 46068100 */ add.s $f4, $f16, $f6
/* 002D8 80A7E738 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 002DC 80A7E73C E7A400C4 */ swc1 $f4, 0x00C4($sp)
/* 002E0 80A7E740 46140281 */ sub.s $f10, $f0, $f20
/* 002E4 80A7E744 C7A800C8 */ lwc1 $f8, 0x00C8($sp)
/* 002E8 80A7E748 461E5482 */ mul.s $f18, $f10, $f30
/* 002EC 80A7E74C 46124400 */ add.s $f16, $f8, $f18
/* 002F0 80A7E750 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 002F4 80A7E754 E7B000C8 */ swc1 $f16, 0x00C8($sp)
/* 002F8 80A7E758 4614003C */ c.lt.s $f0, $f20
/* 002FC 80A7E75C 02E02025 */ or $a0, $s7, $zero ## $a0 = 00000000
/* 00300 80A7E760 02602825 */ or $a1, $s3, $zero ## $a1 = FFFFFFE4
/* 00304 80A7E764 02403025 */ or $a2, $s2, $zero ## $a2 = FFFFFFF0
/* 00308 80A7E768 45000003 */ bc1f .L80A7E778
/* 0030C 80A7E76C 02603825 */ or $a3, $s3, $zero ## $a3 = FFFFFFE4
/* 00310 80A7E770 10000002 */ beq $zero, $zero, .L80A7E77C
/* 00314 80A7E774 24020041 */ addiu $v0, $zero, 0x0041 ## $v0 = 00000041
.L80A7E778:
/* 00318 80A7E778 24020021 */ addiu $v0, $zero, 0x0021 ## $v0 = 00000021
.L80A7E77C:
/* 0031C 80A7E77C 86290000 */ lh $t1, 0x0000($s1) ## 80A87398
/* 00320 80A7E780 2418FE5C */ addiu $t8, $zero, 0xFE5C ## $t8 = FFFFFE5C
/* 00324 80A7E784 2419001E */ addiu $t9, $zero, 0x001E ## $t9 = 0000001E
/* 00328 80A7E788 24080005 */ addiu $t0, $zero, 0x0005 ## $t0 = 00000005
/* 0032C 80A7E78C 240A0003 */ addiu $t2, $zero, 0x0003 ## $t2 = 00000003
/* 00330 80A7E790 240B000A */ addiu $t3, $zero, 0x000A ## $t3 = 0000000A
/* 00334 80A7E794 240C0028 */ addiu $t4, $zero, 0x0028 ## $t4 = 00000028
/* 00338 80A7E798 240DFFFF */ addiu $t5, $zero, 0xFFFF ## $t5 = FFFFFFFF
/* 0033C 80A7E79C 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
/* 00340 80A7E7A0 AFAE0038 */ sw $t6, 0x0038($sp)
/* 00344 80A7E7A4 AFAD0034 */ sw $t5, 0x0034($sp)
/* 00348 80A7E7A8 AFAC0030 */ sw $t4, 0x0030($sp)
/* 0034C 80A7E7AC AFAB002C */ sw $t3, 0x002C($sp)
/* 00350 80A7E7B0 AFAA0028 */ sw $t2, 0x0028($sp)
/* 00354 80A7E7B4 AFA8001C */ sw $t0, 0x001C($sp)
/* 00358 80A7E7B8 AFB90018 */ sw $t9, 0x0018($sp)
/* 0035C 80A7E7BC AFB80010 */ sw $t8, 0x0010($sp)
/* 00360 80A7E7C0 AFA20014 */ sw $v0, 0x0014($sp)
/* 00364 80A7E7C4 AFA00020 */ sw $zero, 0x0020($sp)
/* 00368 80A7E7C8 AFB4003C */ sw $s4, 0x003C($sp)
/* 0036C 80A7E7CC 0C00A7A3 */ jal EffectSsKakera_Spawn
/* 00370 80A7E7D0 AFA90024 */ sw $t1, 0x0024($sp)
/* 00374 80A7E7D4 26310002 */ addiu $s1, $s1, 0x0002 ## $s1 = 80A8739A
/* 00378 80A7E7D8 1635FF9A */ bne $s1, $s5, .L80A7E644
/* 0037C 80A7E7DC 00000000 */ nop
/* 00380 80A7E7E0 8FBF0094 */ lw $ra, 0x0094($sp)
/* 00384 80A7E7E4 D7B40040 */ ldc1 $f20, 0x0040($sp)
/* 00388 80A7E7E8 D7B60048 */ ldc1 $f22, 0x0048($sp)
/* 0038C 80A7E7EC D7B80050 */ ldc1 $f24, 0x0050($sp)
/* 00390 80A7E7F0 D7BA0058 */ ldc1 $f26, 0x0058($sp)
/* 00394 80A7E7F4 D7BC0060 */ ldc1 $f28, 0x0060($sp)
/* 00398 80A7E7F8 D7BE0068 */ ldc1 $f30, 0x0068($sp)
/* 0039C 80A7E7FC 8FB00074 */ lw $s0, 0x0074($sp)
/* 003A0 80A7E800 8FB10078 */ lw $s1, 0x0078($sp)
/* 003A4 80A7E804 8FB2007C */ lw $s2, 0x007C($sp)
/* 003A8 80A7E808 8FB30080 */ lw $s3, 0x0080($sp)
/* 003AC 80A7E80C 8FB40084 */ lw $s4, 0x0084($sp)
/* 003B0 80A7E810 8FB50088 */ lw $s5, 0x0088($sp)
/* 003B4 80A7E814 8FB6008C */ lw $s6, 0x008C($sp)
/* 003B8 80A7E818 8FB70090 */ lw $s7, 0x0090($sp)
/* 003BC 80A7E81C 03E00008 */ jr $ra
/* 003C0 80A7E820 27BD00D0 */ addiu $sp, $sp, 0x00D0 ## $sp = 00000000

View file

@ -1,222 +0,0 @@
.late_rodata
glabel D_80A87460
.float -0.9
glabel D_80A87464
.float 0.9
glabel D_80A87468
.float -0.8
glabel D_80A8746C
.float 0.8
glabel D_80A87470
.float 0.7
.text
glabel func_80A7E824
/* 003C4 80A7E824 27BDFF18 */ addiu $sp, $sp, 0xFF18 ## $sp = FFFFFF18
/* 003C8 80A7E828 F7BE0070 */ sdc1 $f30, 0x0070($sp)
/* 003CC 80A7E82C 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 003D0 80A7E830 4481F000 */ mtc1 $at, $f30 ## $f30 = 40.00
/* 003D4 80A7E834 F7BC0068 */ sdc1 $f28, 0x0068($sp)
/* 003D8 80A7E838 3C0180A8 */ lui $at, %hi(D_80A87460) ## $at = 80A80000
/* 003DC 80A7E83C C43C7460 */ lwc1 $f28, %lo(D_80A87460)($at)
/* 003E0 80A7E840 F7BA0060 */ sdc1 $f26, 0x0060($sp)
/* 003E4 80A7E844 3C0180A8 */ lui $at, %hi(D_80A87464) ## $at = 80A80000
/* 003E8 80A7E848 C43A7464 */ lwc1 $f26, %lo(D_80A87464)($at)
/* 003EC 80A7E84C AFB60090 */ sw $s6, 0x0090($sp)
/* 003F0 80A7E850 AFB30084 */ sw $s3, 0x0084($sp)
/* 003F4 80A7E854 F7B80058 */ sdc1 $f24, 0x0058($sp)
/* 003F8 80A7E858 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 003FC 80A7E85C AFBE0098 */ sw $s8, 0x0098($sp)
/* 00400 80A7E860 AFB70094 */ sw $s7, 0x0094($sp)
/* 00404 80A7E864 AFB5008C */ sw $s5, 0x008C($sp)
/* 00408 80A7E868 AFB40088 */ sw $s4, 0x0088($sp)
/* 0040C 80A7E86C AFB20080 */ sw $s2, 0x0080($sp)
/* 00410 80A7E870 AFB1007C */ sw $s1, 0x007C($sp)
/* 00414 80A7E874 AFB00078 */ sw $s0, 0x0078($sp)
/* 00418 80A7E878 3C1380A8 */ lui $s3, %hi(D_80A873A4) ## $s3 = 80A80000
/* 0041C 80A7E87C 3C160501 */ lui $s6, 0x0501 ## $s6 = 05010000
/* 00420 80A7E880 248E005C */ addiu $t6, $a0, 0x005C ## $t6 = 0000005C
/* 00424 80A7E884 4481C000 */ mtc1 $at, $f24 ## $f24 = 10.00
/* 00428 80A7E888 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0042C 80A7E88C AFBF009C */ sw $ra, 0x009C($sp)
/* 00430 80A7E890 F7B60050 */ sdc1 $f22, 0x0050($sp)
/* 00434 80A7E894 F7B40048 */ sdc1 $f20, 0x0048($sp)
/* 00438 80A7E898 AFA500EC */ sw $a1, 0x00EC($sp)
/* 0043C 80A7E89C 24111000 */ addiu $s1, $zero, 0x1000 ## $s1 = 00001000
/* 00440 80A7E8A0 AFAE00A4 */ sw $t6, 0x00A4($sp)
/* 00444 80A7E8A4 26D6A5E8 */ addiu $s6, $s6, 0xA5E8 ## $s6 = 0500A5E8
/* 00448 80A7E8A8 267373A4 */ addiu $s3, $s3, %lo(D_80A873A4) ## $s3 = 80A873A4
/* 0044C 80A7E8AC 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000
/* 00450 80A7E8B0 27B400D8 */ addiu $s4, $sp, 0x00D8 ## $s4 = FFFFFFF0
/* 00454 80A7E8B4 27B500CC */ addiu $s5, $sp, 0x00CC ## $s5 = FFFFFFE4
/* 00458 80A7E8B8 24170009 */ addiu $s7, $zero, 0x0009 ## $s7 = 00000009
/* 0045C 80A7E8BC 249E0024 */ addiu $s8, $a0, 0x0024 ## $s8 = 00000024
.L80A7E8C0:
/* 00460 80A7E8C0 26314E20 */ addiu $s1, $s1, 0x4E20 ## $s1 = 00005E20
/* 00464 80A7E8C4 00118C00 */ sll $s1, $s1, 16
/* 00468 80A7E8C8 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 0046C 80A7E8CC 00118C03 */ sra $s1, $s1, 16
/* 00470 80A7E8D0 46180502 */ mul.s $f20, $f0, $f24
/* 00474 80A7E8D4 00112400 */ sll $a0, $s1, 16
/* 00478 80A7E8D8 0C01DE1C */ jal Math_Sins
## sins?
/* 0047C 80A7E8DC 00042403 */ sra $a0, $a0, 16
/* 00480 80A7E8E0 46140102 */ mul.s $f4, $f0, $f20
/* 00484 80A7E8E4 C6060024 */ lwc1 $f6, 0x0024($s0) ## 00000024
/* 00488 80A7E8E8 46062200 */ add.s $f8, $f4, $f6
/* 0048C 80A7E8EC 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00490 80A7E8F0 E7A800CC */ swc1 $f8, 0x00CC($sp)
/* 00494 80A7E8F4 461E0282 */ mul.s $f10, $f0, $f30
/* 00498 80A7E8F8 C6100028 */ lwc1 $f16, 0x0028($s0) ## 00000028
/* 0049C 80A7E8FC 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 004A0 80A7E900 44812000 */ mtc1 $at, $f4 ## $f4 = 5.00
/* 004A4 80A7E904 00112400 */ sll $a0, $s1, 16
/* 004A8 80A7E908 00042403 */ sra $a0, $a0, 16
/* 004AC 80A7E90C 46105480 */ add.s $f18, $f10, $f16
/* 004B0 80A7E910 46049180 */ add.s $f6, $f18, $f4
/* 004B4 80A7E914 0C01DE0D */ jal Math_Coss
## coss?
/* 004B8 80A7E918 E7A600D0 */ swc1 $f6, 0x00D0($sp)
/* 004BC 80A7E91C 46140202 */ mul.s $f8, $f0, $f20
/* 004C0 80A7E920 C60A002C */ lwc1 $f10, 0x002C($s0) ## 0000002C
/* 004C4 80A7E924 02802025 */ or $a0, $s4, $zero ## $a0 = FFFFFFF0
/* 004C8 80A7E928 8FA500A4 */ lw $a1, 0x00A4($sp)
/* 004CC 80A7E92C 460A4400 */ add.s $f16, $f8, $f10
/* 004D0 80A7E930 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 004D4 80A7E934 E7B000D4 */ swc1 $f16, 0x00D4($sp)
/* 004D8 80A7E938 96020088 */ lhu $v0, 0x0088($s0) ## 00000088
/* 004DC 80A7E93C C7B200D8 */ lwc1 $f18, 0x00D8($sp)
/* 004E0 80A7E940 3C0180A8 */ lui $at, %hi(D_80A87468) ## $at = 80A80000
/* 004E4 80A7E944 304F0001 */ andi $t7, $v0, 0x0001 ## $t7 = 00000000
/* 004E8 80A7E948 11E0000B */ beq $t7, $zero, .L80A7E978
/* 004EC 80A7E94C 30580008 */ andi $t8, $v0, 0x0008 ## $t8 = 00000000
/* 004F0 80A7E950 461A9102 */ mul.s $f4, $f18, $f26
/* 004F4 80A7E954 C7A600DC */ lwc1 $f6, 0x00DC($sp)
/* 004F8 80A7E958 C4287468 */ lwc1 $f8, %lo(D_80A87468)($at)
/* 004FC 80A7E95C C7B000E0 */ lwc1 $f16, 0x00E0($sp)
/* 00500 80A7E960 46083282 */ mul.s $f10, $f6, $f8
/* 00504 80A7E964 E7A400D8 */ swc1 $f4, 0x00D8($sp)
/* 00508 80A7E968 461A8482 */ mul.s $f18, $f16, $f26
/* 0050C 80A7E96C E7AA00DC */ swc1 $f10, 0x00DC($sp)
/* 00510 80A7E970 1000000D */ beq $zero, $zero, .L80A7E9A8
/* 00514 80A7E974 E7B200E0 */ swc1 $f18, 0x00E0($sp)
.L80A7E978:
/* 00518 80A7E978 1300000B */ beq $t8, $zero, .L80A7E9A8
/* 0051C 80A7E97C C7A400D8 */ lwc1 $f4, 0x00D8($sp)
/* 00520 80A7E980 3C0180A8 */ lui $at, %hi(D_80A8746C) ## $at = 80A80000
/* 00524 80A7E984 461C2182 */ mul.s $f6, $f4, $f28
/* 00528 80A7E988 C42A746C */ lwc1 $f10, %lo(D_80A8746C)($at)
/* 0052C 80A7E98C C7A800DC */ lwc1 $f8, 0x00DC($sp)
/* 00530 80A7E990 C7B200E0 */ lwc1 $f18, 0x00E0($sp)
/* 00534 80A7E994 460A4402 */ mul.s $f16, $f8, $f10
/* 00538 80A7E998 E7A600D8 */ swc1 $f6, 0x00D8($sp)
/* 0053C 80A7E99C 461C9102 */ mul.s $f4, $f18, $f28
/* 00540 80A7E9A0 E7B000DC */ swc1 $f16, 0x00DC($sp)
/* 00544 80A7E9A4 E7A400E0 */ swc1 $f4, 0x00E0($sp)
.L80A7E9A8:
/* 00548 80A7E9A8 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 0054C 80A7E9AC 00000000 */ nop
/* 00550 80A7E9B0 46180502 */ mul.s $f20, $f0, $f24
/* 00554 80A7E9B4 00112400 */ sll $a0, $s1, 16
/* 00558 80A7E9B8 0C01DE1C */ jal Math_Sins
## sins?
/* 0055C 80A7E9BC 00042403 */ sra $a0, $a0, 16
/* 00560 80A7E9C0 4600A202 */ mul.s $f8, $f20, $f0
/* 00564 80A7E9C4 C7A600D8 */ lwc1 $f6, 0x00D8($sp)
/* 00568 80A7E9C8 46083280 */ add.s $f10, $f6, $f8
/* 0056C 80A7E9CC 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00570 80A7E9D0 E7AA00D8 */ swc1 $f10, 0x00D8($sp)
/* 00574 80A7E9D4 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00578 80A7E9D8 46000586 */ mov.s $f22, $f0
/* 0057C 80A7E9DC 44928000 */ mtc1 $s2, $f16 ## $f16 = 0.00
/* 00580 80A7E9E0 3C0180A8 */ lui $at, %hi(D_80A87470) ## $at = 80A80000
/* 00584 80A7E9E4 C4267470 */ lwc1 $f6, %lo(D_80A87470)($at)
/* 00588 80A7E9E8 468084A0 */ cvt.s.w $f18, $f16
/* 0058C 80A7E9EC 3C014080 */ lui $at, 0x4080 ## $at = 40800000
/* 00590 80A7E9F0 44815000 */ mtc1 $at, $f10 ## $f10 = 4.00
/* 00594 80A7E9F4 00112400 */ sll $a0, $s1, 16
/* 00598 80A7E9F8 00042403 */ sra $a0, $a0, 16
/* 0059C 80A7E9FC 4612B102 */ mul.s $f4, $f22, $f18
/* 005A0 80A7EA00 00000000 */ nop
/* 005A4 80A7EA04 46062202 */ mul.s $f8, $f4, $f6
/* 005A8 80A7EA08 C7A400DC */ lwc1 $f4, 0x00DC($sp)
/* 005AC 80A7EA0C 460A0402 */ mul.s $f16, $f0, $f10
/* 005B0 80A7EA10 46088480 */ add.s $f18, $f16, $f8
/* 005B4 80A7EA14 46122180 */ add.s $f6, $f4, $f18
/* 005B8 80A7EA18 0C01DE0D */ jal Math_Coss
## coss?
/* 005BC 80A7EA1C E7A600DC */ swc1 $f6, 0x00DC($sp)
/* 005C0 80A7EA20 4600A402 */ mul.s $f16, $f20, $f0
/* 005C4 80A7EA24 C7AA00E0 */ lwc1 $f10, 0x00E0($sp)
/* 005C8 80A7EA28 8FA400EC */ lw $a0, 0x00EC($sp)
/* 005CC 80A7EA2C 02A02825 */ or $a1, $s5, $zero ## $a1 = FFFFFFE4
/* 005D0 80A7EA30 02803025 */ or $a2, $s4, $zero ## $a2 = FFFFFFF0
/* 005D4 80A7EA34 03C03825 */ or $a3, $s8, $zero ## $a3 = 00000024
/* 005D8 80A7EA38 2419001E */ addiu $t9, $zero, 0x001E ## $t9 = 0000001E
/* 005DC 80A7EA3C 46105200 */ add.s $f8, $f10, $f16
/* 005E0 80A7EA40 24080005 */ addiu $t0, $zero, 0x0005 ## $t0 = 00000005
/* 005E4 80A7EA44 240A0005 */ addiu $t2, $zero, 0x0005 ## $t2 = 00000005
/* 005E8 80A7EA48 16400004 */ bne $s2, $zero, .L80A7EA5C
/* 005EC 80A7EA4C E7A800E0 */ swc1 $f8, 0x00E0($sp)
/* 005F0 80A7EA50 24020029 */ addiu $v0, $zero, 0x0029 ## $v0 = 00000029
/* 005F4 80A7EA54 10000008 */ beq $zero, $zero, .L80A7EA78
/* 005F8 80A7EA58 2403FE3E */ addiu $v1, $zero, 0xFE3E ## $v1 = FFFFFE3E
.L80A7EA5C:
/* 005FC 80A7EA5C 2A410004 */ slti $at, $s2, 0x0004
/* 00600 80A7EA60 10200004 */ beq $at, $zero, .L80A7EA74
/* 00604 80A7EA64 24020045 */ addiu $v0, $zero, 0x0045 ## $v0 = 00000045
/* 00608 80A7EA68 24020025 */ addiu $v0, $zero, 0x0025 ## $v0 = 00000025
/* 0060C 80A7EA6C 10000002 */ beq $zero, $zero, .L80A7EA78
/* 00610 80A7EA70 2403FE84 */ addiu $v1, $zero, 0xFE84 ## $v1 = FFFFFE84
.L80A7EA74:
/* 00614 80A7EA74 2403FEC0 */ addiu $v1, $zero, 0xFEC0 ## $v1 = FFFFFEC0
.L80A7EA78:
/* 00618 80A7EA78 86690000 */ lh $t1, 0x0000($s3) ## 80A873A4
/* 0061C 80A7EA7C 240B0002 */ addiu $t3, $zero, 0x0002 ## $t3 = 00000002
/* 00620 80A7EA80 240C0046 */ addiu $t4, $zero, 0x0046 ## $t4 = 00000046
/* 00624 80A7EA84 240D0002 */ addiu $t5, $zero, 0x0002 ## $t5 = 00000002
/* 00628 80A7EA88 AFAD0038 */ sw $t5, 0x0038($sp)
/* 0062C 80A7EA8C AFAC0030 */ sw $t4, 0x0030($sp)
/* 00630 80A7EA90 AFAB002C */ sw $t3, 0x002C($sp)
/* 00634 80A7EA94 AFA30010 */ sw $v1, 0x0010($sp)
/* 00638 80A7EA98 AFA20014 */ sw $v0, 0x0014($sp)
/* 0063C 80A7EA9C AFB90018 */ sw $t9, 0x0018($sp)
/* 00640 80A7EAA0 AFA8001C */ sw $t0, 0x001C($sp)
/* 00644 80A7EAA4 AFA00020 */ sw $zero, 0x0020($sp)
/* 00648 80A7EAA8 AFAA0028 */ sw $t2, 0x0028($sp)
/* 0064C 80A7EAAC AFA00034 */ sw $zero, 0x0034($sp)
/* 00650 80A7EAB0 AFB6003C */ sw $s6, 0x003C($sp)
/* 00654 80A7EAB4 0C00A7A3 */ jal EffectSsKakera_Spawn
/* 00658 80A7EAB8 AFA90024 */ sw $t1, 0x0024($sp)
/* 0065C 80A7EABC 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001
/* 00660 80A7EAC0 1657FF7F */ bne $s2, $s7, .L80A7E8C0
/* 00664 80A7EAC4 26730002 */ addiu $s3, $s3, 0x0002 ## $s3 = 80A873A6
/* 00668 80A7EAC8 8FBF009C */ lw $ra, 0x009C($sp)
/* 0066C 80A7EACC D7B40048 */ ldc1 $f20, 0x0048($sp)
/* 00670 80A7EAD0 D7B60050 */ ldc1 $f22, 0x0050($sp)
/* 00674 80A7EAD4 D7B80058 */ ldc1 $f24, 0x0058($sp)
/* 00678 80A7EAD8 D7BA0060 */ ldc1 $f26, 0x0060($sp)
/* 0067C 80A7EADC D7BC0068 */ ldc1 $f28, 0x0068($sp)
/* 00680 80A7EAE0 D7BE0070 */ ldc1 $f30, 0x0070($sp)
/* 00684 80A7EAE4 8FB00078 */ lw $s0, 0x0078($sp)
/* 00688 80A7EAE8 8FB1007C */ lw $s1, 0x007C($sp)
/* 0068C 80A7EAEC 8FB20080 */ lw $s2, 0x0080($sp)
/* 00690 80A7EAF0 8FB30084 */ lw $s3, 0x0084($sp)
/* 00694 80A7EAF4 8FB40088 */ lw $s4, 0x0088($sp)
/* 00698 80A7EAF8 8FB5008C */ lw $s5, 0x008C($sp)
/* 0069C 80A7EAFC 8FB60090 */ lw $s6, 0x0090($sp)
/* 006A0 80A7EB00 8FB70094 */ lw $s7, 0x0094($sp)
/* 006A4 80A7EB04 8FBE0098 */ lw $s8, 0x0098($sp)
/* 006A8 80A7EB08 03E00008 */ jr $ra
/* 006AC 80A7EB0C 27BD00E8 */ addiu $sp, $sp, 0x00E8 ## $sp = 00000000

View file

@ -1,66 +0,0 @@
glabel func_80A7EB10
/* 006B0 80A7EB10 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 006B4 80A7EB14 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 006B8 80A7EB18 AFBF0024 */ sw $ra, 0x0024($sp)
/* 006BC 80A7EB1C AFA5003C */ sw $a1, 0x003C($sp)
/* 006C0 80A7EB20 24C50024 */ addiu $a1, $a2, 0x0024 ## $a1 = 00000024
/* 006C4 80A7EB24 AFA60038 */ sw $a2, 0x0038($sp)
/* 006C8 80A7EB28 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 006CC 80A7EB2C 27A4002C */ addiu $a0, $sp, 0x002C ## $a0 = FFFFFFF4
/* 006D0 80A7EB30 8FA60038 */ lw $a2, 0x0038($sp)
/* 006D4 80A7EB34 27A5002C */ addiu $a1, $sp, 0x002C ## $a1 = FFFFFFF4
/* 006D8 80A7EB38 24070003 */ addiu $a3, $zero, 0x0003 ## $a3 = 00000003
/* 006DC 80A7EB3C 94C20088 */ lhu $v0, 0x0088($a2) ## 00000088
/* 006E0 80A7EB40 24180050 */ addiu $t8, $zero, 0x0050 ## $t8 = 00000050
/* 006E4 80A7EB44 2419003C */ addiu $t9, $zero, 0x003C ## $t9 = 0000003C
/* 006E8 80A7EB48 304E0001 */ andi $t6, $v0, 0x0001 ## $t6 = 00000000
/* 006EC 80A7EB4C 11C00011 */ beq $t6, $zero, .L80A7EB94
/* 006F0 80A7EB50 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 006F4 80A7EB54 C4C0005C */ lwc1 $f0, 0x005C($a2) ## 0000005C
/* 006F8 80A7EB58 C7A4002C */ lwc1 $f4, 0x002C($sp)
/* 006FC 80A7EB5C C7AA0030 */ lwc1 $f10, 0x0030($sp)
/* 00700 80A7EB60 46000180 */ add.s $f6, $f0, $f0
/* 00704 80A7EB64 46062200 */ add.s $f8, $f4, $f6
/* 00708 80A7EB68 C7A40034 */ lwc1 $f4, 0x0034($sp)
/* 0070C 80A7EB6C E7A8002C */ swc1 $f8, 0x002C($sp)
/* 00710 80A7EB70 C4C20060 */ lwc1 $f2, 0x0060($a2) ## 00000060
/* 00714 80A7EB74 46021400 */ add.s $f16, $f2, $f2
/* 00718 80A7EB78 46105481 */ sub.s $f18, $f10, $f16
/* 0071C 80A7EB7C E7B20030 */ swc1 $f18, 0x0030($sp)
/* 00720 80A7EB80 C4CC0064 */ lwc1 $f12, 0x0064($a2) ## 00000064
/* 00724 80A7EB84 460C6180 */ add.s $f6, $f12, $f12
/* 00728 80A7EB88 46062200 */ add.s $f8, $f4, $f6
/* 0072C 80A7EB8C 10000013 */ beq $zero, $zero, .L80A7EBDC
/* 00730 80A7EB90 E7A80034 */ swc1 $f8, 0x0034($sp)
.L80A7EB94:
/* 00734 80A7EB94 304F0008 */ andi $t7, $v0, 0x0008 ## $t7 = 00000000
/* 00738 80A7EB98 51E00011 */ beql $t7, $zero, .L80A7EBE0
/* 0073C 80A7EB9C 8FA4003C */ lw $a0, 0x003C($sp)
/* 00740 80A7EBA0 C4C0005C */ lwc1 $f0, 0x005C($a2) ## 0000005C
/* 00744 80A7EBA4 C7AA002C */ lwc1 $f10, 0x002C($sp)
/* 00748 80A7EBA8 C7A40030 */ lwc1 $f4, 0x0030($sp)
/* 0074C 80A7EBAC 46000400 */ add.s $f16, $f0, $f0
/* 00750 80A7EBB0 46105481 */ sub.s $f18, $f10, $f16
/* 00754 80A7EBB4 C7AA0034 */ lwc1 $f10, 0x0034($sp)
/* 00758 80A7EBB8 E7B2002C */ swc1 $f18, 0x002C($sp)
/* 0075C 80A7EBBC C4C20060 */ lwc1 $f2, 0x0060($a2) ## 00000060
/* 00760 80A7EBC0 46021180 */ add.s $f6, $f2, $f2
/* 00764 80A7EBC4 46062200 */ add.s $f8, $f4, $f6
/* 00768 80A7EBC8 E7A80030 */ swc1 $f8, 0x0030($sp)
/* 0076C 80A7EBCC C4CC0064 */ lwc1 $f12, 0x0064($a2) ## 00000064
/* 00770 80A7EBD0 460C6400 */ add.s $f16, $f12, $f12
/* 00774 80A7EBD4 46105481 */ sub.s $f18, $f10, $f16
/* 00778 80A7EBD8 E7B20034 */ swc1 $f18, 0x0034($sp)
.L80A7EBDC:
/* 0077C 80A7EBDC 8FA4003C */ lw $a0, 0x003C($sp)
.L80A7EBE0:
/* 00780 80A7EBE0 3C064270 */ lui $a2, 0x4270 ## $a2 = 42700000
/* 00784 80A7EBE4 AFB80010 */ sw $t8, 0x0010($sp)
/* 00788 80A7EBE8 AFB90014 */ sw $t9, 0x0014($sp)
/* 0078C 80A7EBEC 0C00CD20 */ jal func_80033480
/* 00790 80A7EBF0 AFA80018 */ sw $t0, 0x0018($sp)
/* 00794 80A7EBF4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00798 80A7EBF8 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 0079C 80A7EBFC 03E00008 */ jr $ra
/* 007A0 80A7EC00 00000000 */ nop

View file

@ -1,66 +0,0 @@
glabel func_80A7EC04
/* 007A4 80A7EC04 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 007A8 80A7EC08 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 007AC 80A7EC0C AFBF0024 */ sw $ra, 0x0024($sp)
/* 007B0 80A7EC10 AFA5003C */ sw $a1, 0x003C($sp)
/* 007B4 80A7EC14 24C50024 */ addiu $a1, $a2, 0x0024 ## $a1 = 00000024
/* 007B8 80A7EC18 AFA60038 */ sw $a2, 0x0038($sp)
/* 007BC 80A7EC1C 0C01DF90 */ jal Math_Vec3f_Copy
## Vec3f_Copy
/* 007C0 80A7EC20 27A4002C */ addiu $a0, $sp, 0x002C ## $a0 = FFFFFFF4
/* 007C4 80A7EC24 8FA60038 */ lw $a2, 0x0038($sp)
/* 007C8 80A7EC28 27A5002C */ addiu $a1, $sp, 0x002C ## $a1 = FFFFFFF4
/* 007CC 80A7EC2C 2407000A */ addiu $a3, $zero, 0x000A ## $a3 = 0000000A
/* 007D0 80A7EC30 94C20088 */ lhu $v0, 0x0088($a2) ## 00000088
/* 007D4 80A7EC34 241800B4 */ addiu $t8, $zero, 0x00B4 ## $t8 = 000000B4
/* 007D8 80A7EC38 2419005A */ addiu $t9, $zero, 0x005A ## $t9 = 0000005A
/* 007DC 80A7EC3C 304E0001 */ andi $t6, $v0, 0x0001 ## $t6 = 00000000
/* 007E0 80A7EC40 11C00011 */ beq $t6, $zero, .L80A7EC88
/* 007E4 80A7EC44 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 007E8 80A7EC48 C4C0005C */ lwc1 $f0, 0x005C($a2) ## 0000005C
/* 007EC 80A7EC4C C7A4002C */ lwc1 $f4, 0x002C($sp)
/* 007F0 80A7EC50 C7AA0030 */ lwc1 $f10, 0x0030($sp)
/* 007F4 80A7EC54 46000180 */ add.s $f6, $f0, $f0
/* 007F8 80A7EC58 46062200 */ add.s $f8, $f4, $f6
/* 007FC 80A7EC5C C7A40034 */ lwc1 $f4, 0x0034($sp)
/* 00800 80A7EC60 E7A8002C */ swc1 $f8, 0x002C($sp)
/* 00804 80A7EC64 C4C20060 */ lwc1 $f2, 0x0060($a2) ## 00000060
/* 00808 80A7EC68 46021400 */ add.s $f16, $f2, $f2
/* 0080C 80A7EC6C 46105481 */ sub.s $f18, $f10, $f16
/* 00810 80A7EC70 E7B20030 */ swc1 $f18, 0x0030($sp)
/* 00814 80A7EC74 C4CC0064 */ lwc1 $f12, 0x0064($a2) ## 00000064
/* 00818 80A7EC78 460C6180 */ add.s $f6, $f12, $f12
/* 0081C 80A7EC7C 46062200 */ add.s $f8, $f4, $f6
/* 00820 80A7EC80 10000013 */ beq $zero, $zero, .L80A7ECD0
/* 00824 80A7EC84 E7A80034 */ swc1 $f8, 0x0034($sp)
.L80A7EC88:
/* 00828 80A7EC88 304F0008 */ andi $t7, $v0, 0x0008 ## $t7 = 00000000
/* 0082C 80A7EC8C 51E00011 */ beql $t7, $zero, .L80A7ECD4
/* 00830 80A7EC90 8FA4003C */ lw $a0, 0x003C($sp)
/* 00834 80A7EC94 C4C0005C */ lwc1 $f0, 0x005C($a2) ## 0000005C
/* 00838 80A7EC98 C7AA002C */ lwc1 $f10, 0x002C($sp)
/* 0083C 80A7EC9C C7A40030 */ lwc1 $f4, 0x0030($sp)
/* 00840 80A7ECA0 46000400 */ add.s $f16, $f0, $f0
/* 00844 80A7ECA4 46105481 */ sub.s $f18, $f10, $f16
/* 00848 80A7ECA8 C7AA0034 */ lwc1 $f10, 0x0034($sp)
/* 0084C 80A7ECAC E7B2002C */ swc1 $f18, 0x002C($sp)
/* 00850 80A7ECB0 C4C20060 */ lwc1 $f2, 0x0060($a2) ## 00000060
/* 00854 80A7ECB4 46021180 */ add.s $f6, $f2, $f2
/* 00858 80A7ECB8 46062200 */ add.s $f8, $f4, $f6
/* 0085C 80A7ECBC E7A80030 */ swc1 $f8, 0x0030($sp)
/* 00860 80A7ECC0 C4CC0064 */ lwc1 $f12, 0x0064($a2) ## 00000064
/* 00864 80A7ECC4 460C6400 */ add.s $f16, $f12, $f12
/* 00868 80A7ECC8 46105481 */ sub.s $f18, $f10, $f16
/* 0086C 80A7ECCC E7B20034 */ swc1 $f18, 0x0034($sp)
.L80A7ECD0:
/* 00870 80A7ECD0 8FA4003C */ lw $a0, 0x003C($sp)
.L80A7ECD4:
/* 00874 80A7ECD4 3C06430C */ lui $a2, 0x430C ## $a2 = 430C0000
/* 00878 80A7ECD8 AFB80010 */ sw $t8, 0x0010($sp)
/* 0087C 80A7ECDC AFB90014 */ sw $t9, 0x0014($sp)
/* 00880 80A7ECE0 0C00CD20 */ jal func_80033480
/* 00884 80A7ECE4 AFA80018 */ sw $t0, 0x0018($sp)
/* 00888 80A7ECE8 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0088C 80A7ECEC 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 00890 80A7ECF0 03E00008 */ jr $ra
/* 00894 80A7ECF4 00000000 */ nop

View file

@ -1,30 +0,0 @@
glabel func_80A7ECF8
/* 00898 80A7ECF8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0089C 80A7ECFC AFBF0014 */ sw $ra, 0x0014($sp)
/* 008A0 80A7ED00 AFA40018 */ sw $a0, 0x0018($sp)
/* 008A4 80A7ED04 AFA5001C */ sw $a1, 0x001C($sp)
/* 008A8 80A7ED08 8483001C */ lh $v1, 0x001C($a0) ## 0000001C
/* 008AC 80A7ED0C 8FA4001C */ lw $a0, 0x001C($sp)
/* 008B0 80A7ED10 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 008B4 80A7ED14 306F0001 */ andi $t7, $v1, 0x0001 ## $t7 = 00000000
/* 008B8 80A7ED18 15E0000D */ bne $t7, $zero, .L80A7ED50
/* 008BC 80A7ED1C 00031203 */ sra $v0, $v1, 8
/* 008C0 80A7ED20 3042000F */ andi $v0, $v0, 0x000F ## $v0 = 00000000
/* 008C4 80A7ED24 00021400 */ sll $v0, $v0, 16
/* 008C8 80A7ED28 00021403 */ sra $v0, $v0, 16
/* 008CC 80A7ED2C 2841000D */ slti $at, $v0, 0x000D
/* 008D0 80A7ED30 14200002 */ bne $at, $zero, .L80A7ED3C
/* 008D4 80A7ED34 8FA60018 */ lw $a2, 0x0018($sp)
/* 008D8 80A7ED38 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80A7ED3C:
/* 008DC 80A7ED3C 00403825 */ or $a3, $v0, $zero ## $a3 = 00000000
/* 008E0 80A7ED40 00073D00 */ sll $a3, $a3, 20
/* 008E4 80A7ED44 00073C03 */ sra $a3, $a3, 16
/* 008E8 80A7ED48 0C007E50 */ jal Item_DropCollectibleRandom
/* 008EC 80A7ED4C 24C60024 */ addiu $a2, $a2, 0x0024 ## $a2 = 00000024
.L80A7ED50:
/* 008F0 80A7ED50 8FBF0014 */ lw $ra, 0x0014($sp)
/* 008F4 80A7ED54 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 008F8 80A7ED58 03E00008 */ jr $ra
/* 008FC 80A7ED5C 00000000 */ nop

View file

@ -1,15 +0,0 @@
glabel func_80A7ED60
/* 00900 80A7ED60 C4840060 */ lwc1 $f4, 0x0060($a0) ## 00000060
/* 00904 80A7ED64 C486006C */ lwc1 $f6, 0x006C($a0) ## 0000006C
/* 00908 80A7ED68 C4800070 */ lwc1 $f0, 0x0070($a0) ## 00000070
/* 0090C 80A7ED6C 46062200 */ add.s $f8, $f4, $f6
/* 00910 80A7ED70 E4880060 */ swc1 $f8, 0x0060($a0) ## 00000060
/* 00914 80A7ED74 C48A0060 */ lwc1 $f10, 0x0060($a0) ## 00000060
/* 00918 80A7ED78 4600503C */ c.lt.s $f10, $f0
/* 0091C 80A7ED7C 00000000 */ nop
/* 00920 80A7ED80 45000002 */ bc1f .L80A7ED8C
/* 00924 80A7ED84 00000000 */ nop
/* 00928 80A7ED88 E4800060 */ swc1 $f0, 0x0060($a0) ## 00000060
.L80A7ED8C:
/* 0092C 80A7ED8C 03E00008 */ jr $ra
/* 00930 80A7ED90 00000000 */ nop

View file

@ -1,44 +0,0 @@
.late_rodata
glabel D_80A87474
.float 0.2
glabel D_80A87478
.float 0.1
.text
glabel func_80A7ED94
/* 00934 80A7ED94 44856000 */ mtc1 $a1, $f12 ## $f12 = 0.00
/* 00938 80A7ED98 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0093C 80A7ED9C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00940 80A7EDA0 AFA40018 */ sw $a0, 0x0018($sp)
/* 00944 80A7EDA4 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00948 80A7EDA8 E7AC001C */ swc1 $f12, 0x001C($sp)
/* 0094C 80A7EDAC 3C0180A8 */ lui $at, %hi(D_80A87474) ## $at = 80A80000
/* 00950 80A7EDB0 C4247474 */ lwc1 $f4, %lo(D_80A87474)($at)
/* 00954 80A7EDB4 3C0180A8 */ lui $at, %hi(D_80A87478) ## $at = 80A80000
/* 00958 80A7EDB8 C4287478 */ lwc1 $f8, %lo(D_80A87478)($at)
/* 0095C 80A7EDBC 46040182 */ mul.s $f6, $f0, $f4
/* 00960 80A7EDC0 C7AC001C */ lwc1 $f12, 0x001C($sp)
/* 00964 80A7EDC4 8FA40018 */ lw $a0, 0x0018($sp)
/* 00968 80A7EDC8 C4820000 */ lwc1 $f2, 0x0000($a0) ## 00000000
/* 0096C 80A7EDCC C48E0004 */ lwc1 $f14, 0x0004($a0) ## 00000004
/* 00970 80A7EDD0 46083281 */ sub.s $f10, $f6, $f8
/* 00974 80A7EDD4 C4900008 */ lwc1 $f16, 0x0008($a0) ## 00000008
/* 00978 80A7EDD8 460C5482 */ mul.s $f18, $f10, $f12
/* 0097C 80A7EDDC 46126300 */ add.s $f12, $f12, $f18
/* 00980 80A7EDE0 460C1102 */ mul.s $f4, $f2, $f12
/* 00984 80A7EDE4 00000000 */ nop
/* 00988 80A7EDE8 460C7202 */ mul.s $f8, $f14, $f12
/* 0098C 80A7EDEC 00000000 */ nop
/* 00990 80A7EDF0 460C8482 */ mul.s $f18, $f16, $f12
/* 00994 80A7EDF4 46041181 */ sub.s $f6, $f2, $f4
/* 00998 80A7EDF8 46087281 */ sub.s $f10, $f14, $f8
/* 0099C 80A7EDFC E4860000 */ swc1 $f6, 0x0000($a0) ## 00000000
/* 009A0 80A7EE00 46128101 */ sub.s $f4, $f16, $f18
/* 009A4 80A7EE04 E48A0004 */ swc1 $f10, 0x0004($a0) ## 00000004
/* 009A8 80A7EE08 E4840008 */ swc1 $f4, 0x0008($a0) ## 00000008
/* 009AC 80A7EE0C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 009B0 80A7EE10 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 009B4 80A7EE14 03E00008 */ jr $ra
/* 009B8 80A7EE18 00000000 */ nop

View file

@ -1,57 +0,0 @@
.late_rodata
glabel D_80A8747C
.word 0x477FFF00
.text
glabel func_80A7EE1C
/* 009BC 80A7EE1C 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 009C0 80A7EE20 AFB40048 */ sw $s4, 0x0048($sp)
/* 009C4 80A7EE24 AFB30044 */ sw $s3, 0x0044($sp)
/* 009C8 80A7EE28 AFB20040 */ sw $s2, 0x0040($sp)
/* 009CC 80A7EE2C AFB1003C */ sw $s1, 0x003C($sp)
/* 009D0 80A7EE30 AFB00038 */ sw $s0, 0x0038($sp)
/* 009D4 80A7EE34 F7B40030 */ sdc1 $f20, 0x0030($sp)
/* 009D8 80A7EE38 3C0180A8 */ lui $at, %hi(D_80A8747C) ## $at = 80A80000
/* 009DC 80A7EE3C 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 009E0 80A7EE40 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000
/* 009E4 80A7EE44 AFBF004C */ sw $ra, 0x004C($sp)
/* 009E8 80A7EE48 C434747C */ lwc1 $f20, %lo(D_80A8747C)($at)
/* 009EC 80A7EE4C 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 009F0 80A7EE50 24B31C24 */ addiu $s3, $a1, 0x1C24 ## $s3 = 00001C24
/* 009F4 80A7EE54 24140003 */ addiu $s4, $zero, 0x0003 ## $s4 = 00000003
.L80A7EE58:
/* 009F8 80A7EE58 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 009FC 80A7EE5C 00000000 */ nop
/* 00A00 80A7EE60 46140202 */ mul.s $f8, $f0, $f20
/* 00A04 80A7EE64 C6240028 */ lwc1 $f4, 0x0028($s1) ## 00000028
/* 00A08 80A7EE68 8E270024 */ lw $a3, 0x0024($s1) ## 00000024
/* 00A0C 80A7EE6C 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 00A10 80A7EE70 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00A14 80A7EE74 C626002C */ lwc1 $f6, 0x002C($s1) ## 0000002C
/* 00A18 80A7EE78 AFB80024 */ sw $t8, 0x0024($sp)
/* 00A1C 80A7EE7C 4600428D */ trunc.w.s $f10, $f8
/* 00A20 80A7EE80 AFA00020 */ sw $zero, 0x0020($sp)
/* 00A24 80A7EE84 AFA00018 */ sw $zero, 0x0018($sp)
/* 00A28 80A7EE88 02602025 */ or $a0, $s3, $zero ## $a0 = 00001C24
/* 00A2C 80A7EE8C 440F5000 */ mfc1 $t7, $f10
/* 00A30 80A7EE90 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000
/* 00A34 80A7EE94 24060020 */ addiu $a2, $zero, 0x0020 ## $a2 = 00000020
/* 00A38 80A7EE98 E7A60014 */ swc1 $f6, 0x0014($sp)
/* 00A3C 80A7EE9C 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 00A40 80A7EEA0 AFAF001C */ sw $t7, 0x001C($sp)
/* 00A44 80A7EEA4 10400003 */ beq $v0, $zero, .L80A7EEB4
/* 00A48 80A7EEA8 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 00A4C 80A7EEAC 1614FFEA */ bne $s0, $s4, .L80A7EE58
/* 00A50 80A7EEB0 00000000 */ nop
.L80A7EEB4:
/* 00A54 80A7EEB4 8FBF004C */ lw $ra, 0x004C($sp)
/* 00A58 80A7EEB8 D7B40030 */ ldc1 $f20, 0x0030($sp)
/* 00A5C 80A7EEBC 8FB00038 */ lw $s0, 0x0038($sp)
/* 00A60 80A7EEC0 8FB1003C */ lw $s1, 0x003C($sp)
/* 00A64 80A7EEC4 8FB20040 */ lw $s2, 0x0040($sp)
/* 00A68 80A7EEC8 8FB30044 */ lw $s3, 0x0044($sp)
/* 00A6C 80A7EECC 8FB40048 */ lw $s4, 0x0048($sp)
/* 00A70 80A7EED0 03E00008 */ jr $ra
/* 00A74 80A7EED4 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000

View file

@ -1,5 +0,0 @@
glabel func_80A7F098
/* 00C38 80A7F098 3C0E80A8 */ lui $t6, %hi(func_80A7F0A8) ## $t6 = 80A80000
/* 00C3C 80A7F09C 25CEF0A8 */ addiu $t6, $t6, %lo(func_80A7F0A8) ## $t6 = 80A7F0A8
/* 00C40 80A7F0A0 03E00008 */ jr $ra
/* 00C44 80A7F0A4 AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C

View file

@ -1,159 +0,0 @@
glabel func_80A7F0A8
/* 00C48 80A7F0A8 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00C4C 80A7F0AC AFBF0024 */ sw $ra, 0x0024($sp)
/* 00C50 80A7F0B0 AFB10020 */ sw $s1, 0x0020($sp)
/* 00C54 80A7F0B4 AFB0001C */ sw $s0, 0x001C($sp)
/* 00C58 80A7F0B8 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 00C5C 80A7F0BC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00C60 80A7F0C0 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00C64 80A7F0C4 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000
/* 00C68 80A7F0C8 0C00BD04 */ jal Actor_HasParent
/* 00C6C 80A7F0CC A7AF0032 */ sh $t7, 0x0032($sp)
/* 00C70 80A7F0D0 50400017 */ beql $v0, $zero, .L80A7F130
/* 00C74 80A7F0D4 920B0161 */ lbu $t3, 0x0161($s0) ## 00000161
/* 00C78 80A7F0D8 0C29FCBE */ jal func_80A7F2F8
/* 00C7C 80A7F0DC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C80 80A7F0E0 87B80032 */ lh $t8, 0x0032($sp)
/* 00C84 80A7F0E4 3C0780A8 */ lui $a3, %hi(D_80A873E0) ## $a3 = 80A80000
/* 00C88 80A7F0E8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00C8C 80A7F0EC 0018C840 */ sll $t9, $t8, 1
/* 00C90 80A7F0F0 00F93821 */ addu $a3, $a3, $t9
/* 00C94 80A7F0F4 94E773E0 */ lhu $a3, %lo(D_80A873E0)($a3)
/* 00C98 80A7F0F8 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 00C9C 80A7F0FC 0C01AEB6 */ jal Audio_PlaySoundAtPosition
/* 00CA0 80A7F100 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014
/* 00CA4 80A7F104 8608001C */ lh $t0, 0x001C($s0) ## 0000001C
/* 00CA8 80A7F108 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00CAC 80A7F10C 00084903 */ sra $t1, $t0, 4
/* 00CB0 80A7F110 312A0001 */ andi $t2, $t1, 0x0001 ## $t2 = 00000000
/* 00CB4 80A7F114 51400074 */ beql $t2, $zero, .L80A7F2E8
/* 00CB8 80A7F118 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00CBC 80A7F11C 0C29FB87 */ jal func_80A7EE1C
/* 00CC0 80A7F120 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00CC4 80A7F124 10000070 */ beq $zero, $zero, .L80A7F2E8
/* 00CC8 80A7F128 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00CCC 80A7F12C 920B0161 */ lbu $t3, 0x0161($s0) ## 00000161
.L80A7F130:
/* 00CD0 80A7F130 87AD0032 */ lh $t5, 0x0032($sp)
/* 00CD4 80A7F134 316C0002 */ andi $t4, $t3, 0x0002 ## $t4 = 00000000
/* 00CD8 80A7F138 5180002F */ beql $t4, $zero, .L80A7F1F8
/* 00CDC 80A7F13C 3C014416 */ lui $at, 0x4416 ## $at = 44160000
/* 00CE0 80A7F140 55A0002D */ bnel $t5, $zero, .L80A7F1F8
/* 00CE4 80A7F144 3C014416 */ lui $at, 0x4416 ## $at = 44160000
/* 00CE8 80A7F148 8E0E018C */ lw $t6, 0x018C($s0) ## 0000018C
/* 00CEC 80A7F14C 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 00CF0 80A7F150 34210048 */ ori $at, $at, 0x0048 ## $at = 40000048
/* 00CF4 80A7F154 8DCF0000 */ lw $t7, 0x0000($t6) ## 00000000
/* 00CF8 80A7F158 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00CFC 80A7F15C 01E1C024 */ and $t8, $t7, $at
/* 00D00 80A7F160 53000025 */ beql $t8, $zero, .L80A7F1F8
/* 00D04 80A7F164 3C014416 */ lui $at, 0x4416 ## $at = 44160000
/* 00D08 80A7F168 0C29FB3E */ jal func_80A7ECF8
/* 00D0C 80A7F16C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00D10 80A7F170 87A20032 */ lh $v0, 0x0032($sp)
/* 00D14 80A7F174 3C0680A8 */ lui $a2, %hi(D_80A84AD4) ## $a2 = 80A80000
/* 00D18 80A7F178 3C0780A8 */ lui $a3, %hi(D_80A7FA30) ## $a3 = 80A80000
/* 00D1C 80A7F17C 0002C840 */ sll $t9, $v0, 1
/* 00D20 80A7F180 00F93821 */ addu $a3, $a3, $t9
/* 00D24 80A7F184 00C23021 */ addu $a2, $a2, $v0
/* 00D28 80A7F188 90C64AD4 */ lbu $a2, %lo(D_80A84AD4)($a2)
/* 00D2C 80A7F18C 94E7FA30 */ lhu $a3, %lo(D_80A7FA30)($a3)
/* 00D30 80A7F190 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00D34 80A7F194 0C01AEB6 */ jal Audio_PlaySoundAtPosition
/* 00D38 80A7F198 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 00D3C 80A7F19C 87A20032 */ lh $v0, 0x0032($sp)
/* 00D40 80A7F1A0 3C1980A8 */ lui $t9, %hi(D_80A87328) ## $t9 = 80A80000
/* 00D44 80A7F1A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D48 80A7F1A8 00021080 */ sll $v0, $v0, 2
/* 00D4C 80A7F1AC 0322C821 */ addu $t9, $t9, $v0
/* 00D50 80A7F1B0 8F397328 */ lw $t9, %lo(D_80A87328)($t9)
/* 00D54 80A7F1B4 AFA2002C */ sw $v0, 0x002C($sp)
/* 00D58 80A7F1B8 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00D5C 80A7F1BC 0320F809 */ jalr $ra, $t9
/* 00D60 80A7F1C0 00000000 */ nop
/* 00D64 80A7F1C4 8FA2002C */ lw $v0, 0x002C($sp)
/* 00D68 80A7F1C8 3C1980A8 */ lui $t9, %hi(D_80A87330) ## $t9 = 80A80000
/* 00D6C 80A7F1CC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D70 80A7F1D0 0322C821 */ addu $t9, $t9, $v0
/* 00D74 80A7F1D4 8F397330 */ lw $t9, %lo(D_80A87330)($t9)
/* 00D78 80A7F1D8 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00D7C 80A7F1DC 0320F809 */ jalr $ra, $t9
/* 00D80 80A7F1E0 00000000 */ nop
/* 00D84 80A7F1E4 0C00B55C */ jal Actor_Kill
/* 00D88 80A7F1E8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00D8C 80A7F1EC 1000003E */ beq $zero, $zero, .L80A7F2E8
/* 00D90 80A7F1F0 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00D94 80A7F1F4 3C014416 */ lui $at, 0x4416 ## $at = 44160000
.L80A7F1F8:
/* 00D98 80A7F1F8 44813000 */ mtc1 $at, $f6 ## $f6 = 600.00
/* 00D9C 80A7F1FC C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090
/* 00DA0 80A7F200 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00DA4 80A7F204 26050150 */ addiu $a1, $s0, 0x0150 ## $a1 = 00000150
/* 00DA8 80A7F208 4606203C */ c.lt.s $f4, $f6
/* 00DAC 80A7F20C 00000000 */ nop
/* 00DB0 80A7F210 45020035 */ bc1fl .L80A7F2E8
/* 00DB4 80A7F214 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00DB8 80A7F218 0C0189B7 */ jal Collider_CylinderUpdate
/* 00DBC 80A7F21C AFA5002C */ sw $a1, 0x002C($sp)
/* 00DC0 80A7F220 92080161 */ lbu $t0, 0x0161($s0) ## 00000161
/* 00DC4 80A7F224 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00DC8 80A7F228 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00DCC 80A7F22C 3109FFFD */ andi $t1, $t0, 0xFFFD ## $t1 = 00000000
/* 00DD0 80A7F230 A2090161 */ sb $t1, 0x0161($s0) ## 00000161
/* 00DD4 80A7F234 02212821 */ addu $a1, $s1, $at
/* 00DD8 80A7F238 AFA50028 */ sw $a1, 0x0028($sp)
/* 00DDC 80A7F23C 8FA6002C */ lw $a2, 0x002C($sp)
/* 00DE0 80A7F240 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 00DE4 80A7F244 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00DE8 80A7F248 3C0143C8 */ lui $at, 0x43C8 ## $at = 43C80000
/* 00DEC 80A7F24C 44815000 */ mtc1 $at, $f10 ## $f10 = 400.00
/* 00DF0 80A7F250 C6080090 */ lwc1 $f8, 0x0090($s0) ## 00000090
/* 00DF4 80A7F254 8FA50028 */ lw $a1, 0x0028($sp)
/* 00DF8 80A7F258 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00DFC 80A7F25C 460A403C */ c.lt.s $f8, $f10
/* 00E00 80A7F260 00000000 */ nop
/* 00E04 80A7F264 45020020 */ bc1fl .L80A7F2E8
/* 00E08 80A7F268 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00E0C 80A7F26C 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 00E10 80A7F270 8FA6002C */ lw $a2, 0x002C($sp)
/* 00E14 80A7F274 3C0142B4 */ lui $at, 0x42B4 ## $at = 42B40000
/* 00E18 80A7F278 44819000 */ mtc1 $at, $f18 ## $f18 = 90.00
/* 00E1C 80A7F27C C6100090 */ lwc1 $f16, 0x0090($s0) ## 00000090
/* 00E20 80A7F280 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00E24 80A7F284 87AA0032 */ lh $t2, 0x0032($sp)
/* 00E28 80A7F288 4612803C */ c.lt.s $f16, $f18
/* 00E2C 80A7F28C 00000000 */ nop
/* 00E30 80A7F290 45020015 */ bc1fl .L80A7F2E8
/* 00E34 80A7F294 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00E38 80A7F298 1541000B */ bne $t2, $at, .L80A7F2C8
/* 00E3C 80A7F29C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E40 80A7F2A0 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00E44 80A7F2A4 44812000 */ mtc1 $at, $f4 ## $f4 = 20.00
/* 00E48 80A7F2A8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00E4C 80A7F2AC 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00E50 80A7F2B0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00E54 80A7F2B4 3C0742A0 */ lui $a3, 0x42A0 ## $a3 = 42A00000
/* 00E58 80A7F2B8 0C00BD0D */ jal func_8002F434
/* 00E5C 80A7F2BC E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00E60 80A7F2C0 10000009 */ beq $zero, $zero, .L80A7F2E8
/* 00E64 80A7F2C4 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A7F2C8:
/* 00E68 80A7F2C8 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00E6C 80A7F2CC 44813000 */ mtc1 $at, $f6 ## $f6 = 10.00
/* 00E70 80A7F2D0 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00E74 80A7F2D4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00E78 80A7F2D8 3C074248 */ lui $a3, 0x4248 ## $a3 = 42480000
/* 00E7C 80A7F2DC 0C00BD0D */ jal func_8002F434
/* 00E80 80A7F2E0 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00E84 80A7F2E4 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A7F2E8:
/* 00E88 80A7F2E8 8FB0001C */ lw $s0, 0x001C($sp)
/* 00E8C 80A7F2EC 8FB10020 */ lw $s1, 0x0020($sp)
/* 00E90 80A7F2F0 03E00008 */ jr $ra
/* 00E94 80A7F2F4 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000

View file

@ -1,10 +0,0 @@
glabel func_80A7F2F8
/* 00E98 80A7F2F8 8C980004 */ lw $t8, 0x0004($a0) ## 00000004
/* 00E9C 80A7F2FC 3C0E80A8 */ lui $t6, %hi(func_80A7F31C) ## $t6 = 80A80000
/* 00EA0 80A7F300 25CEF31C */ addiu $t6, $t6, %lo(func_80A7F31C) ## $t6 = 80A7F31C
/* 00EA4 80A7F304 240FFFFF */ addiu $t7, $zero, 0xFFFF ## $t7 = FFFFFFFF
/* 00EA8 80A7F308 37190010 */ ori $t9, $t8, 0x0010 ## $t9 = 00000010
/* 00EAC 80A7F30C AC8E014C */ sw $t6, 0x014C($a0) ## 0000014C
/* 00EB0 80A7F310 A08F0003 */ sb $t7, 0x0003($a0) ## 00000003
/* 00EB4 80A7F314 03E00008 */ jr $ra
/* 00EB8 80A7F318 AC990004 */ sw $t9, 0x0004($a0) ## 00000004

View file

@ -1,55 +0,0 @@
glabel func_80A7F31C
/* 00EBC 80A7F31C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00EC0 80A7F320 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00EC4 80A7F324 AFB00020 */ sw $s0, 0x0020($sp)
/* 00EC8 80A7F328 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00ECC 80A7F32C 0C00BD68 */ jal Actor_HasNoParent
/* 00ED0 80A7F330 AFA5002C */ sw $a1, 0x002C($sp)
/* 00ED4 80A7F334 10400027 */ beq $v0, $zero, .L80A7F3D4
/* 00ED8 80A7F338 8FAE002C */ lw $t6, 0x002C($sp)
/* 00EDC 80A7F33C 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 00EE0 80A7F340 3C0F0001 */ lui $t7, 0x0001 ## $t7 = 00010000
/* 00EE4 80A7F344 01EE7821 */ addu $t7, $t7, $t6
/* 00EE8 80A7F348 81EF1CBC */ lb $t7, 0x1CBC($t7) ## 00011CBC
/* 00EEC 80A7F34C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00EF0 80A7F350 30580001 */ andi $t8, $v0, 0x0001 ## $t8 = 00000000
/* 00EF4 80A7F354 17010008 */ bne $t8, $at, .L80A7F378
/* 00EF8 80A7F358 A20F0003 */ sb $t7, 0x0003($s0) ## 00000003
/* 00EFC 80A7F35C 0002CA83 */ sra $t9, $v0, 10
/* 00F00 80A7F360 00024983 */ sra $t1, $v0, 6
/* 00F04 80A7F364 312A0003 */ andi $t2, $t1, 0x0003 ## $t2 = 00000000
/* 00F08 80A7F368 3328003C */ andi $t0, $t9, 0x003C ## $t0 = 00000000
/* 00F0C 80A7F36C 010A2825 */ or $a1, $t0, $t2 ## $a1 = 00000000
/* 00F10 80A7F370 0C00B2DD */ jal Flags_SetSwitch
/* 00F14 80A7F374 8FA4002C */ lw $a0, 0x002C($sp)
.L80A7F378:
/* 00F18 80A7F378 0C29FCFA */ jal func_80A7F3E8
/* 00F1C 80A7F37C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F20 80A7F380 0C29FB58 */ jal func_80A7ED60
/* 00F24 80A7F384 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F28 80A7F388 860B001C */ lh $t3, 0x001C($s0) ## 0000001C
/* 00F2C 80A7F38C 3C0580A8 */ lui $a1, %hi(D_80A7FA28) ## $a1 = 80A80000
/* 00F30 80A7F390 2604005C */ addiu $a0, $s0, 0x005C ## $a0 = 0000005C
/* 00F34 80A7F394 316C0001 */ andi $t4, $t3, 0x0001 ## $t4 = 00000000
/* 00F38 80A7F398 000C6880 */ sll $t5, $t4, 2
/* 00F3C 80A7F39C 00AD2821 */ addu $a1, $a1, $t5
/* 00F40 80A7F3A0 0C29FB65 */ jal func_80A7ED94
/* 00F44 80A7F3A4 8CA5FA28 */ lw $a1, %lo(D_80A7FA28)($a1)
/* 00F48 80A7F3A8 0C00B5FB */ jal func_8002D7EC
/* 00F4C 80A7F3AC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00F50 80A7F3B0 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00F54 80A7F3B4 240E00C5 */ addiu $t6, $zero, 0x00C5 ## $t6 = 000000C5
/* 00F58 80A7F3B8 AFAE0014 */ sw $t6, 0x0014($sp)
/* 00F5C 80A7F3BC 8FA4002C */ lw $a0, 0x002C($sp)
/* 00F60 80A7F3C0 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00F64 80A7F3C4 3C0640F0 */ lui $a2, 0x40F0 ## $a2 = 40F00000
/* 00F68 80A7F3C8 3C07420C */ lui $a3, 0x420C ## $a3 = 420C0000
/* 00F6C 80A7F3CC 0C00B92D */ jal func_8002E4B4
/* 00F70 80A7F3D0 E7A40010 */ swc1 $f4, 0x0010($sp)
.L80A7F3D4:
/* 00F74 80A7F3D4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00F78 80A7F3D8 8FB00020 */ lw $s0, 0x0020($sp)
/* 00F7C 80A7F3DC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00F80 80A7F3E0 03E00008 */ jr $ra
/* 00F84 80A7F3E4 00000000 */ nop

View file

@ -1,84 +0,0 @@
glabel func_80A7F3E8
/* 00F88 80A7F3E8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00F8C 80A7F3EC AFB00018 */ sw $s0, 0x0018($sp)
/* 00F90 80A7F3F0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00F94 80A7F3F4 AFBF001C */ sw $ra, 0x001C($sp)
/* 00F98 80A7F3F8 0C01DE1C */ jal Math_Sins
## sins?
/* 00F9C 80A7F3FC 84840032 */ lh $a0, 0x0032($a0) ## 00000032
/* 00FA0 80A7F400 C6040068 */ lwc1 $f4, 0x0068($s0) ## 00000068
/* 00FA4 80A7F404 86040032 */ lh $a0, 0x0032($s0) ## 00000032
/* 00FA8 80A7F408 46040182 */ mul.s $f6, $f0, $f4
/* 00FAC 80A7F40C 0C01DE0D */ jal Math_Coss
## coss?
/* 00FB0 80A7F410 E606005C */ swc1 $f6, 0x005C($s0) ## 0000005C
/* 00FB4 80A7F414 C6080068 */ lwc1 $f8, 0x0068($s0) ## 00000068
/* 00FB8 80A7F418 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 00FBC 80A7F41C 46080282 */ mul.s $f10, $f0, $f8
/* 00FC0 80A7F420 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000
/* 00FC4 80A7F424 15E00019 */ bne $t7, $zero, .L80A7F48C
/* 00FC8 80A7F428 E60A0064 */ swc1 $f10, 0x0064($s0) ## 00000064
/* 00FCC 80A7F42C 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00FD0 80A7F430 00000000 */ nop
/* 00FD4 80A7F434 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00FD8 80A7F438 44818000 */ mtc1 $at, $f16 ## $f16 = 0.50
/* 00FDC 80A7F43C 3C01467A */ lui $at, 0x467A ## $at = 467A0000
/* 00FE0 80A7F440 44812000 */ mtc1 $at, $f4 ## $f4 = 16000.00
/* 00FE4 80A7F444 46100481 */ sub.s $f18, $f0, $f16
/* 00FE8 80A7F448 3C0180A8 */ lui $at, %hi(D_80A7F9F0) ## $at = 80A80000
/* 00FEC 80A7F44C 46049182 */ mul.s $f6, $f18, $f4
/* 00FF0 80A7F450 4600320D */ trunc.w.s $f8, $f6
/* 00FF4 80A7F454 44194000 */ mfc1 $t9, $f8
/* 00FF8 80A7F458 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00FFC 80A7F45C A439F9F0 */ sh $t9, %lo(D_80A7F9F0)($at)
/* 01000 80A7F460 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 01004 80A7F464 44815000 */ mtc1 $at, $f10 ## $f10 = 0.50
/* 01008 80A7F468 3C014516 */ lui $at, 0x4516 ## $at = 45160000
/* 0100C 80A7F46C 44819000 */ mtc1 $at, $f18 ## $f18 = 2400.00
/* 01010 80A7F470 460A0401 */ sub.s $f16, $f0, $f10
/* 01014 80A7F474 3C0180A8 */ lui $at, %hi(D_80A7F9F4) ## $at = 80A80000
/* 01018 80A7F478 46128102 */ mul.s $f4, $f16, $f18
/* 0101C 80A7F47C 4600218D */ trunc.w.s $f6, $f4
/* 01020 80A7F480 44093000 */ mfc1 $t1, $f6
/* 01024 80A7F484 10000019 */ beq $zero, $zero, .L80A7F4EC
/* 01028 80A7F488 A429F9F4 */ sh $t1, %lo(D_80A7F9F4)($at)
.L80A7F48C:
/* 0102C 80A7F48C 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 01030 80A7F490 00000000 */ nop
/* 01034 80A7F494 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 01038 80A7F498 44814000 */ mtc1 $at, $f8 ## $f8 = 0.50
/* 0103C 80A7F49C 3C0145FA */ lui $at, 0x45FA ## $at = 45FA0000
/* 01040 80A7F4A0 44818000 */ mtc1 $at, $f16 ## $f16 = 8000.00
/* 01044 80A7F4A4 46080281 */ sub.s $f10, $f0, $f8
/* 01048 80A7F4A8 3C0180A8 */ lui $at, %hi(D_80A7F9F0) ## $at = 80A80000
/* 0104C 80A7F4AC 46105482 */ mul.s $f18, $f10, $f16
/* 01050 80A7F4B0 4600910D */ trunc.w.s $f4, $f18
/* 01054 80A7F4B4 440B2000 */ mfc1 $t3, $f4
/* 01058 80A7F4B8 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 0105C 80A7F4BC A42BF9F0 */ sh $t3, %lo(D_80A7F9F0)($at)
/* 01060 80A7F4C0 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 01064 80A7F4C4 44813000 */ mtc1 $at, $f6 ## $f6 = 0.50
/* 01068 80A7F4C8 3C0144C8 */ lui $at, 0x44C8 ## $at = 44C80000
/* 0106C 80A7F4CC 44815000 */ mtc1 $at, $f10 ## $f10 = 1600.00
/* 01070 80A7F4D0 46060201 */ sub.s $f8, $f0, $f6
/* 01074 80A7F4D4 3C0180A8 */ lui $at, %hi(D_80A7F9F4) ## $at = 80A80000
/* 01078 80A7F4D8 460A4402 */ mul.s $f16, $f8, $f10
/* 0107C 80A7F4DC 4600848D */ trunc.w.s $f18, $f16
/* 01080 80A7F4E0 440D9000 */ mfc1 $t5, $f18
/* 01084 80A7F4E4 00000000 */ nop
/* 01088 80A7F4E8 A42DF9F4 */ sh $t5, %lo(D_80A7F9F4)($at)
.L80A7F4EC:
/* 0108C 80A7F4EC 3C0F80A8 */ lui $t7, %hi(func_80A7F514) ## $t7 = 80A80000
/* 01090 80A7F4F0 240E00F0 */ addiu $t6, $zero, 0x00F0 ## $t6 = 000000F0
/* 01094 80A7F4F4 25EFF514 */ addiu $t7, $t7, %lo(func_80A7F514) ## $t7 = 80A7F514
/* 01098 80A7F4F8 A20E00AE */ sb $t6, 0x00AE($s0) ## 000000AE
/* 0109C 80A7F4FC AE0F014C */ sw $t7, 0x014C($s0) ## 0000014C
/* 010A0 80A7F500 8FBF001C */ lw $ra, 0x001C($sp)
/* 010A4 80A7F504 8FB00018 */ lw $s0, 0x0018($sp)
/* 010A8 80A7F508 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 010AC 80A7F50C 03E00008 */ jr $ra
/* 010B0 80A7F510 00000000 */ nop

View file

@ -1,232 +0,0 @@
glabel func_80A7F514
/* 010B4 80A7F514 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 010B8 80A7F518 AFBF0024 */ sw $ra, 0x0024($sp)
/* 010BC 80A7F51C AFB10020 */ sw $s1, 0x0020($sp)
/* 010C0 80A7F520 AFB0001C */ sw $s0, 0x001C($sp)
/* 010C4 80A7F524 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 010C8 80A7F528 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 010CC 80A7F52C 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 010D0 80A7F530 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000
/* 010D4 80A7F534 A7AF004A */ sh $t7, 0x004A($sp)
/* 010D8 80A7F538 94820088 */ lhu $v0, 0x0088($a0) ## 00000088
/* 010DC 80A7F53C 30580009 */ andi $t8, $v0, 0x0009 ## $t8 = 00000000
/* 010E0 80A7F540 13000049 */ beq $t8, $zero, .L80A7F668
/* 010E4 80A7F544 30480040 */ andi $t0, $v0, 0x0040 ## $t0 = 00000000
/* 010E8 80A7F548 0C29FB3E */ jal func_80A7ECF8
/* 010EC 80A7F54C 00000000 */ nop
/* 010F0 80A7F550 87A2004A */ lh $v0, 0x004A($sp)
/* 010F4 80A7F554 3C1980A8 */ lui $t9, %hi(D_80A87328) ## $t9 = 80A80000
/* 010F8 80A7F558 27397328 */ addiu $t9, $t9, %lo(D_80A87328) ## $t9 = 80A87328
/* 010FC 80A7F55C 00021080 */ sll $v0, $v0, 2
/* 01100 80A7F560 00591821 */ addu $v1, $v0, $t9
/* 01104 80A7F564 8C790000 */ lw $t9, 0x0000($v1) ## 00000000
/* 01108 80A7F568 AFA3002C */ sw $v1, 0x002C($sp)
/* 0110C 80A7F56C AFA20030 */ sw $v0, 0x0030($sp)
/* 01110 80A7F570 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01114 80A7F574 0320F809 */ jalr $ra, $t9
/* 01118 80A7F578 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 0111C 80A7F57C 96080088 */ lhu $t0, 0x0088($s0) ## 00000088
/* 01120 80A7F580 87A2004A */ lh $v0, 0x004A($sp)
/* 01124 80A7F584 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 01128 80A7F588 31090020 */ andi $t1, $t0, 0x0020 ## $t1 = 00000000
/* 0112C 80A7F58C 15200011 */ bne $t1, $zero, .L80A7F5D4
/* 01130 80A7F590 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 01134 80A7F594 3C0680A8 */ lui $a2, %hi(D_80A84AD4) ## $a2 = 80A80000
/* 01138 80A7F598 00025040 */ sll $t2, $v0, 1
/* 0113C 80A7F59C 3C0780A8 */ lui $a3, %hi(D_80A7FA30) ## $a3 = 80A80000
/* 01140 80A7F5A0 00EA3821 */ addu $a3, $a3, $t2
/* 01144 80A7F5A4 00C23021 */ addu $a2, $a2, $v0
/* 01148 80A7F5A8 90C64AD4 */ lbu $a2, %lo(D_80A84AD4)($a2)
/* 0114C 80A7F5AC 0C01AEB6 */ jal Audio_PlaySoundAtPosition
/* 01150 80A7F5B0 94E7FA30 */ lhu $a3, %lo(D_80A7FA30)($a3)
/* 01154 80A7F5B4 8FAB0030 */ lw $t3, 0x0030($sp)
/* 01158 80A7F5B8 3C1980A8 */ lui $t9, %hi(D_80A87330) ## $t9 = 80A80000
/* 0115C 80A7F5BC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01160 80A7F5C0 032BC821 */ addu $t9, $t9, $t3
/* 01164 80A7F5C4 8F397330 */ lw $t9, %lo(D_80A87330)($t9)
/* 01168 80A7F5C8 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 0116C 80A7F5CC 0320F809 */ jalr $ra, $t9
/* 01170 80A7F5D0 00000000 */ nop
.L80A7F5D4:
/* 01174 80A7F5D4 8FAC002C */ lw $t4, 0x002C($sp)
/* 01178 80A7F5D8 3C0D80A8 */ lui $t5, %hi(D_80A8732C) ## $t5 = 80A80000
/* 0117C 80A7F5DC 25AD732C */ addiu $t5, $t5, %lo(D_80A8732C) ## $t5 = 80A8732C
/* 01180 80A7F5E0 158D001D */ bne $t4, $t5, .L80A7F658
/* 01184 80A7F5E4 00000000 */ nop
/* 01188 80A7F5E8 862E07A0 */ lh $t6, 0x07A0($s1) ## 000007A0
/* 0118C 80A7F5EC 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 01190 80A7F5F0 000E7880 */ sll $t7, $t6, 2
/* 01194 80A7F5F4 022FC021 */ addu $t8, $s1, $t7
/* 01198 80A7F5F8 0C024BE2 */ jal Quake_Add
/* 0119C 80A7F5FC 8F040790 */ lw $a0, 0x0790($t8) ## 00000790
/* 011A0 80A7F600 00022400 */ sll $a0, $v0, 16
/* 011A4 80A7F604 AFA20040 */ sw $v0, 0x0040($sp)
/* 011A8 80A7F608 00042403 */ sra $a0, $a0, 16
/* 011AC 80A7F60C 0C024B6B */ jal Quake_SetSpeed
/* 011B0 80A7F610 2405C350 */ addiu $a1, $zero, 0xC350 ## $a1 = FFFFC350
/* 011B4 80A7F614 87B10042 */ lh $s1, 0x0042($sp)
/* 011B8 80A7F618 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 011BC 80A7F61C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 011C0 80A7F620 00112400 */ sll $a0, $s1, 16
/* 011C4 80A7F624 00042403 */ sra $a0, $a0, 16
/* 011C8 80A7F628 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 011CC 80A7F62C 0C024B9C */ jal Quake_SetQuakeValues
/* 011D0 80A7F630 AFA00010 */ sw $zero, 0x0010($sp)
/* 011D4 80A7F634 00112400 */ sll $a0, $s1, 16
/* 011D8 80A7F638 00042403 */ sra $a0, $a0, 16
/* 011DC 80A7F63C 0C024B7C */ jal Quake_SetCountdown
/* 011E0 80A7F640 24050007 */ addiu $a1, $zero, 0x0007 ## $a1 = 00000007
/* 011E4 80A7F644 C60C008C */ lwc1 $f12, 0x008C($s0) ## 0000008C
/* 011E8 80A7F648 240500FF */ addiu $a1, $zero, 0x00FF ## $a1 = 000000FF
/* 011EC 80A7F64C 24060014 */ addiu $a2, $zero, 0x0014 ## $a2 = 00000014
/* 011F0 80A7F650 0C02A800 */ jal func_800AA000
/* 011F4 80A7F654 24070096 */ addiu $a3, $zero, 0x0096 ## $a3 = 00000096
.L80A7F658:
/* 011F8 80A7F658 0C00B55C */ jal Actor_Kill
/* 011FC 80A7F65C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01200 80A7F660 10000082 */ beq $zero, $zero, .L80A7F86C
/* 01204 80A7F664 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A7F668:
/* 01208 80A7F668 51000053 */ beql $t0, $zero, .L80A7F7B8
/* 0120C 80A7F66C 260400BC */ addiu $a0, $s0, 0x00BC ## $a0 = 000000BC
/* 01210 80A7F670 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 01214 80A7F674 2409015E */ addiu $t1, $zero, 0x015E ## $t1 = 0000015E
/* 01218 80A7F678 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 0121C 80A7F67C E7A40034 */ swc1 $f4, 0x0034($sp)
/* 01220 80A7F680 C6080084 */ lwc1 $f8, 0x0084($s0) ## 00000084
/* 01224 80A7F684 C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028
/* 01228 80A7F688 27A50034 */ addiu $a1, $sp, 0x0034 ## $a1 = FFFFFFE4
/* 0122C 80A7F68C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 01230 80A7F690 46083280 */ add.s $f10, $f6, $f8
/* 01234 80A7F694 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 01238 80A7F698 E7AA0038 */ swc1 $f10, 0x0038($sp)
/* 0123C 80A7F69C C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
/* 01240 80A7F6A0 AFA90014 */ sw $t1, 0x0014($sp)
/* 01244 80A7F6A4 AFA00010 */ sw $zero, 0x0010($sp)
/* 01248 80A7F6A8 0C00A527 */ jal EffectSsGSplash_Spawn
/* 0124C 80A7F6AC E7B0003C */ swc1 $f16, 0x003C($sp)
/* 01250 80A7F6B0 87AA004A */ lh $t2, 0x004A($sp)
/* 01254 80A7F6B4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 01258 80A7F6B8 27A50034 */ addiu $a1, $sp, 0x0034 ## $a1 = FFFFFFE4
/* 0125C 80A7F6BC 15400017 */ bne $t2, $zero, .L80A7F71C
/* 01260 80A7F6C0 2406012C */ addiu $a2, $zero, 0x012C ## $a2 = 0000012C
/* 01264 80A7F6C4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 01268 80A7F6C8 27A50034 */ addiu $a1, $sp, 0x0034 ## $a1 = FFFFFFE4
/* 0126C 80A7F6CC 24060096 */ addiu $a2, $zero, 0x0096 ## $a2 = 00000096
/* 01270 80A7F6D0 2407028A */ addiu $a3, $zero, 0x028A ## $a3 = 0000028A
/* 01274 80A7F6D4 0C00A511 */ jal EffectSsGRipple_Spawn
/* 01278 80A7F6D8 AFA00010 */ sw $zero, 0x0010($sp)
/* 0127C 80A7F6DC 240B0004 */ addiu $t3, $zero, 0x0004 ## $t3 = 00000004
/* 01280 80A7F6E0 AFAB0010 */ sw $t3, 0x0010($sp)
/* 01284 80A7F6E4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 01288 80A7F6E8 27A50034 */ addiu $a1, $sp, 0x0034 ## $a1 = FFFFFFE4
/* 0128C 80A7F6EC 24060190 */ addiu $a2, $zero, 0x0190 ## $a2 = 00000190
/* 01290 80A7F6F0 0C00A511 */ jal EffectSsGRipple_Spawn
/* 01294 80A7F6F4 24070320 */ addiu $a3, $zero, 0x0320 ## $a3 = 00000320
/* 01298 80A7F6F8 24190008 */ addiu $t9, $zero, 0x0008 ## $t9 = 00000008
/* 0129C 80A7F6FC AFB90010 */ sw $t9, 0x0010($sp)
/* 012A0 80A7F700 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 012A4 80A7F704 27A50034 */ addiu $a1, $sp, 0x0034 ## $a1 = FFFFFFE4
/* 012A8 80A7F708 240601F4 */ addiu $a2, $zero, 0x01F4 ## $a2 = 000001F4
/* 012AC 80A7F70C 0C00A511 */ jal EffectSsGRipple_Spawn
/* 012B0 80A7F710 2407044C */ addiu $a3, $zero, 0x044C ## $a3 = 0000044C
/* 012B4 80A7F714 10000013 */ beq $zero, $zero, .L80A7F764
/* 012B8 80A7F718 3C01C0C0 */ lui $at, 0xC0C0 ## $at = C0C00000
.L80A7F71C:
/* 012BC 80A7F71C 240702BC */ addiu $a3, $zero, 0x02BC ## $a3 = 000002BC
/* 012C0 80A7F720 0C00A511 */ jal EffectSsGRipple_Spawn
/* 012C4 80A7F724 AFA00010 */ sw $zero, 0x0010($sp)
/* 012C8 80A7F728 240C0004 */ addiu $t4, $zero, 0x0004 ## $t4 = 00000004
/* 012CC 80A7F72C AFAC0010 */ sw $t4, 0x0010($sp)
/* 012D0 80A7F730 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 012D4 80A7F734 27A50034 */ addiu $a1, $sp, 0x0034 ## $a1 = FFFFFFE4
/* 012D8 80A7F738 240601F4 */ addiu $a2, $zero, 0x01F4 ## $a2 = 000001F4
/* 012DC 80A7F73C 0C00A511 */ jal EffectSsGRipple_Spawn
/* 012E0 80A7F740 24070384 */ addiu $a3, $zero, 0x0384 ## $a3 = 00000384
/* 012E4 80A7F744 240D0008 */ addiu $t5, $zero, 0x0008 ## $t5 = 00000008
/* 012E8 80A7F748 AFAD0010 */ sw $t5, 0x0010($sp)
/* 012EC 80A7F74C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 012F0 80A7F750 27A50034 */ addiu $a1, $sp, 0x0034 ## $a1 = FFFFFFE4
/* 012F4 80A7F754 240601F4 */ addiu $a2, $zero, 0x01F4 ## $a2 = 000001F4
/* 012F8 80A7F758 0C00A511 */ jal EffectSsGRipple_Spawn
/* 012FC 80A7F75C 24070514 */ addiu $a3, $zero, 0x0514 ## $a3 = 00000514
/* 01300 80A7F760 3C01C0C0 */ lui $at, 0xC0C0 ## $at = C0C00000
.L80A7F764:
/* 01304 80A7F764 44819000 */ mtc1 $at, $f18 ## $f18 = -6.00
/* 01308 80A7F768 3C0280A8 */ lui $v0, %hi(D_80A7F9F0) ## $v0 = 80A80000
/* 0130C 80A7F76C 3C0380A8 */ lui $v1, %hi(D_80A7F9F4) ## $v1 = 80A80000
/* 01310 80A7F770 E6120070 */ swc1 $f18, 0x0070($s0) ## 00000070
/* 01314 80A7F774 2463F9F4 */ addiu $v1, $v1, %lo(D_80A7F9F4) ## $v1 = 80A7F9F4
/* 01318 80A7F778 2442F9F0 */ addiu $v0, $v0, %lo(D_80A7F9F0) ## $v0 = 80A7F9F0
/* 0131C 80A7F77C 844E0000 */ lh $t6, 0x0000($v0) ## 80A7F9F0
/* 01320 80A7F780 84780000 */ lh $t8, 0x0000($v1) ## 80A7F9F4
/* 01324 80A7F784 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 01328 80A7F788 000E7883 */ sra $t7, $t6, 2
/* 0132C 80A7F78C 00184083 */ sra $t0, $t8, 2
/* 01330 80A7F790 A44F0000 */ sh $t7, 0x0000($v0) ## 80A7F9F0
/* 01334 80A7F794 A4680000 */ sh $t0, 0x0000($v1) ## 80A7F9F4
/* 01338 80A7F798 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 0133C 80A7F79C 24060028 */ addiu $a2, $zero, 0x0028 ## $a2 = 00000028
/* 01340 80A7F7A0 0C01AEB6 */ jal Audio_PlaySoundAtPosition
/* 01344 80A7F7A4 240728C5 */ addiu $a3, $zero, 0x28C5 ## $a3 = 000028C5
/* 01348 80A7F7A8 96090088 */ lhu $t1, 0x0088($s0) ## 00000088
/* 0134C 80A7F7AC 312AFFBF */ andi $t2, $t1, 0xFFBF ## $t2 = 00000000
/* 01350 80A7F7B0 A60A0088 */ sh $t2, 0x0088($s0) ## 00000088
/* 01354 80A7F7B4 260400BC */ addiu $a0, $s0, 0x00BC ## $a0 = 000000BC
.L80A7F7B8:
/* 01358 80A7F7B8 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 0135C 80A7F7BC 0C01DE80 */ jal Math_ApproxF
/* 01360 80A7F7C0 3C064000 */ lui $a2, 0x4000 ## $a2 = 40000000
/* 01364 80A7F7C4 0C29FB58 */ jal func_80A7ED60
/* 01368 80A7F7C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0136C 80A7F7CC 87AB004A */ lh $t3, 0x004A($sp)
/* 01370 80A7F7D0 3C0580A8 */ lui $a1, %hi(D_80A7FA28) ## $a1 = 80A80000
/* 01374 80A7F7D4 2604005C */ addiu $a0, $s0, 0x005C ## $a0 = 0000005C
/* 01378 80A7F7D8 000BC880 */ sll $t9, $t3, 2
/* 0137C 80A7F7DC 00B92821 */ addu $a1, $a1, $t9
/* 01380 80A7F7E0 0C29FB65 */ jal func_80A7ED94
/* 01384 80A7F7E4 8CA5FA28 */ lw $a1, %lo(D_80A7FA28)($a1)
/* 01388 80A7F7E8 0C00B5FB */ jal func_8002D7EC
/* 0138C 80A7F7EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 01390 80A7F7F0 3C0D80A8 */ lui $t5, %hi(D_80A7F9F0) ## $t5 = 80A80000
/* 01394 80A7F7F4 85ADF9F0 */ lh $t5, %lo(D_80A7F9F0)($t5)
/* 01398 80A7F7F8 860C00B4 */ lh $t4, 0x00B4($s0) ## 000000B4
/* 0139C 80A7F7FC 3C1880A8 */ lui $t8, %hi(D_80A7F9F4) ## $t8 = 80A80000
/* 013A0 80A7F800 860F00B6 */ lh $t7, 0x00B6($s0) ## 000000B6
/* 013A4 80A7F804 018D7021 */ addu $t6, $t4, $t5
/* 013A8 80A7F808 A60E00B4 */ sh $t6, 0x00B4($s0) ## 000000B4
/* 013AC 80A7F80C 8718F9F4 */ lh $t8, %lo(D_80A7F9F4)($t8)
/* 013B0 80A7F810 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 013B4 80A7F814 240900C5 */ addiu $t1, $zero, 0x00C5 ## $t1 = 000000C5
/* 013B8 80A7F818 01F84021 */ addu $t0, $t7, $t8
/* 013BC 80A7F81C A60800B6 */ sh $t0, 0x00B6($s0) ## 000000B6
/* 013C0 80A7F820 AFA90014 */ sw $t1, 0x0014($sp)
/* 013C4 80A7F824 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 013C8 80A7F828 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 013CC 80A7F82C 3C0640F0 */ lui $a2, 0x40F0 ## $a2 = 40F00000
/* 013D0 80A7F830 3C07420C */ lui $a3, 0x420C ## $a3 = 420C0000
/* 013D4 80A7F834 0C00B92D */ jal func_8002E4B4
/* 013D8 80A7F838 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 013DC 80A7F83C 26060150 */ addiu $a2, $s0, 0x0150 ## $a2 = 00000150
/* 013E0 80A7F840 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000150
/* 013E4 80A7F844 AFA60030 */ sw $a2, 0x0030($sp)
/* 013E8 80A7F848 0C0189B7 */ jal Collider_CylinderUpdate
/* 013EC 80A7F84C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 013F0 80A7F850 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 013F4 80A7F854 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 013F8 80A7F858 8FA60030 */ lw $a2, 0x0030($sp)
/* 013FC 80A7F85C 02212821 */ addu $a1, $s1, $at
/* 01400 80A7F860 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 01404 80A7F864 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 01408 80A7F868 8FBF0024 */ lw $ra, 0x0024($sp)
.L80A7F86C:
/* 0140C 80A7F86C 8FB0001C */ lw $s0, 0x001C($sp)
/* 01410 80A7F870 8FB10020 */ lw $s1, 0x0020($sp)
/* 01414 80A7F874 03E00008 */ jr $ra
/* 01418 80A7F878 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000

View file

@ -1,13 +0,0 @@
glabel func_80A7F8A0
/* 01440 80A7F8A0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 01444 80A7F8A4 AFA40018 */ sw $a0, 0x0018($sp)
/* 01448 80A7F8A8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 0144C 80A7F8AC AFBF0014 */ sw $ra, 0x0014($sp)
/* 01450 80A7F8B0 3C050501 */ lui $a1, 0x0501 ## $a1 = 05010000
/* 01454 80A7F8B4 0C00D498 */ jal Gfx_DrawDListOpa
/* 01458 80A7F8B8 24A5A880 */ addiu $a1, $a1, 0xA880 ## $a1 = 0500A880
/* 0145C 80A7F8BC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 01460 80A7F8C0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 01464 80A7F8C4 03E00008 */ jr $ra
/* 01468 80A7F8C8 00000000 */ nop

View file

@ -1,72 +0,0 @@
.rdata
glabel D_80A87428
.asciz "../z_en_ishi.c"
.balign 4
glabel D_80A87438
.asciz "../z_en_ishi.c"
.balign 4
glabel D_80A87448
.asciz "../z_en_ishi.c"
.balign 4
.text
glabel func_80A7F8CC
/* 0146C 80A7F8CC 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 01470 80A7F8D0 AFBF001C */ sw $ra, 0x001C($sp)
/* 01474 80A7F8D4 AFB00018 */ sw $s0, 0x0018($sp)
/* 01478 80A7F8D8 AFA40048 */ sw $a0, 0x0048($sp)
/* 0147C 80A7F8DC AFA5004C */ sw $a1, 0x004C($sp)
/* 01480 80A7F8E0 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 01484 80A7F8E4 3C0680A8 */ lui $a2, %hi(D_80A87428) ## $a2 = 80A80000
/* 01488 80A7F8E8 24C67428 */ addiu $a2, $a2, %lo(D_80A87428) ## $a2 = 80A87428
/* 0148C 80A7F8EC 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC
/* 01490 80A7F8F0 2407041A */ addiu $a3, $zero, 0x041A ## $a3 = 0000041A
/* 01494 80A7F8F4 0C031AB1 */ jal Graph_OpenDisps
/* 01498 80A7F8F8 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 0149C 80A7F8FC 8FAF004C */ lw $t7, 0x004C($sp)
/* 014A0 80A7F900 0C024F46 */ jal func_80093D18
/* 014A4 80A7F904 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
/* 014A8 80A7F908 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 014AC 80A7F90C 3C19DA38 */ lui $t9, 0xDA38 ## $t9 = DA380000
/* 014B0 80A7F910 37390003 */ ori $t9, $t9, 0x0003 ## $t9 = DA380003
/* 014B4 80A7F914 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 014B8 80A7F918 AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0
/* 014BC 80A7F91C AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 014C0 80A7F920 8FA8004C */ lw $t0, 0x004C($sp)
/* 014C4 80A7F924 3C0580A8 */ lui $a1, %hi(D_80A87438) ## $a1 = 80A80000
/* 014C8 80A7F928 24A57438 */ addiu $a1, $a1, %lo(D_80A87438) ## $a1 = 80A87438
/* 014CC 80A7F92C 8D040000 */ lw $a0, 0x0000($t0) ## 00000000
/* 014D0 80A7F930 2406041F */ addiu $a2, $zero, 0x041F ## $a2 = 0000041F
/* 014D4 80A7F934 0C0346A2 */ jal Matrix_NewMtx
/* 014D8 80A7F938 AFA20030 */ sw $v0, 0x0030($sp)
/* 014DC 80A7F93C 8FA30030 */ lw $v1, 0x0030($sp)
/* 014E0 80A7F940 3C0AFA00 */ lui $t2, 0xFA00 ## $t2 = FA000000
/* 014E4 80A7F944 240BFFFF */ addiu $t3, $zero, 0xFFFF ## $t3 = FFFFFFFF
/* 014E8 80A7F948 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 014EC 80A7F94C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 014F0 80A7F950 3C0E0501 */ lui $t6, 0x0501 ## $t6 = 05010000
/* 014F4 80A7F954 25CEA3B8 */ addiu $t6, $t6, 0xA3B8 ## $t6 = 0500A3B8
/* 014F8 80A7F958 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
/* 014FC 80A7F95C AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0
/* 01500 80A7F960 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 01504 80A7F964 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
/* 01508 80A7F968 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 0150C 80A7F96C 3C0DDE00 */ lui $t5, 0xDE00 ## $t5 = DE000000
/* 01510 80A7F970 3C0680A8 */ lui $a2, %hi(D_80A87448) ## $a2 = 80A80000
/* 01514 80A7F974 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 01518 80A7F978 AE0C02C0 */ sw $t4, 0x02C0($s0) ## 000002C0
/* 0151C 80A7F97C AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 01520 80A7F980 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 01524 80A7F984 8FAF004C */ lw $t7, 0x004C($sp)
/* 01528 80A7F988 24C67448 */ addiu $a2, $a2, %lo(D_80A87448) ## $a2 = 80A87448
/* 0152C 80A7F98C 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFEC
/* 01530 80A7F990 24070426 */ addiu $a3, $zero, 0x0426 ## $a3 = 00000426
/* 01534 80A7F994 0C031AD5 */ jal Graph_CloseDisps
/* 01538 80A7F998 8DE50000 */ lw $a1, 0x0000($t7) ## 00000000
/* 0153C 80A7F99C 8FBF001C */ lw $ra, 0x001C($sp)
/* 01540 80A7F9A0 8FB00018 */ lw $s0, 0x0018($sp)
/* 01544 80A7F9A4 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 01548 80A7F9A8 03E00008 */ jr $ra
/* 0154C 80A7F9AC 00000000 */ nop

File diff suppressed because one or more lines are too long

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_80A87480
.incbin "baserom/ovl_En_Ishi", 0x9020, 0x00000200

3
spec
View file

@ -2606,8 +2606,7 @@ endseg
beginseg
name "ovl_En_Ishi"
include "build/src/overlays/actors/ovl_En_Ishi/z_en_ishi.o"
include "build/data/overlays/actors/z_en_ishi.data.o"
include "build/data/overlays/actors/z_en_ishi.reloc.o"
include "build/src/overlays/actors/ovl_En_Ishi/ovl_En_Ishi_reloc.o"
endseg
beginseg

View file

@ -1,4 +1,13 @@
/*
* File: z_en_ishi.c
* Overlay: ovl_En_Ishi
* Description: Small and large gray rocks
*/
#include "z_en_ishi.h"
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "vt.h"
#define FLAGS 0x00800000
@ -9,7 +18,27 @@ void EnIshi_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EnIshi_Update(Actor* thisx, GlobalContext* globalCtx);
void EnIshi_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void EnIshi_SetupWait(EnIshi* this);
void EnIshi_Wait(EnIshi* this, GlobalContext* globalCtx);
void EnIshi_SetupLiftedUp(EnIshi* this);
void EnIshi_LiftedUp(EnIshi* this, GlobalContext* globalCtx);
void EnIshi_SetupFly(EnIshi* this);
void EnIshi_Fly(EnIshi* this, GlobalContext* globalCtx);
void EnIshi_SpawnFragmentsSmall(EnIshi* this, GlobalContext* globalCtx);
void EnIshi_SpawnFragmentsLarge(EnIshi* this, GlobalContext* globalCtx);
void EnIshi_SpawnDustSmall(EnIshi* this, GlobalContext* globalCtx);
void EnIshi_SpawnDustLarge(EnIshi* this, GlobalContext* globalCtx);
extern Gfx D_0500A3B8[]; // Large gray rock
extern Gfx D_0500A5E8[]; // Large gray rock fragments
extern Gfx D_0500A880[]; // Small gray rock
typedef void (*EnIshiEffectSpawnFunc)(struct EnIshi*, GlobalContext*);
typedef void (*EnIshiDrawFunc)(struct EnIshi*, GlobalContext*);
static s16 sRotSpeedX = 0;
static s16 sRotSpeedY = 0;
const ActorInit En_Ishi_InitVars = {
ACTOR_EN_ISHI,
ACTORTYPE_PROP,
@ -21,47 +50,427 @@ const ActorInit En_Ishi_InitVars = {
(ActorFunc)EnIshi_Update,
(ActorFunc)EnIshi_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7E460.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7E4D8.s")
static f32 sRockScales[] = { 0.1f, 0.4f };
static f32 D_80A7FA20[] = { 58.0f, 80.0f };
static f32 D_80A7FA28[] = { 0.0f, 0.005f };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7E5A8.s")
// the sizes of these arrays are very large and take up way more space than it needs to.
// coincidentally the sizes are the same as the ID for NA_SE_EV_ROCK_BROKEN, which may explain a mistake that could
// have been made here
static u16 sBreakSounds[0x2852] = { NA_SE_EV_ROCK_BROKEN, NA_SE_EV_WALL_BROKEN };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7E824.s")
static u8 sBreakSoundDurations[0x2852] = { 20, 40 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7EB10.s")
static EnIshiEffectSpawnFunc sFragmentSpawnFuncs[] = { EnIshi_SpawnFragmentsSmall, EnIshi_SpawnFragmentsLarge };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7EC04.s")
static EnIshiEffectSpawnFunc sDustSpawnFuncs[] = { EnIshi_SpawnDustSmall, EnIshi_SpawnDustLarge };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7ECF8.s")
static ColliderCylinderInit sCylinderInits[] = {
{
{ COLTYPE_UNK12, 0x00, 0x0D, 0x39, 0x20, COLSHAPE_CYLINDER },
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x4FC1FFFE, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
{ 10, 18, -2, { 0, 0, 0 } },
},
{
{ COLTYPE_UNK12, 0x00, 0x0D, 0x39, 0x20, COLSHAPE_CYLINDER },
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x4FC1FFF6, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
{ 55, 70, 0, { 0, 0, 0 } },
}
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7ED60.s")
static CollisionCheckInfoInit sColChkInfoInit = { 0, 12, 60, 0xFF };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7ED94.s")
void EnIshi_InitCollider(Actor* thisx, GlobalContext* globalCtx) {
EnIshi* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7EE1C.s")
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInits[this->actor.params & 1]);
Collider_CylinderUpdate(&this->actor, &this->collider);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/EnIshi_Init.s")
s32 EnIshi_SnapToFloor(EnIshi* this, GlobalContext* globalCtx, f32 arg2) {
CollisionPoly* sp34;
Vec3f sp28;
UNK_TYPE sp24;
f32 temp_f0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/EnIshi_Destroy.s")
sp28.x = this->actor.posRot.pos.x;
sp28.y = this->actor.posRot.pos.y + 30.0f;
sp28.z = this->actor.posRot.pos.z;
temp_f0 = func_8003C9A4(&globalCtx->colCtx, &sp34, &sp24, &this->actor, &sp28);
if (temp_f0 > -32000.0f) {
this->actor.posRot.pos.y = temp_f0 + arg2;
Math_Vec3f_Copy(&this->actor.initPosRot.pos, &this->actor.posRot.pos);
return true;
} else {
osSyncPrintf(VT_COL(YELLOW, BLACK));
// Translation: Failure attaching to ground
osSyncPrintf("地面に付着失敗(%s %d)\n", "../z_en_ishi.c", 388);
osSyncPrintf(VT_RST);
return false;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7F098.s")
void EnIshi_SpawnFragmentsSmall(EnIshi* this, GlobalContext* globalCtx) {
static s16 scales[] = { 16, 13, 11, 9, 7, 5 };
s32 pad;
Vec3f velocity;
Vec3f pos;
s16 phi_v0;
s32 i;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7F0A8.s")
for (i = 0; i < ARRAY_COUNT(scales); i++) {
pos.x = this->actor.posRot.pos.x + (Math_Rand_ZeroOne() - 0.5f) * 8.0f;
pos.y = this->actor.posRot.pos.y + (Math_Rand_ZeroOne() * 5.0f) + 5.0f;
pos.z = this->actor.posRot.pos.z + (Math_Rand_ZeroOne() - 0.5f) * 8.0f;
Math_Vec3f_Copy(&velocity, &this->actor.velocity);
if (this->actor.bgCheckFlags & 1) {
velocity.x *= 0.8f;
velocity.y *= -0.8f;
velocity.z *= 0.8f;
} else if (this->actor.bgCheckFlags & 8) {
velocity.x *= -0.8f;
velocity.y *= 0.8f;
velocity.z *= -0.8f;
}
velocity.x += (Math_Rand_ZeroOne() - 0.5f) * 11.0f;
velocity.y += Math_Rand_ZeroOne() * 6.0f;
velocity.z += (Math_Rand_ZeroOne() - 0.5f) * 11.0f;
if (Math_Rand_ZeroOne() < 0.5f) {
phi_v0 = 65;
} else {
phi_v0 = 33;
}
EffectSsKakera_Spawn(globalCtx, &pos, &velocity, &pos, -420, phi_v0, 30, 5, 0, scales[i], 3, 10, 40,
KAKERA_COLOR_NONE, OBJECT_GAMEPLAY_FIELD_KEEP, D_0500A880);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7F2F8.s")
void EnIshi_SpawnFragmentsLarge(EnIshi* this, GlobalContext* globalCtx) {
static s16 scales[] = { 145, 135, 120, 100, 70, 50, 45, 40, 35 };
Actor* thisx = &this->actor;
Vec3f velocity;
Vec3f pos;
s16 angle = 0x1000;
s32 i;
f32 rand;
s16 phi_v0;
s16 phi_v1;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7F31C.s")
for (i = 0; i < ARRAY_COUNT(scales); i++) {
angle += 0x4E20;
rand = Math_Rand_ZeroOne() * 10.0f;
pos.x = this->actor.posRot.pos.x + (Math_Sins(angle) * rand);
pos.y = this->actor.posRot.pos.y + (Math_Rand_ZeroOne() * 40.0f) + 5.0f;
pos.z = this->actor.posRot.pos.z + (Math_Coss(angle) * rand);
Math_Vec3f_Copy(&velocity, &thisx->velocity);
if (thisx->bgCheckFlags & 1) {
velocity.x *= 0.9f;
velocity.y *= -0.8f;
velocity.z *= 0.9f;
} else if (thisx->bgCheckFlags & 8) {
velocity.x *= -0.9f;
velocity.y *= 0.8f;
velocity.z *= -0.9f;
}
rand = Math_Rand_ZeroOne() * 10.0f;
velocity.x += rand * Math_Sins(angle);
velocity.y += (Math_Rand_ZeroOne() * 4.0f) + ((Math_Rand_ZeroOne() * i) * 0.7f);
velocity.z += rand * Math_Coss(angle);
if (i == 0) {
phi_v0 = 41;
phi_v1 = -450;
} else if (i < 4) {
phi_v0 = 37;
phi_v1 = -380;
} else {
phi_v0 = 69;
phi_v1 = -320;
}
EffectSsKakera_Spawn(globalCtx, &pos, &velocity, &this->actor.posRot.pos, phi_v1, phi_v0, 30, 5, 0, scales[i],
5, 2, 70, KAKERA_COLOR_WHITE, OBJECT_GAMEPLAY_FIELD_KEEP, D_0500A5E8);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7F3E8.s")
void EnIshi_SpawnDustSmall(EnIshi* this, GlobalContext* globalCtx) {
Vec3f pos;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7F514.s")
Math_Vec3f_Copy(&pos, &this->actor.posRot.pos);
if (this->actor.bgCheckFlags & 1) {
pos.x += 2.0f * this->actor.velocity.x;
pos.y -= 2.0f * this->actor.velocity.y;
pos.z += 2.0f * this->actor.velocity.z;
} else if (this->actor.bgCheckFlags & 8) {
pos.x -= 2.0f * this->actor.velocity.x;
pos.y += 2.0f * this->actor.velocity.y;
pos.z -= 2.0f * this->actor.velocity.z;
}
func_80033480(globalCtx, &pos, 60.0f, 3, 0x50, 0x3C, 1);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/EnIshi_Update.s")
void EnIshi_SpawnDustLarge(EnIshi* this, GlobalContext* globalCtx) {
Vec3f pos;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7F8A0.s")
Math_Vec3f_Copy(&pos, &this->actor.posRot.pos);
if (this->actor.bgCheckFlags & 1) {
pos.x += 2.0f * this->actor.velocity.x;
pos.y -= 2.0f * this->actor.velocity.y;
pos.z += 2.0f * this->actor.velocity.z;
} else if (this->actor.bgCheckFlags & 8) {
pos.x -= 2.0f * this->actor.velocity.x;
pos.y += 2.0f * this->actor.velocity.y;
pos.z -= 2.0f * this->actor.velocity.z;
}
func_80033480(globalCtx, &pos, 140.0f, 0xA, 0xB4, 0x5A, 1);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/func_80A7F8CC.s")
void EnIshi_DropCollectible(EnIshi* this, GlobalContext* globalCtx) {
s16 dropParams;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ishi/EnIshi_Draw.s")
if ((this->actor.params & 1) == ROCK_SMALL) {
dropParams = (this->actor.params >> 8) & 0xF;
if (dropParams >= 0xD) {
dropParams = 0;
}
Item_DropCollectibleRandom(globalCtx, NULL, &this->actor.posRot.pos, dropParams << 4);
}
}
void EnIshi_Fall(EnIshi* this) {
this->actor.velocity.y += this->actor.gravity;
if (this->actor.velocity.y < this->actor.minVelocityY) {
this->actor.velocity.y = this->actor.minVelocityY;
}
}
void func_80A7ED94(Vec3f* arg0, f32 arg1) {
arg1 += ((Math_Rand_ZeroOne() * 0.2f) - 0.1f) * arg1;
arg0->x -= arg0->x * arg1;
arg0->y -= arg0->y * arg1;
arg0->z -= arg0->z * arg1;
}
void EnIshi_SpawnBugs(EnIshi* this, GlobalContext* globalCtx) {
s32 i;
for (i = 0; i < 3; i++) {
Actor* bug =
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_INSECT, this->actor.posRot.pos.x,
this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0, Math_Rand_ZeroOne() * 0xFFFF, 0, 1);
if (bug == NULL) {
break;
}
}
}
static InitChainEntry sInitChains[][5] = {
{
ICHAIN_F32_DIV1000(gravity, -1200, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(minVelocityY, -20000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 1200, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 150, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 400, ICHAIN_STOP),
},
{
ICHAIN_F32_DIV1000(gravity, -2500, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(minVelocityY, -20000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 2000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 250, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 500, ICHAIN_STOP),
},
};
void EnIshi_Init(Actor* thisx, GlobalContext* globalCtx) {
EnIshi* this = THIS;
s16 type = this->actor.params & 1;
Actor_ProcessInitChain(&this->actor, sInitChains[type]);
if (globalCtx->csCtx.state != 0) {
this->actor.uncullZoneForward += 1000.0f;
}
if (this->actor.shape.rot.y == 0) {
this->actor.shape.rot.y = this->actor.posRot.rot.y = Math_Rand_ZeroFloat(0x10000);
}
Actor_SetScale(&this->actor, sRockScales[type]);
EnIshi_InitCollider(&this->actor, globalCtx);
if ((type == ROCK_LARGE) &&
Flags_GetSwitch(globalCtx, ((this->actor.params >> 0xA) & 0x3C) | ((this->actor.params >> 6) & 3))) {
Actor_Kill(&this->actor);
return;
}
func_80061ED4(&this->actor.colChkInfo, NULL, &sColChkInfoInit);
this->actor.shape.unk_08 = D_80A7FA20[type];
if (!((this->actor.params >> 5) & 1) && !EnIshi_SnapToFloor(this, globalCtx, 0.0f)) {
Actor_Kill(&this->actor);
return;
}
EnIshi_SetupWait(this);
}
void EnIshi_Destroy(Actor* thisx, GlobalContext* globalCtx) {
Collider_DestroyCylinder(globalCtx, &THIS->collider);
}
void EnIshi_SetupWait(EnIshi* this) {
this->actionFunc = EnIshi_Wait;
}
void EnIshi_Wait(EnIshi* this, GlobalContext* globalCtx) {
static u16 liftSounds[] = { NA_SE_PL_PULL_UP_ROCK, NA_SE_PL_PULL_UP_BIGROCK };
s32 pad;
s16 type = this->actor.params & 1;
if (Actor_HasParent(&this->actor, globalCtx)) {
EnIshi_SetupLiftedUp(this);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 20, liftSounds[type]);
if ((this->actor.params >> 4) & 1) {
EnIshi_SpawnBugs(this, globalCtx);
}
} else if (this->collider.base.acFlags & 2 && (type == ROCK_SMALL) &&
this->collider.body.acHitItem->toucher.flags & 0x40000048) {
EnIshi_DropCollectible(this, globalCtx);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, sBreakSoundDurations[type], sBreakSounds[type]);
sFragmentSpawnFuncs[type](this, globalCtx);
sDustSpawnFuncs[type](this, globalCtx);
Actor_Kill(&this->actor);
} else if (this->actor.xzDistFromLink < 600.0f) {
Collider_CylinderUpdate(&this->actor, &this->collider);
this->collider.base.acFlags &= ~2;
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
if (this->actor.xzDistFromLink < 400.0f) {
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
if (this->actor.xzDistFromLink < 90.0f) {
if (type == ROCK_LARGE) {
func_8002F434(&this->actor, globalCtx, 0, 80.0f, 20.0f);
} else {
func_8002F434(&this->actor, globalCtx, 0, 50.0f, 10.0f);
}
}
}
}
}
void EnIshi_SetupLiftedUp(EnIshi* this) {
this->actionFunc = EnIshi_LiftedUp;
this->actor.room = -1;
this->actor.flags |= 0x10;
}
void EnIshi_LiftedUp(EnIshi* this, GlobalContext* globalCtx) {
if (Actor_HasNoParent(&this->actor, globalCtx)) {
this->actor.room = globalCtx->roomCtx.curRoom.num;
if ((this->actor.params & 1) == ROCK_LARGE) {
Flags_SetSwitch(globalCtx, ((this->actor.params >> 0xA) & 0x3C) | ((this->actor.params >> 6) & 3));
}
EnIshi_SetupFly(this);
EnIshi_Fall(this);
func_80A7ED94(&this->actor.velocity, D_80A7FA28[this->actor.params & 1]);
func_8002D7EC(&this->actor);
func_8002E4B4(globalCtx, &this->actor, 7.5f, 35.0f, 0.0f, 0xC5);
}
}
void EnIshi_SetupFly(EnIshi* this) {
this->actor.velocity.x = Math_Sins(this->actor.posRot.rot.y) * this->actor.speedXZ;
this->actor.velocity.z = Math_Coss(this->actor.posRot.rot.y) * this->actor.speedXZ;
if ((this->actor.params & 1) == ROCK_SMALL) {
sRotSpeedX = (Math_Rand_ZeroOne() - 0.5f) * 16000.0f;
sRotSpeedY = (Math_Rand_ZeroOne() - 0.5f) * 2400.0f;
} else {
sRotSpeedX = (Math_Rand_ZeroOne() - 0.5f) * 8000.0f;
sRotSpeedY = (Math_Rand_ZeroOne() - 0.5f) * 1600.0f;
}
this->actor.colChkInfo.mass = 240;
this->actionFunc = EnIshi_Fly;
}
void EnIshi_Fly(EnIshi* this, GlobalContext* globalCtx) {
s32 pad;
s16 type = this->actor.params & 1;
s32 pad2;
s32 quakeIdx;
Vec3f contactPos;
if (this->actor.bgCheckFlags & 9) {
EnIshi_DropCollectible(this, globalCtx);
sFragmentSpawnFuncs[type](this, globalCtx);
if (!(this->actor.bgCheckFlags & 0x20)) {
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, sBreakSoundDurations[type],
sBreakSounds[type]);
sDustSpawnFuncs[type](this, globalCtx);
}
if (type == ROCK_LARGE) {
quakeIdx = Quake_Add(ACTIVE_CAM, 3);
Quake_SetSpeed(quakeIdx, -0x3CB0);
Quake_SetQuakeValues(quakeIdx, 3, 0, 0, 0);
Quake_SetCountdown(quakeIdx, 7);
func_800AA000(this->actor.xyzDistFromLinkSq, 0xFF, 0x14, 0x96);
}
Actor_Kill(&this->actor);
return;
}
if (this->actor.bgCheckFlags & 0x40) {
contactPos.x = this->actor.posRot.pos.x;
contactPos.y = this->actor.posRot.pos.y + this->actor.waterY;
contactPos.z = this->actor.posRot.pos.z;
EffectSsGSplash_Spawn(globalCtx, &contactPos, 0, 0, 0, 350);
if (type == ROCK_SMALL) {
EffectSsGRipple_Spawn(globalCtx, &contactPos, 150, 650, 0);
EffectSsGRipple_Spawn(globalCtx, &contactPos, 400, 800, 4);
EffectSsGRipple_Spawn(globalCtx, &contactPos, 500, 1100, 8);
} else {
EffectSsGRipple_Spawn(globalCtx, &contactPos, 300, 700, 0);
EffectSsGRipple_Spawn(globalCtx, &contactPos, 500, 900, 4);
EffectSsGRipple_Spawn(globalCtx, &contactPos, 500, 1300, 8);
}
this->actor.minVelocityY = -6.0f;
sRotSpeedX >>= 2;
sRotSpeedY >>= 2;
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 40, NA_SE_EV_DIVE_INTO_WATER_L);
this->actor.bgCheckFlags &= ~0x40;
}
Math_ApproxF(&this->actor.shape.unk_08, 0.0f, 2.0f);
EnIshi_Fall(this);
func_80A7ED94(&this->actor.velocity, D_80A7FA28[type]);
func_8002D7EC(&this->actor);
this->actor.shape.rot.x += sRotSpeedX;
this->actor.shape.rot.y += sRotSpeedY;
func_8002E4B4(globalCtx, &this->actor, 7.5f, 35.0f, 0.0f, 0xC5);
Collider_CylinderUpdate(&this->actor, &this->collider);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
void EnIshi_Update(Actor* thisx, GlobalContext* globalCtx) {
EnIshi* this = THIS;
this->actionFunc(this, globalCtx);
}
void EnIshi_DrawSmall(EnIshi* this, GlobalContext* globalCtx) {
Gfx_DrawDListOpa(globalCtx, D_0500A880);
}
void EnIshi_DrawLarge(EnIshi* this, GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ishi.c", 1050);
func_80093D18(globalCtx->state.gfxCtx);
gSPMatrix(oGfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_ishi.c", 1055),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(oGfxCtx->polyOpa.p++, 0, 0, 255, 255, 255, 255);
gSPDisplayList(oGfxCtx->polyOpa.p++, D_0500A3B8);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_ishi.c", 1062);
}
static EnIshiDrawFunc sDrawFuncs[] = { EnIshi_DrawSmall, EnIshi_DrawLarge };
void EnIshi_Draw(Actor* thisx, GlobalContext* globalCtx) {
EnIshi* this = THIS;
sDrawFuncs[this->actor.params & 1](this, globalCtx);
}

View file

@ -4,11 +4,19 @@
#include "ultra64.h"
#include "global.h"
typedef enum {
/* 0x00 */ ROCK_SMALL,
/* 0x01 */ ROCK_LARGE
} EnIshiType;
struct EnIshi;
typedef void (*EnIshiActionFunc)(struct EnIshi*, GlobalContext*);
typedef struct EnIshi {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x50];
/* 0x014C */ EnIshiActionFunc actionFunc;
/* 0x0150 */ ColliderCylinder collider;
} EnIshi; // size = 0x019C
extern const ActorInit En_Ishi_InitVars;

View file

@ -1152,6 +1152,11 @@ D_06000A60 = 0x06000A60;
D_04035590 = 0x04035590;
D_040341FC = 0x040341FC;
// z_en_ishi
D_0500A3B8 = 0x0500A3B8;
D_0500A5E8 = 0x0500A5E8;
D_0500A880 = 0x0500A880;
// z_obj_dekujr
D_060030D0 = 0x060030D0;
D_060032D8 = 0x060032D8;