mirror of
https://github.com/zeldaret/oot.git
synced 2025-04-06 14:46:21 +00:00
Decompile En_Dha (#130)
* Decompile En_Dha * Removed original reloc data and fixed actor struct * Update z_en_dha.c - Removed unnecessary line breaks - Changed `colliderSphere` to `collider` and `colliderSphereItem` to `colliderItem` - Removed unnecessary & pointers - Renamed various functions * Update z_en_dha.h Changed collider names * Fixed all issues with `En_Dha` * Update src/overlays/actors/ovl_En_Dha/z_en_dha.c Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * Update src/overlays/actors/ovl_En_Dha/z_en_dha.c Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * Update src/overlays/actors/ovl_En_Dha/z_en_dha.c Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * Update src/overlays/actors/ovl_En_Dha/z_en_dha.c Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * Update src/overlays/actors/ovl_En_Dha/z_en_dha.c Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * Update src/overlays/actors/ovl_En_Dha/z_en_dha.c Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com> * All suggested changes applied * Update z_en_dha.c Fixed unresolved changes that were marked as resolved. Whoops! Co-authored-by: Zelllll <elijah@DESKTOP-QDIECM7.localdomain> Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
parent
b9999bbb13
commit
785011c33c
22 changed files with 386 additions and 1049 deletions
|
@ -1,11 +0,0 @@
|
|||
glabel EnDha_Destroy
|
||||
/* 00120 809EC9A0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00124 809EC9A4 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
|
||||
/* 00128 809EC9A8 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 0012C 809EC9AC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 00130 809EC9B0 0C016F32 */ jal Collider_DestroyJntSph
|
||||
/* 00134 809EC9B4 24C50200 */ addiu $a1, $a2, 0x0200 ## $a1 = 00000200
|
||||
/* 00138 809EC9B8 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 0013C 809EC9BC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00140 809EC9C0 03E00008 */ jr $ra
|
||||
/* 00144 809EC9C4 00000000 */ nop
|
|
@ -1,25 +0,0 @@
|
|||
glabel EnDha_Draw
|
||||
/* 00D50 809ED5D0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 00D54 809ED5D4 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 00D58 809ED5D8 AFA40028 */ sw $a0, 0x0028($sp)
|
||||
/* 00D5C 809ED5DC AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 00D60 809ED5E0 0C024F46 */ jal func_80093D18
|
||||
/* 00D64 809ED5E4 8CA40000 */ lw $a0, 0x0000($a1) ## 00000000
|
||||
/* 00D68 809ED5E8 8FA20028 */ lw $v0, 0x0028($sp)
|
||||
/* 00D6C 809ED5EC 3C0F809F */ lui $t7, %hi(func_809ED414) ## $t7 = 809F0000
|
||||
/* 00D70 809ED5F0 3C18809F */ lui $t8, %hi(func_809ED4B8) ## $t8 = 809F0000
|
||||
/* 00D74 809ED5F4 8C450150 */ lw $a1, 0x0150($v0) ## 00000150
|
||||
/* 00D78 809ED5F8 8C46016C */ lw $a2, 0x016C($v0) ## 0000016C
|
||||
/* 00D7C 809ED5FC 9047014E */ lbu $a3, 0x014E($v0) ## 0000014E
|
||||
/* 00D80 809ED600 2718D4B8 */ addiu $t8, $t8, %lo(func_809ED4B8) ## $t8 = 809ED4B8
|
||||
/* 00D84 809ED604 25EFD414 */ addiu $t7, $t7, %lo(func_809ED414) ## $t7 = 809ED414
|
||||
/* 00D88 809ED608 AFAF0010 */ sw $t7, 0x0010($sp)
|
||||
/* 00D8C 809ED60C AFB80014 */ sw $t8, 0x0014($sp)
|
||||
/* 00D90 809ED610 8FA4002C */ lw $a0, 0x002C($sp)
|
||||
/* 00D94 809ED614 0C0286B2 */ jal SkelAnime_DrawSV
|
||||
/* 00D98 809ED618 AFA20018 */ sw $v0, 0x0018($sp)
|
||||
/* 00D9C 809ED61C 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 00DA0 809ED620 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
/* 00DA4 809ED624 03E00008 */ jr $ra
|
||||
/* 00DA8 809ED628 00000000 */ nop
|
||||
/* 00DAC 809ED62C 00000000 */ nop
|
|
@ -1,73 +0,0 @@
|
|||
glabel EnDha_Init
|
||||
/* 00008 809EC888 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
|
||||
/* 0000C 809EC88C AFA5003C */ sw $a1, 0x003C($sp)
|
||||
/* 00010 809EC890 AFBF002C */ sw $ra, 0x002C($sp)
|
||||
/* 00014 809EC894 AFB00028 */ sw $s0, 0x0028($sp)
|
||||
/* 00018 809EC898 3C05809F */ lui $a1, %hi(D_809ED734) ## $a1 = 809F0000
|
||||
/* 0001C 809EC89C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00020 809EC8A0 0C01E037 */ jal Actor_ProcessInitChain
|
||||
|
||||
/* 00024 809EC8A4 24A5D734 */ addiu $a1, $a1, %lo(D_809ED734) ## $a1 = 809ED734
|
||||
/* 00028 809EC8A8 3C0E809F */ lui $t6, %hi(D_809ED650) ## $t6 = 809F0000
|
||||
/* 0002C 809EC8AC 25CED650 */ addiu $t6, $t6, %lo(D_809ED650) ## $t6 = 809ED650
|
||||
/* 00030 809EC8B0 AE0E0098 */ sw $t6, 0x0098($s0) ## 00000098
|
||||
/* 00034 809EC8B4 3C060600 */ lui $a2, 0x0600 ## $a2 = 06000000
|
||||
/* 00038 809EC8B8 3C070600 */ lui $a3, 0x0600 ## $a3 = 06000000
|
||||
/* 0003C 809EC8BC 260F0190 */ addiu $t7, $s0, 0x0190 ## $t7 = 00000190
|
||||
/* 00040 809EC8C0 261801A8 */ addiu $t8, $s0, 0x01A8 ## $t8 = 000001A8
|
||||
/* 00044 809EC8C4 24190004 */ addiu $t9, $zero, 0x0004 ## $t9 = 00000004
|
||||
/* 00048 809EC8C8 AFB90018 */ sw $t9, 0x0018($sp)
|
||||
/* 0004C 809EC8CC AFB80014 */ sw $t8, 0x0014($sp)
|
||||
/* 00050 809EC8D0 AFAF0010 */ sw $t7, 0x0010($sp)
|
||||
/* 00054 809EC8D4 24E715B0 */ addiu $a3, $a3, 0x15B0 ## $a3 = 060015B0
|
||||
/* 00058 809EC8D8 24C60BD8 */ addiu $a2, $a2, 0x0BD8 ## $a2 = 06000BD8
|
||||
/* 0005C 809EC8DC 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 00060 809EC8E0 0C0291BE */ jal SkelAnime_InitSV
|
||||
/* 00064 809EC8E4 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
|
||||
/* 00068 809EC8E8 3C068003 */ lui $a2, %hi(ActorShadow_DrawFunc_Teardrop)
|
||||
/* 0006C 809EC8EC 24C6B8C4 */ addiu $a2, %lo(ActorShadow_DrawFunc_Teardrop)
|
||||
/* 00070 809EC8F0 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
|
||||
/* 00074 809EC8F4 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
|
||||
/* 00078 809EC8F8 0C00AC78 */ jal ActorShape_Init
|
||||
|
||||
/* 0007C 809EC8FC 3C0742B4 */ lui $a3, 0x42B4 ## $a3 = 42B40000
|
||||
/* 00080 809EC900 8E080028 */ lw $t0, 0x0028($s0) ## 00000028
|
||||
/* 00084 809EC904 3C014248 */ lui $at, 0x4248 ## $at = 42480000
|
||||
/* 00088 809EC908 8E090024 */ lw $t1, 0x0024($s0) ## 00000024
|
||||
/* 0008C 809EC90C AE08003C */ sw $t0, 0x003C($s0) ## 0000003C
|
||||
/* 00090 809EC910 C604003C */ lwc1 $f4, 0x003C($s0) ## 0000003C
|
||||
/* 00094 809EC914 44813000 */ mtc1 $at, $f6 ## $f6 = 50.00
|
||||
/* 00098 809EC918 AE090038 */ sw $t1, 0x0038($s0) ## 00000038
|
||||
/* 0009C 809EC91C 8E09002C */ lw $t1, 0x002C($s0) ## 0000002C
|
||||
/* 000A0 809EC920 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 000A4 809EC924 240A00FE */ addiu $t2, $zero, 0x00FE ## $t2 = 000000FE
|
||||
/* 000A8 809EC928 240B0008 */ addiu $t3, $zero, 0x0008 ## $t3 = 00000008
|
||||
/* 000AC 809EC92C 240CC000 */ addiu $t4, $zero, 0xC000 ## $t4 = FFFFC000
|
||||
/* 000B0 809EC930 E608003C */ swc1 $f8, 0x003C($s0) ## 0000003C
|
||||
/* 000B4 809EC934 A20A00AE */ sb $t2, 0x00AE($s0) ## 000000AE
|
||||
/* 000B8 809EC938 A20B00AF */ sb $t3, 0x00AF($s0) ## 000000AF
|
||||
/* 000BC 809EC93C A60C01CE */ sh $t4, 0x01CE($s0) ## 000001CE
|
||||
/* 000C0 809EC940 26050200 */ addiu $a1, $s0, 0x0200 ## $a1 = 00000200
|
||||
/* 000C4 809EC944 AE090040 */ sw $t1, 0x0040($s0) ## 00000040
|
||||
/* 000C8 809EC948 AFA50030 */ sw $a1, 0x0030($sp)
|
||||
/* 000CC 809EC94C 0C016EFE */ jal Collider_InitJntSph
|
||||
/* 000D0 809EC950 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 000D4 809EC954 3C07809F */ lui $a3, %hi(D_809ED724) ## $a3 = 809F0000
|
||||
/* 000D8 809EC958 260D0220 */ addiu $t5, $s0, 0x0220 ## $t5 = 00000220
|
||||
/* 000DC 809EC95C 8FA50030 */ lw $a1, 0x0030($sp)
|
||||
/* 000E0 809EC960 AFAD0010 */ sw $t5, 0x0010($sp)
|
||||
/* 000E4 809EC964 24E7D724 */ addiu $a3, $a3, %lo(D_809ED724) ## $a3 = 809ED724
|
||||
/* 000E8 809EC968 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 000EC 809EC96C 0C017014 */ jal Collider_SetJntSph
|
||||
/* 000F0 809EC970 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 000F4 809EC974 8E0E0004 */ lw $t6, 0x0004($s0) ## 00000004
|
||||
/* 000F8 809EC978 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
|
||||
/* 000FC 809EC97C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00100 809EC980 01C17824 */ and $t7, $t6, $at
|
||||
/* 00104 809EC984 0C27B272 */ jal func_809EC9C8
|
||||
/* 00108 809EC988 AE0F0004 */ sw $t7, 0x0004($s0) ## 00000004
|
||||
/* 0010C 809EC98C 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 00110 809EC990 8FB00028 */ lw $s0, 0x0028($sp)
|
||||
/* 00114 809EC994 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
|
||||
/* 00118 809EC998 03E00008 */ jr $ra
|
||||
/* 0011C 809EC99C 00000000 */ nop
|
|
@ -1,52 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_809ED788
|
||||
.float 10000.0
|
||||
|
||||
.text
|
||||
glabel EnDha_Update
|
||||
/* 00AEC 809ED36C 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
|
||||
/* 00AF0 809ED370 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 00AF4 809ED374 AFB10020 */ sw $s1, 0x0020($sp)
|
||||
/* 00AF8 809ED378 AFB0001C */ sw $s0, 0x001C($sp)
|
||||
/* 00AFC 809ED37C 8C8E0118 */ lw $t6, 0x0118($a0) ## 00000118
|
||||
/* 00B00 809ED380 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00B04 809ED384 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
|
||||
/* 00B08 809ED388 15C00009 */ bne $t6, $zero, .L809ED3B0
|
||||
/* 00B0C 809ED38C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 00B10 809ED390 3C01809F */ lui $at, %hi(D_809ED788) ## $at = 809F0000
|
||||
/* 00B14 809ED394 C424D788 */ lwc1 $f4, %lo(D_809ED788)($at)
|
||||
/* 00B18 809ED398 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00B1C 809ED39C 240600A4 */ addiu $a2, $zero, 0x00A4 ## $a2 = 000000A4
|
||||
/* 00B20 809ED3A0 24070005 */ addiu $a3, $zero, 0x0005 ## $a3 = 00000005
|
||||
/* 00B24 809ED3A4 0C00D4FD */ jal Actor_FindNearby
|
||||
|
||||
/* 00B28 809ED3A8 E7A40010 */ swc1 $f4, 0x0010($sp)
|
||||
/* 00B2C 809ED3AC AE020118 */ sw $v0, 0x0118($s0) ## 00000118
|
||||
.L809ED3B0:
|
||||
/* 00B30 809ED3B0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00B34 809ED3B4 0C27B49F */ jal func_809ED27C
|
||||
/* 00B38 809ED3B8 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 00B3C 809ED3BC 8E1901C4 */ lw $t9, 0x01C4($s0) ## 000001C4
|
||||
/* 00B40 809ED3C0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00B44 809ED3C4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 00B48 809ED3C8 0320F809 */ jalr $ra, $t9
|
||||
/* 00B4C 809ED3CC 00000000 */ nop
|
||||
/* 00B50 809ED3D0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00B54 809ED3D4 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
||||
/* 00B58 809ED3D8 02212821 */ addu $a1, $s1, $at
|
||||
/* 00B5C 809ED3DC 26060200 */ addiu $a2, $s0, 0x0200 ## $a2 = 00000200
|
||||
/* 00B60 809ED3E0 AFA60028 */ sw $a2, 0x0028($sp)
|
||||
/* 00B64 809ED3E4 AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 00B68 809ED3E8 0C01767D */ jal CollisionCheck_SetAC
|
||||
## CollisionCheck_setAC
|
||||
/* 00B6C 809ED3EC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00B70 809ED3F0 8FA5002C */ lw $a1, 0x002C($sp)
|
||||
/* 00B74 809ED3F4 8FA60028 */ lw $a2, 0x0028($sp)
|
||||
/* 00B78 809ED3F8 0C017713 */ jal CollisionCheck_SetOC
|
||||
## CollisionCheck_setOT
|
||||
/* 00B7C 809ED3FC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00B80 809ED400 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 00B84 809ED404 8FB0001C */ lw $s0, 0x001C($sp)
|
||||
/* 00B88 809ED408 8FB10020 */ lw $s1, 0x0020($sp)
|
||||
/* 00B8C 809ED40C 03E00008 */ jr $ra
|
||||
/* 00B90 809ED410 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
|
|
@ -1,3 +0,0 @@
|
|||
glabel func_809EC880
|
||||
/* 00000 809EC880 03E00008 */ jr $ra
|
||||
/* 00004 809EC884 AC8501C4 */ sw $a1, 0x01C4($a0) ## 000001C4
|
|
@ -1,36 +0,0 @@
|
|||
glabel func_809EC9C8
|
||||
/* 00148 809EC9C8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 0014C 809EC9CC AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00150 809EC9D0 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
|
||||
/* 00154 809EC9D4 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
|
||||
/* 00158 809EC9D8 24A515B0 */ addiu $a1, $a1, 0x15B0 ## $a1 = 060015B0
|
||||
/* 0015C 809EC9DC AFA60018 */ sw $a2, 0x0018($sp)
|
||||
/* 00160 809EC9E0 0C0294BE */ jal SkelAnime_ChangeAnimDefaultRepeat
|
||||
/* 00164 809EC9E4 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
|
||||
/* 00168 809EC9E8 8FA60018 */ lw $a2, 0x0018($sp)
|
||||
/* 0016C 809EC9EC 0C03F66B */ jal Math_Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00170 809EC9F0 A0C001C0 */ sb $zero, 0x01C0($a2) ## 000001C0
|
||||
/* 00174 809EC9F4 3C014120 */ lui $at, 0x4120 ## $at = 41200000
|
||||
/* 00178 809EC9F8 44812000 */ mtc1 $at, $f4 ## $f4 = 10.00
|
||||
/* 0017C 809EC9FC 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
|
||||
/* 00180 809ECA00 44814000 */ mtc1 $at, $f8 ## $f8 = 5.00
|
||||
/* 00184 809ECA04 46040182 */ mul.s $f6, $f0, $f4
|
||||
/* 00188 809ECA08 8FA40018 */ lw $a0, 0x0018($sp)
|
||||
/* 0018C 809ECA0C 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
|
||||
/* 00190 809ECA10 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
|
||||
/* 00194 809ECA14 849800B6 */ lh $t8, 0x00B6($a0) ## 000000B6
|
||||
/* 00198 809ECA18 3C05809F */ lui $a1, %hi(func_809ECA50) ## $a1 = 809F0000
|
||||
/* 0019C 809ECA1C 24A5CA50 */ addiu $a1, $a1, %lo(func_809ECA50) ## $a1 = 809ECA50
|
||||
/* 001A0 809ECA20 46083280 */ add.s $f10, $f6, $f8
|
||||
/* 001A4 809ECA24 A4990018 */ sh $t9, 0x0018($a0) ## 00000018
|
||||
/* 001A8 809ECA28 E4920068 */ swc1 $f18, 0x0068($a0) ## 00000068
|
||||
/* 001AC 809ECA2C A4980032 */ sh $t8, 0x0032($a0) ## 00000032
|
||||
/* 001B0 809ECA30 4600540D */ trunc.w.s $f16, $f10
|
||||
/* 001B4 809ECA34 440F8000 */ mfc1 $t7, $f16
|
||||
/* 001B8 809ECA38 0C27B220 */ jal func_809EC880
|
||||
/* 001BC 809ECA3C A48F01C8 */ sh $t7, 0x01C8($a0) ## 000001C8
|
||||
/* 001C0 809ECA40 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 001C4 809ECA44 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 001C8 809ECA48 03E00008 */ jr $ra
|
||||
/* 001CC 809ECA4C 00000000 */ nop
|
|
@ -1,366 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_809ED780
|
||||
.float 1820.0
|
||||
|
||||
.text
|
||||
glabel func_809ECA50
|
||||
/* 001D0 809ECA50 27BDFF78 */ addiu $sp, $sp, 0xFF78 ## $sp = FFFFFF78
|
||||
/* 001D4 809ECA54 3C0F809F */ lui $t7, %hi(D_809ED740) ## $t7 = 809F0000
|
||||
/* 001D8 809ECA58 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 001DC 809ECA5C AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 001E0 809ECA60 AFA5008C */ sw $a1, 0x008C($sp)
|
||||
/* 001E4 809ECA64 25EFD740 */ addiu $t7, $t7, %lo(D_809ED740) ## $t7 = 809ED740
|
||||
/* 001E8 809ECA68 8DF90000 */ lw $t9, 0x0000($t7) ## 809ED740
|
||||
/* 001EC 809ECA6C 27AE007C */ addiu $t6, $sp, 0x007C ## $t6 = FFFFFFF4
|
||||
/* 001F0 809ECA70 8DF80004 */ lw $t8, 0x0004($t7) ## 809ED744
|
||||
/* 001F4 809ECA74 ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFF4
|
||||
/* 001F8 809ECA78 8DF90008 */ lw $t9, 0x0008($t7) ## 809ED748
|
||||
/* 001FC 809ECA7C 3C09809F */ lui $t1, %hi(D_809ED74C) ## $t1 = 809F0000
|
||||
/* 00200 809ECA80 2529D74C */ addiu $t1, $t1, %lo(D_809ED74C) ## $t1 = 809ED74C
|
||||
/* 00204 809ECA84 ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFF8
|
||||
/* 00208 809ECA88 ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFFC
|
||||
/* 0020C 809ECA8C 8D2B0000 */ lw $t3, 0x0000($t1) ## 809ED74C
|
||||
/* 00210 809ECA90 27A80070 */ addiu $t0, $sp, 0x0070 ## $t0 = FFFFFFE8
|
||||
/* 00214 809ECA94 8D2A0004 */ lw $t2, 0x0004($t1) ## 809ED750
|
||||
/* 00218 809ECA98 AD0B0000 */ sw $t3, 0x0000($t0) ## FFFFFFE8
|
||||
/* 0021C 809ECA9C 8D2B0008 */ lw $t3, 0x0008($t1) ## 809ED754
|
||||
/* 00220 809ECAA0 3C0D809F */ lui $t5, %hi(D_809ED758) ## $t5 = 809F0000
|
||||
/* 00224 809ECAA4 25ADD758 */ addiu $t5, $t5, %lo(D_809ED758) ## $t5 = 809ED758
|
||||
/* 00228 809ECAA8 AD0A0004 */ sw $t2, 0x0004($t0) ## FFFFFFEC
|
||||
/* 0022C 809ECAAC AD0B0008 */ sw $t3, 0x0008($t0) ## FFFFFFF0
|
||||
/* 00230 809ECAB0 8DAF0000 */ lw $t7, 0x0000($t5) ## 809ED758
|
||||
/* 00234 809ECAB4 27AC0064 */ addiu $t4, $sp, 0x0064 ## $t4 = FFFFFFDC
|
||||
/* 00238 809ECAB8 8DAE0004 */ lw $t6, 0x0004($t5) ## 809ED75C
|
||||
/* 0023C 809ECABC AD8F0000 */ sw $t7, 0x0000($t4) ## FFFFFFDC
|
||||
/* 00240 809ECAC0 8DAF0008 */ lw $t7, 0x0008($t5) ## 809ED760
|
||||
/* 00244 809ECAC4 AD8E0004 */ sw $t6, 0x0004($t4) ## FFFFFFE0
|
||||
/* 00248 809ECAC8 27B9004C */ addiu $t9, $sp, 0x004C ## $t9 = FFFFFFC4
|
||||
/* 0024C 809ECACC AD8F0008 */ sw $t7, 0x0008($t4) ## FFFFFFE4
|
||||
/* 00250 809ECAD0 8FB8008C */ lw $t8, 0x008C($sp)
|
||||
/* 00254 809ECAD4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00258 809ECAD8 8F061C44 */ lw $a2, 0x1C44($t8) ## 00001C44
|
||||
/* 0025C 809ECADC 8CC90024 */ lw $t1, 0x0024($a2) ## 00000024
|
||||
/* 00260 809ECAE0 AF290000 */ sw $t1, 0x0000($t9) ## FFFFFFC4
|
||||
/* 00264 809ECAE4 8CC80028 */ lw $t0, 0x0028($a2) ## 00000028
|
||||
/* 00268 809ECAE8 AF280004 */ sw $t0, 0x0004($t9) ## FFFFFFC8
|
||||
/* 0026C 809ECAEC 8CC9002C */ lw $t1, 0x002C($a2) ## 0000002C
|
||||
/* 00270 809ECAF0 AF290008 */ sw $t1, 0x0008($t9) ## FFFFFFCC
|
||||
/* 00274 809ECAF4 84C400B6 */ lh $a0, 0x00B6($a2) ## 000000B6
|
||||
/* 00278 809ECAF8 0C01DE1C */ jal Math_Sins
|
||||
## sins?
|
||||
/* 0027C 809ECAFC AFA60060 */ sw $a2, 0x0060($sp)
|
||||
/* 00280 809ECB00 3C01C0A0 */ lui $at, 0xC0A0 ## $at = C0A00000
|
||||
/* 00284 809ECB04 44813000 */ mtc1 $at, $f6 ## $f6 = -5.00
|
||||
/* 00288 809ECB08 C7A4004C */ lwc1 $f4, 0x004C($sp)
|
||||
/* 0028C 809ECB0C 8FA60060 */ lw $a2, 0x0060($sp)
|
||||
/* 00290 809ECB10 46060202 */ mul.s $f8, $f0, $f6
|
||||
/* 00294 809ECB14 46082280 */ add.s $f10, $f4, $f8
|
||||
/* 00298 809ECB18 E7AA004C */ swc1 $f10, 0x004C($sp)
|
||||
/* 0029C 809ECB1C 0C01DE0D */ jal Math_Coss
|
||||
## coss?
|
||||
/* 002A0 809ECB20 84C400B6 */ lh $a0, 0x00B6($a2) ## 000000B6
|
||||
/* 002A4 809ECB24 3C01C0A0 */ lui $at, 0xC0A0 ## $at = C0A00000
|
||||
/* 002A8 809ECB28 44819000 */ mtc1 $at, $f18 ## $f18 = -5.00
|
||||
/* 002AC 809ECB2C C7B00054 */ lwc1 $f16, 0x0054($sp)
|
||||
/* 002B0 809ECB30 3C0A8016 */ lui $t2, %hi(gSaveContext+4)
|
||||
/* 002B4 809ECB34 46120182 */ mul.s $f6, $f0, $f18
|
||||
/* 002B8 809ECB38 8D4AE664 */ lw $t2, %lo(gSaveContext+4)($t2)
|
||||
/* 002BC 809ECB3C 8FA60060 */ lw $a2, 0x0060($sp)
|
||||
/* 002C0 809ECB40 C7A80050 */ lwc1 $f8, 0x0050($sp)
|
||||
/* 002C4 809ECB44 3C014260 */ lui $at, 0x4260 ## $at = 42600000
|
||||
/* 002C8 809ECB48 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
|
||||
/* 002CC 809ECB4C 260401D0 */ addiu $a0, $s0, 0x01D0 ## $a0 = 000001D0
|
||||
/* 002D0 809ECB50 46068100 */ add.s $f4, $f16, $f6
|
||||
/* 002D4 809ECB54 C7B00050 */ lwc1 $f16, 0x0050($sp)
|
||||
/* 002D8 809ECB58 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 002DC 809ECB5C 11400007 */ beq $t2, $zero, .L809ECB7C
|
||||
/* 002E0 809ECB60 E7A40054 */ swc1 $f4, 0x0054($sp)
|
||||
/* 002E4 809ECB64 3C014218 */ lui $at, 0x4218 ## $at = 42180000
|
||||
/* 002E8 809ECB68 44815000 */ mtc1 $at, $f10 ## $f10 = 38.00
|
||||
/* 002EC 809ECB6C 00000000 */ nop
|
||||
/* 002F0 809ECB70 460A4480 */ add.s $f18, $f8, $f10
|
||||
/* 002F4 809ECB74 10000005 */ beq $zero, $zero, .L809ECB8C
|
||||
/* 002F8 809ECB78 E7B20050 */ swc1 $f18, 0x0050($sp)
|
||||
.L809ECB7C:
|
||||
/* 002FC 809ECB7C 44813000 */ mtc1 $at, $f6 ## $f6 = 38.00
|
||||
/* 00300 809ECB80 00000000 */ nop
|
||||
/* 00304 809ECB84 46068100 */ add.s $f4, $f16, $f6
|
||||
/* 00308 809ECB88 E7A40050 */ swc1 $f4, 0x0050($sp)
|
||||
.L809ECB8C:
|
||||
/* 0030C 809ECB8C 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
|
||||
/* 00310 809ECB90 44814000 */ mtc1 $at, $f8 ## $f8 = 100.00
|
||||
/* 00314 809ECB94 C60A0090 */ lwc1 $f10, 0x0090($s0) ## 00000090
|
||||
/* 00318 809ECB98 240703E8 */ addiu $a3, $zero, 0x03E8 ## $a3 = 000003E8
|
||||
/* 0031C 809ECB9C 4608503E */ c.le.s $f10, $f8
|
||||
/* 00320 809ECBA0 00000000 */ nop
|
||||
/* 00324 809ECBA4 450200D2 */ bc1fl .L809ECEF0
|
||||
/* 00328 809ECBA8 8CC20680 */ lw $v0, 0x0680($a2) ## 00000680
|
||||
/* 0032C 809ECBAC A60001D2 */ sh $zero, 0x01D2($s0) ## 000001D2
|
||||
/* 00330 809ECBB0 860201D2 */ lh $v0, 0x01D2($s0) ## 000001D2
|
||||
/* 00334 809ECBB4 260501DC */ addiu $a1, $s0, 0x01DC ## $a1 = 000001DC
|
||||
/* 00338 809ECBB8 27A4004C */ addiu $a0, $sp, 0x004C ## $a0 = FFFFFFC4
|
||||
/* 0033C 809ECBBC A60201D4 */ sh $v0, 0x01D4($s0) ## 000001D4
|
||||
/* 00340 809ECBC0 A60201D6 */ sh $v0, 0x01D6($s0) ## 000001D6
|
||||
/* 00344 809ECBC4 AFA60060 */ sw $a2, 0x0060($sp)
|
||||
/* 00348 809ECBC8 0C01DFE4 */ jal Math_Vec3f_DistXYZ
|
||||
|
||||
/* 0034C 809ECBCC AFA50030 */ sw $a1, 0x0030($sp)
|
||||
/* 00350 809ECBD0 3C014140 */ lui $at, 0x4140 ## $at = 41400000
|
||||
/* 00354 809ECBD4 44819000 */ mtc1 $at, $f18 ## $f18 = 12.00
|
||||
/* 00358 809ECBD8 8FA60060 */ lw $a2, 0x0060($sp)
|
||||
/* 0035C 809ECBDC 4612003E */ c.le.s $f0, $f18
|
||||
/* 00360 809ECBE0 00000000 */ nop
|
||||
/* 00364 809ECBE4 4502004B */ bc1fl .L809ECD14
|
||||
/* 00368 809ECBE8 8CC20680 */ lw $v0, 0x0680($a2) ## 00000680
|
||||
/* 0036C 809ECBEC 920B01CC */ lbu $t3, 0x01CC($s0) ## 000001CC
|
||||
/* 00370 809ECBF0 8FA4008C */ lw $a0, 0x008C($sp)
|
||||
/* 00374 809ECBF4 3C190001 */ lui $t9, 0x0001 ## $t9 = 00010000
|
||||
/* 00378 809ECBF8 15600013 */ bne $t3, $zero, .L809ECC48
|
||||
/* 0037C 809ECBFC 0324C821 */ addu $t9, $t9, $a0
|
||||
/* 00380 809ECC00 8F391D4C */ lw $t9, 0x1D4C($t9) ## 00011D4C
|
||||
/* 00384 809ECC04 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000
|
||||
/* 00388 809ECC08 0320F809 */ jalr $ra, $t9
|
||||
/* 0038C 809ECC0C 00000000 */ nop
|
||||
/* 00390 809ECC10 1040002B */ beq $v0, $zero, .L809ECCC0
|
||||
/* 00394 809ECC14 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00398 809ECC18 920C01CC */ lbu $t4, 0x01CC($s0) ## 000001CC
|
||||
/* 0039C 809ECC1C 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
|
||||
/* 003A0 809ECC20 A60001CA */ sh $zero, 0x01CA($s0) ## 000001CA
|
||||
/* 003A4 809ECC24 258D0001 */ addiu $t5, $t4, 0x0001 ## $t5 = 00000001
|
||||
/* 003A8 809ECC28 10400003 */ beq $v0, $zero, .L809ECC38
|
||||
/* 003AC 809ECC2C A20D01CC */ sb $t5, 0x01CC($s0) ## 000001CC
|
||||
/* 003B0 809ECC30 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
|
||||
/* 003B4 809ECC34 A44E001C */ sh $t6, 0x001C($v0) ## 0000001C
|
||||
.L809ECC38:
|
||||
/* 003B8 809ECC38 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 003BC 809ECC3C 24053902 */ addiu $a1, $zero, 0x3902 ## $a1 = 00003902
|
||||
/* 003C0 809ECC40 10000020 */ beq $zero, $zero, .L809ECCC4
|
||||
/* 003C4 809ECC44 260401E8 */ addiu $a0, $s0, 0x01E8 ## $a0 = 000001E8
|
||||
.L809ECC48:
|
||||
/* 003C8 809ECC48 860F01CA */ lh $t7, 0x01CA($s0) ## 000001CA
|
||||
/* 003CC 809ECC4C 25F81194 */ addiu $t8, $t7, 0x1194 ## $t8 = 00001194
|
||||
/* 003D0 809ECC50 A61801CA */ sh $t8, 0x01CA($s0) ## 000001CA
|
||||
/* 003D4 809ECC54 860401CA */ lh $a0, 0x01CA($s0) ## 000001CA
|
||||
/* 003D8 809ECC58 0C01DE1C */ jal Math_Sins
|
||||
## sins?
|
||||
/* 003DC 809ECC5C AFA60060 */ sw $a2, 0x0060($sp)
|
||||
/* 003E0 809ECC60 3C01809F */ lui $at, %hi(D_809ED780) ## $at = 809F0000
|
||||
/* 003E4 809ECC64 C430D780 */ lwc1 $f16, %lo(D_809ED780)($at)
|
||||
/* 003E8 809ECC68 8FA60060 */ lw $a2, 0x0060($sp)
|
||||
/* 003EC 809ECC6C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 003F0 809ECC70 46100182 */ mul.s $f6, $f0, $f16
|
||||
/* 003F4 809ECC74 4600310D */ trunc.w.s $f4, $f6
|
||||
/* 003F8 809ECC78 44092000 */ mfc1 $t1, $f4
|
||||
/* 003FC 809ECC7C 00000000 */ nop
|
||||
/* 00400 809ECC80 A60901D2 */ sh $t1, 0x01D2($s0) ## 000001D2
|
||||
/* 00404 809ECC84 8CCA0680 */ lw $t2, 0x0680($a2) ## 00000680
|
||||
/* 00408 809ECC88 314B0080 */ andi $t3, $t2, 0x0080 ## $t3 = 00000000
|
||||
/* 0040C 809ECC8C 55600006 */ bnel $t3, $zero, .L809ECCA8
|
||||
/* 00410 809ECC90 861901CA */ lh $t9, 0x01CA($s0) ## 000001CA
|
||||
/* 00414 809ECC94 0C27B3D8 */ jal func_809ECF60
|
||||
/* 00418 809ECC98 A20001CC */ sb $zero, 0x01CC($s0) ## 000001CC
|
||||
/* 0041C 809ECC9C 100000AC */ beq $zero, $zero, .L809ECF50
|
||||
/* 00420 809ECCA0 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 00424 809ECCA4 861901CA */ lh $t9, 0x01CA($s0) ## 000001CA
|
||||
.L809ECCA8:
|
||||
/* 00428 809ECCA8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 0042C 809ECCAC 2B219195 */ slti $at, $t9, 0x9195
|
||||
/* 00430 809ECCB0 50200004 */ beql $at, $zero, .L809ECCC4
|
||||
/* 00434 809ECCB4 260401E8 */ addiu $a0, $s0, 0x01E8 ## $a0 = 000001E8
|
||||
/* 00438 809ECCB8 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 0043C 809ECCBC 24053902 */ addiu $a1, $zero, 0x3902 ## $a1 = 00003902
|
||||
.L809ECCC0:
|
||||
/* 00440 809ECCC0 260401E8 */ addiu $a0, $s0, 0x01E8 ## $a0 = 000001E8
|
||||
.L809ECCC4:
|
||||
/* 00444 809ECCC4 27A5004C */ addiu $a1, $sp, 0x004C ## $a1 = FFFFFFC4
|
||||
/* 00448 809ECCC8 260601D4 */ addiu $a2, $s0, 0x01D4 ## $a2 = 000001D4
|
||||
/* 0044C 809ECCCC 0C00D611 */ jal func_80035844
|
||||
/* 00450 809ECCD0 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 00454 809ECCD4 860C01D6 */ lh $t4, 0x01D6($s0) ## 000001D6
|
||||
/* 00458 809ECCD8 860D00B6 */ lh $t5, 0x00B6($s0) ## 000000B6
|
||||
/* 0045C 809ECCDC 860801D4 */ lh $t0, 0x01D4($s0) ## 000001D4
|
||||
/* 00460 809ECCE0 860900B4 */ lh $t1, 0x00B4($s0) ## 000000B4
|
||||
/* 00464 809ECCE4 860B01CE */ lh $t3, 0x01CE($s0) ## 000001CE
|
||||
/* 00468 809ECCE8 018D7023 */ subu $t6, $t4, $t5
|
||||
/* 0046C 809ECCEC 860F01D2 */ lh $t7, 0x01D2($s0) ## 000001D2
|
||||
/* 00470 809ECCF0 860C01D0 */ lh $t4, 0x01D0($s0) ## 000001D0
|
||||
/* 00474 809ECCF4 01095023 */ subu $t2, $t0, $t1
|
||||
/* 00478 809ECCF8 014BC823 */ subu $t9, $t2, $t3
|
||||
/* 0047C 809ECCFC 01CFC023 */ subu $t8, $t6, $t7
|
||||
/* 00480 809ECD00 032C6823 */ subu $t5, $t9, $t4
|
||||
/* 00484 809ECD04 A61801D6 */ sh $t8, 0x01D6($s0) ## 000001D6
|
||||
/* 00488 809ECD08 10000014 */ beq $zero, $zero, .L809ECD5C
|
||||
/* 0048C 809ECD0C A60D01D4 */ sh $t5, 0x01D4($s0) ## 000001D4
|
||||
/* 00490 809ECD10 8CC20680 */ lw $v0, 0x0680($a2) ## 00000680
|
||||
.L809ECD14:
|
||||
/* 00494 809ECD14 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00498 809ECD18 304E0080 */ andi $t6, $v0, 0x0080 ## $t6 = 00000000
|
||||
/* 0049C 809ECD1C 51C0000A */ beql $t6, $zero, .L809ECD48
|
||||
/* 004A0 809ECD20 86090018 */ lh $t1, 0x0018($s0) ## 00000018
|
||||
/* 004A4 809ECD24 8CCF0118 */ lw $t7, 0x0118($a2) ## 00000118
|
||||
/* 004A8 809ECD28 2401FF7F */ addiu $at, $zero, 0xFF7F ## $at = FFFFFF7F
|
||||
/* 004AC 809ECD2C 0041C024 */ and $t8, $v0, $at
|
||||
/* 004B0 809ECD30 160F0004 */ bne $s0, $t7, .L809ECD44
|
||||
/* 004B4 809ECD34 240800C8 */ addiu $t0, $zero, 0x00C8 ## $t0 = 000000C8
|
||||
/* 004B8 809ECD38 ACD80680 */ sw $t8, 0x0680($a2) ## 00000680
|
||||
/* 004BC 809ECD3C ACC00118 */ sw $zero, 0x0118($a2) ## 00000118
|
||||
/* 004C0 809ECD40 A4C80850 */ sh $t0, 0x0850($a2) ## 00000850
|
||||
.L809ECD44:
|
||||
/* 004C4 809ECD44 86090018 */ lh $t1, 0x0018($s0) ## 00000018
|
||||
.L809ECD48:
|
||||
/* 004C8 809ECD48 51200005 */ beql $t1, $zero, .L809ECD60
|
||||
/* 004CC 809ECD4C 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
|
||||
/* 004D0 809ECD50 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 004D4 809ECD54 24053903 */ addiu $a1, $zero, 0x3903 ## $a1 = 00003903
|
||||
/* 004D8 809ECD58 A6000018 */ sh $zero, 0x0018($s0) ## 00000018
|
||||
.L809ECD5C:
|
||||
/* 004DC 809ECD5C 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
|
||||
.L809ECD60:
|
||||
/* 004E0 809ECD60 AFA4002C */ sw $a0, 0x002C($sp)
|
||||
/* 004E4 809ECD64 0C01E01A */ jal Math_Vec3f_Yaw
|
||||
|
||||
/* 004E8 809ECD68 27A5004C */ addiu $a1, $sp, 0x004C ## $a1 = FFFFFFC4
|
||||
/* 004EC 809ECD6C 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00
|
||||
/* 004F0 809ECD70 A60200B6 */ sh $v0, 0x00B6($s0) ## 000000B6
|
||||
/* 004F4 809ECD74 8FA5004C */ lw $a1, 0x004C($sp)
|
||||
/* 004F8 809ECD78 8FA40030 */ lw $a0, 0x0030($sp)
|
||||
/* 004FC 809ECD7C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
|
||||
/* 00500 809ECD80 3C074180 */ lui $a3, 0x4180 ## $a3 = 41800000
|
||||
/* 00504 809ECD84 0C01E0C4 */ jal Math_SmoothScaleMaxMinF
|
||||
|
||||
/* 00508 809ECD88 E7A80010 */ swc1 $f8, 0x0010($sp)
|
||||
/* 0050C 809ECD8C 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00
|
||||
/* 00510 809ECD90 260401E0 */ addiu $a0, $s0, 0x01E0 ## $a0 = 000001E0
|
||||
/* 00514 809ECD94 8FA50050 */ lw $a1, 0x0050($sp)
|
||||
/* 00518 809ECD98 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
|
||||
/* 0051C 809ECD9C 3C074180 */ lui $a3, 0x4180 ## $a3 = 41800000
|
||||
/* 00520 809ECDA0 0C01E0C4 */ jal Math_SmoothScaleMaxMinF
|
||||
|
||||
/* 00524 809ECDA4 E7AA0010 */ swc1 $f10, 0x0010($sp)
|
||||
/* 00528 809ECDA8 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
|
||||
/* 0052C 809ECDAC 260401E4 */ addiu $a0, $s0, 0x01E4 ## $a0 = 000001E4
|
||||
/* 00530 809ECDB0 8FA50054 */ lw $a1, 0x0054($sp)
|
||||
/* 00534 809ECDB4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
|
||||
/* 00538 809ECDB8 3C074180 */ lui $a3, 0x4180 ## $a3 = 41800000
|
||||
/* 0053C 809ECDBC 0C01E0C4 */ jal Math_SmoothScaleMaxMinF
|
||||
|
||||
/* 00540 809ECDC0 E7B20010 */ swc1 $f18, 0x0010($sp)
|
||||
/* 00544 809ECDC4 260401F4 */ addiu $a0, $s0, 0x01F4 ## $a0 = 000001F4
|
||||
/* 00548 809ECDC8 AFA40028 */ sw $a0, 0x0028($sp)
|
||||
/* 0054C 809ECDCC 8FA50030 */ lw $a1, 0x0030($sp)
|
||||
/* 00550 809ECDD0 27A60044 */ addiu $a2, $sp, 0x0044 ## $a2 = FFFFFFBC
|
||||
/* 00554 809ECDD4 0C00D611 */ jal func_80035844
|
||||
/* 00558 809ECDD8 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 0055C 809ECDDC C60C01DC */ lwc1 $f12, 0x01DC($s0) ## 000001DC
|
||||
/* 00560 809ECDE0 C60E01E0 */ lwc1 $f14, 0x01E0($s0) ## 000001E0
|
||||
/* 00564 809ECDE4 8E0601E4 */ lw $a2, 0x01E4($s0) ## 000001E4
|
||||
/* 00568 809ECDE8 0C034261 */ jal Matrix_Translate
|
||||
/* 0056C 809ECDEC 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 00570 809ECDF0 87A40044 */ lh $a0, 0x0044($sp)
|
||||
/* 00574 809ECDF4 87A50046 */ lh $a1, 0x0046($sp)
|
||||
/* 00578 809ECDF8 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
|
||||
/* 0057C 809ECDFC 0C034421 */ jal Matrix_RotateRPY
|
||||
/* 00580 809ECE00 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 00584 809ECE04 27A40064 */ addiu $a0, $sp, 0x0064 ## $a0 = FFFFFFDC
|
||||
/* 00588 809ECE08 0C0346BD */ jal Matrix_MultVec3f
|
||||
/* 0058C 809ECE0C 8FA50028 */ lw $a1, 0x0028($sp)
|
||||
/* 00590 809ECE10 C60C0024 */ lwc1 $f12, 0x0024($s0) ## 00000024
|
||||
/* 00594 809ECE14 C60E0028 */ lwc1 $f14, 0x0028($s0) ## 00000028
|
||||
/* 00598 809ECE18 8E06002C */ lw $a2, 0x002C($s0) ## 0000002C
|
||||
/* 0059C 809ECE1C 0C034261 */ jal Matrix_Translate
|
||||
/* 005A0 809ECE20 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 005A4 809ECE24 8FA4002C */ lw $a0, 0x002C($sp)
|
||||
/* 005A8 809ECE28 8FA50028 */ lw $a1, 0x0028($sp)
|
||||
/* 005AC 809ECE2C 27A60044 */ addiu $a2, $sp, 0x0044 ## $a2 = FFFFFFBC
|
||||
/* 005B0 809ECE30 0C00D611 */ jal func_80035844
|
||||
/* 005B4 809ECE34 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 005B8 809ECE38 87A40044 */ lh $a0, 0x0044($sp)
|
||||
/* 005BC 809ECE3C 87A50046 */ lh $a1, 0x0046($sp)
|
||||
/* 005C0 809ECE40 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
|
||||
/* 005C4 809ECE44 0C034421 */ jal Matrix_RotateRPY
|
||||
/* 005C8 809ECE48 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 005CC 809ECE4C 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE8
|
||||
/* 005D0 809ECE50 0C0346BD */ jal Matrix_MultVec3f
|
||||
/* 005D4 809ECE54 8FA50028 */ lw $a1, 0x0028($sp)
|
||||
/* 005D8 809ECE58 8FA4002C */ lw $a0, 0x002C($sp)
|
||||
/* 005DC 809ECE5C 0C01E027 */ jal Math_Vec3f_Pitch
|
||||
|
||||
/* 005E0 809ECE60 8FA50028 */ lw $a1, 0x0028($sp)
|
||||
/* 005E4 809ECE64 A60201CE */ sh $v0, 0x01CE($s0) ## 000001CE
|
||||
/* 005E8 809ECE68 8FA50028 */ lw $a1, 0x0028($sp)
|
||||
/* 005EC 809ECE6C 0C01E01A */ jal Math_Vec3f_Yaw
|
||||
|
||||
/* 005F0 809ECE70 8FA4002C */ lw $a0, 0x002C($sp)
|
||||
/* 005F4 809ECE74 860A00B6 */ lh $t2, 0x00B6($s0) ## 000000B6
|
||||
/* 005F8 809ECE78 004A1823 */ subu $v1, $v0, $t2
|
||||
/* 005FC 809ECE7C 00031C00 */ sll $v1, $v1, 16
|
||||
/* 00600 809ECE80 00031C03 */ sra $v1, $v1, 16
|
||||
/* 00604 809ECE84 04600003 */ bltz $v1, .L809ECE94
|
||||
/* 00608 809ECE88 00031023 */ subu $v0, $zero, $v1
|
||||
/* 0060C 809ECE8C 10000001 */ beq $zero, $zero, .L809ECE94
|
||||
/* 00610 809ECE90 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
|
||||
.L809ECE94:
|
||||
/* 00614 809ECE94 28414000 */ slti $at, $v0, 0x4000
|
||||
/* 00618 809ECE98 54200006 */ bnel $at, $zero, .L809ECEB4
|
||||
/* 0061C 809ECE9C 8FA40028 */ lw $a0, 0x0028($sp)
|
||||
/* 00620 809ECEA0 860B01CE */ lh $t3, 0x01CE($s0) ## 000001CE
|
||||
/* 00624 809ECEA4 24198000 */ addiu $t9, $zero, 0x8000 ## $t9 = FFFF8000
|
||||
/* 00628 809ECEA8 032B6023 */ subu $t4, $t9, $t3
|
||||
/* 0062C 809ECEAC A60C01CE */ sh $t4, 0x01CE($s0) ## 000001CE
|
||||
/* 00630 809ECEB0 8FA40028 */ lw $a0, 0x0028($sp)
|
||||
.L809ECEB4:
|
||||
/* 00634 809ECEB4 0C01E027 */ jal Math_Vec3f_Pitch
|
||||
|
||||
/* 00638 809ECEB8 8FA50030 */ lw $a1, 0x0030($sp)
|
||||
/* 0063C 809ECEBC 860401CE */ lh $a0, 0x01CE($s0) ## 000001CE
|
||||
/* 00640 809ECEC0 00446823 */ subu $t5, $v0, $a0
|
||||
/* 00644 809ECEC4 A60D01D0 */ sh $t5, 0x01D0($s0) ## 000001D0
|
||||
/* 00648 809ECEC8 860301D0 */ lh $v1, 0x01D0($s0) ## 000001D0
|
||||
/* 0064C 809ECECC 0461001F */ bgez $v1, .L809ECF4C
|
||||
/* 00650 809ECED0 00037040 */ sll $t6, $v1, 1
|
||||
/* 00654 809ECED4 00030823 */ subu $at, $zero, $v1
|
||||
/* 00658 809ECED8 008E7821 */ addu $t7, $a0, $t6
|
||||
/* 0065C 809ECEDC 0001C040 */ sll $t8, $at, 1
|
||||
/* 00660 809ECEE0 A60F01CE */ sh $t7, 0x01CE($s0) ## 000001CE
|
||||
/* 00664 809ECEE4 10000019 */ beq $zero, $zero, .L809ECF4C
|
||||
/* 00668 809ECEE8 A61801D0 */ sh $t8, 0x01D0($s0) ## 000001D0
|
||||
/* 0066C 809ECEEC 8CC20680 */ lw $v0, 0x0680($a2) ## 00000680
|
||||
.L809ECEF0:
|
||||
/* 00670 809ECEF0 30480080 */ andi $t0, $v0, 0x0080 ## $t0 = 00000000
|
||||
/* 00674 809ECEF4 5100000A */ beql $t0, $zero, .L809ECF20
|
||||
/* 00678 809ECEF8 A60B0018 */ sh $t3, 0x0018($s0) ## 00000018
|
||||
/* 0067C 809ECEFC 8CC90118 */ lw $t1, 0x0118($a2) ## 00000118
|
||||
/* 00680 809ECF00 2401FF7F */ addiu $at, $zero, 0xFF7F ## $at = FFFFFF7F
|
||||
/* 00684 809ECF04 00415024 */ and $t2, $v0, $at
|
||||
/* 00688 809ECF08 16090004 */ bne $s0, $t1, .L809ECF1C
|
||||
/* 0068C 809ECF0C 241900C8 */ addiu $t9, $zero, 0x00C8 ## $t9 = 000000C8
|
||||
/* 00690 809ECF10 ACCA0680 */ sw $t2, 0x0680($a2) ## 00000680
|
||||
/* 00694 809ECF14 ACC00118 */ sw $zero, 0x0118($a2) ## 00000118
|
||||
/* 00698 809ECF18 A4D90850 */ sh $t9, 0x0850($a2) ## 00000850
|
||||
.L809ECF1C:
|
||||
/* 0069C 809ECF1C A60B0018 */ sh $t3, 0x0018($s0) ## 00000018
|
||||
.L809ECF20:
|
||||
/* 006A0 809ECF20 AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 006A4 809ECF24 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
|
||||
|
||||
/* 006A8 809ECF28 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
|
||||
/* 006AC 809ECF2C 260401CE */ addiu $a0, $s0, 0x01CE ## $a0 = 000001CE
|
||||
/* 006B0 809ECF30 2405C000 */ addiu $a1, $zero, 0xC000 ## $a1 = FFFFC000
|
||||
/* 006B4 809ECF34 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
|
||||
/* 006B8 809ECF38 240703E8 */ addiu $a3, $zero, 0x03E8 ## $a3 = 000003E8
|
||||
/* 006BC 809ECF3C 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
|
||||
|
||||
/* 006C0 809ECF40 AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 006C4 809ECF44 0C02927F */ jal SkelAnime_FrameUpdateMatrix
|
||||
|
||||
/* 006C8 809ECF48 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
|
||||
.L809ECF4C:
|
||||
/* 006CC 809ECF4C 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L809ECF50:
|
||||
/* 006D0 809ECF50 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 006D4 809ECF54 27BD0088 */ addiu $sp, $sp, 0x0088 ## $sp = 00000000
|
||||
/* 006D8 809ECF58 03E00008 */ jr $ra
|
||||
/* 006DC 809ECF5C 00000000 */ nop
|
|
@ -1,12 +0,0 @@
|
|||
glabel func_809ECF60
|
||||
/* 006E0 809ECF60 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 006E4 809ECF64 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 006E8 809ECF68 240E000F */ addiu $t6, $zero, 0x000F ## $t6 = 0000000F
|
||||
/* 006EC 809ECF6C 3C05809F */ lui $a1, %hi(func_809ECF8C) ## $a1 = 809F0000
|
||||
/* 006F0 809ECF70 A48E01C8 */ sh $t6, 0x01C8($a0) ## 000001C8
|
||||
/* 006F4 809ECF74 0C27B220 */ jal func_809EC880
|
||||
/* 006F8 809ECF78 24A5CF8C */ addiu $a1, $a1, %lo(func_809ECF8C) ## $a1 = 809ECF8C
|
||||
/* 006FC 809ECF7C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00700 809ECF80 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00704 809ECF84 03E00008 */ jr $ra
|
||||
/* 00708 809ECF88 00000000 */ nop
|
|
@ -1,58 +0,0 @@
|
|||
glabel func_809ECF8C
|
||||
/* 0070C 809ECF8C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 00710 809ECF90 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 00714 809ECF94 AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 00718 809ECF98 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
|
||||
/* 0071C 809ECF9C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00720 809ECFA0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 00724 809ECFA4 8C430680 */ lw $v1, 0x0680($v0) ## 00000680
|
||||
/* 00728 809ECFA8 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
|
||||
/* 0072C 809ECFAC 240707D0 */ addiu $a3, $zero, 0x07D0 ## $a3 = 000007D0
|
||||
/* 00730 809ECFB0 306E0080 */ andi $t6, $v1, 0x0080 ## $t6 = 00000000
|
||||
/* 00734 809ECFB4 51C0000A */ beql $t6, $zero, .L809ECFE0
|
||||
/* 00738 809ECFB8 260401D0 */ addiu $a0, $s0, 0x01D0 ## $a0 = 000001D0
|
||||
/* 0073C 809ECFBC 8C4F0118 */ lw $t7, 0x0118($v0) ## 00000118
|
||||
/* 00740 809ECFC0 2401FF7F */ addiu $at, $zero, 0xFF7F ## $at = FFFFFF7F
|
||||
/* 00744 809ECFC4 0061C024 */ and $t8, $v1, $at
|
||||
/* 00748 809ECFC8 148F0004 */ bne $a0, $t7, .L809ECFDC
|
||||
/* 0074C 809ECFCC 241900C8 */ addiu $t9, $zero, 0x00C8 ## $t9 = 000000C8
|
||||
/* 00750 809ECFD0 AC580680 */ sw $t8, 0x0680($v0) ## 00000680
|
||||
/* 00754 809ECFD4 AC400118 */ sw $zero, 0x0118($v0) ## 00000118
|
||||
/* 00758 809ECFD8 A4590850 */ sh $t9, 0x0850($v0) ## 00000850
|
||||
.L809ECFDC:
|
||||
/* 0075C 809ECFDC 260401D0 */ addiu $a0, $s0, 0x01D0 ## $a0 = 000001D0
|
||||
.L809ECFE0:
|
||||
/* 00760 809ECFE0 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
|
||||
|
||||
/* 00764 809ECFE4 AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 00768 809ECFE8 260401D2 */ addiu $a0, $s0, 0x01D2 ## $a0 = 000001D2
|
||||
/* 0076C 809ECFEC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 00770 809ECFF0 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
|
||||
/* 00774 809ECFF4 24070258 */ addiu $a3, $zero, 0x0258 ## $a3 = 00000258
|
||||
/* 00778 809ECFF8 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
|
||||
|
||||
/* 0077C 809ECFFC AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 00780 809ED000 260401CE */ addiu $a0, $s0, 0x01CE ## $a0 = 000001CE
|
||||
/* 00784 809ED004 2405C000 */ addiu $a1, $zero, 0xC000 ## $a1 = FFFFC000
|
||||
/* 00788 809ED008 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
|
||||
/* 0078C 809ED00C 240707D0 */ addiu $a3, $zero, 0x07D0 ## $a3 = 000007D0
|
||||
/* 00790 809ED010 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
|
||||
|
||||
/* 00794 809ED014 AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 00798 809ED018 0C02927F */ jal SkelAnime_FrameUpdateMatrix
|
||||
|
||||
/* 0079C 809ED01C 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
|
||||
/* 007A0 809ED020 860801C8 */ lh $t0, 0x01C8($s0) ## 000001C8
|
||||
/* 007A4 809ED024 2509FFFF */ addiu $t1, $t0, 0xFFFF ## $t1 = FFFFFFFF
|
||||
/* 007A8 809ED028 A60901C8 */ sh $t1, 0x01C8($s0) ## 000001C8
|
||||
/* 007AC 809ED02C 860A01C8 */ lh $t2, 0x01C8($s0) ## 000001C8
|
||||
/* 007B0 809ED030 55400004 */ bnel $t2, $zero, .L809ED044
|
||||
/* 007B4 809ED034 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 007B8 809ED038 0C27B272 */ jal func_809EC9C8
|
||||
/* 007BC 809ED03C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 007C0 809ED040 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L809ED044:
|
||||
/* 007C4 809ED044 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 007C8 809ED048 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
/* 007CC 809ED04C 03E00008 */ jr $ra
|
||||
/* 007D0 809ED050 00000000 */ nop
|
|
@ -1,32 +0,0 @@
|
|||
glabel func_809ED054
|
||||
/* 007D4 809ED054 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 007D8 809ED058 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 007DC 809ED05C 8C820118 */ lw $v0, 0x0118($a0) ## 00000118
|
||||
/* 007E0 809ED060 240E0008 */ addiu $t6, $zero, 0x0008 ## $t6 = 00000008
|
||||
/* 007E4 809ED064 240F012C */ addiu $t7, $zero, 0x012C ## $t7 = 0000012C
|
||||
/* 007E8 809ED068 A08E01C0 */ sb $t6, 0x01C0($a0) ## 000001C0
|
||||
/* 007EC 809ED06C 1040000E */ beq $v0, $zero, .L809ED0A8
|
||||
/* 007F0 809ED070 A48F01C8 */ sh $t7, 0x01C8($a0) ## 000001C8
|
||||
/* 007F4 809ED074 8443001C */ lh $v1, 0x001C($v0) ## 0000001C
|
||||
/* 007F8 809ED078 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A
|
||||
/* 007FC 809ED07C 240539AA */ addiu $a1, $zero, 0x39AA ## $a1 = 000039AA
|
||||
/* 00800 809ED080 10610006 */ beq $v1, $at, .L809ED09C
|
||||
/* 00804 809ED084 00000000 */ nop
|
||||
/* 00808 809ED088 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 0080C 809ED08C AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 00810 809ED090 8FA40018 */ lw $a0, 0x0018($sp)
|
||||
/* 00814 809ED094 8C820118 */ lw $v0, 0x0118($a0) ## 00000118
|
||||
/* 00818 809ED098 8443001C */ lh $v1, 0x001C($v0) ## 0000001C
|
||||
.L809ED09C:
|
||||
/* 0081C 809ED09C 1C600002 */ bgtz $v1, .L809ED0A8
|
||||
/* 00820 809ED0A0 2478FFFF */ addiu $t8, $v1, 0xFFFF ## $t8 = FFFFFFFF
|
||||
/* 00824 809ED0A4 A458001C */ sh $t8, 0x001C($v0) ## 0000001C
|
||||
.L809ED0A8:
|
||||
/* 00828 809ED0A8 3C05809F */ lui $a1, %hi(func_809ED0C4) ## $a1 = 809F0000
|
||||
/* 0082C 809ED0AC 0C27B220 */ jal func_809EC880
|
||||
/* 00830 809ED0B0 24A5D0C4 */ addiu $a1, $a1, %lo(func_809ED0C4) ## $a1 = 809ED0C4
|
||||
/* 00834 809ED0B4 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00838 809ED0B8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 0083C 809ED0BC 03E00008 */ jr $ra
|
||||
/* 00840 809ED0C0 00000000 */ nop
|
|
@ -1,125 +0,0 @@
|
|||
.late_rodata
|
||||
glabel D_809ED784
|
||||
.float -12000.0
|
||||
|
||||
.text
|
||||
glabel func_809ED0C4
|
||||
/* 00844 809ED0C4 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
|
||||
/* 00848 809ED0C8 AFBF002C */ sw $ra, 0x002C($sp)
|
||||
/* 0084C 809ED0CC AFB00028 */ sw $s0, 0x0028($sp)
|
||||
/* 00850 809ED0D0 AFA50054 */ sw $a1, 0x0054($sp)
|
||||
/* 00854 809ED0D4 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
|
||||
/* 00858 809ED0D8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 0085C 809ED0DC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 00860 809ED0E0 8C430680 */ lw $v1, 0x0680($v0) ## 00000680
|
||||
/* 00864 809ED0E4 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
|
||||
/* 00868 809ED0E8 240707D0 */ addiu $a3, $zero, 0x07D0 ## $a3 = 000007D0
|
||||
/* 0086C 809ED0EC 306F0080 */ andi $t7, $v1, 0x0080 ## $t7 = 00000000
|
||||
/* 00870 809ED0F0 51E0000A */ beql $t7, $zero, .L809ED11C
|
||||
/* 00874 809ED0F4 260401D0 */ addiu $a0, $s0, 0x01D0 ## $a0 = 000001D0
|
||||
/* 00878 809ED0F8 8C580118 */ lw $t8, 0x0118($v0) ## 00000118
|
||||
/* 0087C 809ED0FC 2401FF7F */ addiu $at, $zero, 0xFF7F ## $at = FFFFFF7F
|
||||
/* 00880 809ED100 0061C824 */ and $t9, $v1, $at
|
||||
/* 00884 809ED104 14980004 */ bne $a0, $t8, .L809ED118
|
||||
/* 00888 809ED108 240800C8 */ addiu $t0, $zero, 0x00C8 ## $t0 = 000000C8
|
||||
/* 0088C 809ED10C AC590680 */ sw $t9, 0x0680($v0) ## 00000680
|
||||
/* 00890 809ED110 AC400118 */ sw $zero, 0x0118($v0) ## 00000118
|
||||
/* 00894 809ED114 A4480850 */ sh $t0, 0x0850($v0) ## 00000850
|
||||
.L809ED118:
|
||||
/* 00898 809ED118 260401D0 */ addiu $a0, $s0, 0x01D0 ## $a0 = 000001D0
|
||||
.L809ED11C:
|
||||
/* 0089C 809ED11C 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
|
||||
|
||||
/* 008A0 809ED120 AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 008A4 809ED124 260401CE */ addiu $a0, $s0, 0x01CE ## $a0 = 000001CE
|
||||
/* 008A8 809ED128 2405C000 */ addiu $a1, $zero, 0xC000 ## $a1 = FFFFC000
|
||||
/* 008AC 809ED12C 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
|
||||
/* 008B0 809ED130 240707D0 */ addiu $a3, $zero, 0x07D0 ## $a3 = 000007D0
|
||||
/* 008B4 809ED134 0C01E1A7 */ jal Math_SmoothScaleMaxMinS
|
||||
|
||||
/* 008B8 809ED138 AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 008BC 809ED13C A7A2004E */ sh $v0, 0x004E($sp)
|
||||
/* 008C0 809ED140 0C02927F */ jal SkelAnime_FrameUpdateMatrix
|
||||
|
||||
/* 008C4 809ED144 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
|
||||
/* 008C8 809ED148 87A9004E */ lh $t1, 0x004E($sp)
|
||||
/* 008CC 809ED14C 55200047 */ bnel $t1, $zero, .L809ED26C
|
||||
/* 008D0 809ED150 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 008D4 809ED154 8E0B0024 */ lw $t3, 0x0024($s0) ## 00000024
|
||||
/* 008D8 809ED158 27A50040 */ addiu $a1, $sp, 0x0040 ## $a1 = FFFFFFF0
|
||||
/* 008DC 809ED15C 3C0143FA */ lui $at, 0x43FA ## $at = 43FA0000
|
||||
/* 008E0 809ED160 ACAB0000 */ sw $t3, 0x0000($a1) ## FFFFFFF0
|
||||
/* 008E4 809ED164 8E0A0028 */ lw $t2, 0x0028($s0) ## 00000028
|
||||
/* 008E8 809ED168 ACAA0004 */ sw $t2, 0x0004($a1) ## FFFFFFF4
|
||||
/* 008EC 809ED16C 8E0B002C */ lw $t3, 0x002C($s0) ## 0000002C
|
||||
/* 008F0 809ED170 ACAB0008 */ sw $t3, 0x0008($a1) ## FFFFFFF8
|
||||
/* 008F4 809ED174 860201C8 */ lh $v0, 0x01C8($s0) ## 000001C8
|
||||
/* 008F8 809ED178 50400026 */ beql $v0, $zero, .L809ED214
|
||||
/* 008FC 809ED17C C60A00BC */ lwc1 $f10, 0x00BC($s0) ## 000000BC
|
||||
/* 00900 809ED180 3C01809F */ lui $at, %hi(D_809ED784) ## $at = 809F0000
|
||||
/* 00904 809ED184 C424D784 */ lwc1 $f4, %lo(D_809ED784)($at)
|
||||
/* 00908 809ED188 C60000BC */ lwc1 $f0, 0x00BC($s0) ## 000000BC
|
||||
/* 0090C 809ED18C 3C01447A */ lui $at, 0x447A ## $at = 447A0000
|
||||
/* 00910 809ED190 4600203C */ c.lt.s $f4, $f0
|
||||
/* 00914 809ED194 00000000 */ nop
|
||||
/* 00918 809ED198 45020011 */ bc1fl .L809ED1E0
|
||||
/* 0091C 809ED19C 8E030118 */ lw $v1, 0x0118($s0) ## 00000118
|
||||
/* 00920 809ED1A0 44813000 */ mtc1 $at, $f6 ## $f6 = 1000.00
|
||||
/* 00924 809ED1A4 240C005A */ addiu $t4, $zero, 0x005A ## $t4 = 0000005A
|
||||
/* 00928 809ED1A8 240D0014 */ addiu $t5, $zero, 0x0014 ## $t5 = 00000014
|
||||
/* 0092C 809ED1AC 46060201 */ sub.s $f8, $f0, $f6
|
||||
/* 00930 809ED1B0 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
|
||||
/* 00934 809ED1B4 3C0640E0 */ lui $a2, 0x40E0 ## $a2 = 40E00000
|
||||
/* 00938 809ED1B8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 0093C 809ED1BC E60800BC */ swc1 $f8, 0x00BC($s0) ## 000000BC
|
||||
/* 00940 809ED1C0 AFAE0018 */ sw $t6, 0x0018($sp)
|
||||
/* 00944 809ED1C4 AFAD0014 */ sw $t5, 0x0014($sp)
|
||||
/* 00948 809ED1C8 AFAC0010 */ sw $t4, 0x0010($sp)
|
||||
/* 0094C 809ED1CC 0C00CD20 */ jal func_80033480
|
||||
/* 00950 809ED1D0 8FA40054 */ lw $a0, 0x0054($sp)
|
||||
/* 00954 809ED1D4 10000025 */ beq $zero, $zero, .L809ED26C
|
||||
/* 00958 809ED1D8 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 0095C 809ED1DC 8E030118 */ lw $v1, 0x0118($s0) ## 00000118
|
||||
.L809ED1E0:
|
||||
/* 00960 809ED1E0 244FFFFF */ addiu $t7, $v0, 0xFFFF ## $t7 = FFFFFFFF
|
||||
/* 00964 809ED1E4 A60F01C8 */ sh $t7, 0x01C8($s0) ## 000001C8
|
||||
/* 00968 809ED1E8 50600020 */ beql $v1, $zero, .L809ED26C
|
||||
/* 0096C 809ED1EC 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 00970 809ED1F0 8478001C */ lh $t8, 0x001C($v1) ## 0000001C
|
||||
/* 00974 809ED1F4 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A
|
||||
/* 00978 809ED1F8 5701001C */ bnel $t8, $at, .L809ED26C
|
||||
/* 0097C 809ED1FC 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 00980 809ED200 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 00984 809ED204 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00988 809ED208 10000018 */ beq $zero, $zero, .L809ED26C
|
||||
/* 0098C 809ED20C 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 00990 809ED210 C60A00BC */ lwc1 $f10, 0x00BC($s0) ## 000000BC
|
||||
.L809ED214:
|
||||
/* 00994 809ED214 44818000 */ mtc1 $at, $f16 ## $f16 = 0.00
|
||||
/* 00998 809ED218 2419005A */ addiu $t9, $zero, 0x005A ## $t9 = 0000005A
|
||||
/* 0099C 809ED21C 24080014 */ addiu $t0, $zero, 0x0014 ## $t0 = 00000014
|
||||
/* 009A0 809ED220 46105480 */ add.s $f18, $f10, $f16
|
||||
/* 009A4 809ED224 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001
|
||||
/* 009A8 809ED228 3C0640E0 */ lui $a2, 0x40E0 ## $a2 = 40E00000
|
||||
/* 009AC 809ED22C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 009B0 809ED230 E61200BC */ swc1 $f18, 0x00BC($s0) ## 000000BC
|
||||
/* 009B4 809ED234 AFA90018 */ sw $t1, 0x0018($sp)
|
||||
/* 009B8 809ED238 AFA80014 */ sw $t0, 0x0014($sp)
|
||||
/* 009BC 809ED23C AFB90010 */ sw $t9, 0x0010($sp)
|
||||
/* 009C0 809ED240 0C00CD20 */ jal func_80033480
|
||||
/* 009C4 809ED244 8FA40054 */ lw $a0, 0x0054($sp)
|
||||
/* 009C8 809ED248 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
|
||||
/* 009CC 809ED24C C60600BC */ lwc1 $f6, 0x00BC($s0) ## 000000BC
|
||||
/* 009D0 809ED250 46062032 */ c.eq.s $f4, $f6
|
||||
/* 009D4 809ED254 00000000 */ nop
|
||||
/* 009D8 809ED258 45020004 */ bc1fl .L809ED26C
|
||||
/* 009DC 809ED25C 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
/* 009E0 809ED260 0C27B272 */ jal func_809EC9C8
|
||||
/* 009E4 809ED264 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 009E8 809ED268 8FBF002C */ lw $ra, 0x002C($sp)
|
||||
.L809ED26C:
|
||||
/* 009EC 809ED26C 8FB00028 */ lw $s0, 0x0028($sp)
|
||||
/* 009F0 809ED270 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
|
||||
/* 009F4 809ED274 03E00008 */ jr $ra
|
||||
/* 009F8 809ED278 00000000 */ nop
|
|
@ -1,68 +0,0 @@
|
|||
glabel func_809ED27C
|
||||
/* 009FC 809ED27C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
|
||||
/* 00A00 809ED280 AFBF0024 */ sw $ra, 0x0024($sp)
|
||||
/* 00A04 809ED284 AFB00020 */ sw $s0, 0x0020($sp)
|
||||
/* 00A08 809ED288 AFA5002C */ sw $a1, 0x002C($sp)
|
||||
/* 00A0C 809ED28C 908E01C0 */ lbu $t6, 0x01C0($a0) ## 000001C0
|
||||
/* 00A10 809ED290 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00A14 809ED294 29C10008 */ slti $at, $t6, 0x0008
|
||||
/* 00A18 809ED298 50200027 */ beql $at, $zero, .L809ED338
|
||||
/* 00A1C 809ED29C 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
|
||||
/* 00A20 809ED2A0 90820211 */ lbu $v0, 0x0211($a0) ## 00000211
|
||||
/* 00A24 809ED2A4 304F0002 */ andi $t7, $v0, 0x0002 ## $t7 = 00000000
|
||||
/* 00A28 809ED2A8 51E00023 */ beql $t7, $zero, .L809ED338
|
||||
/* 00A2C 809ED2AC 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
|
||||
/* 00A30 809ED2B0 908300B1 */ lbu $v1, 0x00B1($a0) ## 000000B1
|
||||
/* 00A34 809ED2B4 3058FFFD */ andi $t8, $v0, 0xFFFD ## $t8 = 00000000
|
||||
/* 00A38 809ED2B8 A0980211 */ sb $t8, 0x0211($a0) ## 00000211
|
||||
/* 00A3C 809ED2BC 10600026 */ beq $v1, $zero, .L809ED358
|
||||
/* 00A40 809ED2C0 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
|
||||
/* 00A44 809ED2C4 10610024 */ beq $v1, $at, .L809ED358
|
||||
/* 00A48 809ED2C8 24054000 */ addiu $a1, $zero, 0x4000 ## $a1 = 00004000
|
||||
/* 00A4C 809ED2CC 24190008 */ addiu $t9, $zero, 0x0008 ## $t9 = 00000008
|
||||
/* 00A50 809ED2D0 AFB90010 */ sw $t9, 0x0010($sp)
|
||||
/* 00A54 809ED2D4 240600FF */ addiu $a2, $zero, 0x00FF ## $a2 = 000000FF
|
||||
/* 00A58 809ED2D8 0C00D09B */ jal func_8003426C
|
||||
/* 00A5C 809ED2DC 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 00A60 809ED2E0 0C00D58A */ jal Actor_ApplyDamage
|
||||
|
||||
/* 00A64 809ED2E4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00A68 809ED2E8 1440000C */ bne $v0, $zero, .L809ED31C
|
||||
/* 00A6C 809ED2EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00A70 809ED2F0 0C27B415 */ jal func_809ED054
|
||||
/* 00A74 809ED2F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00A78 809ED2F8 24080008 */ addiu $t0, $zero, 0x0008 ## $t0 = 00000008
|
||||
/* 00A7C 809ED2FC A20800AF */ sb $t0, 0x00AF($s0) ## 000000AF
|
||||
/* 00A80 809ED300 8FA4002C */ lw $a0, 0x002C($sp)
|
||||
/* 00A84 809ED304 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
||||
/* 00A88 809ED308 26060024 */ addiu $a2, $s0, 0x0024 ## $a2 = 00000024
|
||||
/* 00A8C 809ED30C 0C007E50 */ jal Item_DropCollectibleRandom
|
||||
|
||||
/* 00A90 809ED310 240700E0 */ addiu $a3, $zero, 0x00E0 ## $a3 = 000000E0
|
||||
/* 00A94 809ED314 10000008 */ beq $zero, $zero, .L809ED338
|
||||
/* 00A98 809ED318 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
|
||||
.L809ED31C:
|
||||
/* 00A9C 809ED31C 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 00AA0 809ED320 240539A9 */ addiu $a1, $zero, 0x39A9 ## $a1 = 000039A9
|
||||
/* 00AA4 809ED324 24090009 */ addiu $t1, $zero, 0x0009 ## $t1 = 00000009
|
||||
/* 00AA8 809ED328 A20901C0 */ sb $t1, 0x01C0($s0) ## 000001C0
|
||||
/* 00AAC 809ED32C 0C27B3D8 */ jal func_809ECF60
|
||||
/* 00AB0 809ED330 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00AB4 809ED334 8E020118 */ lw $v0, 0x0118($s0) ## 00000118
|
||||
.L809ED338:
|
||||
/* 00AB8 809ED338 50400008 */ beql $v0, $zero, .L809ED35C
|
||||
/* 00ABC 809ED33C 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 00AC0 809ED340 844A001C */ lh $t2, 0x001C($v0) ## 0000001C
|
||||
/* 00AC4 809ED344 2401000A */ addiu $at, $zero, 0x000A ## $at = 0000000A
|
||||
/* 00AC8 809ED348 55410004 */ bnel $t2, $at, .L809ED35C
|
||||
/* 00ACC 809ED34C 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
/* 00AD0 809ED350 0C27B415 */ jal func_809ED054
|
||||
/* 00AD4 809ED354 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L809ED358:
|
||||
/* 00AD8 809ED358 8FBF0024 */ lw $ra, 0x0024($sp)
|
||||
.L809ED35C:
|
||||
/* 00ADC 809ED35C 8FB00020 */ lw $s0, 0x0020($sp)
|
||||
/* 00AE0 809ED360 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
|
||||
/* 00AE4 809ED364 03E00008 */ jr $ra
|
||||
/* 00AE8 809ED368 00000000 */ nop
|
|
@ -1,45 +0,0 @@
|
|||
glabel func_809ED414
|
||||
/* 00B94 809ED414 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
|
||||
/* 00B98 809ED418 AFA40000 */ sw $a0, 0x0000($sp)
|
||||
/* 00B9C 809ED41C AFA60008 */ sw $a2, 0x0008($sp)
|
||||
/* 00BA0 809ED420 14A1000D */ bne $a1, $at, .L809ED458
|
||||
/* 00BA4 809ED424 AFA7000C */ sw $a3, 0x000C($sp)
|
||||
/* 00BA8 809ED428 8FA20014 */ lw $v0, 0x0014($sp)
|
||||
/* 00BAC 809ED42C 8FA30010 */ lw $v1, 0x0010($sp)
|
||||
/* 00BB0 809ED430 844E01CE */ lh $t6, 0x01CE($v0) ## 000001CE
|
||||
/* 00BB4 809ED434 84690004 */ lh $t1, 0x0004($v1) ## 00000004
|
||||
/* 00BB8 809ED438 25D94000 */ addiu $t9, $t6, 0x4000 ## $t9 = 00004000
|
||||
/* 00BBC 809ED43C 00194023 */ subu $t0, $zero, $t9
|
||||
/* 00BC0 809ED440 A4680002 */ sh $t0, 0x0002($v1) ## 00000002
|
||||
/* 00BC4 809ED444 844A01D2 */ lh $t2, 0x01D2($v0) ## 000001D2
|
||||
/* 00BC8 809ED448 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
|
||||
/* 00BCC 809ED44C 012A5821 */ addu $t3, $t1, $t2
|
||||
/* 00BD0 809ED450 03E00008 */ jr $ra
|
||||
/* 00BD4 809ED454 A46B0004 */ sh $t3, 0x0004($v1) ## 00000004
|
||||
.L809ED458:
|
||||
/* 00BD8 809ED458 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
|
||||
/* 00BDC 809ED45C 14A1000A */ bne $a1, $at, .L809ED488
|
||||
/* 00BE0 809ED460 8FA20014 */ lw $v0, 0x0014($sp)
|
||||
/* 00BE4 809ED464 8FA30010 */ lw $v1, 0x0010($sp)
|
||||
/* 00BE8 809ED468 844C01D0 */ lh $t4, 0x01D0($v0) ## 000001D0
|
||||
/* 00BEC 809ED46C 846D0002 */ lh $t5, 0x0002($v1) ## 00000002
|
||||
/* 00BF0 809ED470 A46C0004 */ sh $t4, 0x0004($v1) ## 00000004
|
||||
/* 00BF4 809ED474 844E01D2 */ lh $t6, 0x01D2($v0) ## 000001D2
|
||||
/* 00BF8 809ED478 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
|
||||
/* 00BFC 809ED47C 01AE7823 */ subu $t7, $t5, $t6
|
||||
/* 00C00 809ED480 03E00008 */ jr $ra
|
||||
/* 00C04 809ED484 A46F0002 */ sh $t7, 0x0002($v1) ## 00000002
|
||||
.L809ED488:
|
||||
/* 00C08 809ED488 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
|
||||
/* 00C0C 809ED48C 14A10008 */ bne $a1, $at, .L809ED4B0
|
||||
/* 00C10 809ED490 8FA20014 */ lw $v0, 0x0014($sp)
|
||||
/* 00C14 809ED494 845801D6 */ lh $t8, 0x01D6($v0) ## 000001D6
|
||||
/* 00C18 809ED498 8FA30010 */ lw $v1, 0x0010($sp)
|
||||
/* 00C1C 809ED49C 0018C823 */ subu $t9, $zero, $t8
|
||||
/* 00C20 809ED4A0 A4790002 */ sh $t9, 0x0002($v1) ## 00000002
|
||||
/* 00C24 809ED4A4 844801D4 */ lh $t0, 0x01D4($v0) ## 000001D4
|
||||
/* 00C28 809ED4A8 00084823 */ subu $t1, $zero, $t0
|
||||
/* 00C2C 809ED4AC A4690004 */ sh $t1, 0x0004($v1) ## 00000004
|
||||
.L809ED4B0:
|
||||
/* 00C30 809ED4B0 03E00008 */ jr $ra
|
||||
/* 00C34 809ED4B4 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
|
|
@ -1,75 +0,0 @@
|
|||
glabel func_809ED4B8
|
||||
/* 00C38 809ED4B8 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
|
||||
/* 00C3C 809ED4BC 3C0F809F */ lui $t7, %hi(D_809ED764) ## $t7 = 809F0000
|
||||
/* 00C40 809ED4C0 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00C44 809ED4C4 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00C48 809ED4C8 AFA40048 */ sw $a0, 0x0048($sp)
|
||||
/* 00C4C 809ED4CC AFA60050 */ sw $a2, 0x0050($sp)
|
||||
/* 00C50 809ED4D0 AFA70054 */ sw $a3, 0x0054($sp)
|
||||
/* 00C54 809ED4D4 25EFD764 */ addiu $t7, $t7, %lo(D_809ED764) ## $t7 = 809ED764
|
||||
/* 00C58 809ED4D8 8DF90000 */ lw $t9, 0x0000($t7) ## 809ED764
|
||||
/* 00C5C 809ED4DC 27AE003C */ addiu $t6, $sp, 0x003C ## $t6 = FFFFFFF4
|
||||
/* 00C60 809ED4E0 8DF80004 */ lw $t8, 0x0004($t7) ## 809ED768
|
||||
/* 00C64 809ED4E4 ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFF4
|
||||
/* 00C68 809ED4E8 8DF90008 */ lw $t9, 0x0008($t7) ## 809ED76C
|
||||
/* 00C6C 809ED4EC 3C09809F */ lui $t1, %hi(D_809ED770) ## $t1 = 809F0000
|
||||
/* 00C70 809ED4F0 2529D770 */ addiu $t1, $t1, %lo(D_809ED770) ## $t1 = 809ED770
|
||||
/* 00C74 809ED4F4 ADD80004 */ sw $t8, 0x0004($t6) ## FFFFFFF8
|
||||
/* 00C78 809ED4F8 ADD90008 */ sw $t9, 0x0008($t6) ## FFFFFFFC
|
||||
/* 00C7C 809ED4FC 8D2B0000 */ lw $t3, 0x0000($t1) ## 809ED770
|
||||
/* 00C80 809ED500 27A80030 */ addiu $t0, $sp, 0x0030 ## $t0 = FFFFFFE8
|
||||
/* 00C84 809ED504 8D2A0004 */ lw $t2, 0x0004($t1) ## 809ED774
|
||||
/* 00C88 809ED508 AD0B0000 */ sw $t3, 0x0000($t0) ## FFFFFFE8
|
||||
/* 00C8C 809ED50C 8D2B0008 */ lw $t3, 0x0008($t1) ## 809ED778
|
||||
/* 00C90 809ED510 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
|
||||
/* 00C94 809ED514 AD0A0004 */ sw $t2, 0x0004($t0) ## FFFFFFEC
|
||||
/* 00C98 809ED518 10A10009 */ beq $a1, $at, .L809ED540
|
||||
/* 00C9C 809ED51C AD0B0008 */ sw $t3, 0x0008($t0) ## FFFFFFF0
|
||||
/* 00CA0 809ED520 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
|
||||
/* 00CA4 809ED524 10A10010 */ beq $a1, $at, .L809ED568
|
||||
/* 00CA8 809ED528 8FB00058 */ lw $s0, 0x0058($sp)
|
||||
/* 00CAC 809ED52C 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
|
||||
/* 00CB0 809ED530 10A10019 */ beq $a1, $at, .L809ED598
|
||||
/* 00CB4 809ED534 8FB00058 */ lw $s0, 0x0058($sp)
|
||||
/* 00CB8 809ED538 10000021 */ beq $zero, $zero, .L809ED5C0
|
||||
/* 00CBC 809ED53C 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L809ED540:
|
||||
/* 00CC0 809ED540 8FB00058 */ lw $s0, 0x0058($sp)
|
||||
/* 00CC4 809ED544 24040002 */ addiu $a0, $zero, 0x0002 ## $a0 = 00000002
|
||||
/* 00CC8 809ED548 26050200 */ addiu $a1, $s0, 0x0200 ## $a1 = 00000200
|
||||
/* 00CCC 809ED54C 0C018A29 */ jal func_800628A4
|
||||
/* 00CD0 809ED550 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00CD4 809ED554 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
/* 00CD8 809ED558 0C018A29 */ jal func_800628A4
|
||||
/* 00CDC 809ED55C 24040003 */ addiu $a0, $zero, 0x0003 ## $a0 = 00000003
|
||||
/* 00CE0 809ED560 10000017 */ beq $zero, $zero, .L809ED5C0
|
||||
/* 00CE4 809ED564 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L809ED568:
|
||||
/* 00CE8 809ED568 26050200 */ addiu $a1, $s0, 0x0200 ## $a1 = 00000200
|
||||
/* 00CEC 809ED56C AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00CF0 809ED570 0C018A29 */ jal func_800628A4
|
||||
/* 00CF4 809ED574 24040004 */ addiu $a0, $zero, 0x0004 ## $a0 = 00000004
|
||||
/* 00CF8 809ED578 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
/* 00CFC 809ED57C 0C018A29 */ jal func_800628A4
|
||||
/* 00D00 809ED580 24040005 */ addiu $a0, $zero, 0x0005 ## $a0 = 00000005
|
||||
/* 00D04 809ED584 27A40030 */ addiu $a0, $sp, 0x0030 ## $a0 = FFFFFFE8
|
||||
/* 00D08 809ED588 0C0346BD */ jal Matrix_MultVec3f
|
||||
/* 00D0C 809ED58C 260501F4 */ addiu $a1, $s0, 0x01F4 ## $a1 = 000001F4
|
||||
/* 00D10 809ED590 1000000B */ beq $zero, $zero, .L809ED5C0
|
||||
/* 00D14 809ED594 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L809ED598:
|
||||
/* 00D18 809ED598 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001
|
||||
/* 00D1C 809ED59C 0C018A29 */ jal func_800628A4
|
||||
/* 00D20 809ED5A0 26050200 */ addiu $a1, $s0, 0x0200 ## $a1 = 00000200
|
||||
/* 00D24 809ED5A4 27A4003C */ addiu $a0, $sp, 0x003C ## $a0 = FFFFFFF4
|
||||
/* 00D28 809ED5A8 0C0346BD */ jal Matrix_MultVec3f
|
||||
/* 00D2C 809ED5AC 260501DC */ addiu $a1, $s0, 0x01DC ## $a1 = 000001DC
|
||||
/* 00D30 809ED5B0 27A40030 */ addiu $a0, $sp, 0x0030 ## $a0 = FFFFFFE8
|
||||
/* 00D34 809ED5B4 0C0346BD */ jal Matrix_MultVec3f
|
||||
/* 00D38 809ED5B8 260501E8 */ addiu $a1, $s0, 0x01E8 ## $a1 = 000001E8
|
||||
/* 00D3C 809ED5BC 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L809ED5C0:
|
||||
/* 00D40 809ED5C0 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 00D44 809ED5C4 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
|
||||
/* 00D48 809ED5C8 03E00008 */ jr $ra
|
||||
/* 00D4C 809ED5CC 00000000 */ nop
|
|
@ -1,35 +0,0 @@
|
|||
.include "macro.inc"
|
||||
|
||||
# assembler directives
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
.set gp=64 # allow use of 64-bit general purposee registers
|
||||
|
||||
.section .data
|
||||
|
||||
glabel En_Dha_InitVars
|
||||
.word 0x00A50500, 0x00000015, 0x00A60000, 0x00000360
|
||||
.word EnDha_Init
|
||||
.word EnDha_Destroy
|
||||
.word EnDha_Update
|
||||
.word EnDha_Draw
|
||||
glabel D_809ED650
|
||||
.word 0x00F20000, 0x00000000, 0xF2F2F400, 0x00000000, 0x00000000, 0x0000F2F4, 0xF2F4F8F4, 0x0000F400
|
||||
glabel D_809ED670
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010000, 0x01000000, 0x00000000, 0x000C0064, 0x00000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010100, 0x02000C80, 0x00000000, 0x000A0064, 0x00000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010100, 0x030004B0, 0x00000000, 0x000A0064, 0x00000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010000, 0x04000A8C, 0x00000000, 0x000A0064, 0x00000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010100, 0x050004B0, 0x00000000, 0x000A0064
|
||||
glabel D_809ED724
|
||||
.word 0x06000919, 0x10000000, 0x00000005
|
||||
.word D_809ED670
|
||||
glabel D_809ED734
|
||||
.word 0x8917002E, 0xB04C07D0, 0x4850000A
|
||||
glabel D_809ED740
|
||||
.word 0x00000000, 0x00000000, 0x00000000
|
||||
glabel D_809ED74C
|
||||
.word 0x00000000, 0x00000000, 0x425C0000
|
||||
glabel D_809ED758
|
||||
.word 0x00000000, 0x00000000, 0xC2580000
|
||||
glabel D_809ED764
|
||||
.word 0x44898000, 0x00000000, 0x00000000
|
||||
glabel D_809ED770
|
||||
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
||||
|
|
@ -1,11 +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 purposee registers
|
||||
|
||||
.section .rodata
|
||||
glabel D_809ED790
|
||||
|
||||
.incbin "baserom/ovl_En_Dha", 0xF10, 0x000000E0
|
|
@ -1057,7 +1057,7 @@ typedef struct GlobalContext {
|
|||
/* 0x11D34 */ u8 nbTransitionActors;
|
||||
/* 0x11D38 */ TransitionActorEntry* transitionActorList;
|
||||
/* 0x11D3C */ char unk_11D3C[0x10];
|
||||
/* 0x11D4C */ void (*unk_11D4C)(struct GlobalContext*, Actor*);
|
||||
/* 0x11D4C */ s32 (*unk_11D4C)(struct GlobalContext*, Actor*);
|
||||
/* 0x11D50 */ char unk_11D50[0x8];
|
||||
/* 0x11D58 */ void (*unk_11D58)(struct GlobalContext*, s32);
|
||||
/* 0x11D5C */ char unk_11D5C[0x4];
|
||||
|
|
|
@ -270,7 +270,8 @@ typedef struct {
|
|||
/* 0x084B */ s8 unk_84B[UNK_SIZE];
|
||||
/* 0x084C */ char unk_84C[0x003];
|
||||
/* 0x084F */ s8 unk_84F;
|
||||
/* 0x0850 */ char unk_850[0x050];
|
||||
/* 0x0850 */ s16 unk_850;
|
||||
/* 0x0852 */ char unk_852[0x04E];
|
||||
/* 0x08A0 */ u8 unk_8A0;
|
||||
/* 0x08A1 */ u8 unk_8A1;
|
||||
/* 0x08A2 */ u16 unk_8A2;
|
||||
|
|
3
spec
3
spec
|
@ -2296,8 +2296,7 @@ endseg
|
|||
beginseg
|
||||
name "ovl_En_Dha"
|
||||
include "build/src/overlays/actors/ovl_En_Dha/z_en_dha.o"
|
||||
include "build/data/overlays/actors/z_en_dha.data.o"
|
||||
include "build/data/overlays/actors/z_en_dha.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_En_Dha/z_en_dha_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
|
|
@ -15,7 +15,17 @@ void EnDha_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
|||
void EnDha_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void EnDha_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
void func_809EC9C8(EnDha* this);
|
||||
void func_809ECA50(EnDha* this, GlobalContext* globalCtx);
|
||||
void func_809ECF60(EnDha* this);
|
||||
void func_809ECF8C(EnDha* this, GlobalContext* globalCtx);
|
||||
void EnDha_SetupDeath(EnDha* this);
|
||||
void EnDha_Die(EnDha* this, GlobalContext* globalCtx);
|
||||
void EnDha_UpdateHealth(EnDha* this, GlobalContext* globalCtx);
|
||||
|
||||
extern SkeletonHeader D_06000BD8;
|
||||
extern AnimationHeader D_060015B0;
|
||||
|
||||
const ActorInit En_Dha_InitVars = {
|
||||
ACTOR_EN_DHA,
|
||||
ACTORTYPE_ENEMY,
|
||||
|
@ -27,31 +37,364 @@ const ActorInit En_Dha_InitVars = {
|
|||
(ActorFunc)EnDha_Update,
|
||||
(ActorFunc)EnDha_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/func_809EC880.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/EnDha_Init.s")
|
||||
static DamageTable damageTable = { {
|
||||
0x00, 0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xF2, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xF4, 0xF2, 0xF4, 0xF8, 0xF4, 0x00, 0x00, 0xF4, 0x00,
|
||||
} };
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/EnDha_Destroy.s")
|
||||
static ColliderJntSphItemInit colliderItemsInit[] = {
|
||||
{
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
|
||||
{ 1, { { 0, 0, 0 }, 12 }, 100 },
|
||||
},
|
||||
{
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
|
||||
{ 2, { { 3200, 0, 0 }, 10 }, 100 },
|
||||
},
|
||||
{
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
|
||||
{ 3, { { 1200, 0, 0 }, 10 }, 100 },
|
||||
},
|
||||
{
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
|
||||
{ 4, { { 2700, 0, 0 }, 10 }, 100 },
|
||||
},
|
||||
{
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
|
||||
{ 5, { { 1200, 0, 0 }, 10 }, 100 },
|
||||
},
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/func_809EC9C8.s")
|
||||
static ColliderJntSphInit colliderInit = {
|
||||
{ COLTYPE_UNK6, 0x00, 0x09, 0x19, 0x10, COLSHAPE_JNTSPH },
|
||||
5,
|
||||
&colliderItemsInit,
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/func_809ECA50.s")
|
||||
static InitChainEntry initChain[] = {
|
||||
ICHAIN_S8(naviEnemyId, 0x2E, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(unk_4C, 2000, ICHAIN_CONTINUE),
|
||||
ICHAIN_VEC3F_DIV1000(scale, 10, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/func_809ECF60.s")
|
||||
void EnDha_SetupAction(EnDha* this, EnDhaActionFunc actionFunc) {
|
||||
this->actionFunc = actionFunc;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/func_809ECF8C.s")
|
||||
void EnDha_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnDha* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/func_809ED054.s")
|
||||
Actor_ProcessInitChain(&this->actor, initChain);
|
||||
this->actor.colChkInfo.damageTable = &damageTable;
|
||||
SkelAnime_InitSV(globalCtx, &this->skelAnime, &D_06000BD8, &D_060015B0, this->limbDrawTable,
|
||||
this->transitionDrawTable, 4);
|
||||
ActorShape_Init(&this->actor.shape, 0, ActorShadow_DrawFunc_Teardrop, 90.0f);
|
||||
this->actor.posRot2.pos = this->actor.posRot.pos;
|
||||
this->actor.posRot2.pos.y += 50.0f;
|
||||
this->actor.colChkInfo.mass = 0xFE;
|
||||
this->actor.colChkInfo.health = 8;
|
||||
this->unk_1CE = -0x4000;
|
||||
Collider_InitJntSph(globalCtx, &this->collider);
|
||||
Collider_SetJntSph(globalCtx, &this->collider, &this->actor, &colliderInit, &this->colliderItem);
|
||||
this->actor.flags &= ~1;
|
||||
func_809EC9C8(this);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/func_809ED0C4.s")
|
||||
void EnDha_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnDha* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/func_809ED27C.s")
|
||||
Collider_DestroyJntSph(globalCtx, &this->collider);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/EnDha_Update.s")
|
||||
void func_809EC9C8(EnDha* this) {
|
||||
SkelAnime_ChangeAnimDefaultRepeat(&this->skelAnime, &D_060015B0);
|
||||
this->unk_1C0 = 0;
|
||||
this->unk_1C8 = ((Math_Rand_ZeroOne() * 10.0f) + 5.0f);
|
||||
this->actor.speedXZ = 0.0f;
|
||||
this->actor.posRot.rot.y = this->actor.shape.rot.y;
|
||||
this->actor.initPosRot.rot.z = 1;
|
||||
EnDha_SetupAction(this, func_809ECA50);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/func_809ED414.s")
|
||||
void func_809ECA50(EnDha* this, GlobalContext* globalCtx) {
|
||||
Vec3f D_809ED740 = { 0.0f, 0.0f, 0.0f };
|
||||
Vec3f D_809ED74C = { 0.0f, 0.0f, 55.0f };
|
||||
Vec3f D_809ED758 = { 0.0f, 0.0f, -54.0f };
|
||||
Player* player = PLAYER;
|
||||
s32 pad;
|
||||
s32 unkVar;
|
||||
Vec3f playerPos;
|
||||
s32 pad2;
|
||||
s16 unkVar2;
|
||||
s16 unkVar3;
|
||||
s32 result;
|
||||
s32 resultAbs;
|
||||
s32 pad3;
|
||||
playerPos = player->actor.posRot.pos;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/func_809ED4B8.s")
|
||||
playerPos.x += (Math_Sins(player->actor.shape.rot.y) * -5.0f);
|
||||
playerPos.z += (Math_Coss(player->actor.shape.rot.y) * -5.0f);
|
||||
if (LINK_IS_CHILD) {
|
||||
playerPos.y += 38.0f;
|
||||
} else {
|
||||
playerPos.y += 56.0f;
|
||||
}
|
||||
if (this->actor.xzDistanceFromLink <= 100.0f) {
|
||||
this->unk_1D0.y = 0;
|
||||
this->unk_1D0.z = this->unk_1D0.y;
|
||||
this->unk_1D6.x = this->unk_1D0.y;
|
||||
if (Math_Vec3f_DistXYZ(&playerPos, &this->unk_1DC) <= 12.0f) {
|
||||
if (this->unk_1CC == 0) {
|
||||
if (globalCtx->unk_11D4C(globalCtx, player) != 0) {
|
||||
this->unk_1CA = 0;
|
||||
this->unk_1CC++;
|
||||
if (this->actor.attachedA != NULL) {
|
||||
this->actor.attachedA->params = 1;
|
||||
}
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_DEADHAND_GRIP);
|
||||
}
|
||||
} else {
|
||||
this->unk_1CA += 0x1194;
|
||||
this->unk_1D0.y = (Math_Sins(this->unk_1CA) * 1820.0f);
|
||||
if (!(player->stateFlags2 & 0x80)) {
|
||||
this->unk_1CC = 0;
|
||||
func_809ECF60(this);
|
||||
return;
|
||||
}
|
||||
if (this->unk_1CA < -0x6E6B) {
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_DEADHAND_GRIP);
|
||||
}
|
||||
}
|
||||
func_80035844(&this->unk_1E8, &playerPos, &this->unk_1D0.z, 0);
|
||||
this->unk_1D6.x = ((this->unk_1D6.x - this->actor.shape.rot.y) - this->unk_1D0.y);
|
||||
this->unk_1D0.z = (((this->unk_1D0.z - this->actor.shape.rot.x) - this->unk_1CE) - this->unk_1D0.x);
|
||||
} else {
|
||||
if (player->stateFlags2 & 0x80) {
|
||||
if (&this->actor == player->actor.attachedA) {
|
||||
player->stateFlags2 &= ~0x80;
|
||||
player->actor.attachedA = NULL;
|
||||
player->unk_850 = 200;
|
||||
}
|
||||
}
|
||||
if (this->actor.initPosRot.rot.z != 0) {
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_DEADHAND_HAND_AT);
|
||||
this->actor.initPosRot.rot.z = 0;
|
||||
}
|
||||
}
|
||||
this->actor.shape.rot.y = Math_Vec3f_Yaw(&this->actor.posRot, &playerPos);
|
||||
Math_SmoothScaleMaxMinF(&this->unk_1DC, playerPos.x, 1.0f, 16.0f, 0.0f);
|
||||
Math_SmoothScaleMaxMinF(&this->unk_1DC.y, playerPos.y, 1.0f, 16.0f, 0.0f);
|
||||
Math_SmoothScaleMaxMinF(&this->unk_1DC.z, playerPos.z, 1.0f, 16.0f, 0.0f);
|
||||
func_80035844(&this->unk_1F4, &this->unk_1DC, &unkVar3, 0);
|
||||
Matrix_Translate(this->unk_1DC.x, this->unk_1DC.y, this->unk_1DC.z, 0);
|
||||
Matrix_RotateRPY(unkVar3, unkVar2, 0, 1);
|
||||
Matrix_MultVec3f(&D_809ED758, &this->unk_1F4);
|
||||
Matrix_Translate(this->actor.posRot.pos.x, this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0);
|
||||
func_80035844(&this->actor.posRot, &this->unk_1F4, &unkVar3, 0);
|
||||
Matrix_RotateRPY(unkVar3, unkVar2, 0, 1);
|
||||
Matrix_MultVec3f(&D_809ED74C, &this->unk_1F4);
|
||||
this->unk_1CE = Math_Vec3f_Pitch(&this->actor.posRot, &this->unk_1F4);
|
||||
result = (s16)(Math_Vec3f_Yaw(&this->actor.posRot, &this->unk_1F4) - this->actor.shape.rot.y);
|
||||
resultAbs = ABS(result);
|
||||
if (resultAbs >= 0x4000) {
|
||||
this->unk_1CE = -0x8000 - this->unk_1CE;
|
||||
}
|
||||
this->unk_1D0.x = (Math_Vec3f_Pitch(&this->unk_1F4, &this->unk_1DC) - this->unk_1CE);
|
||||
if (this->unk_1D0.x < 0) {
|
||||
this->unk_1CE += (this->unk_1D0.x * 2);
|
||||
this->unk_1D0.x *= -2;
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
unkVar = ~0x80;
|
||||
if (player->stateFlags2 & 0x80) {
|
||||
if (&this->actor == player->actor.attachedA) {
|
||||
player->stateFlags2 &= unkVar;
|
||||
player->actor.attachedA = NULL;
|
||||
player->unk_850 = 200;
|
||||
}
|
||||
}
|
||||
this->actor.initPosRot.rot.z = 1;
|
||||
Math_SmoothScaleMaxMinS(&this->unk_1D0, 0, 1, 0x3E8, 0);
|
||||
Math_SmoothScaleMaxMinS(&this->unk_1CE, -0x4000, 1, 0x3E8, 0);
|
||||
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Dha/EnDha_Draw.s")
|
||||
void func_809ECF60(EnDha* this) {
|
||||
this->unk_1C8 = 15;
|
||||
EnDha_SetupAction(this, func_809ECF8C);
|
||||
}
|
||||
|
||||
void func_809ECF8C(EnDha* this, GlobalContext* globalCtx) {
|
||||
Player* player = PLAYER;
|
||||
|
||||
if (player->stateFlags2 & 0x80) {
|
||||
if (&this->actor == player->actor.attachedA) {
|
||||
player->stateFlags2 &= ~0x80;
|
||||
player->actor.attachedA = NULL;
|
||||
player->unk_850 = 200;
|
||||
}
|
||||
}
|
||||
Math_SmoothScaleMaxMinS(&this->unk_1D0.x, 0, 1, 2000, 0);
|
||||
Math_SmoothScaleMaxMinS(&this->unk_1D0.y, 0, 1, 600, 0);
|
||||
Math_SmoothScaleMaxMinS(&this->unk_1CE, -0x4000, 1, 2000, 0);
|
||||
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
|
||||
this->unk_1C8--;
|
||||
if (this->unk_1C8 == 0) {
|
||||
func_809EC9C8(this);
|
||||
}
|
||||
}
|
||||
|
||||
void EnDha_SetupDeath(EnDha* this) {
|
||||
this->unk_1C0 = 8;
|
||||
this->unk_1C8 = 300;
|
||||
|
||||
if (this->actor.attachedA != NULL) {
|
||||
if (this->actor.attachedA->params != 0xA) {
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_DEADHAND_HAND_DEAD);
|
||||
}
|
||||
if (this->actor.attachedA->params <= 0) {
|
||||
this->actor.attachedA->params--;
|
||||
}
|
||||
}
|
||||
EnDha_SetupAction(this, EnDha_Die);
|
||||
}
|
||||
|
||||
void EnDha_Die(EnDha* this, GlobalContext* globalCtx) {
|
||||
s16 result;
|
||||
Vec3f vector;
|
||||
Player* player = PLAYER;
|
||||
|
||||
if (player->stateFlags2 & 0x80) {
|
||||
if (&this->actor == player->actor.attachedA) {
|
||||
player->stateFlags2 &= ~0x80;
|
||||
player->actor.attachedA = NULL;
|
||||
player->unk_850 = 200;
|
||||
}
|
||||
}
|
||||
Math_SmoothScaleMaxMinS(&this->unk_1D0, 0, 1, 0x7D0, 0);
|
||||
result = Math_SmoothScaleMaxMinS(&this->unk_1CE, -0x4000, 1, 0x7D0, 0);
|
||||
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
|
||||
if (result == 0) {
|
||||
vector = this->actor.posRot.pos;
|
||||
|
||||
if (this->unk_1C8 != 0) {
|
||||
if (-12000.0f < this->actor.shape.unk_08) {
|
||||
this->actor.shape.unk_08 -= 1000.0f;
|
||||
func_80033480(globalCtx, &vector, 7.0f, 1, 0x5A, 0x14, 1);
|
||||
return;
|
||||
}
|
||||
this->unk_1C8--;
|
||||
if (this->actor.attachedA != 0) {
|
||||
if (this->actor.attachedA->params == 0xA) {
|
||||
Actor_Kill(&this->actor);
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this->actor.shape.unk_08 += 500.0f;
|
||||
func_80033480(globalCtx, &vector, 7.0f, 1, 0x5A, 0x14, 1);
|
||||
if (this->actor.shape.unk_08 == 0.0f) {
|
||||
func_809EC9C8(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EnDha_UpdateHealth(EnDha* this, GlobalContext* globalCtx) {
|
||||
if (!((this->unk_1C0 >= 8) || !(this->collider.base.acFlags & 2))) {
|
||||
this->collider.base.acFlags &= ~2;
|
||||
if (this->actor.colChkInfo.damageEffect == 0 || this->actor.colChkInfo.damageEffect == 6) {
|
||||
return;
|
||||
} else {
|
||||
func_8003426C(&this->actor, 0x4000, 0xFF, 0, 8);
|
||||
if (Actor_ApplyDamage(&this->actor) == 0) {
|
||||
EnDha_SetupDeath(this);
|
||||
this->actor.colChkInfo.health = 8;
|
||||
Item_DropCollectibleRandom(globalCtx, &this->actor, &this->actor.posRot.pos, 0xE0);
|
||||
} else {
|
||||
Audio_PlayActorSound2(this, NA_SE_EN_DEADHAND_DAMAGE);
|
||||
this->unk_1C0 = 9;
|
||||
func_809ECF60(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this->actor.attachedA != NULL) {
|
||||
if (this->actor.attachedA->params == 0xA) {
|
||||
EnDha_SetupDeath(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EnDha_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnDha* this = THIS;
|
||||
CollisionCheckContext* colChkCtx;
|
||||
|
||||
colChkCtx = &globalCtx->colChkCtx;
|
||||
|
||||
if (this->actor.attachedA == NULL) {
|
||||
this->actor.attachedA = Actor_FindNearby(globalCtx, &this->actor, ACTOR_EN_DH, ACTORTYPE_ENEMY, 10000.0f);
|
||||
}
|
||||
EnDha_UpdateHealth(this, globalCtx);
|
||||
this->actionFunc(this, globalCtx);
|
||||
CollisionCheck_SetAC(globalCtx, colChkCtx, &this->collider);
|
||||
CollisionCheck_SetOC(globalCtx, colChkCtx, &this->collider);
|
||||
}
|
||||
|
||||
s32 EnDha_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
|
||||
EnDha* this = THIS;
|
||||
s32 retVar;
|
||||
|
||||
if (limbIndex == 1) {
|
||||
rot->y = -(s16)(this->unk_1CE + 0x4000);
|
||||
rot->z += this->unk_1D0.y;
|
||||
retVar = 0;
|
||||
} else if (limbIndex == 2) {
|
||||
rot->z = this->unk_1D0.x;
|
||||
rot->y -= this->unk_1D0.y;
|
||||
retVar = 0;
|
||||
} else if (limbIndex == 3) {
|
||||
rot->y = -(this->unk_1D6.x);
|
||||
rot->z = -(this->unk_1D0.z);
|
||||
retVar = 0;
|
||||
} else {
|
||||
retVar = 0;
|
||||
}
|
||||
return retVar;
|
||||
}
|
||||
|
||||
void EnDha_OverridePostDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
|
||||
Vec3f D_809ED764 = { 1100.0f, 0.0f, 0.0f };
|
||||
Vec3f D_809ED770 = { 0.0f, 0.0f, 0.0f };
|
||||
|
||||
EnDha* this = THIS;
|
||||
|
||||
switch (limbIndex) {
|
||||
case 1:
|
||||
func_800628A4(2, &this->collider);
|
||||
func_800628A4(3, &this->collider);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
func_800628A4(4, &this->collider);
|
||||
func_800628A4(5, &this->collider);
|
||||
Matrix_MultVec3f(&D_809ED770, &this->unk_1F4);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
func_800628A4(1, &this->collider);
|
||||
Matrix_MultVec3f(&D_809ED764, &this->unk_1DC);
|
||||
Matrix_MultVec3f(&D_809ED770, &this->unk_1E8);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void EnDha_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
EnDha* this = THIS;
|
||||
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
SkelAnime_DrawSV(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, this->skelAnime.dListCount,
|
||||
EnDha_OverrideLimbDraw, EnDha_OverridePostDraw, &this->actor);
|
||||
}
|
||||
|
|
|
@ -6,9 +6,26 @@
|
|||
|
||||
struct EnDha;
|
||||
|
||||
typedef void (*EnDhaActionFunc)(struct EnDha*, GlobalContext*);
|
||||
|
||||
typedef struct EnDha {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x214];
|
||||
/* 0x014C */ SkelAnime skelAnime;
|
||||
/* 0x0190 */ Vec3s limbDrawTable[4];
|
||||
/* 0x01A8 */ Vec3s transitionDrawTable[4];
|
||||
/* 0x01C0 */ u8 unk_1C0;
|
||||
/* 0x01C4 */ EnDhaActionFunc actionFunc;
|
||||
/* 0x01C8 */ s16 unk_1C8;
|
||||
/* 0x01CA */ s16 unk_1CA;
|
||||
/* 0x01CC */ u8 unk_1CC;
|
||||
/* 0x01CE */ s16 unk_1CE;
|
||||
/* 0x01D0 */ Vec3s unk_1D0;
|
||||
/* 0x01D6 */ Vec3s unk_1D6;
|
||||
/* 0x01DC */ Vec3f unk_1DC;
|
||||
/* 0x01E8 */ Vec3f unk_1E8;
|
||||
/* 0x01F4 */ Vec3f unk_1F4;
|
||||
/* 0x0200 */ ColliderJntSph collider;
|
||||
/* 0x0220 */ ColliderJntSphItem colliderItem[5];
|
||||
} EnDha; // size = 0x0360
|
||||
|
||||
extern const ActorInit En_Dha_InitVars;
|
||||
|
|
|
@ -575,4 +575,8 @@ D_04032890 = 0x04032890;
|
|||
D_0E000000 = 0x0E000000;
|
||||
|
||||
// z_vismono
|
||||
D_0F000000 = 0x0F000000;
|
||||
D_0F000000 = 0x0F000000;
|
||||
|
||||
// z_en_dha
|
||||
D_06000BD8 = 0x06000BD8;
|
||||
D_060015B0 = 0x060015B0;
|
||||
|
|
Loading…
Add table
Reference in a new issue