From 930cee306181de187c0c7df6857a92606c5f2bb6 Mon Sep 17 00:00:00 2001 From: petrie911 <69443847+petrie911@users.noreply.github.com> Date: Thu, 19 Nov 2020 13:27:32 -0600 Subject: [PATCH] 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 --- .../actors/ovl_En_Encount1/EnEncount1_Init.s | 218 ----------- .../ovl_En_Encount1/EnEncount1_Update.s | 89 ----- .../actors/ovl_En_Encount1/func_80A0693C.s | 276 -------------- .../actors/ovl_En_Encount1/func_80A06CD0.s | 136 ------- .../actors/ovl_En_Encount1/func_80A06E88.s | 337 ------------------ data/overlays/actors/z_en_encount1.data.s | 22 -- data/overlays/actors/z_en_encount1.reloc.s | 13 - spec | 3 +- .../actors/ovl_En_Encount1/z_en_encount1.c | 321 ++++++++++++++++- .../actors/ovl_En_Encount1/z_en_encount1.h | 35 +- src/overlays/actors/ovl_En_Reeba/z_en_reeba.c | 168 ++++----- src/overlays/actors/ovl_En_Reeba/z_en_reeba.h | 5 + 12 files changed, 421 insertions(+), 1202 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Encount1/EnEncount1_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Encount1/EnEncount1_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A0693C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A06CD0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A06E88.s delete mode 100644 data/overlays/actors/z_en_encount1.data.s delete mode 100644 data/overlays/actors/z_en_encount1.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_En_Encount1/EnEncount1_Init.s b/asm/non_matchings/overlays/actors/ovl_En_Encount1/EnEncount1_Init.s deleted file mode 100644 index f6fcbeb4b4..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Encount1/EnEncount1_Init.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Encount1/EnEncount1_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Encount1/EnEncount1_Update.s deleted file mode 100644 index 61976c8a23..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Encount1/EnEncount1_Update.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A0693C.s b/asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A0693C.s deleted file mode 100644 index 80c191cd6b..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A0693C.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A06CD0.s b/asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A06CD0.s deleted file mode 100644 index d16bb6a1b4..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A06CD0.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A06E88.s b/asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A06E88.s deleted file mode 100644 index 9ce3c19c2c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Encount1/func_80A06E88.s +++ /dev/null @@ -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 diff --git a/data/overlays/actors/z_en_encount1.data.s b/data/overlays/actors/z_en_encount1.data.s deleted file mode 100644 index 0449c3fb5a..0000000000 --- a/data/overlays/actors/z_en_encount1.data.s +++ /dev/null @@ -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 - diff --git a/data/overlays/actors/z_en_encount1.reloc.s b/data/overlays/actors/z_en_encount1.reloc.s deleted file mode 100644 index 3eb19577bc..0000000000 --- a/data/overlays/actors/z_en_encount1.reloc.s +++ /dev/null @@ -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 diff --git a/spec b/spec index a6f3f1c6dd..b61f4e1406 100644 --- a/spec +++ b/spec @@ -2243,8 +2243,7 @@ endseg beginseg name "ovl_En_Encount1" include "build/src/overlays/actors/ovl_En_Encount1/z_en_encount1.o" - include "build/data/overlays/actors/z_en_encount1.data.o" - include "build/data/overlays/actors/z_en_encount1.reloc.o" + include "build/src/overlays/actors/ovl_En_Encount1/ovl_En_Encount1_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c index b6eac3a9b1..b51e19a504 100644 --- a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c +++ b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c @@ -1,4 +1,5 @@ #include "z_en_encount1.h" +#include "vt.h" #define FLAGS 0x08000010 @@ -7,7 +8,13 @@ void EnEncount1_Init(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 = { ACTOR_EN_ENCOUNT1, ACTORTYPE_PROP, @@ -19,13 +26,313 @@ const ActorInit En_Encount1_InitVars = { (ActorFunc)EnEncount1_Update, 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); + } + } +} diff --git a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.h b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.h index 7e2d99d302..bf3d006ca7 100644 --- a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.h +++ b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.h @@ -3,21 +3,40 @@ #include "ultra64.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; +typedef void (*EnEncount1UpdateFunc)(struct EnEncount1*, GlobalContext*); + typedef struct EnEncount1 { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x6]; - /* 0x0152 */ s16 unk_152; - /* 0x0154 */ char unk_154[0xA]; - /* 0x015E */ s16 numLeeversDead; - /* 0x0160 */ char unk_160[0x4]; - /* 0x0164 */ s16 unk_164; - /* 0x0166 */ char unk_166[0x6]; - /* 0x016C */ UNK_TYPE unk_16C; + /* 0x014C */ EnEncount1UpdateFunc updateFunc; + /* 0x0150 */ s16 maxCurSpawns; + /* 0x0152 */ s16 curNumSpawn; + /* 0x0154 */ s16 spawnType; + /* 0x0156 */ s16 maxTotalSpawns; + /* 0x0158 */ s16 totalNumSpawn; + /* 0x015A */ s16 outOfRangeTimer; + /* 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 +typedef enum { + /* 0 */ SPAWNER_LEEVER, + /* 1 */ SPAWNER_TEKTITE, + /* 2 */ SPAWNER_STALCHILDREN, + /* 3 */ SPAWNER_WOLFOS +} EnEncount1type; + extern const ActorInit En_Encount1_InitVars; #endif diff --git a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c index 1b0792c913..96afd2737d 100644 --- a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c +++ b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c @@ -58,10 +58,9 @@ extern AnimationHeader D_060001E4; extern SkeletonHeader D_06001EE8; void EnReeba_Init(Actor* thisx, GlobalContext* globalCtx) { - EnReeba* this = THIS; - f32 temp_f0; - s32 surfaceType; s32 pad; + EnReeba* this = THIS; + s32 surfaceType; this->actor.naviEnemyId = 0x47; 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); } - temp_f0 = this->scale * -27500.0f; - this->unk_284 = temp_f0; - this->actor.shape.unk_08 = temp_f0; - ActorShape_Init(&this->actor.shape, temp_f0, ActorShadow_DrawFunc_Circle, 0.0f); + this->actor.shape.unk_08 = this->unk_284 = this->scale * -27500.0f; + ActorShape_Init(&this->actor.shape, this->actor.shape.unk_08, ActorShadow_DrawFunc_Circle, 0.0f); this->actor.colChkInfo.damageTable = &sDamageTable; 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) { + s32 pad; EnReeba* this = THIS; - EnEncount1* spawner; Collider_DestroyCylinder(globalCtx, &this->collider); if (this->actor.parent != NULL) { - spawner = (EnEncount1*)this->actor.parent; + EnEncount1* spawner = (EnEncount1*)this->actor.parent; if (spawner->actor.update != NULL) { - - if (spawner->unk_152 > 0) { - spawner->unk_152--; + if (spawner->curNumSpawn > 0) { + spawner->curNumSpawn--; } - if (this->isBig) { - spawner->unk_16C = 0; - spawner->unk_164 = 0x258; + spawner->bigLeever = NULL; + spawner->timer = 600; } } } @@ -130,17 +125,15 @@ void EnReeba_Destroy(Actor* thisx, GlobalContext* globalCtx) { void func_80AE4F40(EnReeba* this, GlobalContext* globalCtx) { f32 frames = SkelAnime_GetFrameCount(&D_060001E4.genericHeader); Player* player = PLAYER; - s16 absPlayerVel; + s16 playerSpeed; SkelAnime_ChangeAnim(&this->skelanime, &D_060001E4, 2.0f, 0.0f, frames, 0, -10.0f); - absPlayerVel = fabsf(player->linearVelocity); - this->unk_278 = (20 - (absPlayerVel * 2)); - + playerSpeed = fabsf(player->linearVelocity); + this->unk_278 = 20 - playerSpeed * 2; if (this->unk_278 < 0) { this->unk_278 = 2; } - if (this->unk_278 > 20) { this->unk_278 = 20; } @@ -164,8 +157,7 @@ void func_80AE5054(EnReeba* this, GlobalContext* globalCtx) { SkelAnime_FrameUpdateMatrix(&this->skelanime); if ((globalCtx->gameplayFrames % 4) == 0) { - func_80033260(globalCtx, &this->actor, &this->actor.posRot.pos, this->actor.shape.unk_10, 1, 8.0f, 0x1F4, 0xA, - 1); + func_80033260(globalCtx, &this->actor, &this->actor.posRot.pos, this->actor.shape.unk_10, 1, 8.0f, 500, 10, 1); } if (this->unk_278 == 0) { @@ -173,7 +165,6 @@ void func_80AE5054(EnReeba* this, GlobalContext* globalCtx) { if (this->actor.shape.unk_08 < 0.0f) { Math_SmoothDownscaleMaxF(&this->actor.shape.unk_08, 1.0f, this->unk_288); Math_SmoothScaleMaxF(&this->unk_288, 300.0f, 1.0f, 5.0f); - } else { this->unk_288 = 0.0f; this->actor.shape.unk_08 = 0.0f; @@ -194,6 +185,7 @@ void func_80AE5054(EnReeba* this, GlobalContext* globalCtx) { break; case 4: this->actor.posRot.rot.y = this->actor.yawTowardsLink - (800.0f * playerLinearVel); + break; } if (this->isBig) { @@ -221,16 +213,10 @@ void func_80AE5270(EnReeba* this, GlobalContext* globalCtx) { if ((surfaceType != 4) && (surfaceType != 7)) { this->actor.speedXZ = 0.0f; this->actionfunc = func_80AE5688; - return; - } - - if ((this->unk_272 == 0) || (this->actor.xzDistFromLink < 30.0f) || (this->actor.xzDistFromLink > 400.0f) || - (this->actor.bgCheckFlags & 8)) { + } else if ((this->unk_272 == 0) || (this->actor.xzDistFromLink < 30.0f) || (this->actor.xzDistFromLink > 400.0f) || + (this->actor.bgCheckFlags & 8)) { this->actionfunc = func_80AE5688; - return; - } - - if (this->unk_274 == 0) { + } else if (this->unk_274 == 0) { Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_MOVE); this->unk_274 = 10; } @@ -258,32 +244,29 @@ void func_80AE53AC(EnReeba* this, GlobalContext* globalCtx) { if (((surfaceType != 4) && (surfaceType != 7)) || (this->actor.xzDistFromLink > 400.0f) || (this->actor.bgCheckFlags & 8)) { this->actionfunc = func_80AE5688; - return; - } + } else { + if ((this->actor.xzDistFromLink < 70.0f) && (this->unk_270 == 0)) { + this->unk_270 = 30; + } - if ((this->actor.xzDistFromLink < 70.0f) && (this->unk_270 == 0)) { - this->unk_270 = 30; - } + speed = (this->actor.xzDistFromLink - 20.0f) / ((Math_Rand_ZeroOne() * 50.0f) + 150.0f); + this->actor.speedXZ += speed * 1.8f; + if (this->actor.speedXZ >= 3.0f) { + this->actor.speedXZ = 3.0f; + } + if (this->actor.speedXZ < -3.0f) { + this->actor.speedXZ = -3.0f; + } - speed = (this->actor.xzDistFromLink - 20.0f) / ((Math_Rand_ZeroOne() * 50.0f) + 150.0f); - this->actor.speedXZ += speed * 1.8f; + yawDiff = (this->unk_270 == 0) ? this->actor.yawTowardsLink : -this->actor.yawTowardsLink; + yawDiff -= this->actor.posRot.rot.y; + yaw = (yawDiff > 0) ? ((yawDiff / 31.0f) + 10.0f) : ((yawDiff / 31.0f) - 10.0f); + this->actor.posRot.rot.y += yaw * 2.0f; - if (this->actor.speedXZ >= 3.0f) { - this->actor.speedXZ = 3.0f; - } - - if (this->actor.speedXZ < -3.0f) { - this->actor.speedXZ = -3.0f; - } - - yawDiff = (this->unk_270 == 0) ? this->actor.yawTowardsLink : -this->actor.yawTowardsLink; - yawDiff = yawDiff - this->actor.posRot.rot.y; - yaw = (yawDiff > 0) ? ((yawDiff / 31.0f) + 10.0f) : ((yawDiff / 31.0f) - 10.0f); - this->actor.posRot.rot.y += (yaw * 2.0f); - - if (this->unk_274 == 0) { - Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_MOVE); - this->unk_274 = 20; + if (this->unk_274 == 0) { + Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_MOVE); + this->unk_274 = 20; + } } } @@ -313,7 +296,7 @@ void func_80AE56E0(EnReeba* this, GlobalContext* globalCtx) { SkelAnime_FrameUpdateMatrix(&this->skelanime); 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, 1); } @@ -337,7 +320,7 @@ void func_80AE5854(EnReeba* this, GlobalContext* globalCtx) { SkelAnime_FrameUpdateMatrix(&this->skelanime); if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ++; + this->actor.speedXZ += 1.0f; } if (this->unk_276 == 0) { @@ -394,21 +377,21 @@ void func_80AE5938(EnReeba* this, GlobalContext* globalCtx) { } void func_80AE5A9C(EnReeba* this, GlobalContext* globalCtx) { - Vec3f randPos; + Vec3f pos; f32 scale; if (this->unk_278 != 0) { if ((this->unk_27E == 2) && ((this->unk_278 & 0xF) == 0)) { - randPos.x = this->actor.posRot.pos.x + Math_Rand_CenteredFloat(20.0f); - randPos.y = this->actor.posRot.pos.y + Math_Rand_CenteredFloat(20.0f); - randPos.z = this->actor.posRot.pos.z + Math_Rand_CenteredFloat(20.0f); - scale = 3.0f; + pos.x = this->actor.posRot.pos.x + Math_Rand_CenteredFloat(20.0f); + pos.y = this->actor.posRot.pos.y + Math_Rand_CenteredFloat(20.0f); + pos.z = this->actor.posRot.pos.z + Math_Rand_CenteredFloat(20.0f); + scale = 3.0f; if (this->isBig) { 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 { Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_DEAD); @@ -430,11 +413,10 @@ void func_80AE5C38(EnReeba* this, GlobalContext* globalCtx) { Vec3f pos; Vec3f accel = { 0.0f, 0.0f, 0.0f }; Vec3f velocity = { 0.0f, 0.0f, 0.0f }; - EnEncount1* spawner; if (this->unk_278 != 0) { if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ++; + this->actor.speedXZ += 1.0f; } } else { this->actor.speedXZ = 0.0f; @@ -444,7 +426,9 @@ void func_80AE5C38(EnReeba* this, GlobalContext* globalCtx) { pos.x = this->actor.posRot.pos.x; pos.y = this->actor.posRot.pos.y; pos.z = this->actor.posRot.pos.z; + velocity.y = 4.0f; + EffectSsDeadDb_Spawn(globalCtx, &pos, &velocity, &accel, 120, 0, 255, 255, 255, 255, 255, 0, 0, 1, 9, true); if (!this->isBig) { @@ -454,18 +438,16 @@ void func_80AE5C38(EnReeba* this, GlobalContext* globalCtx) { } if (this->actor.parent != NULL) { - spawner = (EnEncount1*)this->actor.parent; + EnEncount1* spawner = (EnEncount1*)this->actor.parent; - if (spawner->actor.update != NULL) { - if (!this->isBig) { - if (spawner->numLeeversDead < 10) { - spawner->numLeeversDead++; - } - // How many are dead? - osSyncPrintf("\n\n"); - osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 何匹DEAD? ☆☆☆☆☆%d\n" VT_RST, spawner->numLeeversDead); - osSyncPrintf("\n\n"); + if ((spawner->actor.update != NULL) && !this->isBig) { + if (spawner->killCount < 10) { + spawner->killCount++; } + // How many are dead? + osSyncPrintf("\n\n"); + osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 何匹DEAD? ☆☆☆☆☆%d\n" VT_RST, spawner->killCount); + osSyncPrintf("\n\n"); } Actor_Kill(&this->actor); @@ -494,9 +476,8 @@ void func_80AE5EDC(EnReeba* this, GlobalContext* globalCtx) { this->collider.base.acFlags &= ~2; 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->actor.shape.rot.x = this->actor.shape.rot.z; switch (this->actor.colChkInfo.damageEffect) { case 11: // none @@ -523,26 +504,25 @@ void func_80AE5EDC(EnReeba* this, GlobalContext* globalCtx) { Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_DEAD); func_80032C7C(globalCtx, &this->actor); this->actionfunc = func_80AE5BC4; - break; + } else { + if (this->actionfunc == func_80AE5E48) { + this->actor.shape.rot.x = this->actor.shape.rot.z = 0; + } + Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_DAMAGE); + this->actionfunc = func_80AE57F0; } - if (this->actionfunc == func_80AE5E48) { - 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); - this->actionfunc = func_80AE57F0; break; case 3: // ice arrows/ice magic Actor_ApplyDamage(&this->actor); this->unk_27C = 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; break; case 1: // unknown if (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; } break; @@ -551,13 +531,13 @@ void func_80AE5EDC(EnReeba* this, GlobalContext* globalCtx) { } } -void EnReeba_Update(Actor* thisx, GlobalContext* globalCtx) { - GlobalContext* globalCtx2 = globalCtx; +void EnReeba_Update(Actor* thisx, GlobalContext* globalCtx2) { + GlobalContext* globalCtx = globalCtx2; EnReeba* this = THIS; Player* player = PLAYER; func_80AE5EDC(this, globalCtx); - this->actionfunc(this, globalCtx2); + this->actionfunc(this, globalCtx); Actor_SetScale(&this->actor, this->scale); if (this->unk_270 != 0) { @@ -581,7 +561,7 @@ void EnReeba_Update(Actor* thisx, GlobalContext* globalCtx) { } 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) { 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) && (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)) { - 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)) { - CollisionCheck_SetAT(globalCtx2, &globalCtx2->colChkCtx, &this->collider.base); + CollisionCheck_SetAT(globalCtx, &globalCtx->colChkCtx, &this->collider.base); } } } } void EnReeba_Draw(Actor* thisx, GlobalContext* globalCtx) { - EnReeba* this = THIS; s32 pad; + EnReeba* this = THIS; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_reeba.c", 1062); diff --git a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.h b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.h index c469ab7387..a985079294 100644 --- a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.h +++ b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.h @@ -30,6 +30,11 @@ typedef struct EnReeba { /* 0x0290 */ ColliderCylinder collider; } EnReeba; // size = 0x02DC +typedef enum { + /* 0 */ LEEVER_SMALL, + /* 1 */ LEEVER_BIG +} LeeverParam; + extern const ActorInit En_Reeba_InitVars; #endif