mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-02 17:44:25 +00:00
EnEncount1 (#457)
* Darkmeiro decompilation Bg_Gnd_Darkmeiro decompiled, matched, and documented. * give this a shot * fix conflict * one more try * could be useful * whoops * Leevers and Tektites and Wolfos, ohmy! * changes and cleanup * the need for speed
This commit is contained in:
parent
0b9b2edf1b
commit
930cee3061
12 changed files with 421 additions and 1202 deletions
|
@ -1,218 +0,0 @@
|
||||||
.rdata
|
|
||||||
glabel D_80A07490
|
|
||||||
.asciz "\n\n"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A07494
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 入力エラーデッス! ☆☆☆☆☆ \n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A074C8
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 入力エラーデッス! ☆☆☆☆☆ \n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A074FC
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 入力エラーデッス! ☆☆☆☆☆ \n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A07530
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 入力エラーデッス! ☆☆☆☆☆ \n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A07564
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 入力エラーデッス! ☆☆☆☆☆ \n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A07598
|
|
||||||
.asciz "\n\n"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A0759C
|
|
||||||
.asciz "\n\n"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A075A0
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 敵発生ゾーンでた! ☆☆☆☆☆ %x\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A075D8
|
|
||||||
.asciz "\x1b[33m☆☆☆☆☆ 種類 ☆☆☆☆☆ %d\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A07604
|
|
||||||
.asciz "\x1b[35m☆☆☆☆☆ 最大同時発生数 ☆☆☆☆☆ %d\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A0763C
|
|
||||||
.asciz "\x1b[36m☆☆☆☆☆ 最大発生数 ☆☆☆☆☆ %d\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A07670
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 発生チェック範囲 ☆☆☆☆☆ %f\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A076A8
|
|
||||||
.asciz "\n\n"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
.text
|
|
||||||
glabel EnEncount1_Init
|
|
||||||
/* 00000 80A06720 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
|
||||||
/* 00004 80A06724 AFBF001C */ sw $ra, 0x001C($sp)
|
|
||||||
/* 00008 80A06728 AFB00018 */ sw $s0, 0x0018($sp)
|
|
||||||
/* 0000C 80A0672C AFA50024 */ sw $a1, 0x0024($sp)
|
|
||||||
/* 00010 80A06730 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
|
|
||||||
/* 00014 80A06734 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
|
||||||
/* 00018 80A06738 3C0480A0 */ lui $a0, %hi(D_80A07490) ## $a0 = 80A00000
|
|
||||||
/* 0001C 80A0673C 5C40001A */ bgtzl $v0, .L80A067A8
|
|
||||||
/* 00020 80A06740 860A0034 */ lh $t2, 0x0034($s0) ## 00000034
|
|
||||||
/* 00024 80A06744 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00028 80A06748 24847490 */ addiu $a0, $a0, %lo(D_80A07490) ## $a0 = 80A07490
|
|
||||||
/* 0002C 80A0674C 3C0480A0 */ lui $a0, %hi(D_80A07494) ## $a0 = 80A00000
|
|
||||||
/* 00030 80A06750 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00034 80A06754 24847494 */ addiu $a0, $a0, %lo(D_80A07494) ## $a0 = 80A07494
|
|
||||||
/* 00038 80A06758 3C0480A0 */ lui $a0, %hi(D_80A074C8) ## $a0 = 80A00000
|
|
||||||
/* 0003C 80A0675C 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00040 80A06760 248474C8 */ addiu $a0, $a0, %lo(D_80A074C8) ## $a0 = 80A074C8
|
|
||||||
/* 00044 80A06764 3C0480A0 */ lui $a0, %hi(D_80A074FC) ## $a0 = 80A00000
|
|
||||||
/* 00048 80A06768 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 0004C 80A0676C 248474FC */ addiu $a0, $a0, %lo(D_80A074FC) ## $a0 = 80A074FC
|
|
||||||
/* 00050 80A06770 3C0480A0 */ lui $a0, %hi(D_80A07530) ## $a0 = 80A00000
|
|
||||||
/* 00054 80A06774 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00058 80A06778 24847530 */ addiu $a0, $a0, %lo(D_80A07530) ## $a0 = 80A07530
|
|
||||||
/* 0005C 80A0677C 3C0480A0 */ lui $a0, %hi(D_80A07564) ## $a0 = 80A00000
|
|
||||||
/* 00060 80A06780 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00064 80A06784 24847564 */ addiu $a0, $a0, %lo(D_80A07564) ## $a0 = 80A07564
|
|
||||||
/* 00068 80A06788 3C0480A0 */ lui $a0, %hi(D_80A07598) ## $a0 = 80A00000
|
|
||||||
/* 0006C 80A0678C 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00070 80A06790 24847598 */ addiu $a0, $a0, %lo(D_80A07598) ## $a0 = 80A07598
|
|
||||||
/* 00074 80A06794 0C00B55C */ jal Actor_Kill
|
|
||||||
|
|
||||||
/* 00078 80A06798 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
|
||||||
/* 0007C 80A0679C 10000063 */ beq $zero, $zero, .L80A0692C
|
|
||||||
/* 00080 80A067A0 8FBF001C */ lw $ra, 0x001C($sp)
|
|
||||||
/* 00084 80A067A4 860A0034 */ lh $t2, 0x0034($s0) ## 00000034
|
|
||||||
.L80A067A8:
|
|
||||||
/* 00088 80A067A8 3C014220 */ lui $at, 0x4220 ## $at = 42200000
|
|
||||||
/* 0008C 80A067AC 44814000 */ mtc1 $at, $f8 ## $f8 = 40.00
|
|
||||||
/* 00090 80A067B0 448A2000 */ mtc1 $t2, $f4 ## $f4 = 0.00
|
|
||||||
/* 00094 80A067B4 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
|
|
||||||
/* 00098 80A067B8 44818000 */ mtc1 $at, $f16 ## $f16 = 120.00
|
|
||||||
/* 0009C 80A067BC 468021A0 */ cvt.s.w $f6, $f4
|
|
||||||
/* 000A0 80A067C0 A6000158 */ sh $zero, 0x0158($s0) ## 00000158
|
|
||||||
/* 000A4 80A067C4 86090158 */ lh $t1, 0x0158($s0) ## 00000158
|
|
||||||
/* 000A8 80A067C8 000272C3 */ sra $t6, $v0, 11
|
|
||||||
/* 000AC 80A067CC 0002C183 */ sra $t8, $v0, 6
|
|
||||||
/* 000B0 80A067D0 31CF001F */ andi $t7, $t6, 0x001F ## $t7 = 00000000
|
|
||||||
/* 000B4 80A067D4 46083282 */ mul.s $f10, $f6, $f8
|
|
||||||
/* 000B8 80A067D8 3319001F */ andi $t9, $t8, 0x001F ## $t9 = 00000000
|
|
||||||
/* 000BC 80A067DC 3048003F */ andi $t0, $v0, 0x003F ## $t0 = 00000000
|
|
||||||
/* 000C0 80A067E0 3C0480A0 */ lui $a0, %hi(D_80A0759C) ## $a0 = 80A00000
|
|
||||||
/* 000C4 80A067E4 A60F0154 */ sh $t7, 0x0154($s0) ## 00000154
|
|
||||||
/* 000C8 80A067E8 A6190150 */ sh $t9, 0x0150($s0) ## 00000150
|
|
||||||
/* 000CC 80A067EC A6080156 */ sh $t0, 0x0156($s0) ## 00000156
|
|
||||||
/* 000D0 80A067F0 46105000 */ add.s $f0, $f10, $f16
|
|
||||||
/* 000D4 80A067F4 2484759C */ addiu $a0, $a0, %lo(D_80A0759C) ## $a0 = 80A0759C
|
|
||||||
/* 000D8 80A067F8 A6090152 */ sh $t1, 0x0152($s0) ## 00000152
|
|
||||||
/* 000DC 80A067FC 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 000E0 80A06800 E6000168 */ swc1 $f0, 0x0168($s0) ## 00000168
|
|
||||||
/* 000E4 80A06804 3C0480A0 */ lui $a0, %hi(D_80A075A0) ## $a0 = 80A00000
|
|
||||||
/* 000E8 80A06808 248475A0 */ addiu $a0, $a0, %lo(D_80A075A0) ## $a0 = 80A075A0
|
|
||||||
/* 000EC 80A0680C 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 000F0 80A06810 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
|
|
||||||
/* 000F4 80A06814 3C0480A0 */ lui $a0, %hi(D_80A075D8) ## $a0 = 80A00000
|
|
||||||
/* 000F8 80A06818 248475D8 */ addiu $a0, $a0, %lo(D_80A075D8) ## $a0 = 80A075D8
|
|
||||||
/* 000FC 80A0681C 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00100 80A06820 86050154 */ lh $a1, 0x0154($s0) ## 00000154
|
|
||||||
/* 00104 80A06824 3C0480A0 */ lui $a0, %hi(D_80A07604) ## $a0 = 80A00000
|
|
||||||
/* 00108 80A06828 24847604 */ addiu $a0, $a0, %lo(D_80A07604) ## $a0 = 80A07604
|
|
||||||
/* 0010C 80A0682C 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00110 80A06830 86050150 */ lh $a1, 0x0150($s0) ## 00000150
|
|
||||||
/* 00114 80A06834 3C0480A0 */ lui $a0, %hi(D_80A0763C) ## $a0 = 80A00000
|
|
||||||
/* 00118 80A06838 2484763C */ addiu $a0, $a0, %lo(D_80A0763C) ## $a0 = 80A0763C
|
|
||||||
/* 0011C 80A0683C 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00120 80A06840 86050156 */ lh $a1, 0x0156($s0) ## 00000156
|
|
||||||
/* 00124 80A06844 C6120168 */ lwc1 $f18, 0x0168($s0) ## 00000168
|
|
||||||
/* 00128 80A06848 3C0480A0 */ lui $a0, %hi(D_80A07670) ## $a0 = 80A00000
|
|
||||||
/* 0012C 80A0684C 24847670 */ addiu $a0, $a0, %lo(D_80A07670) ## $a0 = 80A07670
|
|
||||||
/* 00130 80A06850 46009121 */ cvt.d.s $f4, $f18
|
|
||||||
/* 00134 80A06854 44072000 */ mfc1 $a3, $f4
|
|
||||||
/* 00138 80A06858 44062800 */ mfc1 $a2, $f5
|
|
||||||
/* 0013C 80A0685C 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00140 80A06860 00000000 */ nop
|
|
||||||
/* 00144 80A06864 3C0480A0 */ lui $a0, %hi(D_80A076A8) ## $a0 = 80A00000
|
|
||||||
/* 00148 80A06868 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 0014C 80A0686C 248476A8 */ addiu $a0, $a0, %lo(D_80A076A8) ## $a0 = 80A076A8
|
|
||||||
/* 00150 80A06870 8E0B0004 */ lw $t3, 0x0004($s0) ## 00000004
|
|
||||||
/* 00154 80A06874 86020154 */ lh $v0, 0x0154($s0) ## 00000154
|
|
||||||
/* 00158 80A06878 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE
|
|
||||||
/* 0015C 80A0687C 01616024 */ and $t4, $t3, $at
|
|
||||||
/* 00160 80A06880 1040000C */ beq $v0, $zero, .L80A068B4
|
|
||||||
/* 00164 80A06884 AE0C0004 */ sw $t4, 0x0004($s0) ## 00000004
|
|
||||||
/* 00168 80A06888 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
|
|
||||||
/* 0016C 80A0688C 10410019 */ beq $v0, $at, .L80A068F4
|
|
||||||
/* 00170 80A06890 240A0002 */ addiu $t2, $zero, 0x0002 ## $t2 = 00000002
|
|
||||||
/* 00174 80A06894 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
|
|
||||||
/* 00178 80A06898 1041001B */ beq $v0, $at, .L80A06908
|
|
||||||
/* 0017C 80A0689C 8FAC0024 */ lw $t4, 0x0024($sp)
|
|
||||||
/* 00180 80A068A0 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
|
|
||||||
/* 00184 80A068A4 50410019 */ beql $v0, $at, .L80A0690C
|
|
||||||
/* 00188 80A068A8 858D00A4 */ lh $t5, 0x00A4($t4) ## 000000A4
|
|
||||||
/* 0018C 80A068AC 1000001F */ beq $zero, $zero, .L80A0692C
|
|
||||||
/* 00190 80A068B0 8FBF001C */ lw $ra, 0x001C($sp)
|
|
||||||
.L80A068B4:
|
|
||||||
/* 00194 80A068B4 240D001E */ addiu $t5, $zero, 0x001E ## $t5 = 0000001E
|
|
||||||
/* 00198 80A068B8 240E0005 */ addiu $t6, $zero, 0x0005 ## $t6 = 00000005
|
|
||||||
/* 0019C 80A068BC A60D0164 */ sh $t5, 0x0164($s0) ## 00000164
|
|
||||||
/* 001A0 80A068C0 A60E0150 */ sh $t6, 0x0150($s0) ## 00000150
|
|
||||||
/* 001A4 80A068C4 8FAF0024 */ lw $t7, 0x0024($sp)
|
|
||||||
/* 001A8 80A068C8 2401005E */ addiu $at, $zero, 0x005E ## $at = 0000005E
|
|
||||||
/* 001AC 80A068CC 3C0980A0 */ lui $t1, %hi(func_80A0693C) ## $t1 = 80A00000
|
|
||||||
/* 001B0 80A068D0 85F800A4 */ lh $t8, 0x00A4($t7) ## 000000A4
|
|
||||||
/* 001B4 80A068D4 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
|
|
||||||
/* 001B8 80A068D8 24080003 */ addiu $t0, $zero, 0x0003 ## $t0 = 00000003
|
|
||||||
/* 001BC 80A068DC 17010003 */ bne $t8, $at, .L80A068EC
|
|
||||||
/* 001C0 80A068E0 2529693C */ addiu $t1, $t1, %lo(func_80A0693C) ## $t1 = 80A0693C
|
|
||||||
/* 001C4 80A068E4 A2190166 */ sb $t9, 0x0166($s0) ## 00000166
|
|
||||||
/* 001C8 80A068E8 A6080150 */ sh $t0, 0x0150($s0) ## 00000150
|
|
||||||
.L80A068EC:
|
|
||||||
/* 001CC 80A068EC 1000000E */ beq $zero, $zero, .L80A06928
|
|
||||||
/* 001D0 80A068F0 AE09014C */ sw $t1, 0x014C($s0) ## 0000014C
|
|
||||||
.L80A068F4:
|
|
||||||
/* 001D4 80A068F4 3C0B80A0 */ lui $t3, %hi(func_80A06CD0) ## $t3 = 80A00000
|
|
||||||
/* 001D8 80A068F8 256B6CD0 */ addiu $t3, $t3, %lo(func_80A06CD0) ## $t3 = 80A06CD0
|
|
||||||
/* 001DC 80A068FC A60A0150 */ sh $t2, 0x0150($s0) ## 00000150
|
|
||||||
/* 001E0 80A06900 10000009 */ beq $zero, $zero, .L80A06928
|
|
||||||
/* 001E4 80A06904 AE0B014C */ sw $t3, 0x014C($s0) ## 0000014C
|
|
||||||
.L80A06908:
|
|
||||||
/* 001E8 80A06908 858D00A4 */ lh $t5, 0x00A4($t4) ## 000000A4
|
|
||||||
.L80A0690C:
|
|
||||||
/* 001EC 80A0690C 24010051 */ addiu $at, $zero, 0x0051 ## $at = 00000051
|
|
||||||
/* 001F0 80A06910 3C0F80A0 */ lui $t7, %hi(func_80A06E88) ## $t7 = 80A00000
|
|
||||||
/* 001F4 80A06914 15A10003 */ bne $t5, $at, .L80A06924
|
|
||||||
/* 001F8 80A06918 25EF6E88 */ addiu $t7, $t7, %lo(func_80A06E88) ## $t7 = 80A06E88
|
|
||||||
/* 001FC 80A0691C 240E2710 */ addiu $t6, $zero, 0x2710 ## $t6 = 00002710
|
|
||||||
/* 00200 80A06920 A60E0156 */ sh $t6, 0x0156($s0) ## 00000156
|
|
||||||
.L80A06924:
|
|
||||||
/* 00204 80A06924 AE0F014C */ sw $t7, 0x014C($s0) ## 0000014C
|
|
||||||
.L80A06928:
|
|
||||||
/* 00208 80A06928 8FBF001C */ lw $ra, 0x001C($sp)
|
|
||||||
.L80A0692C:
|
|
||||||
/* 0020C 80A0692C 8FB00018 */ lw $s0, 0x0018($sp)
|
|
||||||
/* 00210 80A06930 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
|
||||||
/* 00214 80A06934 03E00008 */ jr $ra
|
|
||||||
/* 00218 80A06938 00000000 */ nop
|
|
|
@ -1,89 +0,0 @@
|
||||||
glabel EnEncount1_Update
|
|
||||||
/* 00BE8 80A07308 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
|
|
||||||
/* 00BEC 80A0730C AFBF0044 */ sw $ra, 0x0044($sp)
|
|
||||||
/* 00BF0 80A07310 84820164 */ lh $v0, 0x0164($a0) ## 00000164
|
|
||||||
/* 00BF4 80A07314 10400002 */ beq $v0, $zero, .L80A07320
|
|
||||||
/* 00BF8 80A07318 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
|
|
||||||
/* 00BFC 80A0731C A48E0164 */ sh $t6, 0x0164($a0) ## 00000164
|
|
||||||
.L80A07320:
|
|
||||||
/* 00C00 80A07320 AFA40048 */ sw $a0, 0x0048($sp)
|
|
||||||
/* 00C04 80A07324 AFA5004C */ sw $a1, 0x004C($sp)
|
|
||||||
/* 00C08 80A07328 8C99014C */ lw $t9, 0x014C($a0) ## 0000014C
|
|
||||||
/* 00C0C 80A0732C 0320F809 */ jalr $ra, $t9
|
|
||||||
/* 00C10 80A07330 00000000 */ nop
|
|
||||||
/* 00C14 80A07334 3C0F8016 */ lui $t7, %hi(gGameInfo)
|
|
||||||
/* 00C18 80A07338 8DEFFA90 */ lw $t7, %lo(gGameInfo)($t7)
|
|
||||||
/* 00C1C 80A0733C 8FA40048 */ lw $a0, 0x0048($sp)
|
|
||||||
/* 00C20 80A07340 8FA5004C */ lw $a1, 0x004C($sp)
|
|
||||||
/* 00C24 80A07344 85F812D4 */ lh $t8, 0x12D4($t7) ## 801612D4
|
|
||||||
/* 00C28 80A07348 5300003B */ beql $t8, $zero, .L80A07438
|
|
||||||
/* 00C2C 80A0734C 8FBF0044 */ lw $ra, 0x0044($sp)
|
|
||||||
/* 00C30 80A07350 8482015A */ lh $v0, 0x015A($a0) ## 0000015A
|
|
||||||
/* 00C34 80A07354 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
|
|
||||||
/* 00C38 80A07358 240900FF */ addiu $t1, $zero, 0x00FF ## $t1 = 000000FF
|
|
||||||
/* 00C3C 80A0735C 1040001F */ beq $v0, $zero, .L80A073DC
|
|
||||||
/* 00C40 80A07360 240A00FF */ addiu $t2, $zero, 0x00FF ## $t2 = 000000FF
|
|
||||||
/* 00C44 80A07364 30480001 */ andi $t0, $v0, 0x0001 ## $t0 = 00000000
|
|
||||||
/* 00C48 80A07368 15000032 */ bne $t0, $zero, .L80A07434
|
|
||||||
/* 00C4C 80A0736C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
|
|
||||||
/* 00C50 80A07370 84890032 */ lh $t1, 0x0032($a0) ## 00000032
|
|
||||||
/* 00C54 80A07374 C48C0024 */ lwc1 $f12, 0x0024($a0) ## 00000024
|
|
||||||
/* 00C58 80A07378 C48E0028 */ lwc1 $f14, 0x0028($a0) ## 00000028
|
|
||||||
/* 00C5C 80A0737C 8C86002C */ lw $a2, 0x002C($a0) ## 0000002C
|
|
||||||
/* 00C60 80A07380 84870030 */ lh $a3, 0x0030($a0) ## 00000030
|
|
||||||
/* 00C64 80A07384 AFA90010 */ sw $t1, 0x0010($sp)
|
|
||||||
/* 00C68 80A07388 848A0034 */ lh $t2, 0x0034($a0) ## 00000034
|
|
||||||
/* 00C6C 80A0738C 44810000 */ mtc1 $at, $f0 ## $f0 = 1.00
|
|
||||||
/* 00C70 80A07390 240B0078 */ addiu $t3, $zero, 0x0078 ## $t3 = 00000078
|
|
||||||
/* 00C74 80A07394 240C0078 */ addiu $t4, $zero, 0x0078 ## $t4 = 00000078
|
|
||||||
/* 00C78 80A07398 240D0078 */ addiu $t5, $zero, 0x0078 ## $t5 = 00000078
|
|
||||||
/* 00C7C 80A0739C 240E00FF */ addiu $t6, $zero, 0x00FF ## $t6 = 000000FF
|
|
||||||
/* 00C80 80A073A0 24190004 */ addiu $t9, $zero, 0x0004 ## $t9 = 00000004
|
|
||||||
/* 00C84 80A073A4 AFB90034 */ sw $t9, 0x0034($sp)
|
|
||||||
/* 00C88 80A073A8 AFAE0030 */ sw $t6, 0x0030($sp)
|
|
||||||
/* 00C8C 80A073AC AFAD002C */ sw $t5, 0x002C($sp)
|
|
||||||
/* 00C90 80A073B0 AFAC0028 */ sw $t4, 0x0028($sp)
|
|
||||||
/* 00C94 80A073B4 AFAB0024 */ sw $t3, 0x0024($sp)
|
|
||||||
/* 00C98 80A073B8 AFAA0014 */ sw $t2, 0x0014($sp)
|
|
||||||
/* 00C9C 80A073BC E7A00018 */ swc1 $f0, 0x0018($sp)
|
|
||||||
/* 00CA0 80A073C0 E7A0001C */ swc1 $f0, 0x001C($sp)
|
|
||||||
/* 00CA4 80A073C4 E7A00020 */ swc1 $f0, 0x0020($sp)
|
|
||||||
/* 00CA8 80A073C8 8CAF0000 */ lw $t7, 0x0000($a1) ## 00000000
|
|
||||||
/* 00CAC 80A073CC 0C018FA7 */ jal DebugDisplay_AddObject
|
|
||||||
|
|
||||||
/* 00CB0 80A073D0 AFAF0038 */ sw $t7, 0x0038($sp)
|
|
||||||
/* 00CB4 80A073D4 10000018 */ beq $zero, $zero, .L80A07438
|
|
||||||
/* 00CB8 80A073D8 8FBF0044 */ lw $ra, 0x0044($sp)
|
|
||||||
.L80A073DC:
|
|
||||||
/* 00CBC 80A073DC 84980032 */ lh $t8, 0x0032($a0) ## 00000032
|
|
||||||
/* 00CC0 80A073E0 C48C0024 */ lwc1 $f12, 0x0024($a0) ## 00000024
|
|
||||||
/* 00CC4 80A073E4 C48E0028 */ lwc1 $f14, 0x0028($a0) ## 00000028
|
|
||||||
/* 00CC8 80A073E8 8C86002C */ lw $a2, 0x002C($a0) ## 0000002C
|
|
||||||
/* 00CCC 80A073EC 84870030 */ lh $a3, 0x0030($a0) ## 00000030
|
|
||||||
/* 00CD0 80A073F0 AFB80010 */ sw $t8, 0x0010($sp)
|
|
||||||
/* 00CD4 80A073F4 84880034 */ lh $t0, 0x0034($a0) ## 00000034
|
|
||||||
/* 00CD8 80A073F8 44810000 */ mtc1 $at, $f0 ## $f0 = 0.00
|
|
||||||
/* 00CDC 80A073FC 240B00FF */ addiu $t3, $zero, 0x00FF ## $t3 = 000000FF
|
|
||||||
/* 00CE0 80A07400 240C0004 */ addiu $t4, $zero, 0x0004 ## $t4 = 00000004
|
|
||||||
/* 00CE4 80A07404 AFAC0034 */ sw $t4, 0x0034($sp)
|
|
||||||
/* 00CE8 80A07408 AFAB0030 */ sw $t3, 0x0030($sp)
|
|
||||||
/* 00CEC 80A0740C AFAA002C */ sw $t2, 0x002C($sp)
|
|
||||||
/* 00CF0 80A07410 AFA00028 */ sw $zero, 0x0028($sp)
|
|
||||||
/* 00CF4 80A07414 AFA90024 */ sw $t1, 0x0024($sp)
|
|
||||||
/* 00CF8 80A07418 AFA80014 */ sw $t0, 0x0014($sp)
|
|
||||||
/* 00CFC 80A0741C E7A00018 */ swc1 $f0, 0x0018($sp)
|
|
||||||
/* 00D00 80A07420 E7A0001C */ swc1 $f0, 0x001C($sp)
|
|
||||||
/* 00D04 80A07424 E7A00020 */ swc1 $f0, 0x0020($sp)
|
|
||||||
/* 00D08 80A07428 8CAD0000 */ lw $t5, 0x0000($a1) ## 00000000
|
|
||||||
/* 00D0C 80A0742C 0C018FA7 */ jal DebugDisplay_AddObject
|
|
||||||
|
|
||||||
/* 00D10 80A07430 AFAD0038 */ sw $t5, 0x0038($sp)
|
|
||||||
.L80A07434:
|
|
||||||
/* 00D14 80A07434 8FBF0044 */ lw $ra, 0x0044($sp)
|
|
||||||
.L80A07438:
|
|
||||||
/* 00D18 80A07438 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
|
|
||||||
/* 00D1C 80A0743C 03E00008 */ jr $ra
|
|
||||||
/* 00D20 80A07440 00000000 */ nop
|
|
||||||
/* 00D24 80A07444 00000000 */ nop
|
|
||||||
/* 00D28 80A07448 00000000 */ nop
|
|
||||||
/* 00D2C 80A0744C 00000000 */ nop
|
|
|
@ -1,276 +0,0 @@
|
||||||
.rdata
|
|
||||||
glabel D_80A076AC
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A076DC
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A0770C
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
.late_rodata
|
|
||||||
glabel D_80A0785C
|
|
||||||
.float 1300.0
|
|
||||||
|
|
||||||
glabel D_80A07860
|
|
||||||
.word 0x407F5C29
|
|
||||||
glabel D_80A07864
|
|
||||||
.word 0x403F5C29, 0x00000000, 0x00000000
|
|
||||||
|
|
||||||
.text
|
|
||||||
glabel func_80A0693C
|
|
||||||
/* 0021C 80A0693C 27BDFF68 */ addiu $sp, $sp, 0xFF68 ## $sp = FFFFFF68
|
|
||||||
/* 00220 80A06940 AFBF005C */ sw $ra, 0x005C($sp)
|
|
||||||
/* 00224 80A06944 AFB60058 */ sw $s6, 0x0058($sp)
|
|
||||||
/* 00228 80A06948 AFB50054 */ sw $s5, 0x0054($sp)
|
|
||||||
/* 0022C 80A0694C AFB40050 */ sw $s4, 0x0050($sp)
|
|
||||||
/* 00230 80A06950 AFB3004C */ sw $s3, 0x004C($sp)
|
|
||||||
/* 00234 80A06954 AFB20048 */ sw $s2, 0x0048($sp)
|
|
||||||
/* 00238 80A06958 AFB10044 */ sw $s1, 0x0044($sp)
|
|
||||||
/* 0023C 80A0695C AFB00040 */ sw $s0, 0x0040($sp)
|
|
||||||
/* 00240 80A06960 F7B40038 */ sdc1 $f20, 0x0038($sp)
|
|
||||||
/* 00244 80A06964 8C980024 */ lw $t8, 0x0024($a0) ## 00000024
|
|
||||||
/* 00248 80A06968 8CB31C44 */ lw $s3, 0x1C44($a1) ## 00001C44
|
|
||||||
/* 0024C 80A0696C A480015A */ sh $zero, 0x015A($a0) ## 0000015A
|
|
||||||
/* 00250 80A06970 27AE0078 */ addiu $t6, $sp, 0x0078 ## $t6 = FFFFFFE0
|
|
||||||
/* 00254 80A06974 ADD80000 */ sw $t8, 0x0000($t6) ## FFFFFFE0
|
|
||||||
/* 00258 80A06978 8C8F0028 */ lw $t7, 0x0028($a0) ## 00000028
|
|
||||||
/* 0025C 80A0697C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
|
||||||
/* 00260 80A06980 00A0B025 */ or $s6, $a1, $zero ## $s6 = 00000000
|
|
||||||
/* 00264 80A06984 ADCF0004 */ sw $t7, 0x0004($t6) ## FFFFFFE4
|
|
||||||
/* 00268 80A06988 8C98002C */ lw $t8, 0x002C($a0) ## 0000002C
|
|
||||||
/* 0026C 80A0698C ADD80008 */ sw $t8, 0x0008($t6) ## FFFFFFE8
|
|
||||||
/* 00270 80A06990 84990164 */ lh $t9, 0x0164($a0) ## 00000164
|
|
||||||
/* 00274 80A06994 572000C4 */ bnel $t9, $zero, .L80A06CA8
|
|
||||||
/* 00278 80A06998 8FBF005C */ lw $ra, 0x005C($sp)
|
|
||||||
/* 0027C 80A0699C 90A81D6C */ lbu $t0, 0x1D6C($a1) ## 00001D6C
|
|
||||||
/* 00280 80A069A0 550000C1 */ bnel $t0, $zero, .L80A06CA8
|
|
||||||
/* 00284 80A069A4 8FBF005C */ lw $ra, 0x005C($sp)
|
|
||||||
/* 00288 80A069A8 84820152 */ lh $v0, 0x0152($a0) ## 00000152
|
|
||||||
/* 0028C 80A069AC 84890150 */ lh $t1, 0x0150($a0) ## 00000150
|
|
||||||
/* 00290 80A069B0 0122082A */ slt $at, $t1, $v0
|
|
||||||
/* 00294 80A069B4 142000BB */ bne $at, $zero, .L80A06CA4
|
|
||||||
/* 00298 80A069B8 28410005 */ slti $at, $v0, 0x0005
|
|
||||||
/* 0029C 80A069BC 102000B9 */ beq $at, $zero, .L80A06CA4
|
|
||||||
/* 002A0 80A069C0 24A407C0 */ addiu $a0, $a1, 0x07C0 ## $a0 = 000007C0
|
|
||||||
/* 002A4 80A069C4 8E650078 */ lw $a1, 0x0078($s3) ## 00000078
|
|
||||||
/* 002A8 80A069C8 9266007D */ lbu $a2, 0x007D($s3) ## 0000007D
|
|
||||||
/* 002AC 80A069CC 0C010753 */ jal func_80041D4C
|
|
||||||
/* 002B0 80A069D0 AFA40060 */ sw $a0, 0x0060($sp)
|
|
||||||
/* 002B4 80A069D4 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
|
|
||||||
/* 002B8 80A069D8 10410007 */ beq $v0, $at, .L80A069F8
|
|
||||||
/* 002BC 80A069DC 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007
|
|
||||||
/* 002C0 80A069E0 10410005 */ beq $v0, $at, .L80A069F8
|
|
||||||
/* 002C4 80A069E4 2401000C */ addiu $at, $zero, 0x000C ## $at = 0000000C
|
|
||||||
/* 002C8 80A069E8 50410004 */ beql $v0, $at, .L80A069FC
|
|
||||||
/* 002CC 80A069EC 92020166 */ lbu $v0, 0x0166($s0) ## 00000166
|
|
||||||
/* 002D0 80A069F0 100000AC */ beq $zero, $zero, .L80A06CA4
|
|
||||||
/* 002D4 80A069F4 A6000160 */ sh $zero, 0x0160($s0) ## 00000160
|
|
||||||
.L80A069F8:
|
|
||||||
/* 002D8 80A069F8 92020166 */ lbu $v0, 0x0166($s0) ## 00000166
|
|
||||||
.L80A069FC:
|
|
||||||
/* 002DC 80A069FC 3C0180A0 */ lui $at, %hi(D_80A0785C) ## $at = 80A00000
|
|
||||||
/* 002E0 80A06A00 240A0005 */ addiu $t2, $zero, 0x0005 ## $t2 = 00000005
|
|
||||||
/* 002E4 80A06A04 10400007 */ beq $v0, $zero, .L80A06A24
|
|
||||||
/* 002E8 80A06A08 00000000 */ nop
|
|
||||||
/* 002EC 80A06A0C C424785C */ lwc1 $f4, %lo(D_80A0785C)($at)
|
|
||||||
/* 002F0 80A06A10 C6060090 */ lwc1 $f6, 0x0090($s0) ## 00000090
|
|
||||||
/* 002F4 80A06A14 4606203C */ c.lt.s $f4, $f6
|
|
||||||
/* 002F8 80A06A18 00000000 */ nop
|
|
||||||
/* 002FC 80A06A1C 450300A2 */ bc1tl .L80A06CA8
|
|
||||||
/* 00300 80A06A20 8FBF005C */ lw $ra, 0x005C($sp)
|
|
||||||
.L80A06A24:
|
|
||||||
/* 00304 80A06A24 10400003 */ beq $v0, $zero, .L80A06A34
|
|
||||||
/* 00308 80A06A28 A7AA0086 */ sh $t2, 0x0086($sp)
|
|
||||||
/* 0030C 80A06A2C 240B0003 */ addiu $t3, $zero, 0x0003 ## $t3 = 00000003
|
|
||||||
/* 00310 80A06A30 A7AB0086 */ sh $t3, 0x0086($sp)
|
|
||||||
.L80A06A34:
|
|
||||||
/* 00314 80A06A34 86020152 */ lh $v0, 0x0152($s0) ## 00000152
|
|
||||||
/* 00318 80A06A38 860C0150 */ lh $t4, 0x0150($s0) ## 00000150
|
|
||||||
/* 0031C 80A06A3C 87AD0086 */ lh $t5, 0x0086($sp)
|
|
||||||
/* 00320 80A06A40 004C082A */ slt $at, $v0, $t4
|
|
||||||
/* 00324 80A06A44 10200097 */ beq $at, $zero, .L80A06CA4
|
|
||||||
/* 00328 80A06A48 004D082A */ slt $at, $v0, $t5
|
|
||||||
/* 0032C 80A06A4C 50200096 */ beql $at, $zero, .L80A06CA8
|
|
||||||
/* 00330 80A06A50 8FBF005C */ lw $ra, 0x005C($sp)
|
|
||||||
/* 00334 80A06A54 860E0164 */ lh $t6, 0x0164($s0) ## 00000164
|
|
||||||
/* 00338 80A06A58 3C1580A0 */ lui $s5, %hi(D_80A07450) ## $s5 = 80A00000
|
|
||||||
/* 0033C 80A06A5C 26B57450 */ addiu $s5, $s5, %lo(D_80A07450) ## $s5 = 80A07450
|
|
||||||
/* 00340 80A06A60 15C00090 */ bne $t6, $zero, .L80A06CA4
|
|
||||||
/* 00344 80A06A64 3C1480A0 */ lui $s4, %hi(D_80A0745C) ## $s4 = 80A00000
|
|
||||||
/* 00348 80A06A68 2694745C */ addiu $s4, $s4, %lo(D_80A0745C) ## $s4 = 80A0745C
|
|
||||||
/* 0034C 80A06A6C 86020162 */ lh $v0, 0x0162($s0) ## 00000162
|
|
||||||
.L80A06A70:
|
|
||||||
/* 00350 80A06A70 866A00B6 */ lh $t2, 0x00B6($s3) ## 000000B6
|
|
||||||
/* 00354 80A06A74 860B015E */ lh $t3, 0x015E($s0) ## 0000015E
|
|
||||||
/* 00358 80A06A78 0002C840 */ sll $t9, $v0, 1
|
|
||||||
/* 0035C 80A06A7C 02B94021 */ addu $t0, $s5, $t9
|
|
||||||
/* 00360 80A06A80 85090000 */ lh $t1, 0x0000($t0) ## 00000000
|
|
||||||
/* 00364 80A06A84 00027880 */ sll $t7, $v0, 2
|
|
||||||
/* 00368 80A06A88 028FC021 */ addu $t8, $s4, $t7
|
|
||||||
/* 0036C 80A06A8C 012A8821 */ addu $s1, $t1, $t2
|
|
||||||
/* 00370 80A06A90 00118C00 */ sll $s1, $s1, 16
|
|
||||||
/* 00374 80A06A94 2961000A */ slti $at, $t3, 0x000A
|
|
||||||
/* 00378 80A06A98 C7140000 */ lwc1 $f20, 0x0000($t8) ## 00000000
|
|
||||||
/* 0037C 80A06A9C 00118C03 */ sra $s1, $s1, 16
|
|
||||||
/* 00380 80A06AA0 1420000A */ bne $at, $zero, .L80A06ACC
|
|
||||||
/* 00384 80A06AA4 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000
|
|
||||||
/* 00388 80A06AA8 8E0C016C */ lw $t4, 0x016C($s0) ## 0000016C
|
|
||||||
/* 0038C 80A06AAC 55800008 */ bnel $t4, $zero, .L80A06AD0
|
|
||||||
/* 00390 80A06AB0 00112400 */ sll $a0, $s1, 16
|
|
||||||
/* 00394 80A06AB4 A6000160 */ sh $zero, 0x0160($s0) ## 00000160
|
|
||||||
/* 00398 80A06AB8 860D0160 */ lh $t5, 0x0160($s0) ## 00000160
|
|
||||||
/* 0039C 80A06ABC 24120001 */ addiu $s2, $zero, 0x0001 ## $s2 = 00000001
|
|
||||||
/* 003A0 80A06AC0 A60D015E */ sh $t5, 0x015E($s0) ## 0000015E
|
|
||||||
/* 003A4 80A06AC4 86B10000 */ lh $s1, 0x0000($s5) ## 80A07450
|
|
||||||
/* 003A8 80A06AC8 C6940008 */ lwc1 $f20, 0x0008($s4) ## 80A07464
|
|
||||||
.L80A06ACC:
|
|
||||||
/* 003AC 80A06ACC 00112400 */ sll $a0, $s1, 16
|
|
||||||
.L80A06AD0:
|
|
||||||
/* 003B0 80A06AD0 0C01DE1C */ jal Math_Sins
|
|
||||||
## sins?
|
|
||||||
/* 003B4 80A06AD4 00042403 */ sra $a0, $a0, 16
|
|
||||||
/* 003B8 80A06AD8 46140202 */ mul.s $f8, $f0, $f20
|
|
||||||
/* 003BC 80A06ADC C66A0024 */ lwc1 $f10, 0x0024($s3) ## 00000024
|
|
||||||
/* 003C0 80A06AE0 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
|
|
||||||
/* 003C4 80A06AE4 44812000 */ mtc1 $at, $f4 ## $f4 = 120.00
|
|
||||||
/* 003C8 80A06AE8 00112400 */ sll $a0, $s1, 16
|
|
||||||
/* 003CC 80A06AEC 00042403 */ sra $a0, $a0, 16
|
|
||||||
/* 003D0 80A06AF0 460A4400 */ add.s $f16, $f8, $f10
|
|
||||||
/* 003D4 80A06AF4 E7B00078 */ swc1 $f16, 0x0078($sp)
|
|
||||||
/* 003D8 80A06AF8 C6720080 */ lwc1 $f18, 0x0080($s3) ## 00000080
|
|
||||||
/* 003DC 80A06AFC 46049180 */ add.s $f6, $f18, $f4
|
|
||||||
/* 003E0 80A06B00 0C01DE0D */ jal Math_Coss
|
|
||||||
## coss?
|
|
||||||
/* 003E4 80A06B04 E7A6007C */ swc1 $f6, 0x007C($sp)
|
|
||||||
/* 003E8 80A06B08 46140202 */ mul.s $f8, $f0, $f20
|
|
||||||
/* 003EC 80A06B0C C66A002C */ lwc1 $f10, 0x002C($s3) ## 0000002C
|
|
||||||
/* 003F0 80A06B10 27AE0078 */ addiu $t6, $sp, 0x0078 ## $t6 = FFFFFFE0
|
|
||||||
/* 003F4 80A06B14 AFAE0010 */ sw $t6, 0x0010($sp)
|
|
||||||
/* 003F8 80A06B18 8FA40060 */ lw $a0, 0x0060($sp)
|
|
||||||
/* 003FC 80A06B1C 27A50074 */ addiu $a1, $sp, 0x0074 ## $a1 = FFFFFFDC
|
|
||||||
/* 00400 80A06B20 27A60070 */ addiu $a2, $sp, 0x0070 ## $a2 = FFFFFFD8
|
|
||||||
/* 00404 80A06B24 460A4400 */ add.s $f16, $f8, $f10
|
|
||||||
/* 00408 80A06B28 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000
|
|
||||||
/* 0040C 80A06B2C 0C00F269 */ jal func_8003C9A4
|
|
||||||
/* 00410 80A06B30 E7B00080 */ swc1 $f16, 0x0080($sp)
|
|
||||||
/* 00414 80A06B34 3C01C6FA */ lui $at, 0xC6FA ## $at = C6FA0000
|
|
||||||
/* 00418 80A06B38 44819000 */ mtc1 $at, $f18 ## $f18 = -32000.00
|
|
||||||
/* 0041C 80A06B3C 46000086 */ mov.s $f2, $f0
|
|
||||||
/* 00420 80A06B40 26C41C24 */ addiu $a0, $s6, 0x1C24 ## $a0 = 00001C24
|
|
||||||
/* 00424 80A06B44 4612003E */ c.le.s $f0, $f18
|
|
||||||
/* 00428 80A06B48 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
|
||||||
/* 0042C 80A06B4C 02C03025 */ or $a2, $s6, $zero ## $a2 = 00000000
|
|
||||||
/* 00430 80A06B50 2407001C */ addiu $a3, $zero, 0x001C ## $a3 = 0000001C
|
|
||||||
/* 00434 80A06B54 45030054 */ bc1tl .L80A06CA8
|
|
||||||
/* 00438 80A06B58 8FBF005C */ lw $ra, 0x005C($sp)
|
|
||||||
/* 0043C 80A06B5C C7A40078 */ lwc1 $f4, 0x0078($sp)
|
|
||||||
/* 00440 80A06B60 C7A60080 */ lwc1 $f6, 0x0080($sp)
|
|
||||||
/* 00444 80A06B64 E7A2007C */ swc1 $f2, 0x007C($sp)
|
|
||||||
/* 00448 80A06B68 E7A20014 */ swc1 $f2, 0x0014($sp)
|
|
||||||
/* 0044C 80A06B6C AFA0001C */ sw $zero, 0x001C($sp)
|
|
||||||
/* 00450 80A06B70 AFA00020 */ sw $zero, 0x0020($sp)
|
|
||||||
/* 00454 80A06B74 AFA00024 */ sw $zero, 0x0024($sp)
|
|
||||||
/* 00458 80A06B78 AFB20028 */ sw $s2, 0x0028($sp)
|
|
||||||
/* 0045C 80A06B7C E7A40010 */ swc1 $f4, 0x0010($sp)
|
|
||||||
/* 00460 80A06B80 0C00C916 */ jal Actor_SpawnAsChild
|
|
||||||
|
|
||||||
/* 00464 80A06B84 E7A60018 */ swc1 $f6, 0x0018($sp)
|
|
||||||
/* 00468 80A06B88 10400030 */ beq $v0, $zero, .L80A06C4C
|
|
||||||
/* 0046C 80A06B8C 240E0096 */ addiu $t6, $zero, 0x0096 ## $t6 = 00000096
|
|
||||||
/* 00470 80A06B90 860F0152 */ lh $t7, 0x0152($s0) ## 00000152
|
|
||||||
/* 00474 80A06B94 86190162 */ lh $t9, 0x0162($s0) ## 00000162
|
|
||||||
/* 00478 80A06B98 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
|
|
||||||
/* 0047C 80A06B9C A6180152 */ sh $t8, 0x0152($s0) ## 00000152
|
|
||||||
/* 00480 80A06BA0 A4590280 */ sh $t9, 0x0280($v0) ## 00000280
|
|
||||||
/* 00484 80A06BA4 86080162 */ lh $t0, 0x0162($s0) ## 00000162
|
|
||||||
/* 00488 80A06BA8 240F012C */ addiu $t7, $zero, 0x012C ## $t7 = 0000012C
|
|
||||||
/* 0048C 80A06BAC 25090001 */ addiu $t1, $t0, 0x0001 ## $t1 = 00000001
|
|
||||||
/* 00490 80A06BB0 A6090162 */ sh $t1, 0x0162($s0) ## 00000162
|
|
||||||
/* 00494 80A06BB4 860A0162 */ lh $t2, 0x0162($s0) ## 00000162
|
|
||||||
/* 00498 80A06BB8 29410005 */ slti $at, $t2, 0x0005
|
|
||||||
/* 0049C 80A06BBC 54200003 */ bnel $at, $zero, .L80A06BCC
|
|
||||||
/* 004A0 80A06BC0 860B0160 */ lh $t3, 0x0160($s0) ## 00000160
|
|
||||||
/* 004A4 80A06BC4 A6000162 */ sh $zero, 0x0162($s0) ## 00000162
|
|
||||||
/* 004A8 80A06BC8 860B0160 */ lh $t3, 0x0160($s0) ## 00000160
|
|
||||||
.L80A06BCC:
|
|
||||||
/* 004AC 80A06BCC 256C0001 */ addiu $t4, $t3, 0x0001 ## $t4 = 00000001
|
|
||||||
/* 004B0 80A06BD0 A60C0160 */ sh $t4, 0x0160($s0) ## 00000160
|
|
||||||
/* 004B4 80A06BD4 860D0160 */ lh $t5, 0x0160($s0) ## 00000160
|
|
||||||
/* 004B8 80A06BD8 29A1000C */ slti $at, $t5, 0x000C
|
|
||||||
/* 004BC 80A06BDC 14200003 */ bne $at, $zero, .L80A06BEC
|
|
||||||
/* 004C0 80A06BE0 00000000 */ nop
|
|
||||||
/* 004C4 80A06BE4 A60E0164 */ sh $t6, 0x0164($s0) ## 00000164
|
|
||||||
/* 004C8 80A06BE8 A6000160 */ sh $zero, 0x0160($s0) ## 00000160
|
|
||||||
.L80A06BEC:
|
|
||||||
/* 004CC 80A06BEC 12400003 */ beq $s2, $zero, .L80A06BFC
|
|
||||||
/* 004D0 80A06BF0 3C0180A0 */ lui $at, %hi(D_80A07864) ## $at = 80A00000
|
|
||||||
/* 004D4 80A06BF4 A60F0164 */ sh $t7, 0x0164($s0) ## 00000164
|
|
||||||
/* 004D8 80A06BF8 AE02016C */ sw $v0, 0x016C($s0) ## 0000016C
|
|
||||||
.L80A06BFC:
|
|
||||||
/* 004DC 80A06BFC 92180166 */ lbu $t8, 0x0166($s0) ## 00000166
|
|
||||||
/* 004E0 80A06C00 1700000A */ bne $t8, $zero, .L80A06C2C
|
|
||||||
/* 004E4 80A06C04 00000000 */ nop
|
|
||||||
/* 004E8 80A06C08 3C0180A0 */ lui $at, %hi(D_80A07860) ## $at = 80A00000
|
|
||||||
/* 004EC 80A06C0C 0C00CFBE */ jal Math_Rand_ZeroFloat
|
|
||||||
|
|
||||||
/* 004F0 80A06C10 C42C7860 */ lwc1 $f12, %lo(D_80A07860)($at)
|
|
||||||
/* 004F4 80A06C14 4600020D */ trunc.w.s $f8, $f0
|
|
||||||
/* 004F8 80A06C18 440A4000 */ mfc1 $t2, $f8
|
|
||||||
/* 004FC 80A06C1C 00000000 */ nop
|
|
||||||
/* 00500 80A06C20 254B0002 */ addiu $t3, $t2, 0x0002 ## $t3 = 00000002
|
|
||||||
/* 00504 80A06C24 10000014 */ beq $zero, $zero, .L80A06C78
|
|
||||||
/* 00508 80A06C28 A60B0150 */ sh $t3, 0x0150($s0) ## 00000150
|
|
||||||
.L80A06C2C:
|
|
||||||
/* 0050C 80A06C2C 0C00CFBE */ jal Math_Rand_ZeroFloat
|
|
||||||
|
|
||||||
/* 00510 80A06C30 C42C7864 */ lwc1 $f12, %lo(D_80A07864)($at)
|
|
||||||
/* 00514 80A06C34 4600028D */ trunc.w.s $f10, $f0
|
|
||||||
/* 00518 80A06C38 440F5000 */ mfc1 $t7, $f10
|
|
||||||
/* 0051C 80A06C3C 00000000 */ nop
|
|
||||||
/* 00520 80A06C40 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
|
|
||||||
/* 00524 80A06C44 1000000C */ beq $zero, $zero, .L80A06C78
|
|
||||||
/* 00528 80A06C48 A6180150 */ sh $t8, 0x0150($s0) ## 00000150
|
|
||||||
.L80A06C4C:
|
|
||||||
/* 0052C 80A06C4C 3C0480A0 */ lui $a0, %hi(D_80A076AC) ## $a0 = 80A00000
|
|
||||||
/* 00530 80A06C50 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00534 80A06C54 248476AC */ addiu $a0, $a0, %lo(D_80A076AC) ## $a0 = 80A076AC
|
|
||||||
/* 00538 80A06C58 3C0480A0 */ lui $a0, %hi(D_80A076DC) ## $a0 = 80A00000
|
|
||||||
/* 0053C 80A06C5C 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00540 80A06C60 248476DC */ addiu $a0, $a0, %lo(D_80A076DC) ## $a0 = 80A076DC
|
|
||||||
/* 00544 80A06C64 3C0480A0 */ lui $a0, %hi(D_80A0770C) ## $a0 = 80A00000
|
|
||||||
/* 00548 80A06C68 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 0054C 80A06C6C 2484770C */ addiu $a0, $a0, %lo(D_80A0770C) ## $a0 = 80A0770C
|
|
||||||
/* 00550 80A06C70 1000000D */ beq $zero, $zero, .L80A06CA8
|
|
||||||
/* 00554 80A06C74 8FBF005C */ lw $ra, 0x005C($sp)
|
|
||||||
.L80A06C78:
|
|
||||||
/* 00558 80A06C78 86020152 */ lh $v0, 0x0152($s0) ## 00000152
|
|
||||||
/* 0055C 80A06C7C 86190150 */ lh $t9, 0x0150($s0) ## 00000150
|
|
||||||
/* 00560 80A06C80 87A80086 */ lh $t0, 0x0086($sp)
|
|
||||||
/* 00564 80A06C84 0059082A */ slt $at, $v0, $t9
|
|
||||||
/* 00568 80A06C88 10200006 */ beq $at, $zero, .L80A06CA4
|
|
||||||
/* 0056C 80A06C8C 0048082A */ slt $at, $v0, $t0
|
|
||||||
/* 00570 80A06C90 50200005 */ beql $at, $zero, .L80A06CA8
|
|
||||||
/* 00574 80A06C94 8FBF005C */ lw $ra, 0x005C($sp)
|
|
||||||
/* 00578 80A06C98 86090164 */ lh $t1, 0x0164($s0) ## 00000164
|
|
||||||
/* 0057C 80A06C9C 5120FF74 */ beql $t1, $zero, .L80A06A70
|
|
||||||
/* 00580 80A06CA0 86020162 */ lh $v0, 0x0162($s0) ## 00000162
|
|
||||||
.L80A06CA4:
|
|
||||||
/* 00584 80A06CA4 8FBF005C */ lw $ra, 0x005C($sp)
|
|
||||||
.L80A06CA8:
|
|
||||||
/* 00588 80A06CA8 D7B40038 */ ldc1 $f20, 0x0038($sp)
|
|
||||||
/* 0058C 80A06CAC 8FB00040 */ lw $s0, 0x0040($sp)
|
|
||||||
/* 00590 80A06CB0 8FB10044 */ lw $s1, 0x0044($sp)
|
|
||||||
/* 00594 80A06CB4 8FB20048 */ lw $s2, 0x0048($sp)
|
|
||||||
/* 00598 80A06CB8 8FB3004C */ lw $s3, 0x004C($sp)
|
|
||||||
/* 0059C 80A06CBC 8FB40050 */ lw $s4, 0x0050($sp)
|
|
||||||
/* 005A0 80A06CC0 8FB50054 */ lw $s5, 0x0054($sp)
|
|
||||||
/* 005A4 80A06CC4 8FB60058 */ lw $s6, 0x0058($sp)
|
|
||||||
/* 005A8 80A06CC8 03E00008 */ jr $ra
|
|
||||||
/* 005AC 80A06CCC 27BD0098 */ addiu $sp, $sp, 0x0098 ## $sp = 00000000
|
|
|
@ -1,136 +0,0 @@
|
||||||
.rdata
|
|
||||||
glabel D_80A0773C
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A0776C
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A0779C
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
.text
|
|
||||||
glabel func_80A06CD0
|
|
||||||
/* 005B0 80A06CD0 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0
|
|
||||||
/* 005B4 80A06CD4 AFBF003C */ sw $ra, 0x003C($sp)
|
|
||||||
/* 005B8 80A06CD8 AFB00038 */ sw $s0, 0x0038($sp)
|
|
||||||
/* 005BC 80A06CDC AFA50064 */ sw $a1, 0x0064($sp)
|
|
||||||
/* 005C0 80A06CE0 848F0164 */ lh $t7, 0x0164($a0) ## 00000164
|
|
||||||
/* 005C4 80A06CE4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
|
||||||
/* 005C8 80A06CE8 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
|
|
||||||
/* 005CC 80A06CEC 15E00061 */ bne $t7, $zero, .L80A06E74
|
|
||||||
/* 005D0 80A06CF0 2418000A */ addiu $t8, $zero, 0x000A ## $t8 = 0000000A
|
|
||||||
/* 005D4 80A06CF4 A4980164 */ sh $t8, 0x0164($a0) ## 00000164
|
|
||||||
/* 005D8 80A06CF8 C4440028 */ lwc1 $f4, 0x0028($v0) ## 00000028
|
|
||||||
/* 005DC 80A06CFC C4860028 */ lwc1 $f6, 0x0028($a0) ## 00000028
|
|
||||||
/* 005E0 80A06D00 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
|
|
||||||
/* 005E4 80A06D04 44814000 */ mtc1 $at, $f8 ## $f8 = 100.00
|
|
||||||
/* 005E8 80A06D08 46062001 */ sub.s $f0, $f4, $f6
|
|
||||||
/* 005EC 80A06D0C 46000005 */ abs.s $f0, $f0
|
|
||||||
/* 005F0 80A06D10 4600403C */ c.lt.s $f8, $f0
|
|
||||||
/* 005F4 80A06D14 00000000 */ nop
|
|
||||||
/* 005F8 80A06D18 45030008 */ bc1tl .L80A06D3C
|
|
||||||
/* 005FC 80A06D1C 8619015A */ lh $t9, 0x015A($s0) ## 0000015A
|
|
||||||
/* 00600 80A06D20 C48A0168 */ lwc1 $f10, 0x0168($a0) ## 00000168
|
|
||||||
/* 00604 80A06D24 C4900090 */ lwc1 $f16, 0x0090($a0) ## 00000090
|
|
||||||
/* 00608 80A06D28 4610503C */ c.lt.s $f10, $f16
|
|
||||||
/* 0060C 80A06D2C 00000000 */ nop
|
|
||||||
/* 00610 80A06D30 45020006 */ bc1fl .L80A06D4C
|
|
||||||
/* 00614 80A06D34 86090152 */ lh $t1, 0x0152($s0) ## 00000152
|
|
||||||
/* 00618 80A06D38 8619015A */ lh $t9, 0x015A($s0) ## 0000015A
|
|
||||||
.L80A06D3C:
|
|
||||||
/* 0061C 80A06D3C 27280001 */ addiu $t0, $t9, 0x0001 ## $t0 = 00000001
|
|
||||||
/* 00620 80A06D40 1000004C */ beq $zero, $zero, .L80A06E74
|
|
||||||
/* 00624 80A06D44 A608015A */ sh $t0, 0x015A($s0) ## 0000015A
|
|
||||||
/* 00628 80A06D48 86090152 */ lh $t1, 0x0152($s0) ## 00000152
|
|
||||||
.L80A06D4C:
|
|
||||||
/* 0062C 80A06D4C 860A0150 */ lh $t2, 0x0150($s0) ## 00000150
|
|
||||||
/* 00630 80A06D50 A600015A */ sh $zero, 0x015A($s0) ## 0000015A
|
|
||||||
/* 00634 80A06D54 012A082A */ slt $at, $t1, $t2
|
|
||||||
/* 00638 80A06D58 50200047 */ beql $at, $zero, .L80A06E78
|
|
||||||
/* 0063C 80A06D5C 8FBF003C */ lw $ra, 0x003C($sp)
|
|
||||||
/* 00640 80A06D60 860B0158 */ lh $t3, 0x0158($s0) ## 00000158
|
|
||||||
/* 00644 80A06D64 860C0156 */ lh $t4, 0x0156($s0) ## 00000156
|
|
||||||
/* 00648 80A06D68 016C082A */ slt $at, $t3, $t4
|
|
||||||
/* 0064C 80A06D6C 10200041 */ beq $at, $zero, .L80A06E74
|
|
||||||
/* 00650 80A06D70 3C014248 */ lui $at, 0x4248 ## $at = 42480000
|
|
||||||
/* 00654 80A06D74 44816000 */ mtc1 $at, $f12 ## $f12 = 50.00
|
|
||||||
/* 00658 80A06D78 0C00CFC8 */ jal Math_Rand_CenteredFloat
|
|
||||||
|
|
||||||
/* 0065C 80A06D7C 00000000 */ nop
|
|
||||||
/* 00660 80A06D80 C6120024 */ lwc1 $f18, 0x0024($s0) ## 00000024
|
|
||||||
/* 00664 80A06D84 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
|
|
||||||
/* 00668 80A06D88 44814000 */ mtc1 $at, $f8 ## $f8 = 120.00
|
|
||||||
/* 0066C 80A06D8C 46120100 */ add.s $f4, $f0, $f18
|
|
||||||
/* 00670 80A06D90 3C014248 */ lui $at, 0x4248 ## $at = 42480000
|
|
||||||
/* 00674 80A06D94 44816000 */ mtc1 $at, $f12 ## $f12 = 50.00
|
|
||||||
/* 00678 80A06D98 E7A40048 */ swc1 $f4, 0x0048($sp)
|
|
||||||
/* 0067C 80A06D9C C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028
|
|
||||||
/* 00680 80A06DA0 46083280 */ add.s $f10, $f6, $f8
|
|
||||||
/* 00684 80A06DA4 0C00CFC8 */ jal Math_Rand_CenteredFloat
|
|
||||||
|
|
||||||
/* 00688 80A06DA8 E7AA004C */ swc1 $f10, 0x004C($sp)
|
|
||||||
/* 0068C 80A06DAC C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
|
|
||||||
/* 00690 80A06DB0 8FA40064 */ lw $a0, 0x0064($sp)
|
|
||||||
/* 00694 80A06DB4 27AD0048 */ addiu $t5, $sp, 0x0048 ## $t5 = FFFFFFE8
|
|
||||||
/* 00698 80A06DB8 46100480 */ add.s $f18, $f0, $f16
|
|
||||||
/* 0069C 80A06DBC AFAD0010 */ sw $t5, 0x0010($sp)
|
|
||||||
/* 006A0 80A06DC0 27A50054 */ addiu $a1, $sp, 0x0054 ## $a1 = FFFFFFF4
|
|
||||||
/* 006A4 80A06DC4 27A60058 */ addiu $a2, $sp, 0x0058 ## $a2 = FFFFFFF8
|
|
||||||
/* 006A8 80A06DC8 E7B20050 */ swc1 $f18, 0x0050($sp)
|
|
||||||
/* 006AC 80A06DCC 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000
|
|
||||||
/* 006B0 80A06DD0 0C00F269 */ jal func_8003C9A4
|
|
||||||
/* 006B4 80A06DD4 248407C0 */ addiu $a0, $a0, 0x07C0 ## $a0 = 000007C0
|
|
||||||
/* 006B8 80A06DD8 3C01C6FA */ lui $at, 0xC6FA ## $at = C6FA0000
|
|
||||||
/* 006BC 80A06DDC 44812000 */ mtc1 $at, $f4 ## $f4 = -32000.00
|
|
||||||
/* 006C0 80A06DE0 46000086 */ mov.s $f2, $f0
|
|
||||||
/* 006C4 80A06DE4 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
|
|
||||||
/* 006C8 80A06DE8 4604003E */ c.le.s $f0, $f4
|
|
||||||
/* 006CC 80A06DEC 2407001B */ addiu $a3, $zero, 0x001B ## $a3 = 0000001B
|
|
||||||
/* 006D0 80A06DF0 240FFFFF */ addiu $t7, $zero, 0xFFFF ## $t7 = FFFFFFFF
|
|
||||||
/* 006D4 80A06DF4 45030020 */ bc1tl .L80A06E78
|
|
||||||
/* 006D8 80A06DF8 8FBF003C */ lw $ra, 0x003C($sp)
|
|
||||||
/* 006DC 80A06DFC 8FA60064 */ lw $a2, 0x0064($sp)
|
|
||||||
/* 006E0 80A06E00 C7A60048 */ lwc1 $f6, 0x0048($sp)
|
|
||||||
/* 006E4 80A06E04 C7A80050 */ lwc1 $f8, 0x0050($sp)
|
|
||||||
/* 006E8 80A06E08 E7A2004C */ swc1 $f2, 0x004C($sp)
|
|
||||||
/* 006EC 80A06E0C E7A20014 */ swc1 $f2, 0x0014($sp)
|
|
||||||
/* 006F0 80A06E10 AFA0001C */ sw $zero, 0x001C($sp)
|
|
||||||
/* 006F4 80A06E14 AFA00020 */ sw $zero, 0x0020($sp)
|
|
||||||
/* 006F8 80A06E18 AFA00024 */ sw $zero, 0x0024($sp)
|
|
||||||
/* 006FC 80A06E1C AFAF0028 */ sw $t7, 0x0028($sp)
|
|
||||||
/* 00700 80A06E20 24C41C24 */ addiu $a0, $a2, 0x1C24 ## $a0 = 00001C24
|
|
||||||
/* 00704 80A06E24 E7A60010 */ swc1 $f6, 0x0010($sp)
|
|
||||||
/* 00708 80A06E28 0C00C916 */ jal Actor_SpawnAsChild
|
|
||||||
|
|
||||||
/* 0070C 80A06E2C E7A80018 */ swc1 $f8, 0x0018($sp)
|
|
||||||
/* 00710 80A06E30 10400008 */ beq $v0, $zero, .L80A06E54
|
|
||||||
/* 00714 80A06E34 3C0480A0 */ lui $a0, %hi(D_80A0773C) ## $a0 = 80A00000
|
|
||||||
/* 00718 80A06E38 86180152 */ lh $t8, 0x0152($s0) ## 00000152
|
|
||||||
/* 0071C 80A06E3C 86080158 */ lh $t0, 0x0158($s0) ## 00000158
|
|
||||||
/* 00720 80A06E40 27190001 */ addiu $t9, $t8, 0x0001 ## $t9 = 00000001
|
|
||||||
/* 00724 80A06E44 25090001 */ addiu $t1, $t0, 0x0001 ## $t1 = 00000001
|
|
||||||
/* 00728 80A06E48 A6190152 */ sh $t9, 0x0152($s0) ## 00000152
|
|
||||||
/* 0072C 80A06E4C 10000009 */ beq $zero, $zero, .L80A06E74
|
|
||||||
/* 00730 80A06E50 A6090158 */ sh $t1, 0x0158($s0) ## 00000158
|
|
||||||
.L80A06E54:
|
|
||||||
/* 00734 80A06E54 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00738 80A06E58 2484773C */ addiu $a0, $a0, %lo(D_80A0773C) ## $a0 = 80A0773C
|
|
||||||
/* 0073C 80A06E5C 3C0480A0 */ lui $a0, %hi(D_80A0776C) ## $a0 = 80A00000
|
|
||||||
/* 00740 80A06E60 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00744 80A06E64 2484776C */ addiu $a0, $a0, %lo(D_80A0776C) ## $a0 = 80A0776C
|
|
||||||
/* 00748 80A06E68 3C0480A0 */ lui $a0, %hi(D_80A0779C) ## $a0 = 80A00000
|
|
||||||
/* 0074C 80A06E6C 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00750 80A06E70 2484779C */ addiu $a0, $a0, %lo(D_80A0779C) ## $a0 = 80A0779C
|
|
||||||
.L80A06E74:
|
|
||||||
/* 00754 80A06E74 8FBF003C */ lw $ra, 0x003C($sp)
|
|
||||||
.L80A06E78:
|
|
||||||
/* 00758 80A06E78 8FB00038 */ lw $s0, 0x0038($sp)
|
|
||||||
/* 0075C 80A06E7C 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000
|
|
||||||
/* 00760 80A06E80 03E00008 */ jr $ra
|
|
||||||
/* 00764 80A06E84 00000000 */ nop
|
|
|
@ -1,337 +0,0 @@
|
||||||
.rdata
|
|
||||||
glabel D_80A077CC
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A077FC
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
glabel D_80A0782C
|
|
||||||
.asciz "\x1b[32m☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n\x1b[m"
|
|
||||||
.balign 4
|
|
||||||
|
|
||||||
.text
|
|
||||||
glabel func_80A06E88
|
|
||||||
/* 00768 80A06E88 27BDFF48 */ addiu $sp, $sp, 0xFF48 ## $sp = FFFFFF48
|
|
||||||
/* 0076C 80A06E8C AFBF0074 */ sw $ra, 0x0074($sp)
|
|
||||||
/* 00770 80A06E90 AFB60070 */ sw $s6, 0x0070($sp)
|
|
||||||
/* 00774 80A06E94 AFB5006C */ sw $s5, 0x006C($sp)
|
|
||||||
/* 00778 80A06E98 AFB40068 */ sw $s4, 0x0068($sp)
|
|
||||||
/* 0077C 80A06E9C AFB30064 */ sw $s3, 0x0064($sp)
|
|
||||||
/* 00780 80A06EA0 AFB20060 */ sw $s2, 0x0060($sp)
|
|
||||||
/* 00784 80A06EA4 AFB1005C */ sw $s1, 0x005C($sp)
|
|
||||||
/* 00788 80A06EA8 AFB00058 */ sw $s0, 0x0058($sp)
|
|
||||||
/* 0078C 80A06EAC F7BA0050 */ sdc1 $f26, 0x0050($sp)
|
|
||||||
/* 00790 80A06EB0 F7B80048 */ sdc1 $f24, 0x0048($sp)
|
|
||||||
/* 00794 80A06EB4 F7B60040 */ sdc1 $f22, 0x0040($sp)
|
|
||||||
/* 00798 80A06EB8 F7B40038 */ sdc1 $f20, 0x0038($sp)
|
|
||||||
/* 0079C 80A06EBC 84AE00A4 */ lh $t6, 0x00A4($a1) ## 000000A4
|
|
||||||
/* 007A0 80A06EC0 24160051 */ addiu $s6, $zero, 0x0051 ## $s6 = 00000051
|
|
||||||
/* 007A4 80A06EC4 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
|
|
||||||
/* 007A8 80A06EC8 00A0A025 */ or $s4, $a1, $zero ## $s4 = 00000000
|
|
||||||
/* 007AC 80A06ECC 12CE0015 */ beq $s6, $t6, .L80A06F24
|
|
||||||
/* 007B0 80A06ED0 8CB21C44 */ lw $s2, 0x1C44($a1) ## 00001C44
|
|
||||||
/* 007B4 80A06ED4 C6440028 */ lwc1 $f4, 0x0028($s2) ## 00000028
|
|
||||||
/* 007B8 80A06ED8 C4860028 */ lwc1 $f6, 0x0028($a0) ## 00000028
|
|
||||||
/* 007BC 80A06EDC 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
|
|
||||||
/* 007C0 80A06EE0 44814000 */ mtc1 $at, $f8 ## $f8 = 100.00
|
|
||||||
/* 007C4 80A06EE4 46062001 */ sub.s $f0, $f4, $f6
|
|
||||||
/* 007C8 80A06EE8 46000005 */ abs.s $f0, $f0
|
|
||||||
/* 007CC 80A06EEC 4600403C */ c.lt.s $f8, $f0
|
|
||||||
/* 007D0 80A06EF0 00000000 */ nop
|
|
||||||
/* 007D4 80A06EF4 45030008 */ bc1tl .L80A06F18
|
|
||||||
/* 007D8 80A06EF8 862F015A */ lh $t7, 0x015A($s1) ## 0000015A
|
|
||||||
/* 007DC 80A06EFC C48A0168 */ lwc1 $f10, 0x0168($a0) ## 00000168
|
|
||||||
/* 007E0 80A06F00 C4900090 */ lwc1 $f16, 0x0090($a0) ## 00000090
|
|
||||||
/* 007E4 80A06F04 4610503C */ c.lt.s $f10, $f16
|
|
||||||
/* 007E8 80A06F08 00000000 */ nop
|
|
||||||
/* 007EC 80A06F0C 45020011 */ bc1fl .L80A06F54
|
|
||||||
/* 007F0 80A06F10 8E2B0024 */ lw $t3, 0x0024($s1) ## 00000024
|
|
||||||
/* 007F4 80A06F14 862F015A */ lh $t7, 0x015A($s1) ## 0000015A
|
|
||||||
.L80A06F18:
|
|
||||||
/* 007F8 80A06F18 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
|
|
||||||
/* 007FC 80A06F1C 100000EC */ beq $zero, $zero, .L80A072D0
|
|
||||||
/* 00800 80A06F20 A638015A */ sh $t8, 0x015A($s1) ## 0000015A
|
|
||||||
.L80A06F24:
|
|
||||||
/* 00804 80A06F24 3C198016 */ lui $t9, %hi(gSaveContext+0x10)
|
|
||||||
/* 00808 80A06F28 8F39E670 */ lw $t9, %lo(gSaveContext+0x10)($t9)
|
|
||||||
/* 0080C 80A06F2C 13200006 */ beq $t9, $zero, .L80A06F48
|
|
||||||
/* 00810 80A06F30 00000000 */ nop
|
|
||||||
/* 00814 80A06F34 0C023C20 */ jal Player_GetMask
|
|
||||||
/* 00818 80A06F38 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000
|
|
||||||
/* 0081C 80A06F3C 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
|
|
||||||
/* 00820 80A06F40 54410004 */ bnel $v0, $at, .L80A06F54
|
|
||||||
/* 00824 80A06F44 8E2B0024 */ lw $t3, 0x0024($s1) ## 00000024
|
|
||||||
.L80A06F48:
|
|
||||||
/* 00828 80A06F48 100000E1 */ beq $zero, $zero, .L80A072D0
|
|
||||||
/* 0082C 80A06F4C A620015E */ sh $zero, 0x015E($s1) ## 0000015E
|
|
||||||
/* 00830 80A06F50 8E2B0024 */ lw $t3, 0x0024($s1) ## 00000024
|
|
||||||
.L80A06F54:
|
|
||||||
/* 00834 80A06F54 A620015A */ sh $zero, 0x015A($s1) ## 0000015A
|
|
||||||
/* 00838 80A06F58 27A90098 */ addiu $t1, $sp, 0x0098 ## $t1 = FFFFFFE0
|
|
||||||
/* 0083C 80A06F5C AD2B0000 */ sw $t3, 0x0000($t1) ## FFFFFFE0
|
|
||||||
/* 00840 80A06F60 8E2A0028 */ lw $t2, 0x0028($s1) ## 00000028
|
|
||||||
/* 00844 80A06F64 AD2A0004 */ sw $t2, 0x0004($t1) ## FFFFFFE4
|
|
||||||
/* 00848 80A06F68 8E2B002C */ lw $t3, 0x002C($s1) ## 0000002C
|
|
||||||
/* 0084C 80A06F6C AD2B0008 */ sw $t3, 0x0008($t1) ## FFFFFFE8
|
|
||||||
/* 00850 80A06F70 86230150 */ lh $v1, 0x0150($s1) ## 00000150
|
|
||||||
/* 00854 80A06F74 86220152 */ lh $v0, 0x0152($s1) ## 00000152
|
|
||||||
/* 00858 80A06F78 0043082A */ slt $at, $v0, $v1
|
|
||||||
/* 0085C 80A06F7C 502000D5 */ beql $at, $zero, .L80A072D4
|
|
||||||
/* 00860 80A06F80 8FBF0074 */ lw $ra, 0x0074($sp)
|
|
||||||
/* 00864 80A06F84 86240158 */ lh $a0, 0x0158($s1) ## 00000158
|
|
||||||
/* 00868 80A06F88 86250156 */ lh $a1, 0x0156($s1) ## 00000156
|
|
||||||
/* 0086C 80A06F8C 0085082A */ slt $at, $a0, $a1
|
|
||||||
/* 00870 80A06F90 102000CF */ beq $at, $zero, .L80A072D0
|
|
||||||
/* 00874 80A06F94 0043082A */ slt $at, $v0, $v1
|
|
||||||
/* 00878 80A06F98 102000CD */ beq $at, $zero, .L80A072D0
|
|
||||||
/* 0087C 80A06F9C 0085082A */ slt $at, $a0, $a1
|
|
||||||
/* 00880 80A06FA0 102000CB */ beq $at, $zero, .L80A072D0
|
|
||||||
/* 00884 80A06FA4 3C01C6FA */ lui $at, 0xC6FA ## $at = C6FA0000
|
|
||||||
/* 00888 80A06FA8 4481D000 */ mtc1 $at, $f26 ## $f26 = -32000.00
|
|
||||||
/* 0088C 80A06FAC 3C014220 */ lui $at, 0x4220 ## $at = 42200000
|
|
||||||
/* 00890 80A06FB0 4481C000 */ mtc1 $at, $f24 ## $f24 = 40.00
|
|
||||||
/* 00894 80A06FB4 2415000A */ addiu $s5, $zero, 0x000A ## $s5 = 0000000A
|
|
||||||
/* 00898 80A06FB8 868C00A4 */ lh $t4, 0x00A4($s4) ## 000000A4
|
|
||||||
.L80A06FBC:
|
|
||||||
/* 0089C 80A06FBC 56CC0062 */ bnel $s6, $t4, .L80A07148
|
|
||||||
/* 008A0 80A06FC0 862F0154 */ lh $t7, 0x0154($s1) ## 00000154
|
|
||||||
/* 008A4 80A06FC4 964D089E */ lhu $t5, 0x089E($s2) ## 0000089E
|
|
||||||
/* 008A8 80A06FC8 269307C0 */ addiu $s3, $s4, 0x07C0 ## $s3 = 000007C0
|
|
||||||
/* 008AC 80A06FCC 51A0000E */ beql $t5, $zero, .L80A07008
|
|
||||||
/* 008B0 80A06FD0 240A003C */ addiu $t2, $zero, 0x003C ## $t2 = 0000003C
|
|
||||||
/* 008B4 80A06FD4 924E007D */ lbu $t6, 0x007D($s2) ## 0000007D
|
|
||||||
/* 008B8 80A06FD8 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032
|
|
||||||
/* 008BC 80A06FDC 55C1000A */ bnel $t6, $at, .L80A07008
|
|
||||||
/* 008C0 80A06FE0 240A003C */ addiu $t2, $zero, 0x003C ## $t2 = 0000003C
|
|
||||||
/* 008C4 80A06FE4 964F0088 */ lhu $t7, 0x0088($s2) ## 00000088
|
|
||||||
/* 008C8 80A06FE8 240B0002 */ addiu $t3, $zero, 0x0002 ## $t3 = 00000002
|
|
||||||
/* 008CC 80A06FEC 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
|
|
||||||
/* 008D0 80A06FF0 53000005 */ beql $t8, $zero, .L80A07008
|
|
||||||
/* 008D4 80A06FF4 240A003C */ addiu $t2, $zero, 0x003C ## $t2 = 0000003C
|
|
||||||
/* 008D8 80A06FF8 8E59067C */ lw $t9, 0x067C($s2) ## 0000067C
|
|
||||||
/* 008DC 80A06FFC 00194900 */ sll $t1, $t9, 4
|
|
||||||
/* 008E0 80A07000 05210003 */ bgez $t1, .L80A07010
|
|
||||||
/* 008E4 80A07004 240A003C */ addiu $t2, $zero, 0x003C ## $t2 = 0000003C
|
|
||||||
.L80A07008:
|
|
||||||
/* 008E8 80A07008 100000B1 */ beq $zero, $zero, .L80A072D0
|
|
||||||
/* 008EC 80A0700C A62A015C */ sh $t2, 0x015C($s1) ## 0000015C
|
|
||||||
.L80A07010:
|
|
||||||
/* 008F0 80A07010 8622015C */ lh $v0, 0x015C($s1) ## 0000015C
|
|
||||||
/* 008F4 80A07014 2401003C */ addiu $at, $zero, 0x003C ## $at = 0000003C
|
|
||||||
/* 008F8 80A07018 14410003 */ bne $v0, $at, .L80A07028
|
|
||||||
/* 008FC 80A0701C 00000000 */ nop
|
|
||||||
/* 00900 80A07020 A62B0150 */ sh $t3, 0x0150($s1) ## 00000150
|
|
||||||
/* 00904 80A07024 8622015C */ lh $v0, 0x015C($s1) ## 0000015C
|
|
||||||
.L80A07028:
|
|
||||||
/* 00908 80A07028 10400003 */ beq $v0, $zero, .L80A07038
|
|
||||||
/* 0090C 80A0702C 244CFFFF */ addiu $t4, $v0, 0xFFFF ## $t4 = FFFFFFFF
|
|
||||||
/* 00910 80A07030 100000A7 */ beq $zero, $zero, .L80A072D0
|
|
||||||
/* 00914 80A07034 A62C015C */ sh $t4, 0x015C($s1) ## 0000015C
|
|
||||||
.L80A07038:
|
|
||||||
/* 00918 80A07038 0C00CFC8 */ jal Math_Rand_CenteredFloat
|
|
||||||
|
|
||||||
/* 0091C 80A0703C 4600C306 */ mov.s $f12, $f24
|
|
||||||
/* 00920 80A07040 862D0152 */ lh $t5, 0x0152($s1) ## 00000152
|
|
||||||
/* 00924 80A07044 3C014348 */ lui $at, 0x4348 ## $at = 43480000
|
|
||||||
/* 00928 80A07048 44819000 */ mtc1 $at, $f18 ## $f18 = 200.00
|
|
||||||
/* 0092C 80A0704C 865000B6 */ lh $s0, 0x00B6($s2) ## 000000B6
|
|
||||||
/* 00930 80A07050 11A0000A */ beq $t5, $zero, .L80A0707C
|
|
||||||
/* 00934 80A07054 46120580 */ add.s $f22, $f0, $f18
|
|
||||||
/* 00938 80A07058 00108023 */ subu $s0, $zero, $s0
|
|
||||||
/* 0093C 80A0705C 00108400 */ sll $s0, $s0, 16
|
|
||||||
/* 00940 80A07060 00108403 */ sra $s0, $s0, 16
|
|
||||||
/* 00944 80A07064 0C00CFC8 */ jal Math_Rand_CenteredFloat
|
|
||||||
|
|
||||||
/* 00948 80A07068 4600C306 */ mov.s $f12, $f24
|
|
||||||
/* 0094C 80A0706C 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
|
|
||||||
/* 00950 80A07070 44812000 */ mtc1 $at, $f4 ## $f4 = 100.00
|
|
||||||
/* 00954 80A07074 00000000 */ nop
|
|
||||||
/* 00958 80A07078 46040580 */ add.s $f22, $f0, $f4
|
|
||||||
.L80A0707C:
|
|
||||||
/* 0095C 80A0707C 00102400 */ sll $a0, $s0, 16
|
|
||||||
/* 00960 80A07080 0C01DE1C */ jal Math_Sins
|
|
||||||
## sins?
|
|
||||||
/* 00964 80A07084 00042403 */ sra $a0, $a0, 16
|
|
||||||
/* 00968 80A07088 46000506 */ mov.s $f20, $f0
|
|
||||||
/* 0096C 80A0708C 0C00CFC8 */ jal Math_Rand_CenteredFloat
|
|
||||||
|
|
||||||
/* 00970 80A07090 4600C306 */ mov.s $f12, $f24
|
|
||||||
/* 00974 80A07094 4616A202 */ mul.s $f8, $f20, $f22
|
|
||||||
/* 00978 80A07098 C6460024 */ lwc1 $f6, 0x0024($s2) ## 00000024
|
|
||||||
/* 0097C 80A0709C 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
|
|
||||||
/* 00980 80A070A0 44812000 */ mtc1 $at, $f4 ## $f4 = 120.00
|
|
||||||
/* 00984 80A070A4 00102400 */ sll $a0, $s0, 16
|
|
||||||
/* 00988 80A070A8 00042403 */ sra $a0, $a0, 16
|
|
||||||
/* 0098C 80A070AC 46083280 */ add.s $f10, $f6, $f8
|
|
||||||
/* 00990 80A070B0 460A0400 */ add.s $f16, $f0, $f10
|
|
||||||
/* 00994 80A070B4 E7B00098 */ swc1 $f16, 0x0098($sp)
|
|
||||||
/* 00998 80A070B8 C6520080 */ lwc1 $f18, 0x0080($s2) ## 00000080
|
|
||||||
/* 0099C 80A070BC 46049180 */ add.s $f6, $f18, $f4
|
|
||||||
/* 009A0 80A070C0 0C01DE0D */ jal Math_Coss
|
|
||||||
## coss?
|
|
||||||
/* 009A4 80A070C4 E7A6009C */ swc1 $f6, 0x009C($sp)
|
|
||||||
/* 009A8 80A070C8 46000506 */ mov.s $f20, $f0
|
|
||||||
/* 009AC 80A070CC 0C00CFC8 */ jal Math_Rand_CenteredFloat
|
|
||||||
|
|
||||||
/* 009B0 80A070D0 4600C306 */ mov.s $f12, $f24
|
|
||||||
/* 009B4 80A070D4 4616A282 */ mul.s $f10, $f20, $f22
|
|
||||||
/* 009B8 80A070D8 C648002C */ lwc1 $f8, 0x002C($s2) ## 0000002C
|
|
||||||
/* 009BC 80A070DC 27AE0098 */ addiu $t6, $sp, 0x0098 ## $t6 = FFFFFFE0
|
|
||||||
/* 009C0 80A070E0 AFAE0010 */ sw $t6, 0x0010($sp)
|
|
||||||
/* 009C4 80A070E4 02602025 */ or $a0, $s3, $zero ## $a0 = 000007C0
|
|
||||||
/* 009C8 80A070E8 27A50094 */ addiu $a1, $sp, 0x0094 ## $a1 = FFFFFFDC
|
|
||||||
/* 009CC 80A070EC 27A60090 */ addiu $a2, $sp, 0x0090 ## $a2 = FFFFFFD8
|
|
||||||
/* 009D0 80A070F0 460A4400 */ add.s $f16, $f8, $f10
|
|
||||||
/* 009D4 80A070F4 02203825 */ or $a3, $s1, $zero ## $a3 = 00000000
|
|
||||||
/* 009D8 80A070F8 46100480 */ add.s $f18, $f0, $f16
|
|
||||||
/* 009DC 80A070FC 0C00F269 */ jal func_8003C9A4
|
|
||||||
/* 009E0 80A07100 E7B200A0 */ swc1 $f18, 0x00A0($sp)
|
|
||||||
/* 009E4 80A07104 461A003E */ c.le.s $f0, $f26
|
|
||||||
/* 009E8 80A07108 00000000 */ nop
|
|
||||||
/* 009EC 80A0710C 45030071 */ bc1tl .L80A072D4
|
|
||||||
/* 009F0 80A07110 8FBF0074 */ lw $ra, 0x0074($sp)
|
|
||||||
/* 009F4 80A07114 C6420084 */ lwc1 $f2, 0x0084($s2) ## 00000084
|
|
||||||
/* 009F8 80A07118 4602D032 */ c.eq.s $f26, $f2
|
|
||||||
/* 009FC 80A0711C 00000000 */ nop
|
|
||||||
/* 00A00 80A07120 45030008 */ bc1tl .L80A07144
|
|
||||||
/* 00A04 80A07124 E7A0009C */ swc1 $f0, 0x009C($sp)
|
|
||||||
/* 00A08 80A07128 C6440028 */ lwc1 $f4, 0x0028($s2) ## 00000028
|
|
||||||
/* 00A0C 80A0712C 46022181 */ sub.s $f6, $f4, $f2
|
|
||||||
/* 00A10 80A07130 4606003C */ c.lt.s $f0, $f6
|
|
||||||
/* 00A14 80A07134 00000000 */ nop
|
|
||||||
/* 00A18 80A07138 45030066 */ bc1tl .L80A072D4
|
|
||||||
/* 00A1C 80A0713C 8FBF0074 */ lw $ra, 0x0074($sp)
|
|
||||||
/* 00A20 80A07140 E7A0009C */ swc1 $f0, 0x009C($sp)
|
|
||||||
.L80A07144:
|
|
||||||
/* 00A24 80A07144 862F0154 */ lh $t7, 0x0154($s1) ## 00000154
|
|
||||||
.L80A07148:
|
|
||||||
/* 00A28 80A07148 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
|
|
||||||
/* 00A2C 80A0714C 26901C24 */ addiu $s0, $s4, 0x1C24 ## $s0 = 00001C24
|
|
||||||
/* 00A30 80A07150 15E10004 */ bne $t7, $at, .L80A07164
|
|
||||||
/* 00A34 80A07154 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
|
||||||
/* 00A38 80A07158 240701AF */ addiu $a3, $zero, 0x01AF ## $a3 = 000001AF
|
|
||||||
/* 00A3C 80A0715C 10000028 */ beq $zero, $zero, .L80A07200
|
|
||||||
/* 00A40 80A07160 2408FF00 */ addiu $t0, $zero, 0xFF00 ## $t0 = FFFFFF00
|
|
||||||
.L80A07164:
|
|
||||||
/* 00A44 80A07164 8622015E */ lh $v0, 0x015E($s1) ## 0000015E
|
|
||||||
/* 00A48 80A07168 240701B0 */ addiu $a3, $zero, 0x01B0 ## $a3 = 000001B0
|
|
||||||
/* 00A4C 80A0716C 00004025 */ or $t0, $zero, $zero ## $t0 = 00000000
|
|
||||||
/* 00A50 80A07170 0055001A */ div $zero, $v0, $s5
|
|
||||||
/* 00A54 80A07174 00002012 */ mflo $a0
|
|
||||||
/* 00A58 80A07178 00042400 */ sll $a0, $a0, 16
|
|
||||||
/* 00A5C 80A0717C 00042403 */ sra $a0, $a0, 16
|
|
||||||
/* 00A60 80A07180 16A00002 */ bne $s5, $zero, .L80A0718C
|
|
||||||
/* 00A64 80A07184 00000000 */ nop
|
|
||||||
/* 00A68 80A07188 0007000D */ break 7
|
|
||||||
.L80A0718C:
|
|
||||||
/* 00A6C 80A0718C 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
|
||||||
/* 00A70 80A07190 16A10004 */ bne $s5, $at, .L80A071A4
|
|
||||||
/* 00A74 80A07194 3C018000 */ lui $at, 0x8000 ## $at = 80000000
|
|
||||||
/* 00A78 80A07198 14410002 */ bne $v0, $at, .L80A071A4
|
|
||||||
/* 00A7C 80A0719C 00000000 */ nop
|
|
||||||
/* 00A80 80A071A0 0006000D */ break 6
|
|
||||||
.L80A071A4:
|
|
||||||
/* 00A84 80A071A4 24580001 */ addiu $t8, $v0, 0x0001 ## $t8 = 00000001
|
|
||||||
/* 00A88 80A071A8 58800015 */ blezl $a0, .L80A07200
|
|
||||||
/* 00A8C 80A071AC A638015E */ sh $t8, 0x015E($s1) ## 0000015E
|
|
||||||
/* 00A90 80A071B0 0055001A */ div $zero, $v0, $s5
|
|
||||||
/* 00A94 80A071B4 00001810 */ mfhi $v1
|
|
||||||
/* 00A98 80A071B8 00031C00 */ sll $v1, $v1, 16
|
|
||||||
/* 00A9C 80A071BC 00031C03 */ sra $v1, $v1, 16
|
|
||||||
/* 00AA0 80A071C0 16A00002 */ bne $s5, $zero, .L80A071CC
|
|
||||||
/* 00AA4 80A071C4 00000000 */ nop
|
|
||||||
/* 00AA8 80A071C8 0007000D */ break 7
|
|
||||||
.L80A071CC:
|
|
||||||
/* 00AAC 80A071CC 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF
|
|
||||||
/* 00AB0 80A071D0 16A10004 */ bne $s5, $at, .L80A071E4
|
|
||||||
/* 00AB4 80A071D4 3C018000 */ lui $at, 0x8000 ## $at = 80000000
|
|
||||||
/* 00AB8 80A071D8 14410002 */ bne $v0, $at, .L80A071E4
|
|
||||||
/* 00ABC 80A071DC 00000000 */ nop
|
|
||||||
/* 00AC0 80A071E0 0006000D */ break 6
|
|
||||||
.L80A071E4:
|
|
||||||
/* 00AC4 80A071E4 54600006 */ bnel $v1, $zero, .L80A07200
|
|
||||||
/* 00AC8 80A071E8 A638015E */ sh $t8, 0x015E($s1) ## 0000015E
|
|
||||||
/* 00ACC 80A071EC 00044080 */ sll $t0, $a0, 2
|
|
||||||
/* 00AD0 80A071F0 01044021 */ addu $t0, $t0, $a0
|
|
||||||
/* 00AD4 80A071F4 00084400 */ sll $t0, $t0, 16
|
|
||||||
/* 00AD8 80A071F8 00084403 */ sra $t0, $t0, 16
|
|
||||||
/* 00ADC 80A071FC A638015E */ sh $t8, 0x015E($s1) ## 0000015E
|
|
||||||
.L80A07200:
|
|
||||||
/* 00AE0 80A07200 C7A80098 */ lwc1 $f8, 0x0098($sp)
|
|
||||||
/* 00AE4 80A07204 C7AA009C */ lwc1 $f10, 0x009C($sp)
|
|
||||||
/* 00AE8 80A07208 C7B000A0 */ lwc1 $f16, 0x00A0($sp)
|
|
||||||
/* 00AEC 80A0720C 02002025 */ or $a0, $s0, $zero ## $a0 = 00001C24
|
|
||||||
/* 00AF0 80A07210 02803025 */ or $a2, $s4, $zero ## $a2 = 00000000
|
|
||||||
/* 00AF4 80A07214 AFA0001C */ sw $zero, 0x001C($sp)
|
|
||||||
/* 00AF8 80A07218 AFA00020 */ sw $zero, 0x0020($sp)
|
|
||||||
/* 00AFC 80A0721C AFA00024 */ sw $zero, 0x0024($sp)
|
|
||||||
/* 00B00 80A07220 AFA80028 */ sw $t0, 0x0028($sp)
|
|
||||||
/* 00B04 80A07224 E7A80010 */ swc1 $f8, 0x0010($sp)
|
|
||||||
/* 00B08 80A07228 E7AA0014 */ swc1 $f10, 0x0014($sp)
|
|
||||||
/* 00B0C 80A0722C 0C00C916 */ jal Actor_SpawnAsChild
|
|
||||||
|
|
||||||
/* 00B10 80A07230 E7B00018 */ swc1 $f16, 0x0018($sp)
|
|
||||||
/* 00B14 80A07234 10400013 */ beq $v0, $zero, .L80A07284
|
|
||||||
/* 00B18 80A07238 240C0064 */ addiu $t4, $zero, 0x0064 ## $t4 = 00000064
|
|
||||||
/* 00B1C 80A0723C 86390152 */ lh $t9, 0x0152($s1) ## 00000152
|
|
||||||
/* 00B20 80A07240 862B0150 */ lh $t3, 0x0150($s1) ## 00000150
|
|
||||||
/* 00B24 80A07244 27290001 */ addiu $t1, $t9, 0x0001 ## $t1 = 00000001
|
|
||||||
/* 00B28 80A07248 A6290152 */ sh $t1, 0x0152($s1) ## 00000152
|
|
||||||
/* 00B2C 80A0724C 862A0152 */ lh $t2, 0x0152($s1) ## 00000152
|
|
||||||
/* 00B30 80A07250 014B082A */ slt $at, $t2, $t3
|
|
||||||
/* 00B34 80A07254 54200003 */ bnel $at, $zero, .L80A07264
|
|
||||||
/* 00B38 80A07258 868D00A4 */ lh $t5, 0x00A4($s4) ## 000000A4
|
|
||||||
/* 00B3C 80A0725C A62C015C */ sh $t4, 0x015C($s1) ## 0000015C
|
|
||||||
/* 00B40 80A07260 868D00A4 */ lh $t5, 0x00A4($s4) ## 000000A4
|
|
||||||
.L80A07264:
|
|
||||||
/* 00B44 80A07264 52CD0005 */ beql $s6, $t5, .L80A0727C
|
|
||||||
/* 00B48 80A07268 86220152 */ lh $v0, 0x0152($s1) ## 00000152
|
|
||||||
/* 00B4C 80A0726C 862E0158 */ lh $t6, 0x0158($s1) ## 00000158
|
|
||||||
/* 00B50 80A07270 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
|
|
||||||
/* 00B54 80A07274 A62F0158 */ sh $t7, 0x0158($s1) ## 00000158
|
|
||||||
/* 00B58 80A07278 86220152 */ lh $v0, 0x0152($s1) ## 00000152
|
|
||||||
.L80A0727C:
|
|
||||||
/* 00B5C 80A0727C 1000000C */ beq $zero, $zero, .L80A072B0
|
|
||||||
/* 00B60 80A07280 86230150 */ lh $v1, 0x0150($s1) ## 00000150
|
|
||||||
.L80A07284:
|
|
||||||
/* 00B64 80A07284 3C0480A0 */ lui $a0, %hi(D_80A077CC) ## $a0 = 80A00000
|
|
||||||
/* 00B68 80A07288 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00B6C 80A0728C 248477CC */ addiu $a0, $a0, %lo(D_80A077CC) ## $a0 = 80A077CC
|
|
||||||
/* 00B70 80A07290 3C0480A0 */ lui $a0, %hi(D_80A077FC) ## $a0 = 80A00000
|
|
||||||
/* 00B74 80A07294 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00B78 80A07298 248477FC */ addiu $a0, $a0, %lo(D_80A077FC) ## $a0 = 80A077FC
|
|
||||||
/* 00B7C 80A0729C 3C0480A0 */ lui $a0, %hi(D_80A0782C) ## $a0 = 80A00000
|
|
||||||
/* 00B80 80A072A0 0C00084C */ jal osSyncPrintf
|
|
||||||
|
|
||||||
/* 00B84 80A072A4 2484782C */ addiu $a0, $a0, %lo(D_80A0782C) ## $a0 = 80A0782C
|
|
||||||
/* 00B88 80A072A8 1000000A */ beq $zero, $zero, .L80A072D4
|
|
||||||
/* 00B8C 80A072AC 8FBF0074 */ lw $ra, 0x0074($sp)
|
|
||||||
.L80A072B0:
|
|
||||||
/* 00B90 80A072B0 0043082A */ slt $at, $v0, $v1
|
|
||||||
/* 00B94 80A072B4 50200007 */ beql $at, $zero, .L80A072D4
|
|
||||||
/* 00B98 80A072B8 8FBF0074 */ lw $ra, 0x0074($sp)
|
|
||||||
/* 00B9C 80A072BC 86380158 */ lh $t8, 0x0158($s1) ## 00000158
|
|
||||||
/* 00BA0 80A072C0 86390156 */ lh $t9, 0x0156($s1) ## 00000156
|
|
||||||
/* 00BA4 80A072C4 0319082A */ slt $at, $t8, $t9
|
|
||||||
/* 00BA8 80A072C8 5420FF3C */ bnel $at, $zero, .L80A06FBC
|
|
||||||
/* 00BAC 80A072CC 868C00A4 */ lh $t4, 0x00A4($s4) ## 000000A4
|
|
||||||
.L80A072D0:
|
|
||||||
/* 00BB0 80A072D0 8FBF0074 */ lw $ra, 0x0074($sp)
|
|
||||||
.L80A072D4:
|
|
||||||
/* 00BB4 80A072D4 D7B40038 */ ldc1 $f20, 0x0038($sp)
|
|
||||||
/* 00BB8 80A072D8 D7B60040 */ ldc1 $f22, 0x0040($sp)
|
|
||||||
/* 00BBC 80A072DC D7B80048 */ ldc1 $f24, 0x0048($sp)
|
|
||||||
/* 00BC0 80A072E0 D7BA0050 */ ldc1 $f26, 0x0050($sp)
|
|
||||||
/* 00BC4 80A072E4 8FB00058 */ lw $s0, 0x0058($sp)
|
|
||||||
/* 00BC8 80A072E8 8FB1005C */ lw $s1, 0x005C($sp)
|
|
||||||
/* 00BCC 80A072EC 8FB20060 */ lw $s2, 0x0060($sp)
|
|
||||||
/* 00BD0 80A072F0 8FB30064 */ lw $s3, 0x0064($sp)
|
|
||||||
/* 00BD4 80A072F4 8FB40068 */ lw $s4, 0x0068($sp)
|
|
||||||
/* 00BD8 80A072F8 8FB5006C */ lw $s5, 0x006C($sp)
|
|
||||||
/* 00BDC 80A072FC 8FB60070 */ lw $s6, 0x0070($sp)
|
|
||||||
/* 00BE0 80A07300 03E00008 */ jr $ra
|
|
||||||
/* 00BE4 80A07304 27BD00B8 */ addiu $sp, $sp, 0x00B8 ## $sp = 00000000
|
|
|
@ -1,22 +0,0 @@
|
||||||
.include "macro.inc"
|
|
||||||
|
|
||||||
# assembler directives
|
|
||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
.set gp=64 # allow use of 64-bit general purpose registers
|
|
||||||
|
|
||||||
.section .data
|
|
||||||
|
|
||||||
.balign 16
|
|
||||||
|
|
||||||
glabel D_80A07450
|
|
||||||
.word 0x00002710, 0x71488EB8, 0xD8F00000
|
|
||||||
glabel D_80A0745C
|
|
||||||
.word 0x43480000, 0x432A0000, 0x42F00000, 0x42F00000, 0x432A0000
|
|
||||||
glabel En_Encount1_InitVars
|
|
||||||
.word 0x00A70600, 0x08000010, 0x00010000, 0x00000170
|
|
||||||
.word EnEncount1_Init
|
|
||||||
.word 0x00000000
|
|
||||||
.word EnEncount1_Update
|
|
||||||
.word 0x00000000
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
.include "macro.inc"
|
|
||||||
|
|
||||||
# assembler directives
|
|
||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
.set gp=64 # allow use of 64-bit general purpose registers
|
|
||||||
|
|
||||||
.section .rodata
|
|
||||||
|
|
||||||
.balign 16
|
|
||||||
|
|
||||||
glabel D_80A07870
|
|
||||||
.incbin "baserom/ovl_En_Encount1", 0x1150, 0x00000120
|
|
3
spec
3
spec
|
@ -2243,8 +2243,7 @@ endseg
|
||||||
beginseg
|
beginseg
|
||||||
name "ovl_En_Encount1"
|
name "ovl_En_Encount1"
|
||||||
include "build/src/overlays/actors/ovl_En_Encount1/z_en_encount1.o"
|
include "build/src/overlays/actors/ovl_En_Encount1/z_en_encount1.o"
|
||||||
include "build/data/overlays/actors/z_en_encount1.data.o"
|
include "build/src/overlays/actors/ovl_En_Encount1/ovl_En_Encount1_reloc.o"
|
||||||
include "build/data/overlays/actors/z_en_encount1.reloc.o"
|
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include "z_en_encount1.h"
|
#include "z_en_encount1.h"
|
||||||
|
#include "vt.h"
|
||||||
|
|
||||||
#define FLAGS 0x08000010
|
#define FLAGS 0x08000010
|
||||||
|
|
||||||
|
@ -7,7 +8,13 @@
|
||||||
void EnEncount1_Init(Actor* thisx, GlobalContext* globalCtx);
|
void EnEncount1_Init(Actor* thisx, GlobalContext* globalCtx);
|
||||||
void EnEncount1_Update(Actor* thisx, GlobalContext* globalCtx);
|
void EnEncount1_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||||
|
|
||||||
/*
|
void EnEncount1_SpawnLeevers(EnEncount1* this, GlobalContext* globalCtx);
|
||||||
|
void EnEncount1_SpawnTektites(EnEncount1* this, GlobalContext* globalCtx);
|
||||||
|
void EnEncount1_SpawnStalchildOrWolfos(EnEncount1* this, GlobalContext* globalCtx);
|
||||||
|
|
||||||
|
s16 sLeeverAngles[] = { 0x0000, 0x2710, 0x7148, 0x8EB8, 0xD8F0 };
|
||||||
|
f32 sLeeverDists[] = { 200.0f, 170.0f, 120.0f, 120.0f, 170.0f };
|
||||||
|
|
||||||
const ActorInit En_Encount1_InitVars = {
|
const ActorInit En_Encount1_InitVars = {
|
||||||
ACTOR_EN_ENCOUNT1,
|
ACTOR_EN_ENCOUNT1,
|
||||||
ACTORTYPE_PROP,
|
ACTORTYPE_PROP,
|
||||||
|
@ -19,13 +26,313 @@ const ActorInit En_Encount1_InitVars = {
|
||||||
(ActorFunc)EnEncount1_Update,
|
(ActorFunc)EnEncount1_Update,
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
*/
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Encount1/EnEncount1_Init.s")
|
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A0693C.s")
|
void EnEncount1_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
|
s32 pad;
|
||||||
|
EnEncount1* this = THIS;
|
||||||
|
f32 spawnRange;
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A06CD0.s")
|
if (this->actor.params <= 0) {
|
||||||
|
osSyncPrintf("\n\n");
|
||||||
|
// Input error death!
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 入力エラーデッス! ☆☆☆☆☆ \n" VT_RST);
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 入力エラーデッス! ☆☆☆☆☆ \n" VT_RST);
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 入力エラーデッス! ☆☆☆☆☆ \n" VT_RST);
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 入力エラーデッス! ☆☆☆☆☆ \n" VT_RST);
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 入力エラーデッス! ☆☆☆☆☆ \n" VT_RST);
|
||||||
|
osSyncPrintf("\n\n");
|
||||||
|
Actor_Kill(&this->actor);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A06E88.s")
|
this->spawnType = (this->actor.params >> 0xB) & 0x1F;
|
||||||
|
this->maxCurSpawns = (this->actor.params >> 6) & 0x1F;
|
||||||
|
this->maxTotalSpawns = this->actor.params & 0x3F;
|
||||||
|
this->curNumSpawn = this->totalNumSpawn = 0;
|
||||||
|
spawnRange = 120.0f + (40.0f * this->actor.posRot.rot.z);
|
||||||
|
this->spawnRange = spawnRange;
|
||||||
|
|
||||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Encount1/EnEncount1_Update.s")
|
osSyncPrintf("\n\n");
|
||||||
|
// It's an enemy spawner!
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 敵発生ゾーンでた! ☆☆☆☆☆ %x\n" VT_RST, this->actor.params);
|
||||||
|
// Type
|
||||||
|
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ 種類\t\t ☆☆☆☆☆ %d\n" VT_RST, this->spawnType);
|
||||||
|
// Maximum number of simultaneous spawns
|
||||||
|
osSyncPrintf(VT_FGCOL(PURPLE) "☆☆☆☆☆ 最大同時発生数 ☆☆☆☆☆ %d\n" VT_RST, this->maxCurSpawns);
|
||||||
|
// Maximum number of spawns
|
||||||
|
osSyncPrintf(VT_FGCOL(CYAN) "☆☆☆☆☆ 最大発生数 \t ☆☆☆☆☆ %d\n" VT_RST, this->maxTotalSpawns);
|
||||||
|
// Spawn check range
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生チェック範囲 ☆☆☆☆☆ %f\n" VT_RST, this->spawnRange);
|
||||||
|
osSyncPrintf("\n\n");
|
||||||
|
|
||||||
|
this->actor.flags &= ~1;
|
||||||
|
switch (this->spawnType) {
|
||||||
|
case SPAWNER_LEEVER:
|
||||||
|
this->timer = 30;
|
||||||
|
this->maxCurSpawns = 5;
|
||||||
|
if (globalCtx->sceneNum == SCENE_SPOT13) { // Haunted Wasteland
|
||||||
|
this->reduceLeevers = true;
|
||||||
|
this->maxCurSpawns = 3;
|
||||||
|
}
|
||||||
|
this->updateFunc = EnEncount1_SpawnLeevers;
|
||||||
|
break;
|
||||||
|
case SPAWNER_TEKTITE:
|
||||||
|
this->maxCurSpawns = 2;
|
||||||
|
this->updateFunc = EnEncount1_SpawnTektites;
|
||||||
|
break;
|
||||||
|
case SPAWNER_STALCHILDREN:
|
||||||
|
case SPAWNER_WOLFOS:
|
||||||
|
if (globalCtx->sceneNum == SCENE_SPOT00) { // Hyrule Field
|
||||||
|
this->maxTotalSpawns = 10000;
|
||||||
|
}
|
||||||
|
this->updateFunc = EnEncount1_SpawnStalchildOrWolfos;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void EnEncount1_SpawnLeevers(EnEncount1* this, GlobalContext* globalCtx) {
|
||||||
|
Player* player = PLAYER;
|
||||||
|
s32 floorType;
|
||||||
|
f32 spawnDist;
|
||||||
|
s32 spawnParams;
|
||||||
|
s16 spawnLimit;
|
||||||
|
s16 spawnAngle;
|
||||||
|
Vec3f spawnPos;
|
||||||
|
CollisionPoly* floorPoly;
|
||||||
|
s32 bgId;
|
||||||
|
f32 floorY;
|
||||||
|
EnReeba* leever;
|
||||||
|
|
||||||
|
this->outOfRangeTimer = 0;
|
||||||
|
spawnPos = this->actor.posRot.pos;
|
||||||
|
|
||||||
|
if ((this->timer == 0) && (globalCtx->csCtx.state == 0) && (this->curNumSpawn <= this->maxCurSpawns) &&
|
||||||
|
(this->curNumSpawn < 5)) {
|
||||||
|
floorType = func_80041D4C(&globalCtx->colCtx, player->actor.floorPoly, player->actor.floorPolySource);
|
||||||
|
if ((floorType != 4) && (floorType != 7) && (floorType != 12)) {
|
||||||
|
this->numLeeverSpawns = 0;
|
||||||
|
} else if (!(this->reduceLeevers && (this->actor.xzDistFromLink > 1300.0f))) {
|
||||||
|
spawnLimit = 5;
|
||||||
|
if (this->reduceLeevers) {
|
||||||
|
spawnLimit = 3;
|
||||||
|
}
|
||||||
|
while ((this->curNumSpawn < this->maxCurSpawns) && (this->curNumSpawn < spawnLimit) && (this->timer == 0)) {
|
||||||
|
spawnDist = sLeeverDists[this->leeverIndex];
|
||||||
|
spawnAngle = sLeeverAngles[this->leeverIndex] + player->actor.shape.rot.y;
|
||||||
|
spawnParams = LEEVER_SMALL;
|
||||||
|
|
||||||
|
if ((this->killCount >= 10) && (this->bigLeever == NULL)) {
|
||||||
|
this->killCount = this->numLeeverSpawns = 0;
|
||||||
|
spawnAngle = sLeeverAngles[0];
|
||||||
|
spawnDist = sLeeverDists[2];
|
||||||
|
spawnParams = LEEVER_BIG;
|
||||||
|
}
|
||||||
|
|
||||||
|
spawnPos.x = player->actor.posRot.pos.x + Math_Sins(spawnAngle) * spawnDist;
|
||||||
|
spawnPos.y = player->actor.groundY + 120.0f;
|
||||||
|
spawnPos.z = player->actor.posRot.pos.z + Math_Coss(spawnAngle) * spawnDist;
|
||||||
|
|
||||||
|
floorY = func_8003C9A4(&globalCtx->colCtx, &floorPoly, &bgId, &this->actor, &spawnPos);
|
||||||
|
if (floorY <= -32000.0f) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
spawnPos.y = floorY;
|
||||||
|
|
||||||
|
leever = (EnReeba*)Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_REEBA,
|
||||||
|
spawnPos.x, spawnPos.y, spawnPos.z, 0, 0, 0, spawnParams);
|
||||||
|
|
||||||
|
if (1) {} if (1) {}
|
||||||
|
if (leever != NULL) {
|
||||||
|
this->curNumSpawn++;
|
||||||
|
leever->unk_280 = this->leeverIndex++;
|
||||||
|
if (this->leeverIndex >= 5) {
|
||||||
|
this->leeverIndex = 0;
|
||||||
|
}
|
||||||
|
this->numLeeverSpawns++;
|
||||||
|
if (this->numLeeverSpawns >= 12) {
|
||||||
|
this->timer = 150;
|
||||||
|
this->numLeeverSpawns = 0;
|
||||||
|
}
|
||||||
|
if (spawnParams != LEEVER_SMALL) {
|
||||||
|
this->timer = 300;
|
||||||
|
this->bigLeever = leever;
|
||||||
|
}
|
||||||
|
if (!this->reduceLeevers) {
|
||||||
|
this->maxCurSpawns = (s16)Math_Rand_ZeroFloat(3.99f) + 2;
|
||||||
|
} else {
|
||||||
|
this->maxCurSpawns = (s16)Math_Rand_ZeroFloat(2.99f) + 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Cannot spawn!
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST);
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST);
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void EnEncount1_SpawnTektites(EnEncount1* this, GlobalContext* globalCtx) {
|
||||||
|
Player* player = PLAYER;
|
||||||
|
s32 bgId;
|
||||||
|
CollisionPoly* floorPoly;
|
||||||
|
Vec3f spawnPos;
|
||||||
|
f32 floorY;
|
||||||
|
|
||||||
|
if (this->timer == 0) {
|
||||||
|
this->timer = 10;
|
||||||
|
if ((fabsf(player->actor.posRot.pos.y - this->actor.posRot.pos.y) > 100.0f) ||
|
||||||
|
(this->actor.xzDistFromLink > this->spawnRange)) {
|
||||||
|
this->outOfRangeTimer++;
|
||||||
|
} else {
|
||||||
|
this->outOfRangeTimer = 0;
|
||||||
|
if ((this->curNumSpawn < this->maxCurSpawns) && (this->totalNumSpawn < this->maxTotalSpawns)) {
|
||||||
|
spawnPos.x = this->actor.posRot.pos.x + Math_Rand_CenteredFloat(50.0f);
|
||||||
|
spawnPos.y = this->actor.posRot.pos.y + 120.0f;
|
||||||
|
spawnPos.z = this->actor.posRot.pos.z + Math_Rand_CenteredFloat(50.0f);
|
||||||
|
floorY = func_8003C9A4(&globalCtx->colCtx, &floorPoly, &bgId, &this->actor, &spawnPos);
|
||||||
|
if (floorY <= -32000.0f) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
spawnPos.y = floorY;
|
||||||
|
if (Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_TITE, spawnPos.x,
|
||||||
|
spawnPos.y, spawnPos.z, 0, 0, 0, -1) != NULL) { // Red tektite
|
||||||
|
this->curNumSpawn++;
|
||||||
|
this->totalNumSpawn++;
|
||||||
|
} else {
|
||||||
|
// Cannot spawn!
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST);
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST);
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void EnEncount1_SpawnStalchildOrWolfos(EnEncount1* this, GlobalContext* globalCtx) {
|
||||||
|
Player* player = PLAYER;
|
||||||
|
f32 spawnDist;
|
||||||
|
s16 spawnAngle;
|
||||||
|
s16 spawnId;
|
||||||
|
s16 spawnParams;
|
||||||
|
s16 kcOver10;
|
||||||
|
s16 tempmod;
|
||||||
|
Vec3f spawnPos;
|
||||||
|
CollisionPoly* floorPoly;
|
||||||
|
s32 bgId;
|
||||||
|
f32 floorY;
|
||||||
|
|
||||||
|
if (globalCtx->sceneNum != SCENE_SPOT00) {
|
||||||
|
if ((fabsf(player->actor.posRot.pos.y - this->actor.posRot.pos.y) > 100.0f) ||
|
||||||
|
(this->actor.xzDistFromLink > this->spawnRange)) {
|
||||||
|
this->outOfRangeTimer++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else if (!gSaveContext.nightFlag || (Player_GetMask(globalCtx) == PLAYER_MASK_BUNNY)) {
|
||||||
|
this->killCount = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this->outOfRangeTimer = 0;
|
||||||
|
spawnPos = this->actor.posRot.pos;
|
||||||
|
if ((this->curNumSpawn < this->maxCurSpawns) && (this->totalNumSpawn < this->maxTotalSpawns)) {
|
||||||
|
while ((this->curNumSpawn < this->maxCurSpawns) && (this->totalNumSpawn < this->maxTotalSpawns)) {
|
||||||
|
if (globalCtx->sceneNum == SCENE_SPOT00) {
|
||||||
|
if ((player->unk_89E == 0) || (player->actor.floorPolySource != 0x32) ||
|
||||||
|
!(player->actor.bgCheckFlags & 1) || (player->stateFlags1 & 0x08000000)) {
|
||||||
|
|
||||||
|
this->fieldSpawnTimer = 60;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (this->fieldSpawnTimer == 60) {
|
||||||
|
this->maxCurSpawns = 2;
|
||||||
|
}
|
||||||
|
if (this->fieldSpawnTimer != 0) {
|
||||||
|
this->fieldSpawnTimer--;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
spawnDist = Math_Rand_CenteredFloat(40.0f) + 200.0f;
|
||||||
|
spawnAngle = player->actor.shape.rot.y;
|
||||||
|
if (this->curNumSpawn != 0) {
|
||||||
|
spawnAngle = -spawnAngle;
|
||||||
|
spawnDist = Math_Rand_CenteredFloat(40.0f) + 100.0f;
|
||||||
|
}
|
||||||
|
spawnPos.x =
|
||||||
|
player->actor.posRot.pos.x + (Math_Sins(spawnAngle) * spawnDist) + Math_Rand_CenteredFloat(40.0f);
|
||||||
|
spawnPos.y = player->actor.groundY + 120.0f;
|
||||||
|
spawnPos.z =
|
||||||
|
player->actor.posRot.pos.z + (Math_Coss(spawnAngle) * spawnDist) + Math_Rand_CenteredFloat(40.0f);
|
||||||
|
floorY = func_8003C9A4(&globalCtx->colCtx, &floorPoly, &bgId, &this->actor, &spawnPos);
|
||||||
|
if (floorY <= -32000.0f) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ((player->actor.waterY != -32000.0f) &&
|
||||||
|
(floorY < (player->actor.posRot.pos.y - player->actor.waterY))) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
spawnPos.y = floorY;
|
||||||
|
}
|
||||||
|
if (this->spawnType == SPAWNER_WOLFOS) {
|
||||||
|
spawnId = ACTOR_EN_WF;
|
||||||
|
spawnParams = (0xFF << 8) | 0x00;
|
||||||
|
} else {
|
||||||
|
spawnId = ACTOR_EN_SKB;
|
||||||
|
spawnParams = 0;
|
||||||
|
|
||||||
|
kcOver10 = this->killCount / 10;
|
||||||
|
if (kcOver10 > 0) {
|
||||||
|
tempmod = this->killCount % 10;
|
||||||
|
if (tempmod == 0) {
|
||||||
|
spawnParams = kcOver10 * 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this->killCount++;
|
||||||
|
}
|
||||||
|
if (Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, spawnId, spawnPos.x, spawnPos.y,
|
||||||
|
spawnPos.z, 0, 0, 0, spawnParams) != NULL) {
|
||||||
|
this->curNumSpawn++;
|
||||||
|
if (this->curNumSpawn >= this->maxCurSpawns) {
|
||||||
|
this->fieldSpawnTimer = 100;
|
||||||
|
}
|
||||||
|
if (globalCtx->sceneNum != SCENE_SPOT00) {
|
||||||
|
this->totalNumSpawn++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Cannot spawn!
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST);
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST);
|
||||||
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 発生できません! ☆☆☆☆☆\n" VT_RST);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void EnEncount1_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
|
s32 pad;
|
||||||
|
EnEncount1* this = THIS;
|
||||||
|
|
||||||
|
if (this->timer != 0) {
|
||||||
|
this->timer--;
|
||||||
|
}
|
||||||
|
|
||||||
|
this->updateFunc(this, globalCtx);
|
||||||
|
|
||||||
|
if (BREG(0) != 0) {
|
||||||
|
if (this->outOfRangeTimer != 0) {
|
||||||
|
if ((this->outOfRangeTimer & 1) == 0) {
|
||||||
|
DebugDisplay_AddObject(this->actor.posRot.pos.x, this->actor.posRot.pos.y, this->actor.posRot.pos.z,
|
||||||
|
this->actor.posRot.rot.x, this->actor.posRot.rot.y, this->actor.posRot.rot.z,
|
||||||
|
1.0f, 1.0f, 1.0f, 120, 120, 120, 255, 4, globalCtx->state.gfxCtx);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
DebugDisplay_AddObject(this->actor.posRot.pos.x, this->actor.posRot.pos.y, this->actor.posRot.pos.z,
|
||||||
|
this->actor.posRot.rot.x, this->actor.posRot.rot.y, this->actor.posRot.rot.z, 1.0f,
|
||||||
|
1.0f, 1.0f, 255, 0, 255, 255, 4, globalCtx->state.gfxCtx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -3,21 +3,40 @@
|
||||||
|
|
||||||
#include "ultra64.h"
|
#include "ultra64.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "overlays/actors/ovl_En_Reeba/z_en_reeba.h"
|
||||||
|
|
||||||
|
#define SPAWNER_PARAMS(type, number, total) ((type << 0xB) | (number << 0x6) | total)
|
||||||
|
|
||||||
struct EnEncount1;
|
struct EnEncount1;
|
||||||
|
|
||||||
|
typedef void (*EnEncount1UpdateFunc)(struct EnEncount1*, GlobalContext*);
|
||||||
|
|
||||||
typedef struct EnEncount1 {
|
typedef struct EnEncount1 {
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ char unk_14C[0x6];
|
/* 0x014C */ EnEncount1UpdateFunc updateFunc;
|
||||||
/* 0x0152 */ s16 unk_152;
|
/* 0x0150 */ s16 maxCurSpawns;
|
||||||
/* 0x0154 */ char unk_154[0xA];
|
/* 0x0152 */ s16 curNumSpawn;
|
||||||
/* 0x015E */ s16 numLeeversDead;
|
/* 0x0154 */ s16 spawnType;
|
||||||
/* 0x0160 */ char unk_160[0x4];
|
/* 0x0156 */ s16 maxTotalSpawns;
|
||||||
/* 0x0164 */ s16 unk_164;
|
/* 0x0158 */ s16 totalNumSpawn;
|
||||||
/* 0x0166 */ char unk_166[0x6];
|
/* 0x015A */ s16 outOfRangeTimer;
|
||||||
/* 0x016C */ UNK_TYPE unk_16C;
|
/* 0x015C */ s16 fieldSpawnTimer;
|
||||||
|
/* 0x015E */ s16 killCount;
|
||||||
|
/* 0x0160 */ s16 numLeeverSpawns;
|
||||||
|
/* 0x0162 */ s16 leeverIndex;
|
||||||
|
/* 0x0164 */ s16 timer;
|
||||||
|
/* 0x0166 */ u8 reduceLeevers;
|
||||||
|
/* 0x0168 */ f32 spawnRange;
|
||||||
|
/* 0x016C */ EnReeba* bigLeever;
|
||||||
} EnEncount1; // size = 0x0170
|
} EnEncount1; // size = 0x0170
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
/* 0 */ SPAWNER_LEEVER,
|
||||||
|
/* 1 */ SPAWNER_TEKTITE,
|
||||||
|
/* 2 */ SPAWNER_STALCHILDREN,
|
||||||
|
/* 3 */ SPAWNER_WOLFOS
|
||||||
|
} EnEncount1type;
|
||||||
|
|
||||||
extern const ActorInit En_Encount1_InitVars;
|
extern const ActorInit En_Encount1_InitVars;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -58,10 +58,9 @@ extern AnimationHeader D_060001E4;
|
||||||
extern SkeletonHeader D_06001EE8;
|
extern SkeletonHeader D_06001EE8;
|
||||||
|
|
||||||
void EnReeba_Init(Actor* thisx, GlobalContext* globalCtx) {
|
void EnReeba_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
EnReeba* this = THIS;
|
|
||||||
f32 temp_f0;
|
|
||||||
s32 surfaceType;
|
|
||||||
s32 pad;
|
s32 pad;
|
||||||
|
EnReeba* this = THIS;
|
||||||
|
s32 surfaceType;
|
||||||
|
|
||||||
this->actor.naviEnemyId = 0x47;
|
this->actor.naviEnemyId = 0x47;
|
||||||
this->actor.unk_1F = 3;
|
this->actor.unk_1F = 3;
|
||||||
|
@ -87,10 +86,8 @@ void EnReeba_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
Actor_ChangeType(globalCtx, &globalCtx->actorCtx, &this->actor, ACTORTYPE_ENEMY);
|
Actor_ChangeType(globalCtx, &globalCtx->actorCtx, &this->actor, ACTORTYPE_ENEMY);
|
||||||
}
|
}
|
||||||
|
|
||||||
temp_f0 = this->scale * -27500.0f;
|
this->actor.shape.unk_08 = this->unk_284 = this->scale * -27500.0f;
|
||||||
this->unk_284 = temp_f0;
|
ActorShape_Init(&this->actor.shape, this->actor.shape.unk_08, ActorShadow_DrawFunc_Circle, 0.0f);
|
||||||
this->actor.shape.unk_08 = temp_f0;
|
|
||||||
ActorShape_Init(&this->actor.shape, temp_f0, ActorShadow_DrawFunc_Circle, 0.0f);
|
|
||||||
this->actor.colChkInfo.damageTable = &sDamageTable;
|
this->actor.colChkInfo.damageTable = &sDamageTable;
|
||||||
func_8002E4B4(globalCtx, &this->actor, 35.0f, 60.0f, 60.0f, 0x1D);
|
func_8002E4B4(globalCtx, &this->actor, 35.0f, 60.0f, 60.0f, 0x1D);
|
||||||
|
|
||||||
|
@ -105,23 +102,21 @@ void EnReeba_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnReeba_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
void EnReeba_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
|
s32 pad;
|
||||||
EnReeba* this = THIS;
|
EnReeba* this = THIS;
|
||||||
EnEncount1* spawner;
|
|
||||||
|
|
||||||
Collider_DestroyCylinder(globalCtx, &this->collider);
|
Collider_DestroyCylinder(globalCtx, &this->collider);
|
||||||
|
|
||||||
if (this->actor.parent != NULL) {
|
if (this->actor.parent != NULL) {
|
||||||
spawner = (EnEncount1*)this->actor.parent;
|
EnEncount1* spawner = (EnEncount1*)this->actor.parent;
|
||||||
|
|
||||||
if (spawner->actor.update != NULL) {
|
if (spawner->actor.update != NULL) {
|
||||||
|
if (spawner->curNumSpawn > 0) {
|
||||||
if (spawner->unk_152 > 0) {
|
spawner->curNumSpawn--;
|
||||||
spawner->unk_152--;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->isBig) {
|
if (this->isBig) {
|
||||||
spawner->unk_16C = 0;
|
spawner->bigLeever = NULL;
|
||||||
spawner->unk_164 = 0x258;
|
spawner->timer = 600;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -130,17 +125,15 @@ void EnReeba_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
void func_80AE4F40(EnReeba* this, GlobalContext* globalCtx) {
|
void func_80AE4F40(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
f32 frames = SkelAnime_GetFrameCount(&D_060001E4.genericHeader);
|
f32 frames = SkelAnime_GetFrameCount(&D_060001E4.genericHeader);
|
||||||
Player* player = PLAYER;
|
Player* player = PLAYER;
|
||||||
s16 absPlayerVel;
|
s16 playerSpeed;
|
||||||
|
|
||||||
SkelAnime_ChangeAnim(&this->skelanime, &D_060001E4, 2.0f, 0.0f, frames, 0, -10.0f);
|
SkelAnime_ChangeAnim(&this->skelanime, &D_060001E4, 2.0f, 0.0f, frames, 0, -10.0f);
|
||||||
|
|
||||||
absPlayerVel = fabsf(player->linearVelocity);
|
playerSpeed = fabsf(player->linearVelocity);
|
||||||
this->unk_278 = (20 - (absPlayerVel * 2));
|
this->unk_278 = 20 - playerSpeed * 2;
|
||||||
|
|
||||||
if (this->unk_278 < 0) {
|
if (this->unk_278 < 0) {
|
||||||
this->unk_278 = 2;
|
this->unk_278 = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->unk_278 > 20) {
|
if (this->unk_278 > 20) {
|
||||||
this->unk_278 = 20;
|
this->unk_278 = 20;
|
||||||
}
|
}
|
||||||
|
@ -164,8 +157,7 @@ void func_80AE5054(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
SkelAnime_FrameUpdateMatrix(&this->skelanime);
|
SkelAnime_FrameUpdateMatrix(&this->skelanime);
|
||||||
|
|
||||||
if ((globalCtx->gameplayFrames % 4) == 0) {
|
if ((globalCtx->gameplayFrames % 4) == 0) {
|
||||||
func_80033260(globalCtx, &this->actor, &this->actor.posRot.pos, this->actor.shape.unk_10, 1, 8.0f, 0x1F4, 0xA,
|
func_80033260(globalCtx, &this->actor, &this->actor.posRot.pos, this->actor.shape.unk_10, 1, 8.0f, 500, 10, 1);
|
||||||
1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->unk_278 == 0) {
|
if (this->unk_278 == 0) {
|
||||||
|
@ -173,7 +165,6 @@ void func_80AE5054(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
if (this->actor.shape.unk_08 < 0.0f) {
|
if (this->actor.shape.unk_08 < 0.0f) {
|
||||||
Math_SmoothDownscaleMaxF(&this->actor.shape.unk_08, 1.0f, this->unk_288);
|
Math_SmoothDownscaleMaxF(&this->actor.shape.unk_08, 1.0f, this->unk_288);
|
||||||
Math_SmoothScaleMaxF(&this->unk_288, 300.0f, 1.0f, 5.0f);
|
Math_SmoothScaleMaxF(&this->unk_288, 300.0f, 1.0f, 5.0f);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this->unk_288 = 0.0f;
|
this->unk_288 = 0.0f;
|
||||||
this->actor.shape.unk_08 = 0.0f;
|
this->actor.shape.unk_08 = 0.0f;
|
||||||
|
@ -194,6 +185,7 @@ void func_80AE5054(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
this->actor.posRot.rot.y = this->actor.yawTowardsLink - (800.0f * playerLinearVel);
|
this->actor.posRot.rot.y = this->actor.yawTowardsLink - (800.0f * playerLinearVel);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->isBig) {
|
if (this->isBig) {
|
||||||
|
@ -221,16 +213,10 @@ void func_80AE5270(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
if ((surfaceType != 4) && (surfaceType != 7)) {
|
if ((surfaceType != 4) && (surfaceType != 7)) {
|
||||||
this->actor.speedXZ = 0.0f;
|
this->actor.speedXZ = 0.0f;
|
||||||
this->actionfunc = func_80AE5688;
|
this->actionfunc = func_80AE5688;
|
||||||
return;
|
} else if ((this->unk_272 == 0) || (this->actor.xzDistFromLink < 30.0f) || (this->actor.xzDistFromLink > 400.0f) ||
|
||||||
}
|
|
||||||
|
|
||||||
if ((this->unk_272 == 0) || (this->actor.xzDistFromLink < 30.0f) || (this->actor.xzDistFromLink > 400.0f) ||
|
|
||||||
(this->actor.bgCheckFlags & 8)) {
|
(this->actor.bgCheckFlags & 8)) {
|
||||||
this->actionfunc = func_80AE5688;
|
this->actionfunc = func_80AE5688;
|
||||||
return;
|
} else if (this->unk_274 == 0) {
|
||||||
}
|
|
||||||
|
|
||||||
if (this->unk_274 == 0) {
|
|
||||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_MOVE);
|
Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_MOVE);
|
||||||
this->unk_274 = 10;
|
this->unk_274 = 10;
|
||||||
}
|
}
|
||||||
|
@ -258,33 +244,30 @@ void func_80AE53AC(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
if (((surfaceType != 4) && (surfaceType != 7)) || (this->actor.xzDistFromLink > 400.0f) ||
|
if (((surfaceType != 4) && (surfaceType != 7)) || (this->actor.xzDistFromLink > 400.0f) ||
|
||||||
(this->actor.bgCheckFlags & 8)) {
|
(this->actor.bgCheckFlags & 8)) {
|
||||||
this->actionfunc = func_80AE5688;
|
this->actionfunc = func_80AE5688;
|
||||||
return;
|
} else {
|
||||||
}
|
|
||||||
|
|
||||||
if ((this->actor.xzDistFromLink < 70.0f) && (this->unk_270 == 0)) {
|
if ((this->actor.xzDistFromLink < 70.0f) && (this->unk_270 == 0)) {
|
||||||
this->unk_270 = 30;
|
this->unk_270 = 30;
|
||||||
}
|
}
|
||||||
|
|
||||||
speed = (this->actor.xzDistFromLink - 20.0f) / ((Math_Rand_ZeroOne() * 50.0f) + 150.0f);
|
speed = (this->actor.xzDistFromLink - 20.0f) / ((Math_Rand_ZeroOne() * 50.0f) + 150.0f);
|
||||||
this->actor.speedXZ += speed * 1.8f;
|
this->actor.speedXZ += speed * 1.8f;
|
||||||
|
|
||||||
if (this->actor.speedXZ >= 3.0f) {
|
if (this->actor.speedXZ >= 3.0f) {
|
||||||
this->actor.speedXZ = 3.0f;
|
this->actor.speedXZ = 3.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->actor.speedXZ < -3.0f) {
|
if (this->actor.speedXZ < -3.0f) {
|
||||||
this->actor.speedXZ = -3.0f;
|
this->actor.speedXZ = -3.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
yawDiff = (this->unk_270 == 0) ? this->actor.yawTowardsLink : -this->actor.yawTowardsLink;
|
yawDiff = (this->unk_270 == 0) ? this->actor.yawTowardsLink : -this->actor.yawTowardsLink;
|
||||||
yawDiff = yawDiff - this->actor.posRot.rot.y;
|
yawDiff -= this->actor.posRot.rot.y;
|
||||||
yaw = (yawDiff > 0) ? ((yawDiff / 31.0f) + 10.0f) : ((yawDiff / 31.0f) - 10.0f);
|
yaw = (yawDiff > 0) ? ((yawDiff / 31.0f) + 10.0f) : ((yawDiff / 31.0f) - 10.0f);
|
||||||
this->actor.posRot.rot.y += (yaw * 2.0f);
|
this->actor.posRot.rot.y += yaw * 2.0f;
|
||||||
|
|
||||||
if (this->unk_274 == 0) {
|
if (this->unk_274 == 0) {
|
||||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_MOVE);
|
Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_MOVE);
|
||||||
this->unk_274 = 20;
|
this->unk_274 = 20;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80AE561C(EnReeba* this, GlobalContext* globalCtx) {
|
void func_80AE561C(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
|
@ -313,7 +296,7 @@ void func_80AE56E0(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
SkelAnime_FrameUpdateMatrix(&this->skelanime);
|
SkelAnime_FrameUpdateMatrix(&this->skelanime);
|
||||||
|
|
||||||
if ((this->unk_284 + 10.0f) <= this->actor.shape.unk_08) {
|
if ((this->unk_284 + 10.0f) <= this->actor.shape.unk_08) {
|
||||||
if ((globalCtx->gameplayFrames & 3) == 0) {
|
if ((globalCtx->gameplayFrames % 4) == 0) {
|
||||||
func_80033260(globalCtx, &this->actor, &this->actor.posRot.pos, this->actor.shape.unk_10, 1, 8.0f, 500, 10,
|
func_80033260(globalCtx, &this->actor, &this->actor.posRot.pos, this->actor.shape.unk_10, 1, 8.0f, 500, 10,
|
||||||
1);
|
1);
|
||||||
}
|
}
|
||||||
|
@ -337,7 +320,7 @@ void func_80AE5854(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
SkelAnime_FrameUpdateMatrix(&this->skelanime);
|
SkelAnime_FrameUpdateMatrix(&this->skelanime);
|
||||||
|
|
||||||
if (this->actor.speedXZ < 0.0f) {
|
if (this->actor.speedXZ < 0.0f) {
|
||||||
this->actor.speedXZ++;
|
this->actor.speedXZ += 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->unk_276 == 0) {
|
if (this->unk_276 == 0) {
|
||||||
|
@ -394,21 +377,21 @@ void func_80AE5938(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80AE5A9C(EnReeba* this, GlobalContext* globalCtx) {
|
void func_80AE5A9C(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
Vec3f randPos;
|
Vec3f pos;
|
||||||
f32 scale;
|
f32 scale;
|
||||||
|
|
||||||
if (this->unk_278 != 0) {
|
if (this->unk_278 != 0) {
|
||||||
if ((this->unk_27E == 2) && ((this->unk_278 & 0xF) == 0)) {
|
if ((this->unk_27E == 2) && ((this->unk_278 & 0xF) == 0)) {
|
||||||
randPos.x = this->actor.posRot.pos.x + Math_Rand_CenteredFloat(20.0f);
|
pos.x = this->actor.posRot.pos.x + Math_Rand_CenteredFloat(20.0f);
|
||||||
randPos.y = this->actor.posRot.pos.y + Math_Rand_CenteredFloat(20.0f);
|
pos.y = this->actor.posRot.pos.y + Math_Rand_CenteredFloat(20.0f);
|
||||||
randPos.z = this->actor.posRot.pos.z + Math_Rand_CenteredFloat(20.0f);
|
pos.z = this->actor.posRot.pos.z + Math_Rand_CenteredFloat(20.0f);
|
||||||
scale = 3.0f;
|
|
||||||
|
|
||||||
|
scale = 3.0f;
|
||||||
if (this->isBig) {
|
if (this->isBig) {
|
||||||
scale = 6.0f;
|
scale = 6.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
EffectSsEnIce_SpawnFlyingVec3f(globalCtx, &this->actor, &randPos, 150, 150, 150, 250, 235, 245, 255, scale);
|
EffectSsEnIce_SpawnFlyingVec3f(globalCtx, &this->actor, &pos, 150, 150, 150, 250, 235, 245, 255, scale);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_DEAD);
|
Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_DEAD);
|
||||||
|
@ -430,11 +413,10 @@ void func_80AE5C38(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
Vec3f pos;
|
Vec3f pos;
|
||||||
Vec3f accel = { 0.0f, 0.0f, 0.0f };
|
Vec3f accel = { 0.0f, 0.0f, 0.0f };
|
||||||
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
Vec3f velocity = { 0.0f, 0.0f, 0.0f };
|
||||||
EnEncount1* spawner;
|
|
||||||
|
|
||||||
if (this->unk_278 != 0) {
|
if (this->unk_278 != 0) {
|
||||||
if (this->actor.speedXZ < 0.0f) {
|
if (this->actor.speedXZ < 0.0f) {
|
||||||
this->actor.speedXZ++;
|
this->actor.speedXZ += 1.0f;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this->actor.speedXZ = 0.0f;
|
this->actor.speedXZ = 0.0f;
|
||||||
|
@ -444,7 +426,9 @@ void func_80AE5C38(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
pos.x = this->actor.posRot.pos.x;
|
pos.x = this->actor.posRot.pos.x;
|
||||||
pos.y = this->actor.posRot.pos.y;
|
pos.y = this->actor.posRot.pos.y;
|
||||||
pos.z = this->actor.posRot.pos.z;
|
pos.z = this->actor.posRot.pos.z;
|
||||||
|
|
||||||
velocity.y = 4.0f;
|
velocity.y = 4.0f;
|
||||||
|
|
||||||
EffectSsDeadDb_Spawn(globalCtx, &pos, &velocity, &accel, 120, 0, 255, 255, 255, 255, 255, 0, 0, 1, 9, true);
|
EffectSsDeadDb_Spawn(globalCtx, &pos, &velocity, &accel, 120, 0, 255, 255, 255, 255, 255, 0, 0, 1, 9, true);
|
||||||
|
|
||||||
if (!this->isBig) {
|
if (!this->isBig) {
|
||||||
|
@ -454,19 +438,17 @@ void func_80AE5C38(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->actor.parent != NULL) {
|
if (this->actor.parent != NULL) {
|
||||||
spawner = (EnEncount1*)this->actor.parent;
|
EnEncount1* spawner = (EnEncount1*)this->actor.parent;
|
||||||
|
|
||||||
if (spawner->actor.update != NULL) {
|
if ((spawner->actor.update != NULL) && !this->isBig) {
|
||||||
if (!this->isBig) {
|
if (spawner->killCount < 10) {
|
||||||
if (spawner->numLeeversDead < 10) {
|
spawner->killCount++;
|
||||||
spawner->numLeeversDead++;
|
|
||||||
}
|
}
|
||||||
// How many are dead?
|
// How many are dead?
|
||||||
osSyncPrintf("\n\n");
|
osSyncPrintf("\n\n");
|
||||||
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 何匹DEAD? ☆☆☆☆☆%d\n" VT_RST, spawner->numLeeversDead);
|
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 何匹DEAD? ☆☆☆☆☆%d\n" VT_RST, spawner->killCount);
|
||||||
osSyncPrintf("\n\n");
|
osSyncPrintf("\n\n");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Actor_Kill(&this->actor);
|
Actor_Kill(&this->actor);
|
||||||
}
|
}
|
||||||
|
@ -494,9 +476,8 @@ void func_80AE5EDC(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
this->collider.base.acFlags &= ~2;
|
this->collider.base.acFlags &= ~2;
|
||||||
|
|
||||||
if ((this->actionfunc != func_80AE5C38) && (this->actionfunc != func_80AE5854)) {
|
if ((this->actionfunc != func_80AE5C38) && (this->actionfunc != func_80AE5854)) {
|
||||||
this->actor.shape.rot.z = 0;
|
this->actor.shape.rot.x = this->actor.shape.rot.z = 0;
|
||||||
this->unk_27E = 0;
|
this->unk_27E = 0;
|
||||||
this->actor.shape.rot.x = this->actor.shape.rot.z;
|
|
||||||
|
|
||||||
switch (this->actor.colChkInfo.damageEffect) {
|
switch (this->actor.colChkInfo.damageEffect) {
|
||||||
case 11: // none
|
case 11: // none
|
||||||
|
@ -523,26 +504,25 @@ void func_80AE5EDC(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_DEAD);
|
Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_DEAD);
|
||||||
func_80032C7C(globalCtx, &this->actor);
|
func_80032C7C(globalCtx, &this->actor);
|
||||||
this->actionfunc = func_80AE5BC4;
|
this->actionfunc = func_80AE5BC4;
|
||||||
break;
|
} else {
|
||||||
}
|
|
||||||
if (this->actionfunc == func_80AE5E48) {
|
if (this->actionfunc == func_80AE5E48) {
|
||||||
this->actor.shape.rot.z = 0;
|
this->actor.shape.rot.x = this->actor.shape.rot.z = 0;
|
||||||
this->actor.shape.rot.x = this->actor.shape.rot.z;
|
|
||||||
}
|
}
|
||||||
Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_DAMAGE);
|
Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_DAMAGE);
|
||||||
this->actionfunc = func_80AE57F0;
|
this->actionfunc = func_80AE57F0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 3: // ice arrows/ice magic
|
case 3: // ice arrows/ice magic
|
||||||
Actor_ApplyDamage(&this->actor);
|
Actor_ApplyDamage(&this->actor);
|
||||||
this->unk_27C = 2;
|
this->unk_27C = 2;
|
||||||
this->unk_27E = 2;
|
this->unk_27E = 2;
|
||||||
func_8003426C(&this->actor, 0, 0xFF, 0, 0x50);
|
func_8003426C(&this->actor, 0, 0xFF, 0, 80);
|
||||||
this->actionfunc = func_80AE58EC;
|
this->actionfunc = func_80AE58EC;
|
||||||
break;
|
break;
|
||||||
case 1: // unknown
|
case 1: // unknown
|
||||||
if (this->unk_27E != 4) {
|
if (this->unk_27E != 4) {
|
||||||
this->unk_27E = 4;
|
this->unk_27E = 4;
|
||||||
func_8003426C(&this->actor, 0, 0xFF, 0, 0x50);
|
func_8003426C(&this->actor, 0, 0xFF, 0, 80);
|
||||||
this->actionfunc = func_80AE58EC;
|
this->actionfunc = func_80AE58EC;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -551,13 +531,13 @@ void func_80AE5EDC(EnReeba* this, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnReeba_Update(Actor* thisx, GlobalContext* globalCtx) {
|
void EnReeba_Update(Actor* thisx, GlobalContext* globalCtx2) {
|
||||||
GlobalContext* globalCtx2 = globalCtx;
|
GlobalContext* globalCtx = globalCtx2;
|
||||||
EnReeba* this = THIS;
|
EnReeba* this = THIS;
|
||||||
Player* player = PLAYER;
|
Player* player = PLAYER;
|
||||||
|
|
||||||
func_80AE5EDC(this, globalCtx);
|
func_80AE5EDC(this, globalCtx);
|
||||||
this->actionfunc(this, globalCtx2);
|
this->actionfunc(this, globalCtx);
|
||||||
Actor_SetScale(&this->actor, this->scale);
|
Actor_SetScale(&this->actor, this->scale);
|
||||||
|
|
||||||
if (this->unk_270 != 0) {
|
if (this->unk_270 != 0) {
|
||||||
|
@ -581,7 +561,7 @@ void EnReeba_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Actor_MoveForward(&this->actor);
|
Actor_MoveForward(&this->actor);
|
||||||
func_8002E4B4(globalCtx2, &this->actor, 35.0f, 60.0f, 60.0f, 0x1D);
|
func_8002E4B4(globalCtx, &this->actor, 35.0f, 60.0f, 60.0f, 0x1D);
|
||||||
|
|
||||||
if (this->collider.base.atFlags & 4) {
|
if (this->collider.base.atFlags & 4) {
|
||||||
this->collider.base.atFlags &= ~4;
|
this->collider.base.atFlags &= ~4;
|
||||||
|
@ -614,21 +594,21 @@ void EnReeba_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
|
|
||||||
if ((this->actor.shape.unk_08 >= -700.0f) && (this->actor.colChkInfo.health > 0) &&
|
if ((this->actor.shape.unk_08 >= -700.0f) && (this->actor.colChkInfo.health > 0) &&
|
||||||
(this->actionfunc != func_80AE56E0)) {
|
(this->actionfunc != func_80AE56E0)) {
|
||||||
CollisionCheck_SetOC(globalCtx2, &globalCtx2->colChkCtx, &this->collider.base);
|
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||||
|
|
||||||
if (!(this->actor.shape.unk_08 < 0.0f)) {
|
if (!(this->actor.shape.unk_08 < 0.0f)) {
|
||||||
CollisionCheck_SetAC(globalCtx2, &globalCtx2->colChkCtx, &this->collider.base);
|
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||||
|
|
||||||
if ((this->actionfunc == func_80AE5270) || (this->actionfunc == func_80AE53AC)) {
|
if ((this->actionfunc == func_80AE5270) || (this->actionfunc == func_80AE53AC)) {
|
||||||
CollisionCheck_SetAT(globalCtx2, &globalCtx2->colChkCtx, &this->collider.base);
|
CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnReeba_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
void EnReeba_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||||
EnReeba* this = THIS;
|
|
||||||
s32 pad;
|
s32 pad;
|
||||||
|
EnReeba* this = THIS;
|
||||||
|
|
||||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_reeba.c", 1062);
|
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_reeba.c", 1062);
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,11 @@ typedef struct EnReeba {
|
||||||
/* 0x0290 */ ColliderCylinder collider;
|
/* 0x0290 */ ColliderCylinder collider;
|
||||||
} EnReeba; // size = 0x02DC
|
} EnReeba; // size = 0x02DC
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
/* 0 */ LEEVER_SMALL,
|
||||||
|
/* 1 */ LEEVER_BIG
|
||||||
|
} LeeverParam;
|
||||||
|
|
||||||
extern const ActorInit En_Reeba_InitVars;
|
extern const ActorInit En_Reeba_InitVars;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue