From d399c3deb6bab1baf3153d7c39a50bf2b76e1776 Mon Sep 17 00:00:00 2001 From: EllipticEllipsis <73679967+EllipticEllipsis@users.noreply.github.com> Date: Mon, 14 Jun 2021 18:50:16 +0100 Subject: [PATCH] BgGndFiremeiro OK and documented (#850) * OK, data imported * Name everything * Delete asm --- .../BgGndFiremeiro_Destroy.s | 17 --- .../BgGndFiremeiro_Draw.s | 68 --------- .../BgGndFiremeiro_Init.s | 52 ------- .../BgGndFiremeiro_Update.s | 10 -- .../ovl_Bg_Gnd_Firemeiro/func_808795AC.s | 53 ------- .../ovl_Bg_Gnd_Firemeiro/func_80879668.s | 116 ---------------- .../ovl_Bg_Gnd_Firemeiro/func_80879808.s | 54 -------- .../overlays/actors/z_bg_gnd_firemeiro.data.s | 18 --- .../actors/z_bg_gnd_firemeiro.reloc.s | 13 -- spec | 3 +- .../ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c | 131 ++++++++++++++++-- .../ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.h | 4 +- 12 files changed, 119 insertions(+), 420 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_808795AC.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_80879668.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_80879808.s delete mode 100644 data/overlays/actors/z_bg_gnd_firemeiro.data.s delete mode 100644 data/overlays/actors/z_bg_gnd_firemeiro.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Destroy.s deleted file mode 100644 index 1bfd6c97c9..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Destroy.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel BgGndFiremeiro_Destroy -/* 000B4 80879574 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 000B8 80879578 AFBF0014 */ sw $ra, 0x0014($sp) -/* 000BC 8087957C AFA40018 */ sw $a0, 0x0018($sp) -/* 000C0 80879580 848F001C */ lh $t7, 0x001C($a0) ## 0000001C -/* 000C4 80879584 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 000C8 80879588 8FB80018 */ lw $t8, 0x0018($sp) -/* 000CC 8087958C 15E00003 */ bne $t7, $zero, .L8087959C -/* 000D0 80879590 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810 -/* 000D4 80879594 0C00FB56 */ jal DynaPoly_DeleteBgActor - ## DynaPoly_DeleteBgActor -/* 000D8 80879598 8F06014C */ lw $a2, 0x014C($t8) ## 0000014C -.L8087959C: -/* 000DC 8087959C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 000E0 808795A0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 000E4 808795A4 03E00008 */ jr $ra -/* 000E8 808795A8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Draw.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Draw.s deleted file mode 100644 index 86480598c7..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Draw.s +++ /dev/null @@ -1,68 +0,0 @@ -.rdata -glabel D_808799E0 - .asciz "../z_bg_gnd_firemeiro.c" - .balign 4 - -glabel D_808799F8 - .asciz "../z_bg_gnd_firemeiro.c" - .balign 4 - -glabel D_80879A10 - .asciz "../z_bg_gnd_firemeiro.c" - .balign 4 - -.text -glabel BgGndFiremeiro_Draw -/* 0042C 808798EC 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0 -/* 00430 808798F0 AFBF001C */ sw $ra, 0x001C($sp) -/* 00434 808798F4 AFB00018 */ sw $s0, 0x0018($sp) -/* 00438 808798F8 AFA40040 */ sw $a0, 0x0040($sp) -/* 0043C 808798FC AFA50044 */ sw $a1, 0x0044($sp) -/* 00440 80879900 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000 -/* 00444 80879904 3C068088 */ lui $a2, %hi(D_808799E0) ## $a2 = 80880000 -/* 00448 80879908 24C699E0 */ addiu $a2, $a2, %lo(D_808799E0) ## $a2 = 808799E0 -/* 0044C 8087990C 27A4002C */ addiu $a0, $sp, 0x002C ## $a0 = FFFFFFEC -/* 00450 80879910 24070118 */ addiu $a3, $zero, 0x0118 ## $a3 = 00000118 -/* 00454 80879914 0C031AB1 */ jal Graph_OpenDisps -/* 00458 80879918 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 0045C 8087991C 8FAF0044 */ lw $t7, 0x0044($sp) -/* 00460 80879920 0C0250F2 */ jal func_800943C8 -/* 00464 80879924 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000 -/* 00468 80879928 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 0046C 8087992C 3C19DA38 */ lui $t9, 0xDA38 ## $t9 = DA380000 -/* 00470 80879930 37390003 */ ori $t9, $t9, 0x0003 ## $t9 = DA380003 -/* 00474 80879934 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008 -/* 00478 80879938 AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0 -/* 0047C 8087993C AC590000 */ sw $t9, 0x0000($v0) ## 00000000 -/* 00480 80879940 8FA80044 */ lw $t0, 0x0044($sp) -/* 00484 80879944 3C058088 */ lui $a1, %hi(D_808799F8) ## $a1 = 80880000 -/* 00488 80879948 24A599F8 */ addiu $a1, $a1, %lo(D_808799F8) ## $a1 = 808799F8 -/* 0048C 8087994C 8D040000 */ lw $a0, 0x0000($t0) ## 00000000 -/* 00490 80879950 2406011A */ addiu $a2, $zero, 0x011A ## $a2 = 0000011A -/* 00494 80879954 0C0346A2 */ jal Matrix_NewMtx -/* 00498 80879958 AFA20028 */ sw $v0, 0x0028($sp) -/* 0049C 8087995C 8FA30028 */ lw $v1, 0x0028($sp) -/* 004A0 80879960 3C0B0601 */ lui $t3, %hi(gFireTrialPlatformDL) ## $t3 = 06010000 -/* 004A4 80879964 256BE210 */ addiu $t3, $t3, %lo(gFireTrialPlatformDL) ## $t3 = 0600E210 -/* 004A8 80879968 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 004AC 8087996C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 004B0 80879970 3C0ADE00 */ lui $t2, 0xDE00 ## $t2 = DE000000 -/* 004B4 80879974 3C068088 */ lui $a2, %hi(D_80879A10) ## $a2 = 80880000 -/* 004B8 80879978 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008 -/* 004BC 8087997C AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0 -/* 004C0 80879980 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004 -/* 004C4 80879984 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000 -/* 004C8 80879988 8FAC0044 */ lw $t4, 0x0044($sp) -/* 004CC 8087998C 24C69A10 */ addiu $a2, $a2, %lo(D_80879A10) ## $a2 = 80879A10 -/* 004D0 80879990 27A4002C */ addiu $a0, $sp, 0x002C ## $a0 = FFFFFFEC -/* 004D4 80879994 2407011D */ addiu $a3, $zero, 0x011D ## $a3 = 0000011D -/* 004D8 80879998 0C031AD5 */ jal Graph_CloseDisps -/* 004DC 8087999C 8D850000 */ lw $a1, 0x0000($t4) ## 00000000 -/* 004E0 808799A0 8FBF001C */ lw $ra, 0x001C($sp) -/* 004E4 808799A4 8FB00018 */ lw $s0, 0x0018($sp) -/* 004E8 808799A8 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000 -/* 004EC 808799AC 03E00008 */ jr $ra -/* 004F0 808799B0 00000000 */ nop -/* 004F4 808799B4 00000000 */ nop -/* 004F8 808799B8 00000000 */ nop -/* 004FC 808799BC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Init.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Init.s deleted file mode 100644 index 9acde9aede..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Init.s +++ /dev/null @@ -1,52 +0,0 @@ -glabel BgGndFiremeiro_Init -/* 00000 808794C0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 00004 808794C4 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 00008 808794C8 AFB00018 */ sw $s0, 0x0018($sp) -/* 0000C 808794CC AFA50034 */ sw $a1, 0x0034($sp) -/* 00010 808794D0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00014 808794D4 AFBF001C */ sw $ra, 0x001C($sp) -/* 00018 808794D8 44050000 */ mfc1 $a1, $f0 -/* 0001C 808794DC 44070000 */ mfc1 $a3, $f0 -/* 00020 808794E0 AFA00024 */ sw $zero, 0x0024($sp) -/* 00024 808794E4 248400B4 */ addiu $a0, $a0, 0x00B4 ## $a0 = 000000B4 -/* 00028 808794E8 0C00AC78 */ jal ActorShape_Init - -/* 0002C 808794EC 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 00030 808794F0 3C053DCC */ lui $a1, 0x3DCC ## $a1 = 3DCC0000 -/* 00034 808794F4 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3DCCCCCD -/* 00038 808794F8 0C00B58B */ jal Actor_SetScale - -/* 0003C 808794FC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00040 80879500 8E0F0024 */ lw $t7, 0x0024($s0) ## 00000024 -/* 00044 80879504 8618001C */ lh $t8, 0x001C($s0) ## 0000001C -/* 00048 80879508 8E0E0028 */ lw $t6, 0x0028($s0) ## 00000028 -/* 0004C 8087950C AE0F0164 */ sw $t7, 0x0164($s0) ## 00000164 -/* 00050 80879510 8E0F002C */ lw $t7, 0x002C($s0) ## 0000002C -/* 00054 80879514 AE0E0168 */ sw $t6, 0x0168($s0) ## 00000168 -/* 00058 80879518 17000011 */ bne $t8, $zero, .L80879560 -/* 0005C 8087951C AE0F016C */ sw $t7, 0x016C($s0) ## 0000016C -/* 00060 80879520 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00064 80879524 0C010D20 */ jal DynaPolyActor_Init - -/* 00068 80879528 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 0006C 8087952C 3C040601 */ lui $a0, %hi(gFireTrialPlatformCol) ## $a0 = 06010000 -/* 00070 80879530 2484ECD8 */ addiu $a0, $a0, %lo(gFireTrialPlatformCol) ## $a0 = 0600ECD8 -/* 00074 80879534 0C010620 */ jal CollisionHeader_GetVirtual - -/* 00078 80879538 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4 -/* 0007C 8087953C 8FA40034 */ lw $a0, 0x0034($sp) -/* 00080 80879540 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 00084 80879544 8FA70024 */ lw $a3, 0x0024($sp) -/* 00088 80879548 0C00FA9D */ jal DynaPoly_SetBgActor - ## DynaPoly_SetBgActor -/* 0008C 8087954C 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810 -/* 00090 80879550 3C198088 */ lui $t9, %hi(func_80879808) ## $t9 = 80880000 -/* 00094 80879554 27399808 */ addiu $t9, $t9, %lo(func_80879808) ## $t9 = 80879808 -/* 00098 80879558 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C -/* 0009C 8087955C AE190174 */ sw $t9, 0x0174($s0) ## 00000174 -.L80879560: -/* 000A0 80879560 8FBF001C */ lw $ra, 0x001C($sp) -/* 000A4 80879564 8FB00018 */ lw $s0, 0x0018($sp) -/* 000A8 80879568 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 000AC 8087956C 03E00008 */ jr $ra -/* 000B0 80879570 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Update.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Update.s deleted file mode 100644 index 032c2f08ec..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Update.s +++ /dev/null @@ -1,10 +0,0 @@ -glabel BgGndFiremeiro_Update -/* 00408 808798C8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0040C 808798CC AFBF0014 */ sw $ra, 0x0014($sp) -/* 00410 808798D0 8C990174 */ lw $t9, 0x0174($a0) ## 00000174 -/* 00414 808798D4 0320F809 */ jalr $ra, $t9 -/* 00418 808798D8 00000000 */ nop -/* 0041C 808798DC 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00420 808798E0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00424 808798E4 03E00008 */ jr $ra -/* 00428 808798E8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_808795AC.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_808795AC.s deleted file mode 100644 index 06e73b9a5e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_808795AC.s +++ /dev/null @@ -1,53 +0,0 @@ -glabel func_808795AC -/* 000EC 808795AC 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 000F0 808795B0 AFBF0014 */ sw $ra, 0x0014($sp) -/* 000F4 808795B4 AFA50024 */ sw $a1, 0x0024($sp) -/* 000F8 808795B8 3C014316 */ lui $at, 0x4316 ## $at = 43160000 -/* 000FC 808795BC 44813000 */ mtc1 $at, $f6 ## $f6 = 150.00 -/* 00100 808795C0 C4840168 */ lwc1 $f4, 0x0168($a0) ## 00000168 -/* 00104 808795C4 AFA40020 */ sw $a0, 0x0020($sp) -/* 00108 808795C8 46062081 */ sub.s $f2, $f4, $f6 -/* 0010C 808795CC 0C010D5B */ jal func_8004356C -/* 00110 808795D0 E7A2001C */ swc1 $f2, 0x001C($sp) -/* 00114 808795D4 8FA40020 */ lw $a0, 0x0020($sp) -/* 00118 808795D8 10400003 */ beq $v0, $zero, .L808795E8 -/* 0011C 808795DC C7A2001C */ lwc1 $f2, 0x001C($sp) -/* 00120 808795E0 240E000A */ addiu $t6, $zero, 0x000A ## $t6 = 0000000A -/* 00124 808795E4 A48E0170 */ sh $t6, 0x0170($a0) ## 00000170 -.L808795E8: -/* 00128 808795E8 C4800028 */ lwc1 $f0, 0x0028($a0) ## 00000028 -/* 0012C 808795EC 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 00130 808795F0 24052082 */ addiu $a1, $zero, 0x2082 ## $a1 = 00002082 -/* 00134 808795F4 4600103C */ c.lt.s $f2, $f0 -/* 00138 808795F8 00000000 */ nop -/* 0013C 808795FC 4502000F */ bc1fl .L8087963C -/* 00140 80879600 94820170 */ lhu $v0, 0x0170($a0) ## 00000170 -/* 00144 80879604 44814000 */ mtc1 $at, $f8 ## $f8 = 0.50 -/* 00148 80879608 00000000 */ nop -/* 0014C 8087960C 46080281 */ sub.s $f10, $f0, $f8 -/* 00150 80879610 E48A0028 */ swc1 $f10, 0x0028($a0) ## 00000028 -/* 00154 80879614 C4900028 */ lwc1 $f16, 0x0028($a0) ## 00000028 -/* 00158 80879618 4602803C */ c.lt.s $f16, $f2 -/* 0015C 8087961C 00000000 */ nop -/* 00160 80879620 45000002 */ bc1f .L8087962C -/* 00164 80879624 00000000 */ nop -/* 00168 80879628 E4820028 */ swc1 $f2, 0x0028($a0) ## 00000028 -.L8087962C: -/* 0016C 8087962C 0C00BE52 */ jal func_8002F948 -/* 00170 80879630 AFA40020 */ sw $a0, 0x0020($sp) -/* 00174 80879634 8FA40020 */ lw $a0, 0x0020($sp) -/* 00178 80879638 94820170 */ lhu $v0, 0x0170($a0) ## 00000170 -.L8087963C: -/* 0017C 8087963C 3C188088 */ lui $t8, %hi(func_80879808) ## $t8 = 80880000 -/* 00180 80879640 27189808 */ addiu $t8, $t8, %lo(func_80879808) ## $t8 = 80879808 -/* 00184 80879644 18400003 */ blez $v0, .L80879654 -/* 00188 80879648 244FFFFF */ addiu $t7, $v0, 0xFFFF ## $t7 = FFFFFFFF -/* 0018C 8087964C 10000002 */ beq $zero, $zero, .L80879658 -/* 00190 80879650 A48F0170 */ sh $t7, 0x0170($a0) ## 00000170 -.L80879654: -/* 00194 80879654 AC980174 */ sw $t8, 0x0174($a0) ## 00000174 -.L80879658: -/* 00198 80879658 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0019C 8087965C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 001A0 80879660 03E00008 */ jr $ra -/* 001A4 80879664 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_80879668.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_80879668.s deleted file mode 100644 index 20a17c1edf..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_80879668.s +++ /dev/null @@ -1,116 +0,0 @@ -glabel func_80879668 -/* 001A8 80879668 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 001AC 8087966C AFBF001C */ sw $ra, 0x001C($sp) -/* 001B0 80879670 AFB00018 */ sw $s0, 0x0018($sp) -/* 001B4 80879674 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 001B8 80879678 0C010D5B */ jal func_8004356C -/* 001BC 8087967C AFA5002C */ sw $a1, 0x002C($sp) -/* 001C0 80879680 10400054 */ beq $v0, $zero, .L808797D4 -/* 001C4 80879684 3C198088 */ lui $t9, %hi(func_80879808) ## $t9 = 80880000 -/* 001C8 80879688 96020170 */ lhu $v0, 0x0170($s0) ## 00000170 -/* 001CC 8087968C 3C0E8088 */ lui $t6, %hi(func_808795AC) ## $t6 = 80880000 -/* 001D0 80879690 240B000A */ addiu $t3, $zero, 0x000A ## $t3 = 0000000A -/* 001D4 80879694 18400046 */ blez $v0, .L808797B0 -/* 001D8 80879698 25CE95AC */ addiu $t6, $t6, %lo(func_808795AC) ## $t6 = 808795AC -/* 001DC 8087969C 244FFFFF */ addiu $t7, $v0, 0xFFFF ## $t7 = FFFFFFFF -/* 001E0 808796A0 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000001 -/* 001E4 808796A4 13000005 */ beq $t8, $zero, .L808796BC -/* 001E8 808796A8 A60F0170 */ sh $t7, 0x0170($s0) ## 00000170 -/* 001EC 808796AC 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 001F0 808796B0 44811000 */ mtc1 $at, $f2 ## $f2 = 2.00 -/* 001F4 808796B4 10000005 */ beq $zero, $zero, .L808796CC -/* 001F8 808796B8 96040170 */ lhu $a0, 0x0170($s0) ## 00000170 -.L808796BC: -/* 001FC 808796BC 3C01C000 */ lui $at, 0xC000 ## $at = C0000000 -/* 00200 808796C0 44811000 */ mtc1 $at, $f2 ## $f2 = -2.00 -/* 00204 808796C4 00000000 */ nop -/* 00208 808796C8 96040170 */ lhu $a0, 0x0170($s0) ## 00000170 -.L808796CC: -/* 0020C 808796CC 8E080164 */ lw $t0, 0x0164($s0) ## 00000164 -/* 00210 808796D0 8E190168 */ lw $t9, 0x0168($s0) ## 00000168 -/* 00214 808796D4 00800821 */ addu $at, $a0, $zero -/* 00218 808796D8 00042080 */ sll $a0, $a0, 2 -/* 0021C 808796DC AE080024 */ sw $t0, 0x0024($s0) ## 00000024 -/* 00220 808796E0 8E08016C */ lw $t0, 0x016C($s0) ## 0000016C -/* 00224 808796E4 00812023 */ subu $a0, $a0, $at -/* 00228 808796E8 00042300 */ sll $a0, $a0, 12 -/* 0022C 808796EC 00812023 */ subu $a0, $a0, $at -/* 00230 808796F0 00042400 */ sll $a0, $a0, 16 -/* 00234 808796F4 AE190028 */ sw $t9, 0x0028($s0) ## 00000028 -/* 00238 808796F8 AE08002C */ sw $t0, 0x002C($s0) ## 0000002C -/* 0023C 808796FC E7A20020 */ swc1 $f2, 0x0020($sp) -/* 00240 80879700 0C01DE1C */ jal Math_SinS - ## sins? -/* 00244 80879704 00042403 */ sra $a0, $a0, 16 -/* 00248 80879708 C7A20020 */ lwc1 $f2, 0x0020($sp) -/* 0024C 8087970C 96040170 */ lhu $a0, 0x0170($s0) ## 00000170 -/* 00250 80879710 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024 -/* 00254 80879714 46001182 */ mul.s $f6, $f2, $f0 -/* 00258 80879718 00800821 */ addu $at, $a0, $zero -/* 0025C 8087971C 00042080 */ sll $a0, $a0, 2 -/* 00260 80879720 00812023 */ subu $a0, $a0, $at -/* 00264 80879724 00042300 */ sll $a0, $a0, 12 -/* 00268 80879728 00812023 */ subu $a0, $a0, $at -/* 0026C 8087972C 00042400 */ sll $a0, $a0, 16 -/* 00270 80879730 46062200 */ add.s $f8, $f4, $f6 -/* 00274 80879734 00042403 */ sra $a0, $a0, 16 -/* 00278 80879738 0C01DE0D */ jal Math_CosS - ## coss? -/* 0027C 8087973C E6080024 */ swc1 $f8, 0x0024($s0) ## 00000024 -/* 00280 80879740 C7A20020 */ lwc1 $f2, 0x0020($sp) -/* 00284 80879744 96040170 */ lhu $a0, 0x0170($s0) ## 00000170 -/* 00288 80879748 C60A002C */ lwc1 $f10, 0x002C($s0) ## 0000002C -/* 0028C 8087974C 46001402 */ mul.s $f16, $f2, $f0 -/* 00290 80879750 00800821 */ addu $at, $a0, $zero -/* 00294 80879754 000423C0 */ sll $a0, $a0, 15 -/* 00298 80879758 00812023 */ subu $a0, $a0, $at -/* 0029C 8087975C 00042400 */ sll $a0, $a0, 16 -/* 002A0 80879760 00042403 */ sra $a0, $a0, 16 -/* 002A4 80879764 46105480 */ add.s $f18, $f10, $f16 -/* 002A8 80879768 0C01DE0D */ jal Math_CosS - ## coss? -/* 002AC 8087976C E612002C */ swc1 $f18, 0x002C($s0) ## 0000002C -/* 002B0 80879770 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028 -/* 002B4 80879774 96090170 */ lhu $t1, 0x0170($s0) ## 00000170 -/* 002B8 80879778 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 002BC 8087977C 46002180 */ add.s $f6, $f4, $f0 -/* 002C0 80879780 E6060028 */ swc1 $f6, 0x0028($s0) ## 00000028 -/* 002C4 80879784 05210004 */ bgez $t1, .L80879798 -/* 002C8 80879788 312A0003 */ andi $t2, $t1, 0x0003 ## $t2 = 00000000 -/* 002CC 8087978C 11400002 */ beq $t2, $zero, .L80879798 -/* 002D0 80879790 00000000 */ nop -/* 002D4 80879794 254AFFFC */ addiu $t2, $t2, 0xFFFC ## $t2 = FFFFFFFC -.L80879798: -/* 002D8 80879798 55400017 */ bnel $t2, $zero, .L808797F8 -/* 002DC 8087979C 8FBF001C */ lw $ra, 0x001C($sp) -/* 002E0 808797A0 0C00BE0A */ jal Audio_PlayActorSound2 - -/* 002E4 808797A4 24052838 */ addiu $a1, $zero, 0x2838 ## $a1 = 00002838 -/* 002E8 808797A8 10000013 */ beq $zero, $zero, .L808797F8 -/* 002EC 808797AC 8FBF001C */ lw $ra, 0x001C($sp) -.L808797B0: -/* 002F0 808797B0 8E0D0164 */ lw $t5, 0x0164($s0) ## 00000164 -/* 002F4 808797B4 8E0C0168 */ lw $t4, 0x0168($s0) ## 00000168 -/* 002F8 808797B8 A60B0170 */ sh $t3, 0x0170($s0) ## 00000170 -/* 002FC 808797BC AE0D0024 */ sw $t5, 0x0024($s0) ## 00000024 -/* 00300 808797C0 8E0D016C */ lw $t5, 0x016C($s0) ## 0000016C -/* 00304 808797C4 AE0E0174 */ sw $t6, 0x0174($s0) ## 00000174 -/* 00308 808797C8 AE0C0028 */ sw $t4, 0x0028($s0) ## 00000028 -/* 0030C 808797CC 10000009 */ beq $zero, $zero, .L808797F4 -/* 00310 808797D0 AE0D002C */ sw $t5, 0x002C($s0) ## 0000002C -.L808797D4: -/* 00314 808797D4 8E180164 */ lw $t8, 0x0164($s0) ## 00000164 -/* 00318 808797D8 8E0F0168 */ lw $t7, 0x0168($s0) ## 00000168 -/* 0031C 808797DC 27399808 */ addiu $t9, $t9, %lo(func_80879808) ## $t9 = FFFF9808 -/* 00320 808797E0 AE180024 */ sw $t8, 0x0024($s0) ## 00000024 -/* 00324 808797E4 8E18016C */ lw $t8, 0x016C($s0) ## 0000016C -/* 00328 808797E8 AE190174 */ sw $t9, 0x0174($s0) ## 00000174 -/* 0032C 808797EC AE0F0028 */ sw $t7, 0x0028($s0) ## 00000028 -/* 00330 808797F0 AE18002C */ sw $t8, 0x002C($s0) ## 0000002C -.L808797F4: -/* 00334 808797F4 8FBF001C */ lw $ra, 0x001C($sp) -.L808797F8: -/* 00338 808797F8 8FB00018 */ lw $s0, 0x0018($sp) -/* 0033C 808797FC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00340 80879800 03E00008 */ jr $ra -/* 00344 80879804 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_80879808.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_80879808.s deleted file mode 100644 index ddcf09102b..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_80879808.s +++ /dev/null @@ -1,54 +0,0 @@ -glabel func_80879808 -/* 00348 80879808 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0034C 8087980C AFBF0014 */ sw $ra, 0x0014($sp) -/* 00350 80879810 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44 -/* 00354 80879814 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 00358 80879818 804E014F */ lb $t6, 0x014F($v0) ## 0000014F -/* 0035C 8087981C 51C10016 */ beql $t6, $at, .L80879878 -/* 00360 80879820 C4820028 */ lwc1 $f2, 0x0028($a0) ## 00000028 -/* 00364 80879824 0C010D5B */ jal func_8004356C -/* 00368 80879828 AFA40018 */ sw $a0, 0x0018($sp) -/* 0036C 8087982C 10400011 */ beq $v0, $zero, .L80879874 -/* 00370 80879830 8FA40018 */ lw $a0, 0x0018($sp) -/* 00374 80879834 C4840028 */ lwc1 $f4, 0x0028($a0) ## 00000028 -/* 00378 80879838 C4860168 */ lwc1 $f6, 0x0168($a0) ## 00000168 -/* 0037C 8087983C 3C0F8088 */ lui $t7, %hi(func_808795AC) ## $t7 = 80880000 -/* 00380 80879840 3C198088 */ lui $t9, %hi(func_80879668) ## $t9 = 80880000 -/* 00384 80879844 4606203C */ c.lt.s $f4, $f6 -/* 00388 80879848 25EF95AC */ addiu $t7, $t7, %lo(func_808795AC) ## $t7 = 808795AC -/* 0038C 8087984C 24180014 */ addiu $t8, $zero, 0x0014 ## $t8 = 00000014 -/* 00390 80879850 27399668 */ addiu $t9, $t9, %lo(func_80879668) ## $t9 = 80879668 -/* 00394 80879854 45000004 */ bc1f .L80879868 -/* 00398 80879858 24080014 */ addiu $t0, $zero, 0x0014 ## $t0 = 00000014 -/* 0039C 8087985C AC8F0174 */ sw $t7, 0x0174($a0) ## 00000174 -/* 003A0 80879860 10000015 */ beq $zero, $zero, .L808798B8 -/* 003A4 80879864 A4980170 */ sh $t8, 0x0170($a0) ## 00000170 -.L80879868: -/* 003A8 80879868 AC990174 */ sw $t9, 0x0174($a0) ## 00000174 -/* 003AC 8087986C 10000012 */ beq $zero, $zero, .L808798B8 -/* 003B0 80879870 A4880170 */ sh $t0, 0x0170($a0) ## 00000170 -.L80879874: -/* 003B4 80879874 C4820028 */ lwc1 $f2, 0x0028($a0) ## 00000028 -.L80879878: -/* 003B8 80879878 C4880168 */ lwc1 $f8, 0x0168($a0) ## 00000168 -/* 003BC 8087987C 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 003C0 80879880 4608103C */ c.lt.s $f2, $f8 -/* 003C4 80879884 00000000 */ nop -/* 003C8 80879888 4502000C */ bc1fl .L808798BC -/* 003CC 8087988C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 003D0 80879890 44815000 */ mtc1 $at, $f10 ## $f10 = 2.00 -/* 003D4 80879894 C4800168 */ lwc1 $f0, 0x0168($a0) ## 00000168 -/* 003D8 80879898 460A1400 */ add.s $f16, $f2, $f10 -/* 003DC 8087989C E4900028 */ swc1 $f16, 0x0028($a0) ## 00000028 -/* 003E0 808798A0 C4920028 */ lwc1 $f18, 0x0028($a0) ## 00000028 -/* 003E4 808798A4 4612003C */ c.lt.s $f0, $f18 -/* 003E8 808798A8 00000000 */ nop -/* 003EC 808798AC 45020003 */ bc1fl .L808798BC -/* 003F0 808798B0 8FBF0014 */ lw $ra, 0x0014($sp) -/* 003F4 808798B4 E4800028 */ swc1 $f0, 0x0028($a0) ## 00000028 -.L808798B8: -/* 003F8 808798B8 8FBF0014 */ lw $ra, 0x0014($sp) -.L808798BC: -/* 003FC 808798BC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00400 808798C0 03E00008 */ jr $ra -/* 00404 808798C4 00000000 */ nop diff --git a/data/overlays/actors/z_bg_gnd_firemeiro.data.s b/data/overlays/actors/z_bg_gnd_firemeiro.data.s deleted file mode 100644 index 84e35660ce..0000000000 --- a/data/overlays/actors/z_bg_gnd_firemeiro.data.s +++ /dev/null @@ -1,18 +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 Bg_Gnd_Firemeiro_InitVars - .word 0x01B30600, 0x00000030, 0x01790000, 0x00000178 -.word BgGndFiremeiro_Init -.word BgGndFiremeiro_Destroy -.word BgGndFiremeiro_Update -.word BgGndFiremeiro_Draw - diff --git a/data/overlays/actors/z_bg_gnd_firemeiro.reloc.s b/data/overlays/actors/z_bg_gnd_firemeiro.reloc.s deleted file mode 100644 index 5a87cefb37..0000000000 --- a/data/overlays/actors/z_bg_gnd_firemeiro.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_80879A30 - .incbin "baserom/ovl_Bg_Gnd_Firemeiro", 0x570, 0x00000070 diff --git a/spec b/spec index 31e88230ce..97c9953fd8 100644 --- a/spec +++ b/spec @@ -708,8 +708,7 @@ endseg beginseg name "ovl_Bg_Gnd_Firemeiro" include "build/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.o" - include "build/data/overlays/actors/z_bg_gnd_firemeiro.data.o" - include "build/data/overlays/actors/z_bg_gnd_firemeiro.reloc.o" + include "build/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/ovl_Bg_Gnd_Firemeiro_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c b/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c index 38070fa919..84d2cbcb87 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c @@ -16,14 +16,10 @@ void BgGndFiremeiro_Destroy(Actor* thisx, GlobalContext* globalCtx); void BgGndFiremeiro_Update(Actor* thisx, GlobalContext* globalCtx); void BgGndFiremeiro_Draw(Actor* thisx, GlobalContext* globalCtx); -void func_808795AC(BgGndFiremeiro* this, GlobalContext* globalCtx); -void func_80879668(BgGndFiremeiro* this, GlobalContext* globalCtx); -void func_80879808(BgGndFiremeiro* this, GlobalContext* globalCtx); +void BgGndFiremeiro_Sink(BgGndFiremeiro* this, GlobalContext* globalCtx); +void BgGndFiremeiro_Shake(BgGndFiremeiro* this, GlobalContext* globalCtx); +void BgGndFiremeiro_Rise(BgGndFiremeiro* this, GlobalContext* globalCtx); -// extern Gfx gFireTrialPlatformDL[]; -// extern CollisionHeader gFireTrialPlatformCol; - -/* const ActorInit Bg_Gnd_Firemeiro_InitVars = { ACTOR_BG_GND_FIREMEIRO, ACTORCAT_PROP, @@ -35,17 +31,122 @@ const ActorInit Bg_Gnd_Firemeiro_InitVars = { (ActorFunc)BgGndFiremeiro_Update, (ActorFunc)BgGndFiremeiro_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Init.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Destroy.s") +void BgGndFiremeiro_Init(Actor* thisx, GlobalContext* globalCtx) { + s32 pad; + BgGndFiremeiro* this = THIS; + CollisionHeader* colHeader = NULL; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_808795AC.s") + ActorShape_Init(&this->dyna.actor.shape, 0.0f, NULL, 0.0f); + Actor_SetScale(&this->dyna.actor, 0.1f); + this->initPos = this->dyna.actor.world.pos; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_80879668.s") + if (this->dyna.actor.params == 0) { + DynaPolyActor_Init(&this->dyna, DPM_UNK); + CollisionHeader_GetVirtual(&gFireTrialPlatformCol, &colHeader); + this->dyna.bgId = DynaPoly_SetBgActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader); + this->actionFunc = BgGndFiremeiro_Rise; + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/func_80879808.s") +void BgGndFiremeiro_Destroy(Actor* thisx, GlobalContext* globalCtx2) { + GlobalContext* globalCtx = globalCtx2; + BgGndFiremeiro* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Update.s") + if (this->dyna.actor.params == 0) { + if (1) {} + DynaPoly_DeleteBgActor(globalCtx, &globalCtx->colCtx.dyna, this->dyna.bgId); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Firemeiro/BgGndFiremeiro_Draw.s") +void BgGndFiremeiro_Sink(BgGndFiremeiro* this, GlobalContext* globalCtx) { + f32 sunkHeight = this->initPos.y - 150.0f; + + if (func_8004356C(&this->dyna)) { + this->timer = 10; + } + + if (sunkHeight < this->dyna.actor.world.pos.y) { + this->dyna.actor.world.pos.y -= 0.5f; + + if (this->dyna.actor.world.pos.y < sunkHeight) { + this->dyna.actor.world.pos.y = sunkHeight; + } + + func_8002F948(&this->dyna.actor, NA_SE_EV_ROLL_STAND_2 - SFX_FLAG); + } + + if (this->timer > 0) { + this->timer--; + } else { + this->actionFunc = BgGndFiremeiro_Rise; + } +} + +void BgGndFiremeiro_Shake(BgGndFiremeiro* this, GlobalContext* globalCtx) { + s32 pad; + f32 randSign; + + if (func_8004356C(&this->dyna)) { // Player standing on it + if (this->timer > 0) { + this->timer--; + + randSign = ((this->timer & 1) ? 2.0f : -2.0f); + + this->dyna.actor.world.pos = this->initPos; + this->dyna.actor.world.pos.x += randSign * Math_SinS(this->timer * 0x2FFF); + this->dyna.actor.world.pos.z += randSign * Math_CosS(this->timer * 0x2FFF); + this->dyna.actor.world.pos.y += Math_CosS(this->timer * 0x7FFF); + + if (!(this->timer % 4)) { + Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_BLOCK_SHAKE); + } + } else { + this->timer = 10; + this->dyna.actor.world.pos = this->initPos; + this->actionFunc = BgGndFiremeiro_Sink; + } + } else { + this->dyna.actor.world.pos = this->initPos; + this->actionFunc = BgGndFiremeiro_Rise; + } +} + +void BgGndFiremeiro_Rise(BgGndFiremeiro* this, GlobalContext* globalCtx) { + Player* player = PLAYER; + Actor* thisx = &this->dyna.actor; + + if ((player->currentBoots != PLAYER_BOOTS_HOVER) && func_8004356C(&this->dyna)) { // Player standing on it + if (thisx->world.pos.y < this->initPos.y) { + this->actionFunc = BgGndFiremeiro_Sink; + this->timer = 20; + } else { + this->actionFunc = BgGndFiremeiro_Shake; + this->timer = 20; + } + } else { + if (thisx->world.pos.y < this->initPos.y) { + thisx->world.pos.y += 2.0f; + if (this->initPos.y < thisx->world.pos.y) { + thisx->world.pos.y = this->initPos.y; + } + } + } +} + +void BgGndFiremeiro_Update(Actor* thisx, GlobalContext* globalCtx) { + BgGndFiremeiro* this = THIS; + + this->actionFunc(this, globalCtx); +} + +void BgGndFiremeiro_Draw(Actor* thisx, GlobalContext* globalCtx) { + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_gnd_firemeiro.c", 280); + func_800943C8(globalCtx->state.gfxCtx); + + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_gnd_firemeiro.c", 282), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gFireTrialPlatformDL); + + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_gnd_firemeiro.c", 285); +} diff --git a/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.h b/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.h index eb863c37f9..6c57d22bec 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.h +++ b/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.h @@ -10,8 +10,8 @@ typedef void (*BgGndFiremeiroActionFunc)(struct BgGndFiremeiro*, GlobalContext*) typedef struct BgGndFiremeiro { /* 0x0000 */ DynaPolyActor dyna; - /* 0x0164 */ Vec3f unk_164; - /* 0x0170 */ char unk_170[0x4]; + /* 0x0164 */ Vec3f initPos; + /* 0x0170 */ u16 timer; /* 0x0174 */ BgGndFiremeiroActionFunc actionFunc; } BgGndFiremeiro; // size = 0x0178