1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-27 07:07:09 +00:00

z_bg_gnd_soulmeiro.c OK (#439)

* Starts z_bg_gnd_soulmeiro.c

* Init

* Some more progress

* BgGndSoulmeiro_Draw

* Some more progress

* Matched

* Removes unused asm

* PR suggestions

* Update comment

Co-authored-by: i82orbom <i82orbom i82orbom@github>
This commit is contained in:
i82orbom 2020-10-11 02:05:59 +02:00 committed by GitHub
parent 9bfad1ebd6
commit 6b3b4aa883
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 179 additions and 600 deletions

View file

@ -1,17 +0,0 @@
glabel BgGndSoulmeiro_Destroy
/* 00140 8087AF00 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00144 8087AF04 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00148 8087AF08 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 0014C 8087AF0C 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00150 8087AF10 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00154 8087AF14 31CF00FF */ andi $t7, $t6, 0x00FF ## $t7 = 00000000
/* 00158 8087AF18 55E00004 */ bnel $t7, $zero, .L8087AF2C
/* 0015C 8087AF1C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00160 8087AF20 0C0170EB */ jal Collider_DestroyCylinder
/* 00164 8087AF24 24C5014C */ addiu $a1, $a2, 0x014C ## $a1 = 0000014C
/* 00168 8087AF28 8FBF0014 */ lw $ra, 0x0014($sp)
.L8087AF2C:
/* 0016C 8087AF2C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00170 8087AF30 03E00008 */ jr $ra
/* 00174 8087AF34 00000000 */ nop

View file

@ -1,110 +0,0 @@
.rdata
glabel D_8087B590
.asciz "../z_bg_gnd_soulmeiro.c"
.balign 4
glabel D_8087B5A8
.asciz "../z_bg_gnd_soulmeiro.c"
.balign 4
glabel D_8087B5C0
.asciz "../z_bg_gnd_soulmeiro.c"
.balign 4
.late_rodata
glabel D_8087B5D8
.float 10922.0
glabel D_8087B5DC
.float 0.0083333338
glabel D_8087B5E0
.float 0.69999999
.text
glabel BgGndSoulmeiro_Draw
/* 0060C 8087B3CC 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00610 8087B3D0 AFBF001C */ sw $ra, 0x001C($sp)
/* 00614 8087B3D4 AFB00018 */ sw $s0, 0x0018($sp)
/* 00618 8087B3D8 8488001C */ lh $t0, 0x001C($a0) ## 0000001C
/* 0061C 8087B3DC 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00620 8087B3E0 27A40030 */ addiu $a0, $sp, 0x0030 ## $a0 = FFFFFFE8
/* 00624 8087B3E4 310800FF */ andi $t0, $t0, 0x00FF ## $t0 = 00000000
/* 00628 8087B3E8 11000009 */ beq $t0, $zero, .L8087B410
/* 0062C 8087B3EC 3C068088 */ lui $a2, %hi(D_8087B590) ## $a2 = 80880000
/* 00630 8087B3F0 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00634 8087B3F4 11010033 */ beq $t0, $at, .L8087B4C4
/* 00638 8087B3F8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0063C 8087B3FC 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00640 8087B400 11010037 */ beq $t0, $at, .L8087B4E0
/* 00644 8087B404 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00648 8087B408 1000003B */ beq $zero, $zero, .L8087B4F8
/* 0064C 8087B40C 8FBF001C */ lw $ra, 0x001C($sp)
.L8087B410:
/* 00650 8087B410 8E050000 */ lw $a1, 0x0000($s0) ## 00000000
/* 00654 8087B414 AFA80044 */ sw $t0, 0x0044($sp)
/* 00658 8087B418 24C6B590 */ addiu $a2, $a2, %lo(D_8087B590) ## $a2 = 8087B590
/* 0065C 8087B41C 2407018E */ addiu $a3, $zero, 0x018E ## $a3 = 0000018E
/* 00660 8087B420 0C031AB1 */ jal Graph_OpenDisps
/* 00664 8087B424 AFA50040 */ sw $a1, 0x0040($sp)
/* 00668 8087B428 0C024F61 */ jal func_80093D84
/* 0066C 8087B42C 8E040000 */ lw $a0, 0x0000($s0) ## 00000000
/* 00670 8087B430 8FA70040 */ lw $a3, 0x0040($sp)
/* 00674 8087B434 8FA80044 */ lw $t0, 0x0044($sp)
/* 00678 8087B438 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000
/* 0067C 8087B43C 8CE202D0 */ lw $v0, 0x02D0($a3) ## 000002D0
/* 00680 8087B440 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003
/* 00684 8087B444 3C058088 */ lui $a1, %hi(D_8087B5A8) ## $a1 = 80880000
/* 00688 8087B448 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 0068C 8087B44C ACEE02D0 */ sw $t6, 0x02D0($a3) ## 000002D0
/* 00690 8087B450 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00694 8087B454 8E040000 */ lw $a0, 0x0000($s0) ## 00000000
/* 00698 8087B458 24A5B5A8 */ addiu $a1, $a1, %lo(D_8087B5A8) ## $a1 = 8087B5A8
/* 0069C 8087B45C 24060190 */ addiu $a2, $zero, 0x0190 ## $a2 = 00000190
/* 006A0 8087B460 AFA80044 */ sw $t0, 0x0044($sp)
/* 006A4 8087B464 0C0346A2 */ jal Matrix_NewMtx
/* 006A8 8087B468 AFA2002C */ sw $v0, 0x002C($sp)
/* 006AC 8087B46C 8FA3002C */ lw $v1, 0x002C($sp)
/* 006B0 8087B470 8FA80044 */ lw $t0, 0x0044($sp)
/* 006B4 8087B474 3C09DE00 */ lui $t1, 0xDE00 ## $t1 = DE000000
/* 006B8 8087B478 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 006BC 8087B47C 8FB80040 */ lw $t8, 0x0040($sp)
/* 006C0 8087B480 3C0B8088 */ lui $t3, %hi(D_8087B578) ## $t3 = 80880000
/* 006C4 8087B484 00085080 */ sll $t2, $t0, 2
/* 006C8 8087B488 8F0202D0 */ lw $v0, 0x02D0($t8) ## 000002D0
/* 006CC 8087B48C 016A5821 */ addu $t3, $t3, $t2
/* 006D0 8087B490 3C068088 */ lui $a2, %hi(D_8087B5C0) ## $a2 = 80880000
/* 006D4 8087B494 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 006D8 8087B498 AF1902D0 */ sw $t9, 0x02D0($t8) ## 000002D0
/* 006DC 8087B49C AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 006E0 8087B4A0 8D6BB578 */ lw $t3, %lo(D_8087B578)($t3)
/* 006E4 8087B4A4 24C6B5C0 */ addiu $a2, $a2, %lo(D_8087B5C0) ## $a2 = 8087B5C0
/* 006E8 8087B4A8 27A40030 */ addiu $a0, $sp, 0x0030 ## $a0 = FFFFFFE8
/* 006EC 8087B4AC AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 006F0 8087B4B0 8E050000 */ lw $a1, 0x0000($s0) ## 00000000
/* 006F4 8087B4B4 0C031AD5 */ jal Graph_CloseDisps
/* 006F8 8087B4B8 24070193 */ addiu $a3, $zero, 0x0193 ## $a3 = 00000193
/* 006FC 8087B4BC 1000000E */ beq $zero, $zero, .L8087B4F8
/* 00700 8087B4C0 8FBF001C */ lw $ra, 0x001C($sp)
.L8087B4C4:
/* 00704 8087B4C4 00086080 */ sll $t4, $t0, 2
/* 00708 8087B4C8 3C058088 */ lui $a1, %hi(D_8087B578) ## $a1 = 80880000
/* 0070C 8087B4CC 00AC2821 */ addu $a1, $a1, $t4
/* 00710 8087B4D0 0C00D4C9 */ jal Gfx_DrawDListXlu
/* 00714 8087B4D4 8CA5B578 */ lw $a1, %lo(D_8087B578)($a1)
/* 00718 8087B4D8 10000007 */ beq $zero, $zero, .L8087B4F8
/* 0071C 8087B4DC 8FBF001C */ lw $ra, 0x001C($sp)
.L8087B4E0:
/* 00720 8087B4E0 00086880 */ sll $t5, $t0, 2
/* 00724 8087B4E4 3C058088 */ lui $a1, %hi(D_8087B578) ## $a1 = 80880000
/* 00728 8087B4E8 00AD2821 */ addu $a1, $a1, $t5
/* 0072C 8087B4EC 0C00D498 */ jal Gfx_DrawDListOpa
/* 00730 8087B4F0 8CA5B578 */ lw $a1, %lo(D_8087B578)($a1)
/* 00734 8087B4F4 8FBF001C */ lw $ra, 0x001C($sp)
.L8087B4F8:
/* 00738 8087B4F8 8FB00018 */ lw $s0, 0x0018($sp)
/* 0073C 8087B4FC 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 00740 8087B500 03E00008 */ jr $ra
/* 00744 8087B504 00000000 */ nop
/* 00748 8087B508 00000000 */ nop
/* 0074C 8087B50C 00000000 */ nop

View file

@ -1,96 +0,0 @@
glabel BgGndSoulmeiro_Init
/* 00000 8087ADC0 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00004 8087ADC4 AFB10030 */ sw $s1, 0x0030($sp)
/* 00008 8087ADC8 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 0000C 8087ADCC AFBF0034 */ sw $ra, 0x0034($sp)
/* 00010 8087ADD0 AFB0002C */ sw $s0, 0x002C($sp)
/* 00014 8087ADD4 3C058088 */ lui $a1, %hi(D_8087B55C) ## $a1 = 80880000
/* 00018 8087ADD8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0001C 8087ADDC 0C01E037 */ jal Actor_ProcessInitChain
/* 00020 8087ADE0 24A5B55C */ addiu $a1, $a1, %lo(D_8087B55C) ## $a1 = 8087B55C
/* 00024 8087ADE4 8603001C */ lh $v1, 0x001C($s0) ## 0000001C
/* 00028 8087ADE8 AE00019C */ sw $zero, 0x019C($s0) ## 0000019C
/* 0002C 8087ADEC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00030 8087ADF0 306200FF */ andi $v0, $v1, 0x00FF ## $v0 = 00000000
/* 00034 8087ADF4 10400009 */ beq $v0, $zero, .L8087AE1C
/* 00038 8087ADF8 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 0003C 8087ADFC 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00040 8087AE00 1041002E */ beq $v0, $at, .L8087AEBC
/* 00044 8087AE04 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00048 8087AE08 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 0004C 8087AE0C 5041002C */ beql $v0, $at, .L8087AEC0
/* 00050 8087AE10 00032A03 */ sra $a1, $v1, 8
/* 00054 8087AE14 10000036 */ beq $zero, $zero, .L8087AEF0
/* 00058 8087AE18 8FBF0034 */ lw $ra, 0x0034($sp)
.L8087AE1C:
/* 0005C 8087AE1C 0C0170D9 */ jal Collider_InitCylinder
/* 00060 8087AE20 AFA50038 */ sw $a1, 0x0038($sp)
/* 00064 8087AE24 3C078088 */ lui $a3, %hi(D_8087B530) ## $a3 = 80880000
/* 00068 8087AE28 8FA50038 */ lw $a1, 0x0038($sp)
/* 0006C 8087AE2C 24E7B530 */ addiu $a3, $a3, %lo(D_8087B530) ## $a3 = 8087B530
/* 00070 8087AE30 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00074 8087AE34 0C01712B */ jal Collider_SetCylinder
/* 00078 8087AE38 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 0007C 8087AE3C 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00080 8087AE40 3C0E8088 */ lui $t6, %hi(func_8087B284) ## $t6 = 80880000
/* 00084 8087AE44 25CEB284 */ addiu $t6, $t6, %lo(func_8087B284) ## $t6 = 8087B284
/* 00088 8087AE48 00052A03 */ sra $a1, $a1, 8
/* 0008C 8087AE4C AE0E019C */ sw $t6, 0x019C($s0) ## 0000019C
/* 00090 8087AE50 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00094 8087AE54 0C00B2D0 */ jal Flags_GetSwitch
/* 00098 8087AE58 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 0009C 8087AE5C 10400014 */ beq $v0, $zero, .L8087AEB0
/* 000A0 8087AE60 3C188088 */ lui $t8, %hi(BgGndSoulmeiro_Draw) ## $t8 = 80880000
/* 000A4 8087AE64 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 000A8 8087AE68 8E070024 */ lw $a3, 0x0024($s0) ## 00000024
/* 000AC 8087AE6C 240F0009 */ addiu $t7, $zero, 0x0009 ## $t7 = 00000009
/* 000B0 8087AE70 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 000B4 8087AE74 C606002C */ lwc1 $f6, 0x002C($s0) ## 0000002C
/* 000B8 8087AE78 AFAF0024 */ sw $t7, 0x0024($sp)
/* 000BC 8087AE7C AFA00020 */ sw $zero, 0x0020($sp)
/* 000C0 8087AE80 AFA0001C */ sw $zero, 0x001C($sp)
/* 000C4 8087AE84 AFA00018 */ sw $zero, 0x0018($sp)
/* 000C8 8087AE88 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24
/* 000CC 8087AE8C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 000D0 8087AE90 240600B7 */ addiu $a2, $zero, 0x00B7 ## $a2 = 000000B7
/* 000D4 8087AE94 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 000D8 8087AE98 E7A60014 */ swc1 $f6, 0x0014($sp)
/* 000DC 8087AE9C AE000134 */ sw $zero, 0x0134($s0) ## 00000134
/* 000E0 8087AEA0 0C00B55C */ jal Actor_Kill
/* 000E4 8087AEA4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000E8 8087AEA8 10000011 */ beq $zero, $zero, .L8087AEF0
/* 000EC 8087AEAC 8FBF0034 */ lw $ra, 0x0034($sp)
.L8087AEB0:
/* 000F0 8087AEB0 2718B3CC */ addiu $t8, $t8, %lo(BgGndSoulmeiro_Draw) ## $t8 = FFFFB3CC
/* 000F4 8087AEB4 1000000D */ beq $zero, $zero, .L8087AEEC
/* 000F8 8087AEB8 AE180134 */ sw $t8, 0x0134($s0) ## 00000134
.L8087AEBC:
/* 000FC 8087AEBC 00032A03 */ sra $a1, $v1, 8
.L8087AEC0:
/* 00100 8087AEC0 0C00B2D0 */ jal Flags_GetSwitch
/* 00104 8087AEC4 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00108 8087AEC8 10400005 */ beq $v0, $zero, .L8087AEE0
/* 0010C 8087AECC 3C088088 */ lui $t0, %hi(func_8087B350) ## $t0 = 80880000
/* 00110 8087AED0 3C198088 */ lui $t9, %hi(BgGndSoulmeiro_Draw) ## $t9 = 80880000
/* 00114 8087AED4 2739B3CC */ addiu $t9, $t9, %lo(BgGndSoulmeiro_Draw) ## $t9 = 8087B3CC
/* 00118 8087AED8 10000002 */ beq $zero, $zero, .L8087AEE4
/* 0011C 8087AEDC AE190134 */ sw $t9, 0x0134($s0) ## 00000134
.L8087AEE0:
/* 00120 8087AEE0 AE000134 */ sw $zero, 0x0134($s0) ## 00000134
.L8087AEE4:
/* 00124 8087AEE4 2508B350 */ addiu $t0, $t0, %lo(func_8087B350) ## $t0 = 8087B350
/* 00128 8087AEE8 AE08019C */ sw $t0, 0x019C($s0) ## 0000019C
.L8087AEEC:
/* 0012C 8087AEEC 8FBF0034 */ lw $ra, 0x0034($sp)
.L8087AEF0:
/* 00130 8087AEF0 8FB0002C */ lw $s0, 0x002C($sp)
/* 00134 8087AEF4 8FB10030 */ lw $s1, 0x0030($sp)
/* 00138 8087AEF8 03E00008 */ jr $ra
/* 0013C 8087AEFC 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000

View file

@ -1,13 +0,0 @@
glabel BgGndSoulmeiro_Update
/* 005E0 8087B3A0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 005E4 8087B3A4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 005E8 8087B3A8 8C82019C */ lw $v0, 0x019C($a0) ## 0000019C
/* 005EC 8087B3AC 50400004 */ beql $v0, $zero, .L8087B3C0
/* 005F0 8087B3B0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 005F4 8087B3B4 0040F809 */ jalr $ra, $v0
/* 005F8 8087B3B8 00000000 */ nop
/* 005FC 8087B3BC 8FBF0014 */ lw $ra, 0x0014($sp)
.L8087B3C0:
/* 00600 8087B3C0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00604 8087B3C4 03E00008 */ jr $ra
/* 00608 8087B3C8 00000000 */ nop

View file

@ -1,230 +0,0 @@
glabel func_8087AF38
/* 00178 8087AF38 27BDFF28 */ addiu $sp, $sp, 0xFF28 ## $sp = FFFFFF28
/* 0017C 8087AF3C AFBF009C */ sw $ra, 0x009C($sp)
/* 00180 8087AF40 AFBE0098 */ sw $s8, 0x0098($sp)
/* 00184 8087AF44 AFB70094 */ sw $s7, 0x0094($sp)
/* 00188 8087AF48 AFB60090 */ sw $s6, 0x0090($sp)
/* 0018C 8087AF4C AFB5008C */ sw $s5, 0x008C($sp)
/* 00190 8087AF50 AFB40088 */ sw $s4, 0x0088($sp)
/* 00194 8087AF54 AFB30084 */ sw $s3, 0x0084($sp)
/* 00198 8087AF58 AFB20080 */ sw $s2, 0x0080($sp)
/* 0019C 8087AF5C AFB1007C */ sw $s1, 0x007C($sp)
/* 001A0 8087AF60 AFB00078 */ sw $s0, 0x0078($sp)
/* 001A4 8087AF64 F7BE0070 */ sdc1 $f30, 0x0070($sp)
/* 001A8 8087AF68 F7BC0068 */ sdc1 $f28, 0x0068($sp)
/* 001AC 8087AF6C F7BA0060 */ sdc1 $f26, 0x0060($sp)
/* 001B0 8087AF70 F7B80058 */ sdc1 $f24, 0x0058($sp)
/* 001B4 8087AF74 F7B60050 */ sdc1 $f22, 0x0050($sp)
/* 001B8 8087AF78 F7B40048 */ sdc1 $f20, 0x0048($sp)
/* 001BC 8087AF7C AFA500DC */ sw $a1, 0x00DC($sp)
/* 001C0 8087AF80 94820198 */ lhu $v0, 0x0198($a0) ## 00000198
/* 001C4 8087AF84 00809025 */ or $s2, $a0, $zero ## $s2 = 00000000
/* 001C8 8087AF88 24010014 */ addiu $at, $zero, 0x0014 ## $at = 00000014
/* 001CC 8087AF8C 10400005 */ beq $v0, $zero, .L8087AFA4
/* 001D0 8087AF90 00401825 */ or $v1, $v0, $zero ## $v1 = 00000000
/* 001D4 8087AF94 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 001D8 8087AF98 31C2FFFF */ andi $v0, $t6, 0xFFFF ## $v0 = 0000FFFF
/* 001DC 8087AF9C 00401825 */ or $v1, $v0, $zero ## $v1 = 0000FFFF
/* 001E0 8087AFA0 A48E0198 */ sh $t6, 0x0198($a0) ## 00000198
.L8087AFA4:
/* 001E4 8087AFA4 14610008 */ bne $v1, $at, .L8087AFC8
/* 001E8 8087AFA8 00000000 */ nop
/* 001EC 8087AFAC 8645001C */ lh $a1, 0x001C($s2) ## 0000001C
/* 001F0 8087AFB0 8FA400DC */ lw $a0, 0x00DC($sp)
/* 001F4 8087AFB4 00052A03 */ sra $a1, $a1, 8
/* 001F8 8087AFB8 0C00B2DD */ jal Flags_SetSwitch
/* 001FC 8087AFBC 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00200 8087AFC0 AE400134 */ sw $zero, 0x0134($s2) ## 00000134
/* 00204 8087AFC4 96420198 */ lhu $v0, 0x0198($s2) ## 00000198
.L8087AFC8:
/* 00208 8087AFC8 14400018 */ bne $v0, $zero, .L8087B02C
/* 0020C 8087AFCC 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 00210 8087AFD0 8645001C */ lh $a1, 0x001C($s2) ## 0000001C
/* 00214 8087AFD4 8FA400DC */ lw $a0, 0x00DC($sp)
/* 00218 8087AFD8 00052A03 */ sra $a1, $a1, 8
/* 0021C 8087AFDC 0C00B2DD */ jal Flags_SetSwitch
/* 00220 8087AFE0 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00224 8087AFE4 0C00B55C */ jal Actor_Kill
/* 00228 8087AFE8 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000
/* 0022C 8087AFEC C6440028 */ lwc1 $f4, 0x0028($s2) ## 00000028
/* 00230 8087AFF0 8E470024 */ lw $a3, 0x0024($s2) ## 00000024
/* 00234 8087AFF4 8FA500DC */ lw $a1, 0x00DC($sp)
/* 00238 8087AFF8 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 0023C 8087AFFC C646002C */ lwc1 $f6, 0x002C($s2) ## 0000002C
/* 00240 8087B000 240F0009 */ addiu $t7, $zero, 0x0009 ## $t7 = 00000009
/* 00244 8087B004 AFAF0024 */ sw $t7, 0x0024($sp)
/* 00248 8087B008 AFA00020 */ sw $zero, 0x0020($sp)
/* 0024C 8087B00C AFA0001C */ sw $zero, 0x001C($sp)
/* 00250 8087B010 AFA00018 */ sw $zero, 0x0018($sp)
/* 00254 8087B014 240600B7 */ addiu $a2, $zero, 0x00B7 ## $a2 = 000000B7
/* 00258 8087B018 24A41C24 */ addiu $a0, $a1, 0x1C24 ## $a0 = 00001C24
/* 0025C 8087B01C 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 00260 8087B020 E7A60014 */ swc1 $f6, 0x0014($sp)
/* 00264 8087B024 10000086 */ beq $zero, $zero, .L8087B240
/* 00268 8087B028 8FBF009C */ lw $ra, 0x009C($sp)
.L8087B02C:
/* 0026C 8087B02C 0041001A */ div $zero, $v0, $at
/* 00270 8087B030 0000C010 */ mfhi $t8
/* 00274 8087B034 57000082 */ bnel $t8, $zero, .L8087B240
/* 00278 8087B038 8FBF009C */ lw $ra, 0x009C($sp)
/* 0027C 8087B03C 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00280 8087B040 00000000 */ nop
/* 00284 8087B044 3C018088 */ lui $at, %hi(D_8087B5D8) ## $at = 80880000
/* 00288 8087B048 C428B5D8 */ lwc1 $f8, %lo(D_8087B5D8)($at)
/* 0028C 8087B04C 4480F000 */ mtc1 $zero, $f30 ## $f30 = 0.00
/* 00290 8087B050 3C014080 */ lui $at, 0x4080 ## $at = 40800000
/* 00294 8087B054 46080282 */ mul.s $f10, $f0, $f8
/* 00298 8087B058 4481E000 */ mtc1 $at, $f28 ## $f28 = 4.00
/* 0029C 8087B05C 3C018088 */ lui $at, %hi(D_8087B5DC) ## $at = 80880000
/* 002A0 8087B060 E7BE00D0 */ swc1 $f30, 0x00D0($sp)
/* 002A4 8087B064 C6520028 */ lwc1 $f18, 0x0028($s2) ## 00000028
/* 002A8 8087B068 C43AB5DC */ lwc1 $f26, %lo(D_8087B5DC)($at)
/* 002AC 8087B06C 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000
/* 002B0 8087B070 4600540D */ trunc.w.s $f16, $f10
/* 002B4 8087B074 4481C000 */ mtc1 $at, $f24 ## $f24 = 120.00
/* 002B8 8087B078 0000A025 */ or $s4, $zero, $zero ## $s4 = 00000000
/* 002BC 8087B07C 26550008 */ addiu $s5, $s2, 0x0008 ## $s5 = 00000008
/* 002C0 8087B080 44138000 */ mfc1 $s3, $f16
/* 002C4 8087B084 27BE00CC */ addiu $s8, $sp, 0x00CC ## $s8 = FFFFFFF4
/* 002C8 8087B088 34178000 */ ori $s7, $zero, 0x8000 ## $s7 = 00008000
/* 002CC 8087B08C 00139C00 */ sll $s3, $s3, 16
/* 002D0 8087B090 00139C03 */ sra $s3, $s3, 16
/* 002D4 8087B094 27B600C0 */ addiu $s6, $sp, 0x00C0 ## $s6 = FFFFFFE8
/* 002D8 8087B098 E7B200C4 */ swc1 $f18, 0x00C4($sp)
.L8087B09C:
/* 002DC 8087B09C 3C014620 */ lui $at, 0x4620 ## $at = 46200000
/* 002E0 8087B0A0 44816000 */ mtc1 $at, $f12 ## $f12 = 10240.00
/* 002E4 8087B0A4 0C00CFC8 */ jal Math_Rand_CenteredFloat
/* 002E8 8087B0A8 00000000 */ nop
/* 002EC 8087B0AC 44932000 */ mtc1 $s3, $f4 ## $f4 = 0.00
/* 002F0 8087B0B0 00000000 */ nop
/* 002F4 8087B0B4 468021A0 */ cvt.s.w $f6, $f4
/* 002F8 8087B0B8 46060200 */ add.s $f8, $f0, $f6
/* 002FC 8087B0BC 4600428D */ trunc.w.s $f10, $f8
/* 00300 8087B0C0 44025000 */ mfc1 $v0, $f10
/* 00304 8087B0C4 00000000 */ nop
/* 00308 8087B0C8 00028400 */ sll $s0, $v0, 16
/* 0030C 8087B0CC 00022400 */ sll $a0, $v0, 16
/* 00310 8087B0D0 00108403 */ sra $s0, $s0, 16
/* 00314 8087B0D4 0C01DE1C */ jal Math_Sins
## sins?
/* 00318 8087B0D8 00042403 */ sra $a0, $a0, 16
/* 0031C 8087B0DC 00102400 */ sll $a0, $s0, 16
/* 00320 8087B0E0 46000506 */ mov.s $f20, $f0
/* 00324 8087B0E4 0C01DE0D */ jal Math_Coss
## coss?
/* 00328 8087B0E8 00042403 */ sra $a0, $a0, 16
/* 0032C 8087B0EC 4614C482 */ mul.s $f18, $f24, $f20
/* 00330 8087B0F0 C6500024 */ lwc1 $f16, 0x0024($s2) ## 00000024
/* 00334 8087B0F4 46000586 */ mov.s $f22, $f0
/* 00338 8087B0F8 4600C202 */ mul.s $f8, $f24, $f0
/* 0033C 8087B0FC 02A02025 */ or $a0, $s5, $zero ## $a0 = 00000008
/* 00340 8087B100 02C02825 */ or $a1, $s6, $zero ## $a1 = FFFFFFE8
/* 00344 8087B104 46128100 */ add.s $f4, $f16, $f18
/* 00348 8087B108 E7A400C0 */ swc1 $f4, 0x00C0($sp)
/* 0034C 8087B10C C646002C */ lwc1 $f6, 0x002C($s2) ## 0000002C
/* 00350 8087B110 46083280 */ add.s $f10, $f6, $f8
/* 00354 8087B114 0C01E00A */ jal Math_Vec3f_DistXZ
/* 00358 8087B118 E7AA00C8 */ swc1 $f10, 0x00C8($sp)
/* 0035C 8087B11C 461A0302 */ mul.s $f12, $f0, $f26
/* 00360 8087B120 3C018088 */ lui $at, %hi(D_8087B5E0) ## $at = 80880000
/* 00364 8087B124 C430B5E0 */ lwc1 $f16, %lo(D_8087B5E0)($at)
/* 00368 8087B128 02178821 */ addu $s1, $s0, $s7
/* 0036C 8087B12C 00118C00 */ sll $s1, $s1, 16
/* 00370 8087B130 00118C03 */ sra $s1, $s1, 16
/* 00374 8087B134 00112400 */ sll $a0, $s1, 16
/* 00378 8087B138 4610603C */ c.lt.s $f12, $f16
/* 0037C 8087B13C 00000000 */ nop
/* 00380 8087B140 45000015 */ bc1f .L8087B198
/* 00384 8087B144 00000000 */ nop
/* 00388 8087B148 0C01DE1C */ jal Math_Sins
## sins?
/* 0038C 8087B14C 00042403 */ sra $a0, $a0, 16
/* 00390 8087B150 00112400 */ sll $a0, $s1, 16
/* 00394 8087B154 46000506 */ mov.s $f20, $f0
/* 00398 8087B158 0C01DE0D */ jal Math_Coss
## coss?
/* 0039C 8087B15C 00042403 */ sra $a0, $a0, 16
/* 003A0 8087B160 4614C102 */ mul.s $f4, $f24, $f20
/* 003A4 8087B164 C6520024 */ lwc1 $f18, 0x0024($s2) ## 00000024
/* 003A8 8087B168 46000586 */ mov.s $f22, $f0
/* 003AC 8087B16C 4600C282 */ mul.s $f10, $f24, $f0
/* 003B0 8087B170 02A02025 */ or $a0, $s5, $zero ## $a0 = 00000008
/* 003B4 8087B174 02C02825 */ or $a1, $s6, $zero ## $a1 = FFFFFFE8
/* 003B8 8087B178 46049180 */ add.s $f6, $f18, $f4
/* 003BC 8087B17C E7A600C0 */ swc1 $f6, 0x00C0($sp)
/* 003C0 8087B180 C648002C */ lwc1 $f8, 0x002C($s2) ## 0000002C
/* 003C4 8087B184 460A4400 */ add.s $f16, $f8, $f10
/* 003C8 8087B188 0C01E00A */ jal Math_Vec3f_DistXZ
/* 003CC 8087B18C E7B000C8 */ swc1 $f16, 0x00C8($sp)
/* 003D0 8087B190 461A0302 */ mul.s $f12, $f0, $f26
/* 003D4 8087B194 00000000 */ nop
.L8087B198:
/* 003D8 8087B198 4614E482 */ mul.s $f18, $f28, $f20
/* 003DC 8087B19C 3C078088 */ lui $a3, %hi(D_8087B56C) ## $a3 = 80880000
/* 003E0 8087B1A0 2409003C */ addiu $t1, $zero, 0x003C ## $t1 = 0000003C
/* 003E4 8087B1A4 240A0006 */ addiu $t2, $zero, 0x0006 ## $t2 = 00000006
/* 003E8 8087B1A8 240B00FF */ addiu $t3, $zero, 0x00FF ## $t3 = 000000FF
/* 003EC 8087B1AC 240C00FF */ addiu $t4, $zero, 0x00FF ## $t4 = 000000FF
/* 003F0 8087B1B0 240D0096 */ addiu $t5, $zero, 0x0096 ## $t5 = 00000096
/* 003F4 8087B1B4 460C9102 */ mul.s $f4, $f18, $f12
/* 003F8 8087B1B8 240E00AA */ addiu $t6, $zero, 0x00AA ## $t6 = 000000AA
/* 003FC 8087B1BC 240F00FF */ addiu $t7, $zero, 0x00FF ## $t7 = 000000FF
/* 00400 8087B1C0 4616E182 */ mul.s $f6, $f28, $f22
/* 00404 8087B1C4 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 00408 8087B1C8 2419000E */ addiu $t9, $zero, 0x000E ## $t9 = 0000000E
/* 0040C 8087B1CC 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 00410 8087B1D0 E7A400CC */ swc1 $f4, 0x00CC($sp)
/* 00414 8087B1D4 E7BE00D0 */ swc1 $f30, 0x00D0($sp)
/* 00418 8087B1D8 AFA8003C */ sw $t0, 0x003C($sp)
/* 0041C 8087B1DC 460C3202 */ mul.s $f8, $f6, $f12
/* 00420 8087B1E0 AFB90038 */ sw $t9, 0x0038($sp)
/* 00424 8087B1E4 AFB80034 */ sw $t8, 0x0034($sp)
/* 00428 8087B1E8 AFAF0028 */ sw $t7, 0x0028($sp)
/* 0042C 8087B1EC AFAE0024 */ sw $t6, 0x0024($sp)
/* 00430 8087B1F0 AFAD0020 */ sw $t5, 0x0020($sp)
/* 00434 8087B1F4 AFAC001C */ sw $t4, 0x001C($sp)
/* 00438 8087B1F8 E7A800D4 */ swc1 $f8, 0x00D4($sp)
/* 0043C 8087B1FC AFAB0018 */ sw $t3, 0x0018($sp)
/* 00440 8087B200 AFAA0014 */ sw $t2, 0x0014($sp)
/* 00444 8087B204 AFA90010 */ sw $t1, 0x0010($sp)
/* 00448 8087B208 24E7B56C */ addiu $a3, $a3, %lo(D_8087B56C) ## $a3 = 8087B56C
/* 0044C 8087B20C 8FA400DC */ lw $a0, 0x00DC($sp)
/* 00450 8087B210 02A02825 */ or $a1, $s5, $zero ## $a1 = 00000008
/* 00454 8087B214 03C03025 */ or $a2, $s8, $zero ## $a2 = FFFFFFF4
/* 00458 8087B218 AFA0002C */ sw $zero, 0x002C($sp)
/* 0045C 8087B21C 0C00A9AE */ jal EffectSsDeadDb_Spawn
/* 00460 8087B220 AFA00030 */ sw $zero, 0x0030($sp)
/* 00464 8087B224 26732AAA */ addiu $s3, $s3, 0x2AAA ## $s3 = 00002AAA
/* 00468 8087B228 26940001 */ addiu $s4, $s4, 0x0001 ## $s4 = 00000001
/* 0046C 8087B22C 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006
/* 00470 8087B230 00139C00 */ sll $s3, $s3, 16
/* 00474 8087B234 1681FF99 */ bne $s4, $at, .L8087B09C
/* 00478 8087B238 00139C03 */ sra $s3, $s3, 16
/* 0047C 8087B23C 8FBF009C */ lw $ra, 0x009C($sp)
.L8087B240:
/* 00480 8087B240 D7B40048 */ ldc1 $f20, 0x0048($sp)
/* 00484 8087B244 D7B60050 */ ldc1 $f22, 0x0050($sp)
/* 00488 8087B248 D7B80058 */ ldc1 $f24, 0x0058($sp)
/* 0048C 8087B24C D7BA0060 */ ldc1 $f26, 0x0060($sp)
/* 00490 8087B250 D7BC0068 */ ldc1 $f28, 0x0068($sp)
/* 00494 8087B254 D7BE0070 */ ldc1 $f30, 0x0070($sp)
/* 00498 8087B258 8FB00078 */ lw $s0, 0x0078($sp)
/* 0049C 8087B25C 8FB1007C */ lw $s1, 0x007C($sp)
/* 004A0 8087B260 8FB20080 */ lw $s2, 0x0080($sp)
/* 004A4 8087B264 8FB30084 */ lw $s3, 0x0084($sp)
/* 004A8 8087B268 8FB40088 */ lw $s4, 0x0088($sp)
/* 004AC 8087B26C 8FB5008C */ lw $s5, 0x008C($sp)
/* 004B0 8087B270 8FB60090 */ lw $s6, 0x0090($sp)
/* 004B4 8087B274 8FB70094 */ lw $s7, 0x0094($sp)
/* 004B8 8087B278 8FBE0098 */ lw $s8, 0x0098($sp)
/* 004BC 8087B27C 03E00008 */ jr $ra
/* 004C0 8087B280 27BD00D8 */ addiu $sp, $sp, 0x00D8 ## $sp = 00000000

View file

@ -1,59 +0,0 @@
glabel func_8087B284
/* 004C4 8087B284 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 004C8 8087B288 AFB00020 */ sw $s0, 0x0020($sp)
/* 004CC 8087B28C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 004D0 8087B290 AFBF0024 */ sw $ra, 0x0024($sp)
/* 004D4 8087B294 AFA50034 */ sw $a1, 0x0034($sp)
/* 004D8 8087B298 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 004DC 8087B29C 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 004E0 8087B2A0 00052A03 */ sra $a1, $a1, 8
/* 004E4 8087B2A4 0C00B2D0 */ jal Flags_GetSwitch
/* 004E8 8087B2A8 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 004EC 8087B2AC 54400024 */ bnel $v0, $zero, .L8087B340
/* 004F0 8087B2B0 8FBF0024 */ lw $ra, 0x0024($sp)
/* 004F4 8087B2B4 920F015D */ lbu $t7, 0x015D($s0) ## 0000015D
/* 004F8 8087B2B8 3C0E8088 */ lui $t6, %hi(BgGndSoulmeiro_Draw) ## $t6 = 80880000
/* 004FC 8087B2BC 25CEB3CC */ addiu $t6, $t6, %lo(BgGndSoulmeiro_Draw) ## $t6 = 8087B3CC
/* 00500 8087B2C0 31F80002 */ andi $t8, $t7, 0x0002 ## $t8 = 00000000
/* 00504 8087B2C4 13000012 */ beq $t8, $zero, .L8087B310
/* 00508 8087B2C8 AE0E0134 */ sw $t6, 0x0134($s0) ## 00000134
/* 0050C 8087B2CC 3C078013 */ lui $a3, %hi(D_801333E0)
/* 00510 8087B2D0 3C198013 */ lui $t9, %hi(D_801333E8)
/* 00514 8087B2D4 24E733E0 */ addiu $a3, %lo(D_801333E0)
/* 00518 8087B2D8 273933E8 */ addiu $t9, %lo(D_801333E8)
/* 0051C 8087B2DC 3C058013 */ lui $a1, %hi(D_801333D4)
/* 00520 8087B2E0 24A533D4 */ addiu $a1, %lo(D_801333D4)
/* 00524 8087B2E4 AFB90014 */ sw $t9, 0x0014($sp)
/* 00528 8087B2E8 AFA70010 */ sw $a3, 0x0010($sp)
/* 0052C 8087B2EC 24044802 */ addiu $a0, $zero, 0x4802 ## $a0 = 00004802
/* 00530 8087B2F0 0C03DCE3 */ jal Audio_PlaySoundGeneral
/* 00534 8087B2F4 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004
/* 00538 8087B2F8 3C098088 */ lui $t1, %hi(func_8087AF38) ## $t1 = 80880000
/* 0053C 8087B2FC 24080028 */ addiu $t0, $zero, 0x0028 ## $t0 = 00000028
/* 00540 8087B300 2529AF38 */ addiu $t1, $t1, %lo(func_8087AF38) ## $t1 = 8087AF38
/* 00544 8087B304 A6080198 */ sh $t0, 0x0198($s0) ## 00000198
/* 00548 8087B308 1000000C */ beq $zero, $zero, .L8087B33C
/* 0054C 8087B30C AE09019C */ sw $t1, 0x019C($s0) ## 0000019C
.L8087B310:
/* 00550 8087B310 2606014C */ addiu $a2, $s0, 0x014C ## $a2 = 0000014C
/* 00554 8087B314 00C02825 */ or $a1, $a2, $zero ## $a1 = 0000014C
/* 00558 8087B318 AFA60028 */ sw $a2, 0x0028($sp)
/* 0055C 8087B31C 0C0189B7 */ jal Collider_CylinderUpdate
/* 00560 8087B320 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00564 8087B324 8FA40034 */ lw $a0, 0x0034($sp)
/* 00568 8087B328 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0056C 8087B32C 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00570 8087B330 8FA60028 */ lw $a2, 0x0028($sp)
/* 00574 8087B334 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 00578 8087B338 00812821 */ addu $a1, $a0, $at
.L8087B33C:
/* 0057C 8087B33C 8FBF0024 */ lw $ra, 0x0024($sp)
.L8087B340:
/* 00580 8087B340 8FB00020 */ lw $s0, 0x0020($sp)
/* 00584 8087B344 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00588 8087B348 03E00008 */ jr $ra
/* 0058C 8087B34C 00000000 */ nop

View file

@ -1,24 +0,0 @@
glabel func_8087B350
/* 00590 8087B350 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00594 8087B354 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00598 8087B358 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0059C 8087B35C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 005A0 8087B360 84C5001C */ lh $a1, 0x001C($a2) ## 0000001C
/* 005A4 8087B364 AFA60018 */ sw $a2, 0x0018($sp)
/* 005A8 8087B368 00052A03 */ sra $a1, $a1, 8
/* 005AC 8087B36C 0C00B2D0 */ jal Flags_GetSwitch
/* 005B0 8087B370 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 005B4 8087B374 10400005 */ beq $v0, $zero, .L8087B38C
/* 005B8 8087B378 8FA60018 */ lw $a2, 0x0018($sp)
/* 005BC 8087B37C 3C0E8088 */ lui $t6, %hi(BgGndSoulmeiro_Draw) ## $t6 = 80880000
/* 005C0 8087B380 25CEB3CC */ addiu $t6, $t6, %lo(BgGndSoulmeiro_Draw) ## $t6 = 8087B3CC
/* 005C4 8087B384 10000002 */ beq $zero, $zero, .L8087B390
/* 005C8 8087B388 ACCE0134 */ sw $t6, 0x0134($a2) ## 00000134
.L8087B38C:
/* 005CC 8087B38C ACC00134 */ sw $zero, 0x0134($a2) ## 00000134
.L8087B390:
/* 005D0 8087B390 8FBF0014 */ lw $ra, 0x0014($sp)
/* 005D4 8087B394 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 005D8 8087B398 03E00008 */ jr $ra
/* 005DC 8087B39C 00000000 */ nop

View file

@ -1,26 +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_Soulmeiro_InitVars
.word 0x01B50600, 0x00000000, 0x01790000, 0x000001A0
.word BgGndSoulmeiro_Init
.word BgGndSoulmeiro_Destroy
.word BgGndSoulmeiro_Update
.word BgGndSoulmeiro_Draw
glabel D_8087B530
.word 0x0A000900, 0x10010000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00020800, 0x00000000, 0x00010000, 0x00320014, 0x00140000, 0x00000000
glabel D_8087B55C
.word 0xC8500064, 0xB0F403E8, 0xB0F803E8, 0x30FC03E8
glabel D_8087B56C
.word 0x00000000, 0x00000000, 0x00000000
glabel D_8087B578
.word 0x06007C00, 0x06002320, 0x060035A0, 0x00000000, 0x00000000, 0x00000000

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_8087B5F0
.incbin "baserom/ovl_Bg_Gnd_Soulmeiro", 0x830, 0x000000C0

3
spec
View file

@ -738,8 +738,7 @@ endseg
beginseg
name "ovl_Bg_Gnd_Soulmeiro"
include "build/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.o"
include "build/data/overlays/actors/z_bg_gnd_soulmeiro.data.o"
include "build/data/overlays/actors/z_bg_gnd_soulmeiro.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/ovl_Bg_Gnd_Soulmeiro_reloc.o"
endseg
beginseg

View file

@ -5,6 +5,7 @@
*/
#include "z_bg_gnd_soulmeiro.h"
#include "global.h"
#define FLAGS 0x00000000
@ -19,7 +20,6 @@ void func_8087AF38(BgGndSoulmeiro* this, GlobalContext* globalCtx);
void func_8087B284(BgGndSoulmeiro* this, GlobalContext* globalCtx);
void func_8087B350(BgGndSoulmeiro* this, GlobalContext* globalCtx);
/*
const ActorInit Bg_Gnd_Soulmeiro_InitVars = {
ACTOR_BG_GND_SOULMEIRO,
ACTORTYPE_PROP,
@ -31,17 +31,184 @@ const ActorInit Bg_Gnd_Soulmeiro_InitVars = {
(ActorFunc)BgGndSoulmeiro_Update,
(ActorFunc)BgGndSoulmeiro_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Soulmeiro/BgGndSoulmeiro_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Soulmeiro/BgGndSoulmeiro_Destroy.s")
static ColliderCylinderInit sCylinderInit = {
{ COLTYPE_UNK10, 0x00, 0x09, 0x00, 0x10, COLSHAPE_CYLINDER },
{ 0x00, { 0xFFCFFFFF, 0x00, 0x00 }, { 0x00020800, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
{ 50, 20, 20, { 0, 0, 0 } },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Soulmeiro/func_8087AF38.s")
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneForward, 1000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneScale, 1000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 1000, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Soulmeiro/func_8087B284.s")
static Vec3f sZeroVec = { 0.0f, 0.0f, 0.0f };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Soulmeiro/func_8087B350.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Soulmeiro/BgGndSoulmeiro_Update.s")
Gfx* D_8087B578[] = { 0x06007C00, 0x06002320, 0x060035A0 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gnd_Soulmeiro/BgGndSoulmeiro_Draw.s")
void BgGndSoulmeiro_Init(Actor* thisx, GlobalContext* globalCtx) {
BgGndSoulmeiro* this = THIS;
s32 pad;
Actor_ProcessInitChain(&this->actor, sInitChain);
this->actionFunc = NULL;
switch (this->actor.params & 0xFF) {
case 0:
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
this->actionFunc = func_8087B284;
if (Flags_GetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F)) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_MIR_RAY, this->actor.posRot.pos.x,
this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0, 0, 0, 9);
this->actor.draw = NULL;
Actor_Kill(&this->actor);
return;
} else {
this->actor.draw = BgGndSoulmeiro_Draw;
}
break;
case 1:
case 2:
if (Flags_GetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F)) {
this->actor.draw = BgGndSoulmeiro_Draw;
} else {
this->actor.draw = NULL;
}
this->actionFunc = func_8087B350;
break;
}
}
void BgGndSoulmeiro_Destroy(Actor* thisx, GlobalContext* globalCtx) {
BgGndSoulmeiro* this = THIS;
if ((this->actor.params & 0xFF) == 0) {
Collider_DestroyCylinder(globalCtx, &this->collider);
}
}
void func_8087AF38(BgGndSoulmeiro* this, GlobalContext* globalCtx) {
Vec3f vecA;
Vec3f vecB;
s16 temp_1;
s16 temp_2;
f32 temp_3;
f32 temp_4;
f32 distXZ;
s32 i;
BgGndSoulmeiro* this2;
if (this->unk_198 != 0) {
this->unk_198--;
}
if (this->unk_198 == 20) {
Flags_SetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F);
this->actor.draw = NULL;
}
// This should be this->unk_198 == 0, this is required to match
if (!this->unk_198) {
Flags_SetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F);
Actor_Kill(&this->actor);
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_MIR_RAY, this->actor.posRot.pos.x, this->actor.posRot.pos.y,
this->actor.posRot.pos.z, 0, 0, 0, 9);
return;
}
if (1) {}
if ((this->unk_198 % 6) == 0) {
temp_2 = Math_Rand_ZeroOne() * (10922.0f); // This should be: 0x10000 / 6.0f
vecA.y = 0.0f;
vecB.y = this->actor.posRot.pos.y;
this2 = this;
for (i = 0; i < 6; i++) {
temp_1 = Math_Rand_CenteredFloat(0x2800) + temp_2;
temp_3 = Math_Sins(temp_1);
temp_4 = Math_Coss(temp_1);
vecB.x = this2->actor.posRot.pos.x + (120.0f * temp_3);
vecB.z = this2->actor.posRot.pos.z + (120.0f * temp_4);
distXZ = Math_Vec3f_DistXZ(&this2->actor.initPosRot.pos, &vecB) * (1.0f / 120.f);
if (distXZ < 0.7f) {
temp_3 = Math_Sins(temp_1 + 0x8000);
temp_4 = Math_Coss(temp_1 + 0x8000);
vecB.x = this->actor.posRot.pos.x + (120.0f * temp_3);
vecB.z = this->actor.posRot.pos.z + (120.0f * temp_4);
distXZ = Math_Vec3f_DistXZ(&this->actor.initPosRot.pos, &vecB) * (1.0f / 120.f);
}
vecA.x = 4.0f * temp_3 * distXZ;
vecA.y = 0.0f;
vecA.z = 4.0f * temp_4 * distXZ;
EffectSsDeadDb_Spawn(globalCtx, &this->actor.initPosRot.pos, &vecA, &sZeroVec, 60, 6, 255, 255, 150,
170, 255, 0, 0, 1, 14, true);
temp_2 += 0x2AAA;
}
}
}
void func_8087B284(BgGndSoulmeiro* this, GlobalContext* globalCtx) {
s32 pad;
if (!Flags_GetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F)) {
this->actor.draw = BgGndSoulmeiro_Draw;
if (this->collider.base.acFlags & 2) {
Audio_PlaySoundGeneral(NA_SE_SY_CORRECT_CHIME, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
this->unk_198 = 40;
this->actionFunc = func_8087AF38;
return;
}
Collider_CylinderUpdate(&this->actor, &this->collider);
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
}
}
void func_8087B350(BgGndSoulmeiro* this, GlobalContext* globalCtx) {
if (Flags_GetSwitch(globalCtx, (this->actor.params >> 8) & 0x3F)) {
this->actor.draw = BgGndSoulmeiro_Draw;
} else {
this->actor.draw = NULL;
}
}
void BgGndSoulmeiro_Update(Actor* thisx, GlobalContext* globalCtx) {
BgGndSoulmeiro* this = THIS;
if (this->actionFunc != NULL) {
this->actionFunc(this, globalCtx);
}
}
void BgGndSoulmeiro_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 params = thisx->params & 0xFF;
if (1) {}
switch (params) {
case 0:
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_gnd_soulmeiro.c", 398);
func_80093D84(globalCtx->state.gfxCtx);
gSPMatrix(oGfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_gnd_soulmeiro.c", 400),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(oGfxCtx->polyXlu.p++, D_8087B578[params]);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_gnd_soulmeiro.c", 403);
break;
case 1:
Gfx_DrawDListXlu(globalCtx, D_8087B578[params]);
break;
case 2:
Gfx_DrawDListOpa(globalCtx, D_8087B578[params]);
break;
}
}

View file

@ -10,7 +10,8 @@ typedef void (*BgGndSoulmeiroActionFunc)(struct BgGndSoulmeiro*, GlobalContext*)
typedef struct BgGndSoulmeiro {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x50];
/* 0x014C */ ColliderCylinder collider;
/* 0x0198 */ u16 unk_198;
/* 0x019C */ BgGndSoulmeiroActionFunc actionFunc;
} BgGndSoulmeiro; // size = 0x01A0