1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-25 09:45:02 +00:00

BgGndFiremeiro OK and documented (#850)

* OK, data imported

* Name everything

* Delete asm
This commit is contained in:
EllipticEllipsis 2021-06-14 18:50:16 +01:00 committed by GitHub
parent d3db43df00
commit d399c3deb6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 119 additions and 420 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,13 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .rodata
.balign 16
glabel D_80879A30
.incbin "baserom/ovl_Bg_Gnd_Firemeiro", 0x570, 0x00000070

3
spec
View file

@ -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

View file

@ -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);
}

View file

@ -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