1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-15 11:26:19 +00:00

mori_bigst (#392)

* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* give this a shot

* fix conflict

* one more try

* mori_bigst matched and documented

* forgot the .s files again

* Update src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>

* one .s got away

* more cleanup

* one more thing

* wait for mori tex

* cleanup

* Update z_bg_mori_bigst.c

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
This commit is contained in:
petrie911 2020-09-26 20:28:27 -05:00 committed by GitHub
parent b48fa7ff4a
commit 201584a707
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 235 additions and 781 deletions

View file

@ -1,14 +0,0 @@
glabel BgMoriBigst_Destroy
/* 001EC 808A0DAC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 001F0 808A0DB0 AFA40018 */ sw $a0, 0x0018($sp)
/* 001F4 808A0DB4 8FAE0018 */ lw $t6, 0x0018($sp)
/* 001F8 808A0DB8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 001FC 808A0DBC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00200 808A0DC0 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 00204 808A0DC4 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 00208 808A0DC8 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 0020C 808A0DCC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00210 808A0DD0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00214 808A0DD4 03E00008 */ jr $ra
/* 00218 808A0DD8 00000000 */ nop

View file

@ -1,121 +0,0 @@
.rdata
glabel D_808A1558
.asciz "mori (bigST.)(arg : %04x)(sw %d)(noE %d)(roomC %d)(playerPosY %f)\n"
.balign 4
glabel D_808A15A4
.asciz " \n"
.balign 4
glabel D_808A15D4
.asciz "%s %d\n"
.balign 4
glabel D_808A15DC
.asciz "../z_bg_mori_bigst.c"
.balign 4
.text
glabel BgMoriBigst_Init
/* 00090 808A0C50 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00094 808A0C54 AFB00024 */ sw $s0, 0x0024($sp)
/* 00098 808A0C58 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0009C 808A0C5C AFB10028 */ sw $s1, 0x0028($sp)
/* 000A0 808A0C60 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 000A4 808A0C64 AFBF002C */ sw $ra, 0x002C($sp)
/* 000A8 808A0C68 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 000AC 808A0C6C 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 000B0 808A0C70 00052A03 */ sra $a1, $a1, 8
/* 000B4 808A0C74 0C00B2D0 */ jal Flags_GetSwitch
/* 000B8 808A0C78 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 000BC 808A0C7C AFA20034 */ sw $v0, 0x0034($sp)
/* 000C0 808A0C80 82050003 */ lb $a1, 0x0003($s0) ## 00000003
/* 000C4 808A0C84 0C00B349 */ jal Flags_GetTempClear
/* 000C8 808A0C88 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 000CC 808A0C8C AFA20038 */ sw $v0, 0x0038($sp)
/* 000D0 808A0C90 82050003 */ lb $a1, 0x0003($s0) ## 00000003
/* 000D4 808A0C94 0C00B337 */ jal Flags_GetClear
/* 000D8 808A0C98 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 000DC 808A0C9C 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 000E0 808A0CA0 AFA20010 */ sw $v0, 0x0010($sp)
/* 000E4 808A0CA4 8E2E1C44 */ lw $t6, 0x1C44($s1) ## 00001C44
/* 000E8 808A0CA8 3C04808A */ lui $a0, %hi(D_808A1558) ## $a0 = 808A0000
/* 000EC 808A0CAC 24841558 */ addiu $a0, $a0, %lo(D_808A1558) ## $a0 = 808A1558
/* 000F0 808A0CB0 C5C40028 */ lwc1 $f4, 0x0028($t6) ## 00000028
/* 000F4 808A0CB4 8FA60034 */ lw $a2, 0x0034($sp)
/* 000F8 808A0CB8 8FA70038 */ lw $a3, 0x0038($sp)
/* 000FC 808A0CBC 460021A1 */ cvt.d.s $f6, $f4
/* 00100 808A0CC0 0C00084C */ jal osSyncPrintf
/* 00104 808A0CC4 F7A60018 */ sdc1 $f6, 0x0018($sp)
/* 00108 808A0CC8 3C060600 */ lui $a2, 0x0600 ## $a2 = 06000000
/* 0010C 808A0CCC 24C6221C */ addiu $a2, $a2, 0x221C ## $a2 = 0600221C
/* 00110 808A0CD0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00114 808A0CD4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00118 808A0CD8 0C2282F2 */ jal func_808A0BC8
/* 0011C 808A0CDC 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00120 808A0CE0 3C05808A */ lui $a1, %hi(D_808A14E0) ## $a1 = 808A0000
/* 00124 808A0CE4 24A514E0 */ addiu $a1, $a1, %lo(D_808A14E0) ## $a1 = 808A14E0
/* 00128 808A0CE8 0C01E037 */ jal Actor_ProcessInitChain
/* 0012C 808A0CEC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00130 808A0CF0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00134 808A0CF4 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
/* 00138 808A0CF8 02212021 */ addu $a0, $s1, $at
/* 0013C 808A0CFC 0C02604B */ jal Object_GetIndex
## ObjectIndex
/* 00140 808A0D00 24050073 */ addiu $a1, $zero, 0x0073 ## $a1 = 00000073
/* 00144 808A0D04 A202016A */ sb $v0, 0x016A($s0) ## 0000016A
/* 00148 808A0D08 820F016A */ lb $t7, 0x016A($s0) ## 0000016A
/* 0014C 808A0D0C 3C04808A */ lui $a0, %hi(D_808A15A4) ## $a0 = 808A0000
/* 00150 808A0D10 05E3000E */ bgezl $t7, .L808A0D4C
/* 00154 808A0D14 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00158 808A0D18 0C00084C */ jal osSyncPrintf
/* 0015C 808A0D1C 248415A4 */ addiu $a0, $a0, %lo(D_808A15A4) ## $a0 = 808A15A4
/* 00160 808A0D20 3C04808A */ lui $a0, %hi(D_808A15D4) ## $a0 = 808A0000
/* 00164 808A0D24 3C05808A */ lui $a1, %hi(D_808A15DC) ## $a1 = 808A0000
/* 00168 808A0D28 24A515DC */ addiu $a1, $a1, %lo(D_808A15DC) ## $a1 = 808A15DC
/* 0016C 808A0D2C 248415D4 */ addiu $a0, $a0, %lo(D_808A15D4) ## $a0 = 808A15D4
/* 00170 808A0D30 0C00084C */ jal osSyncPrintf
/* 00174 808A0D34 240600EA */ addiu $a2, $zero, 0x00EA ## $a2 = 000000EA
/* 00178 808A0D38 0C00B55C */ jal Actor_Kill
/* 0017C 808A0D3C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00180 808A0D40 10000016 */ beq $zero, $zero, .L808A0D9C
/* 00184 808A0D44 8FBF002C */ lw $ra, 0x002C($sp)
/* 00188 808A0D48 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
.L808A0D4C:
/* 0018C 808A0D4C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00190 808A0D50 00052A03 */ sra $a1, $a1, 8
/* 00194 808A0D54 0C00B2D0 */ jal Flags_GetSwitch
/* 00198 808A0D58 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 0019C 808A0D5C 10400004 */ beq $v0, $zero, .L808A0D70
/* 001A0 808A0D60 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001A4 808A0D64 C608000C */ lwc1 $f8, 0x000C($s0) ## 0000000C
/* 001A8 808A0D68 10000006 */ beq $zero, $zero, .L808A0D84
/* 001AC 808A0D6C E6080028 */ swc1 $f8, 0x0028($s0) ## 00000028
.L808A0D70:
/* 001B0 808A0D70 3C014387 */ lui $at, 0x4387 ## $at = 43870000
/* 001B4 808A0D74 44818000 */ mtc1 $at, $f16 ## $f16 = 270.00
/* 001B8 808A0D78 C60A000C */ lwc1 $f10, 0x000C($s0) ## 0000000C
/* 001BC 808A0D7C 46105480 */ add.s $f18, $f10, $f16
/* 001C0 808A0D80 E6120028 */ swc1 $f18, 0x0028($s0) ## 00000028
.L808A0D84:
/* 001C4 808A0D84 0C00B56E */ jal Actor_SetHeight
/* 001C8 808A0D88 3C054248 */ lui $a1, 0x4248 ## $a1 = 42480000
/* 001CC 808A0D8C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001D0 808A0D90 0C228377 */ jal func_808A0DDC
/* 001D4 808A0D94 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 001D8 808A0D98 8FBF002C */ lw $ra, 0x002C($sp)
.L808A0D9C:
/* 001DC 808A0D9C 8FB00024 */ lw $s0, 0x0024($sp)
/* 001E0 808A0DA0 8FB10028 */ lw $s1, 0x0028($sp)
/* 001E4 808A0DA4 03E00008 */ jr $ra
/* 001E8 808A0DA8 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000

View file

@ -1,33 +0,0 @@
glabel BgMoriBigst_Update
/* 00784 808A1344 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00788 808A1348 AFBF001C */ sw $ra, 0x001C($sp)
/* 0078C 808A134C AFB00018 */ sw $s0, 0x0018($sp)
/* 00790 808A1350 AFA50024 */ sw $a1, 0x0024($sp)
/* 00794 808A1354 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00798 808A1358 0C00B56E */ jal Actor_SetHeight
/* 0079C 808A135C 3C054248 */ lui $a1, 0x4248 ## $a1 = 42480000
/* 007A0 808A1360 86020168 */ lh $v0, 0x0168($s0) ## 00000168
/* 007A4 808A1364 18400002 */ blez $v0, .L808A1370
/* 007A8 808A1368 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 007AC 808A136C A60E0168 */ sh $t6, 0x0168($s0) ## 00000168
.L808A1370:
/* 007B0 808A1370 0C010D64 */ jal func_80043590
/* 007B4 808A1374 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007B8 808A1378 10400003 */ beq $v0, $zero, .L808A1388
/* 007BC 808A137C 8FA40024 */ lw $a0, 0x0024($sp)
/* 007C0 808A1380 0C01D33A */ jal func_80074CE8
/* 007C4 808A1384 24050006 */ addiu $a1, $zero, 0x0006 ## $a1 = 00000006
.L808A1388:
/* 007C8 808A1388 8E020164 */ lw $v0, 0x0164($s0) ## 00000164
/* 007CC 808A138C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007D0 808A1390 50400004 */ beql $v0, $zero, .L808A13A4
/* 007D4 808A1394 8FBF001C */ lw $ra, 0x001C($sp)
/* 007D8 808A1398 0040F809 */ jalr $ra, $v0
/* 007DC 808A139C 8FA50024 */ lw $a1, 0x0024($sp)
/* 007E0 808A13A0 8FBF001C */ lw $ra, 0x001C($sp)
.L808A13A4:
/* 007E4 808A13A4 8FB00018 */ lw $s0, 0x0018($sp)
/* 007E8 808A13A8 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 007EC 808A13AC 03E00008 */ jr $ra
/* 007F0 808A13B0 00000000 */ nop

View file

@ -1,3 +0,0 @@
glabel func_808A0BC0
/* 00000 808A0BC0 03E00008 */ jr $ra
/* 00004 808A0BC4 AC850164 */ sw $a1, 0x0164($a0) ## 00000164

View file

@ -1,50 +0,0 @@
.rdata
glabel D_808A1500
.asciz "Warning : move BG (%s %d)(name %d)(arg_data 0x%04x)\n"
.balign 4
glabel D_808A1540
.asciz "../z_bg_mori_bigst.c"
.balign 4
.text
glabel func_808A0BC8
/* 00008 808A0BC8 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 0000C 808A0BCC AFBF0024 */ sw $ra, 0x0024($sp)
/* 00010 808A0BD0 AFB00020 */ sw $s0, 0x0020($sp)
/* 00014 808A0BD4 AFA5003C */ sw $a1, 0x003C($sp)
/* 00018 808A0BD8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0001C 808A0BDC AFA60040 */ sw $a2, 0x0040($sp)
/* 00020 808A0BE0 AFA00030 */ sw $zero, 0x0030($sp)
/* 00024 808A0BE4 0C010D20 */ jal DynaPolyInfo_SetActorMove
/* 00028 808A0BE8 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000
/* 0002C 808A0BEC 8FA40040 */ lw $a0, 0x0040($sp)
/* 00030 808A0BF0 0C010620 */ jal DynaPolyInfo_Alloc
/* 00034 808A0BF4 27A50030 */ addiu $a1, $sp, 0x0030 ## $a1 = FFFFFFF8
/* 00038 808A0BF8 8FA4003C */ lw $a0, 0x003C($sp)
/* 0003C 808A0BFC 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00040 808A0C00 8FA70030 */ lw $a3, 0x0030($sp)
/* 00044 808A0C04 0C00FA9D */ jal DynaPolyInfo_RegisterActor
## DynaPolyInfo_setActor
/* 00048 808A0C08 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 0004C 808A0C0C 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032
/* 00050 808A0C10 1441000A */ bne $v0, $at, .L808A0C3C
/* 00054 808A0C14 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 00058 808A0C18 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 0005C 808A0C1C 3C04808A */ lui $a0, %hi(D_808A1500) ## $a0 = 808A0000
/* 00060 808A0C20 3C05808A */ lui $a1, %hi(D_808A1540) ## $a1 = 808A0000
/* 00064 808A0C24 86070000 */ lh $a3, 0x0000($s0) ## 00000000
/* 00068 808A0C28 24A51540 */ addiu $a1, $a1, %lo(D_808A1540) ## $a1 = 808A1540
/* 0006C 808A0C2C 24841500 */ addiu $a0, $a0, %lo(D_808A1500) ## $a0 = 808A1500
/* 00070 808A0C30 240600BE */ addiu $a2, $zero, 0x00BE ## $a2 = 000000BE
/* 00074 808A0C34 0C00084C */ jal osSyncPrintf
/* 00078 808A0C38 AFAE0010 */ sw $t6, 0x0010($sp)
.L808A0C3C:
/* 0007C 808A0C3C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00080 808A0C40 8FB00020 */ lw $s0, 0x0020($sp)
/* 00084 808A0C44 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 00088 808A0C48 03E00008 */ jr $ra
/* 0008C 808A0C4C 00000000 */ nop

View file

@ -1,11 +0,0 @@
glabel func_808A0DDC
/* 0021C 808A0DDC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00220 808A0DE0 AFA5001C */ sw $a1, 0x001C($sp)
/* 00224 808A0DE4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00228 808A0DE8 3C05808A */ lui $a1, %hi(func_808A0E04) ## $a1 = 808A0000
/* 0022C 808A0DEC 0C2282F0 */ jal func_808A0BC0
/* 00230 808A0DF0 24A50E04 */ addiu $a1, $a1, %lo(func_808A0E04) ## $a1 = 808A0E04
/* 00234 808A0DF4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00238 808A0DF8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0023C 808A0DFC 03E00008 */ jr $ra
/* 00240 808A0E00 00000000 */ nop

View file

@ -1,59 +0,0 @@
glabel func_808A0E04
/* 00244 808A0E04 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00248 808A0E08 AFB00014 */ sw $s0, 0x0014($sp)
/* 0024C 808A0E0C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00250 808A0E10 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00254 808A0E14 AFB10018 */ sw $s1, 0x0018($sp)
/* 00258 808A0E18 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4
/* 0025C 808A0E1C 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00260 808A0E20 AFBF001C */ sw $ra, 0x001C($sp)
/* 00264 808A0E24 00A12021 */ addu $a0, $a1, $at
/* 00268 808A0E28 0C026062 */ jal Object_IsLoaded
/* 0026C 808A0E2C 8205016A */ lb $a1, 0x016A($s0) ## 0000016A
/* 00270 808A0E30 10400022 */ beq $v0, $zero, .L808A0EBC
/* 00274 808A0E34 3C0E808A */ lui $t6, %hi(func_808A13B4) ## $t6 = 808A0000
/* 00278 808A0E38 25CE13B4 */ addiu $t6, $t6, %lo(func_808A13B4) ## $t6 = 808A13B4
/* 0027C 808A0E3C AE0E0134 */ sw $t6, 0x0134($s0) ## 00000134
/* 00280 808A0E40 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00284 808A0E44 0C00B337 */ jal Flags_GetClear
/* 00288 808A0E48 82050003 */ lb $a1, 0x0003($s0) ## 00000003
/* 0028C 808A0E4C 10400019 */ beq $v0, $zero, .L808A0EB4
/* 00290 808A0E50 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00294 808A0E54 8E2F1C44 */ lw $t7, 0x1C44($s1) ## 00001C44
/* 00298 808A0E58 3C01442F */ lui $at, 0x442F ## $at = 442F0000
/* 0029C 808A0E5C 44812000 */ mtc1 $at, $f4 ## $f4 = 700.00
/* 002A0 808A0E60 C5E60028 */ lwc1 $f6, 0x0028($t7) ## 00000028
/* 002A4 808A0E64 4606203C */ c.lt.s $f4, $f6
/* 002A8 808A0E68 00000000 */ nop
/* 002AC 808A0E6C 45000011 */ bc1f .L808A0EB4
/* 002B0 808A0E70 00000000 */ nop
/* 002B4 808A0E74 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 002B8 808A0E78 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 002BC 808A0E7C 00052A03 */ sra $a1, $a1, 8
/* 002C0 808A0E80 0C00B2D0 */ jal Flags_GetSwitch
/* 002C4 808A0E84 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 002C8 808A0E88 10400006 */ beq $v0, $zero, .L808A0EA4
/* 002CC 808A0E8C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 002D0 808A0E90 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 002D4 808A0E94 0C2284C8 */ jal func_808A1320
/* 002D8 808A0E98 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 002DC 808A0E9C 10000008 */ beq $zero, $zero, .L808A0EC0
/* 002E0 808A0EA0 8FBF001C */ lw $ra, 0x001C($sp)
.L808A0EA4:
/* 002E4 808A0EA4 0C2283BD */ jal func_808A0EF4
/* 002E8 808A0EA8 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 002EC 808A0EAC 10000004 */ beq $zero, $zero, .L808A0EC0
/* 002F0 808A0EB0 8FBF001C */ lw $ra, 0x001C($sp)
.L808A0EB4:
/* 002F4 808A0EB4 0C2283B4 */ jal func_808A0ED0
/* 002F8 808A0EB8 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
.L808A0EBC:
/* 002FC 808A0EBC 8FBF001C */ lw $ra, 0x001C($sp)
.L808A0EC0:
/* 00300 808A0EC0 8FB00014 */ lw $s0, 0x0014($sp)
/* 00304 808A0EC4 8FB10018 */ lw $s1, 0x0018($sp)
/* 00308 808A0EC8 03E00008 */ jr $ra
/* 0030C 808A0ECC 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000

View file

@ -1,10 +0,0 @@
glabel func_808A0ED0
/* 00310 808A0ED0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00314 808A0ED4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00318 808A0ED8 AFA5001C */ sw $a1, 0x001C($sp)
/* 0031C 808A0EDC 0C2282F0 */ jal func_808A0BC0
/* 00320 808A0EE0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00324 808A0EE4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00328 808A0EE8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0032C 808A0EEC 03E00008 */ jr $ra
/* 00330 808A0EF0 00000000 */ nop

View file

@ -1,66 +0,0 @@
.rdata
glabel D_808A15F4
.asciz "Warning : \n"
.balign 4
.late_rodata
glabel D_808A16B0
.float 827.0
glabel D_808A16B4
.float -3320.0
.text
glabel func_808A0EF4
/* 00334 808A0EF4 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 00338 808A0EF8 AFA50044 */ sw $a1, 0x0044($sp)
/* 0033C 808A0EFC AFBF003C */ sw $ra, 0x003C($sp)
/* 00340 808A0F00 AFB00038 */ sw $s0, 0x0038($sp)
/* 00344 808A0F04 3C05808A */ lui $a1, %hi(func_808A0FB0) ## $a1 = 808A0000
/* 00348 808A0F08 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0034C 808A0F0C 0C2282F0 */ jal func_808A0BC0
/* 00350 808A0F10 24A50FB0 */ addiu $a1, $a1, %lo(func_808A0FB0) ## $a1 = 808A0FB0
/* 00354 808A0F14 8FA40044 */ lw $a0, 0x0044($sp)
/* 00358 808A0F18 0C00B342 */ jal Flags_UnsetClear
/* 0035C 808A0F1C 82050003 */ lb $a1, 0x0003($s0) ## 00000003
/* 00360 808A0F20 3C014351 */ lui $at, 0x4351 ## $at = 43510000
/* 00364 808A0F24 44812000 */ mtc1 $at, $f4 ## $f4 = 209.00
/* 00368 808A0F28 3C01808A */ lui $at, %hi(D_808A16B0) ## $at = 808A0000
/* 0036C 808A0F2C C42616B0 */ lwc1 $f6, %lo(D_808A16B0)($at)
/* 00370 808A0F30 3C01808A */ lui $at, %hi(D_808A16B4) ## $at = 808A0000
/* 00374 808A0F34 8FA60044 */ lw $a2, 0x0044($sp)
/* 00378 808A0F38 C42816B4 */ lwc1 $f8, %lo(D_808A16B4)($at)
/* 0037C 808A0F3C 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 00380 808A0F40 AFAE0028 */ sw $t6, 0x0028($sp)
/* 00384 808A0F44 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00388 808A0F48 24070002 */ addiu $a3, $zero, 0x0002 ## $a3 = 00000002
/* 0038C 808A0F4C AFA0001C */ sw $zero, 0x001C($sp)
/* 00390 808A0F50 AFA00020 */ sw $zero, 0x0020($sp)
/* 00394 808A0F54 AFA00024 */ sw $zero, 0x0024($sp)
/* 00398 808A0F58 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 0039C 808A0F5C E7A60014 */ swc1 $f6, 0x0014($sp)
/* 003A0 808A0F60 24C41C24 */ addiu $a0, $a2, 0x1C24 ## $a0 = 00001C24
/* 003A4 808A0F64 0C00C916 */ jal Actor_SpawnAsChild
/* 003A8 808A0F68 E7A80018 */ swc1 $f8, 0x0018($sp)
/* 003AC 808A0F6C 10400006 */ beq $v0, $zero, .L808A0F88
/* 003B0 808A0F70 3C04808A */ lui $a0, %hi(D_808A15F4) ## $a0 = 808A0000
/* 003B4 808A0F74 860F0018 */ lh $t7, 0x0018($s0) ## 00000018
/* 003B8 808A0F78 AE00011C */ sw $zero, 0x011C($s0) ## 0000011C
/* 003BC 808A0F7C 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
/* 003C0 808A0F80 10000003 */ beq $zero, $zero, .L808A0F90
/* 003C4 808A0F84 A6180018 */ sh $t8, 0x0018($s0) ## 00000018
.L808A0F88:
/* 003C8 808A0F88 0C00084C */ jal osSyncPrintf
/* 003CC 808A0F8C 248415F4 */ addiu $a0, $a0, %lo(D_808A15F4) ## $a0 = 808A15F4
.L808A0F90:
/* 003D0 808A0F90 8FA40044 */ lw $a0, 0x0044($sp)
/* 003D4 808A0F94 0C00B33C */ jal Flags_SetClear
/* 003D8 808A0F98 82050003 */ lb $a1, 0x0003($s0) ## 00000003
/* 003DC 808A0F9C 8FBF003C */ lw $ra, 0x003C($sp)
/* 003E0 808A0FA0 8FB00038 */ lw $s0, 0x0038($sp)
/* 003E4 808A0FA4 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 003E8 808A0FA8 03E00008 */ jr $ra
/* 003EC 808A0FAC 00000000 */ nop

View file

@ -1,31 +0,0 @@
glabel func_808A0FB0
/* 003F0 808A0FB0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 003F4 808A0FB4 AFBF001C */ sw $ra, 0x001C($sp)
/* 003F8 808A0FB8 848E0018 */ lh $t6, 0x0018($a0) ## 00000018
/* 003FC 808A0FBC 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
/* 00400 808A0FC0 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00404 808A0FC4 55C00014 */ bnel $t6, $zero, .L808A1018
/* 00408 808A0FC8 8FBF001C */ lw $ra, 0x001C($sp)
/* 0040C 808A0FCC C486000C */ lwc1 $f6, 0x000C($a0) ## 0000000C
/* 00410 808A0FD0 44814000 */ mtc1 $at, $f8 ## $f8 = 5.00
/* 00414 808A0FD4 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44
/* 00418 808A0FD8 46083281 */ sub.s $f10, $f6, $f8
/* 0041C 808A0FDC C5E40028 */ lwc1 $f4, 0x0028($t7) ## 00000028
/* 00420 808A0FE0 4604503E */ c.le.s $f10, $f4
/* 00424 808A0FE4 00000000 */ nop
/* 00428 808A0FE8 4502000B */ bc1fl .L808A1018
/* 0042C 808A0FEC 8FBF001C */ lw $ra, 0x001C($sp)
/* 00430 808A0FF0 AFA50024 */ sw $a1, 0x0024($sp)
/* 00434 808A0FF4 0C228409 */ jal func_808A1024
/* 00438 808A0FF8 AFA70020 */ sw $a3, 0x0020($sp)
/* 0043C 808A0FFC 8FA70020 */ lw $a3, 0x0020($sp)
/* 00440 808A1000 8FA40024 */ lw $a0, 0x0024($sp)
/* 00444 808A1004 24050C94 */ addiu $a1, $zero, 0x0C94 ## $a1 = 00000C94
/* 00448 808A1008 24060048 */ addiu $a2, $zero, 0x0048 ## $a2 = 00000048
/* 0044C 808A100C 0C02003E */ jal func_800800F8
/* 00450 808A1010 AFA00010 */ sw $zero, 0x0010($sp)
/* 00454 808A1014 8FBF001C */ lw $ra, 0x001C($sp)
.L808A1018:
/* 00458 808A1018 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 0045C 808A101C 03E00008 */ jr $ra
/* 00460 808A1020 00000000 */ nop

View file

@ -1,11 +0,0 @@
glabel func_808A1024
/* 00464 808A1024 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00468 808A1028 AFA5001C */ sw $a1, 0x001C($sp)
/* 0046C 808A102C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00470 808A1030 3C05808A */ lui $a1, %hi(func_808A104C) ## $a1 = 808A0000
/* 00474 808A1034 0C2282F0 */ jal func_808A0BC0
/* 00478 808A1038 24A5104C */ addiu $a1, $a1, %lo(func_808A104C) ## $a1 = 808A104C
/* 0047C 808A103C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00480 808A1040 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00484 808A1044 03E00008 */ jr $ra
/* 00488 808A1048 00000000 */ nop

View file

@ -1,38 +0,0 @@
glabel func_808A104C
/* 0048C 808A104C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00490 808A1050 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00494 808A1054 AFB00020 */ sw $s0, 0x0020($sp)
/* 00498 808A1058 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0049C 808A105C 0C00B638 */ jal Actor_MoveForward
/* 004A0 808A1060 AFA5002C */ sw $a1, 0x002C($sp)
/* 004A4 808A1064 C600000C */ lwc1 $f0, 0x000C($s0) ## 0000000C
/* 004A8 808A1068 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 004AC 808A106C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004B0 808A1070 4600203E */ c.le.s $f4, $f0
/* 004B4 808A1074 00000000 */ nop
/* 004B8 808A1078 45020012 */ bc1fl .L808A10C4
/* 004BC 808A107C 8FBF0024 */ lw $ra, 0x0024($sp)
/* 004C0 808A1080 E6000028 */ swc1 $f0, 0x0028($s0) ## 00000028
/* 004C4 808A1084 0C228435 */ jal func_808A10D4
/* 004C8 808A1088 8FA5002C */ lw $a1, 0x002C($sp)
/* 004CC 808A108C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004D0 808A1090 0C00BE0A */ jal Audio_PlayActorSound2
/* 004D4 808A1094 2405281D */ addiu $a1, $zero, 0x281D ## $a1 = 0000281D
/* 004D8 808A1098 8FA4002C */ lw $a0, 0x002C($sp)
/* 004DC 808A109C 240503FC */ addiu $a1, $zero, 0x03FC ## $a1 = 000003FC
/* 004E0 808A10A0 24060008 */ addiu $a2, $zero, 0x0008 ## $a2 = 00000008
/* 004E4 808A10A4 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000
/* 004E8 808A10A8 0C02003E */ jal func_800800F8
/* 004EC 808A10AC AFA00010 */ sw $zero, 0x0010($sp)
/* 004F0 808A10B0 8FA4002C */ lw $a0, 0x002C($sp)
/* 004F4 808A10B4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 004F8 808A10B8 0C00B7CE */ jal func_8002DF38
/* 004FC 808A10BC 2406003C */ addiu $a2, $zero, 0x003C ## $a2 = 0000003C
/* 00500 808A10C0 8FBF0024 */ lw $ra, 0x0024($sp)
.L808A10C4:
/* 00504 808A10C4 8FB00020 */ lw $s0, 0x0020($sp)
/* 00508 808A10C8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 0050C 808A10CC 03E00008 */ jr $ra
/* 00510 808A10D0 00000000 */ nop

View file

@ -1,37 +0,0 @@
glabel func_808A10D4
/* 00514 808A10D4 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00518 808A10D8 AFA50034 */ sw $a1, 0x0034($sp)
/* 0051C 808A10DC AFBF001C */ sw $ra, 0x001C($sp)
/* 00520 808A10E0 3C05808A */ lui $a1, %hi(func_808A1164) ## $a1 = 808A0000
/* 00524 808A10E4 AFA40030 */ sw $a0, 0x0030($sp)
/* 00528 808A10E8 0C2282F0 */ jal func_808A0BC0
/* 0052C 808A10EC 24A51164 */ addiu $a1, $a1, %lo(func_808A1164) ## $a1 = 808A1164
/* 00530 808A10F0 8FAF0030 */ lw $t7, 0x0030($sp)
/* 00534 808A10F4 8FA20034 */ lw $v0, 0x0034($sp)
/* 00538 808A10F8 240E0012 */ addiu $t6, $zero, 0x0012 ## $t6 = 00000012
/* 0053C 808A10FC A5EE0168 */ sh $t6, 0x0168($t7) ## 00000168
/* 00540 808A1100 845807A0 */ lh $t8, 0x07A0($v0) ## 000007A0
/* 00544 808A1104 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 00548 808A1108 0018C880 */ sll $t9, $t8, 2
/* 0054C 808A110C 00594021 */ addu $t0, $v0, $t9
/* 00550 808A1110 0C024BE2 */ jal Quake_Add
/* 00554 808A1114 8D040790 */ lw $a0, 0x0790($t0) ## 00000790
/* 00558 808A1118 00022400 */ sll $a0, $v0, 16
/* 0055C 808A111C AFA20028 */ sw $v0, 0x0028($sp)
/* 00560 808A1120 00042403 */ sra $a0, $a0, 16
/* 00564 808A1124 0C024B6B */ jal Quake_SetSpeed
/* 00568 808A1128 240561A8 */ addiu $a1, $zero, 0x61A8 ## $a1 = 000061A8
/* 0056C 808A112C 87A4002A */ lh $a0, 0x002A($sp)
/* 00570 808A1130 24050005 */ addiu $a1, $zero, 0x0005 ## $a1 = 00000005
/* 00574 808A1134 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00578 808A1138 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 0057C 808A113C AFA00010 */ sw $zero, 0x0010($sp)
/* 00580 808A1140 0C024B9C */ jal Quake_SetQuakeValues
/* 00584 808A1144 AFA40024 */ sw $a0, 0x0024($sp)
/* 00588 808A1148 8FA40024 */ lw $a0, 0x0024($sp)
/* 0058C 808A114C 0C024B7C */ jal Quake_SetCountdown
/* 00590 808A1150 24050010 */ addiu $a1, $zero, 0x0010 ## $a1 = 00000010
/* 00594 808A1154 8FBF001C */ lw $ra, 0x001C($sp)
/* 00598 808A1158 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 0059C 808A115C 03E00008 */ jr $ra
/* 005A0 808A1160 00000000 */ nop

View file

@ -1,13 +0,0 @@
glabel func_808A1164
/* 005A4 808A1164 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 005A8 808A1168 AFBF0014 */ sw $ra, 0x0014($sp)
/* 005AC 808A116C 848E0168 */ lh $t6, 0x0168($a0) ## 00000168
/* 005B0 808A1170 5DC00004 */ bgtzl $t6, .L808A1184
/* 005B4 808A1174 8FBF0014 */ lw $ra, 0x0014($sp)
/* 005B8 808A1178 0C228464 */ jal func_808A1190
/* 005BC 808A117C 00000000 */ nop
/* 005C0 808A1180 8FBF0014 */ lw $ra, 0x0014($sp)
.L808A1184:
/* 005C4 808A1184 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 005C8 808A1188 03E00008 */ jr $ra
/* 005CC 808A118C 00000000 */ nop

View file

@ -1,108 +0,0 @@
.rdata
glabel D_808A1618
.asciz "Warning : -1\n"
.balign 4
glabel D_808A1640
.asciz "Warning : -2\n"
.balign 4
.late_rodata
glabel D_808A16B8
.float 827.0
glabel D_808A16BC
.float -3383.0
glabel D_808A16C0
.float 827.0
glabel D_808A16C4
.float -3260.0
.text
glabel func_808A1190
/* 005D0 808A1190 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 005D4 808A1194 AFB10038 */ sw $s1, 0x0038($sp)
/* 005D8 808A1198 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 005DC 808A119C AFBF003C */ sw $ra, 0x003C($sp)
/* 005E0 808A11A0 AFB00034 */ sw $s0, 0x0034($sp)
/* 005E4 808A11A4 3C05808A */ lui $a1, %hi(func_808A12C4) ## $a1 = 808A0000
/* 005E8 808A11A8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 005EC 808A11AC 0C2282F0 */ jal func_808A0BC0
/* 005F0 808A11B0 24A512C4 */ addiu $a1, $a1, %lo(func_808A12C4) ## $a1 = 808A12C4
/* 005F4 808A11B4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 005F8 808A11B8 0C00B342 */ jal Flags_UnsetClear
/* 005FC 808A11BC 82050003 */ lb $a1, 0x0003($s0) ## 00000003
/* 00600 808A11C0 3C01428C */ lui $at, 0x428C ## $at = 428C0000
/* 00604 808A11C4 44812000 */ mtc1 $at, $f4 ## $f4 = 70.00
/* 00608 808A11C8 3C01808A */ lui $at, %hi(D_808A16B8) ## $at = 808A0000
/* 0060C 808A11CC C42616B8 */ lwc1 $f6, %lo(D_808A16B8)($at)
/* 00610 808A11D0 3C01808A */ lui $at, %hi(D_808A16BC) ## $at = 808A0000
/* 00614 808A11D4 C42816BC */ lwc1 $f8, %lo(D_808A16BC)($at)
/* 00618 808A11D8 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24
/* 0061C 808A11DC 240E0005 */ addiu $t6, $zero, 0x0005 ## $t6 = 00000005
/* 00620 808A11E0 AFAE0028 */ sw $t6, 0x0028($sp)
/* 00624 808A11E4 AFA40044 */ sw $a0, 0x0044($sp)
/* 00628 808A11E8 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 0062C 808A11EC 02203025 */ or $a2, $s1, $zero ## $a2 = 00000000
/* 00630 808A11F0 24070002 */ addiu $a3, $zero, 0x0002 ## $a3 = 00000002
/* 00634 808A11F4 AFA0001C */ sw $zero, 0x001C($sp)
/* 00638 808A11F8 AFA00020 */ sw $zero, 0x0020($sp)
/* 0063C 808A11FC AFA00024 */ sw $zero, 0x0024($sp)
/* 00640 808A1200 E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00644 808A1204 E7A60014 */ swc1 $f6, 0x0014($sp)
/* 00648 808A1208 0C00C916 */ jal Actor_SpawnAsChild
/* 0064C 808A120C E7A80018 */ swc1 $f8, 0x0018($sp)
/* 00650 808A1210 10400006 */ beq $v0, $zero, .L808A122C
/* 00654 808A1214 3C04808A */ lui $a0, %hi(D_808A1618) ## $a0 = 808A0000
/* 00658 808A1218 860F0018 */ lh $t7, 0x0018($s0) ## 00000018
/* 0065C 808A121C AE00011C */ sw $zero, 0x011C($s0) ## 0000011C
/* 00660 808A1220 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
/* 00664 808A1224 10000003 */ beq $zero, $zero, .L808A1234
/* 00668 808A1228 A6180018 */ sh $t8, 0x0018($s0) ## 00000018
.L808A122C:
/* 0066C 808A122C 0C00084C */ jal osSyncPrintf
/* 00670 808A1230 24841618 */ addiu $a0, $a0, %lo(D_808A1618) ## $a0 = 808A1618
.L808A1234:
/* 00674 808A1234 3C01432A */ lui $at, 0x432A ## $at = 432A0000
/* 00678 808A1238 44815000 */ mtc1 $at, $f10 ## $f10 = 170.00
/* 0067C 808A123C 3C01808A */ lui $at, %hi(D_808A16C0) ## $at = 808A0000
/* 00680 808A1240 C43016C0 */ lwc1 $f16, %lo(D_808A16C0)($at)
/* 00684 808A1244 3C01808A */ lui $at, %hi(D_808A16C4) ## $at = 808A0000
/* 00688 808A1248 C43216C4 */ lwc1 $f18, %lo(D_808A16C4)($at)
/* 0068C 808A124C 24190005 */ addiu $t9, $zero, 0x0005 ## $t9 = 00000005
/* 00690 808A1250 AFB90028 */ sw $t9, 0x0028($sp)
/* 00694 808A1254 8FA40044 */ lw $a0, 0x0044($sp)
/* 00698 808A1258 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 0069C 808A125C 02203025 */ or $a2, $s1, $zero ## $a2 = 00000000
/* 006A0 808A1260 24070002 */ addiu $a3, $zero, 0x0002 ## $a3 = 00000002
/* 006A4 808A1264 AFA0001C */ sw $zero, 0x001C($sp)
/* 006A8 808A1268 AFA00020 */ sw $zero, 0x0020($sp)
/* 006AC 808A126C AFA00024 */ sw $zero, 0x0024($sp)
/* 006B0 808A1270 E7AA0010 */ swc1 $f10, 0x0010($sp)
/* 006B4 808A1274 E7B00014 */ swc1 $f16, 0x0014($sp)
/* 006B8 808A1278 0C00C916 */ jal Actor_SpawnAsChild
/* 006BC 808A127C E7B20018 */ swc1 $f18, 0x0018($sp)
/* 006C0 808A1280 10400006 */ beq $v0, $zero, .L808A129C
/* 006C4 808A1284 3C04808A */ lui $a0, %hi(D_808A1640) ## $a0 = 808A0000
/* 006C8 808A1288 86080018 */ lh $t0, 0x0018($s0) ## 00000018
/* 006CC 808A128C AE00011C */ sw $zero, 0x011C($s0) ## 0000011C
/* 006D0 808A1290 25090001 */ addiu $t1, $t0, 0x0001 ## $t1 = 00000001
/* 006D4 808A1294 10000003 */ beq $zero, $zero, .L808A12A4
/* 006D8 808A1298 A6090018 */ sh $t1, 0x0018($s0) ## 00000018
.L808A129C:
/* 006DC 808A129C 0C00084C */ jal osSyncPrintf
/* 006E0 808A12A0 24841640 */ addiu $a0, $a0, %lo(D_808A1640) ## $a0 = 808A1640
.L808A12A4:
/* 006E4 808A12A4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 006E8 808A12A8 0C00B33C */ jal Flags_SetClear
/* 006EC 808A12AC 82050003 */ lb $a1, 0x0003($s0) ## 00000003
/* 006F0 808A12B0 8FBF003C */ lw $ra, 0x003C($sp)
/* 006F4 808A12B4 8FB00034 */ lw $s0, 0x0034($sp)
/* 006F8 808A12B8 8FB10038 */ lw $s1, 0x0038($sp)
/* 006FC 808A12BC 03E00008 */ jr $ra
/* 00700 808A12C0 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000

View file

@ -1,27 +0,0 @@
glabel func_808A12C4
/* 00704 808A12C4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00708 808A12C8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0070C 808A12CC AFA40018 */ sw $a0, 0x0018($sp)
/* 00710 808A12D0 AFA5001C */ sw $a1, 0x001C($sp)
/* 00714 808A12D4 848F0018 */ lh $t7, 0x0018($a0) ## 00000018
/* 00718 808A12D8 55E0000E */ bnel $t7, $zero, .L808A1314
/* 0071C 808A12DC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00720 808A12E0 0C023A62 */ jal Player_InCsMode
/* 00724 808A12E4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00728 808A12E8 14400009 */ bne $v0, $zero, .L808A1310
/* 0072C 808A12EC 8FB80018 */ lw $t8, 0x0018($sp)
/* 00730 808A12F0 8705001C */ lh $a1, 0x001C($t8) ## 0000001C
/* 00734 808A12F4 8FA4001C */ lw $a0, 0x001C($sp)
/* 00738 808A12F8 00052A03 */ sra $a1, $a1, 8
/* 0073C 808A12FC 0C00B2DD */ jal Flags_SetSwitch
/* 00740 808A1300 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
/* 00744 808A1304 8FA40018 */ lw $a0, 0x0018($sp)
/* 00748 808A1308 0C2284C8 */ jal func_808A1320
/* 0074C 808A130C 8FA5001C */ lw $a1, 0x001C($sp)
.L808A1310:
/* 00750 808A1310 8FBF0014 */ lw $ra, 0x0014($sp)
.L808A1314:
/* 00754 808A1314 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00758 808A1318 03E00008 */ jr $ra
/* 0075C 808A131C 00000000 */ nop

View file

@ -1,10 +0,0 @@
glabel func_808A1320
/* 00760 808A1320 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00764 808A1324 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00768 808A1328 AFA5001C */ sw $a1, 0x001C($sp)
/* 0076C 808A132C 0C2282F0 */ jal func_808A0BC0
/* 00770 808A1330 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00774 808A1334 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00778 808A1338 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 0077C 808A133C 03E00008 */ jr $ra
/* 00780 808A1340 00000000 */ nop

View file

@ -1,82 +0,0 @@
.rdata
glabel D_808A1668
.asciz "../z_bg_mori_bigst.c"
.balign 4
glabel D_808A1680
.asciz "../z_bg_mori_bigst.c"
.balign 4
glabel D_808A1698
.asciz "../z_bg_mori_bigst.c"
.balign 4
.text
glabel func_808A13B4
/* 007F4 808A13B4 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 007F8 808A13B8 AFB10018 */ sw $s1, 0x0018($sp)
/* 007FC 808A13BC 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00800 808A13C0 AFBF001C */ sw $ra, 0x001C($sp)
/* 00804 808A13C4 AFB00014 */ sw $s0, 0x0014($sp)
/* 00808 808A13C8 AFA40050 */ sw $a0, 0x0050($sp)
/* 0080C 808A13CC 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00810 808A13D0 3C06808A */ lui $a2, %hi(D_808A1668) ## $a2 = 808A0000
/* 00814 808A13D4 24C61668 */ addiu $a2, $a2, %lo(D_808A1668) ## $a2 = 808A1668
/* 00818 808A13D8 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFE4
/* 0081C 808A13DC 2407021D */ addiu $a3, $zero, 0x021D ## $a3 = 0000021D
/* 00820 808A13E0 0C031AB1 */ jal Graph_OpenDisps
/* 00824 808A13E4 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00828 808A13E8 0C024F46 */ jal func_80093D18
/* 0082C 808A13EC 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00830 808A13F0 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00834 808A13F4 3C0FDB06 */ lui $t7, 0xDB06 ## $t7 = DB060000
/* 00838 808A13F8 35EF0020 */ ori $t7, $t7, 0x0020 ## $t7 = DB060020
/* 0083C 808A13FC 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 00840 808A1400 AE0E02C0 */ sw $t6, 0x02C0($s0) ## 000002C0
/* 00844 808A1404 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00848 808A1408 8FB80050 */ lw $t8, 0x0050($sp)
/* 0084C 808A140C 3C0A0001 */ lui $t2, 0x0001 ## $t2 = 00010000
/* 00850 808A1410 3C0CDA38 */ lui $t4, 0xDA38 ## $t4 = DA380000
/* 00854 808A1414 8319016A */ lb $t9, 0x016A($t8) ## 0000016A
/* 00858 808A1418 358C0003 */ ori $t4, $t4, 0x0003 ## $t4 = DA380003
/* 0085C 808A141C 3C05808A */ lui $a1, %hi(D_808A1680) ## $a1 = 808A0000
/* 00860 808A1420 00194100 */ sll $t0, $t9, 4
/* 00864 808A1424 01194021 */ addu $t0, $t0, $t9
/* 00868 808A1428 00084080 */ sll $t0, $t0, 2
/* 0086C 808A142C 02284821 */ addu $t1, $s1, $t0
/* 00870 808A1430 01495021 */ addu $t2, $t2, $t1
/* 00874 808A1434 8D4A17B4 */ lw $t2, 0x17B4($t2) ## 000117B4
/* 00878 808A1438 24A51680 */ addiu $a1, $a1, %lo(D_808A1680) ## $a1 = 808A1680
/* 0087C 808A143C 24060224 */ addiu $a2, $zero, 0x0224 ## $a2 = 00000224
/* 00880 808A1440 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 00884 808A1444 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00888 808A1448 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 0088C 808A144C AE0B02C0 */ sw $t3, 0x02C0($s0) ## 000002C0
/* 00890 808A1450 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 00894 808A1454 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00898 808A1458 0C0346A2 */ jal Matrix_NewMtx
/* 0089C 808A145C AFA2002C */ sw $v0, 0x002C($sp)
/* 008A0 808A1460 8FA3002C */ lw $v1, 0x002C($sp)
/* 008A4 808A1464 3C0F0600 */ lui $t7, 0x0600 ## $t7 = 06000000
/* 008A8 808A1468 25EF1E50 */ addiu $t7, $t7, 0x1E50 ## $t7 = 06001E50
/* 008AC 808A146C AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 008B0 808A1470 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 008B4 808A1474 3C0EDE00 */ lui $t6, 0xDE00 ## $t6 = DE000000
/* 008B8 808A1478 3C06808A */ lui $a2, %hi(D_808A1698) ## $a2 = 808A0000
/* 008BC 808A147C 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 008C0 808A1480 AE0D02C0 */ sw $t5, 0x02C0($s0) ## 000002C0
/* 008C4 808A1484 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 008C8 808A1488 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 008CC 808A148C 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 008D0 808A1490 24C61698 */ addiu $a2, $a2, %lo(D_808A1698) ## $a2 = 808A1698
/* 008D4 808A1494 27A40034 */ addiu $a0, $sp, 0x0034 ## $a0 = FFFFFFE4
/* 008D8 808A1498 0C031AD5 */ jal Graph_CloseDisps
/* 008DC 808A149C 24070229 */ addiu $a3, $zero, 0x0229 ## $a3 = 00000229
/* 008E0 808A14A0 8FBF001C */ lw $ra, 0x001C($sp)
/* 008E4 808A14A4 8FB00014 */ lw $s0, 0x0014($sp)
/* 008E8 808A14A8 8FB10018 */ lw $s1, 0x0018($sp)
/* 008EC 808A14AC 03E00008 */ jr $ra
/* 008F0 808A14B0 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000
/* 008F4 808A14B4 00000000 */ nop
/* 008F8 808A14B8 00000000 */ nop
/* 008FC 808A14BC 00000000 */ nop

View file

@ -1,20 +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_Mori_Bigst_InitVars
.word 0x00860100, 0x00000010, 0x00720000, 0x0000016C
.word BgMoriBigst_Init
.word BgMoriBigst_Destroy
.word BgMoriBigst_Update
.word 0x00000000
glabel D_808A14E0
.word 0xB0F40BB8, 0xB0F80BB8, 0xB0FC0BB8, 0xB86CFE0C, 0xB870D120, 0x485003E8, 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_808A16D0
.incbin "baserom/ovl_Bg_Mori_Bigst", 0xB10, 0x00000130

View file

@ -927,6 +927,7 @@ void func_80073988(GlobalContext*, EnvironmentContext*, View*, GraphicsContext*,
// ? func_80073A5C(?); // ? func_80073A5C(?);
f32 func_800746DC(); f32 func_800746DC();
// ? func_80074704(?); // ? func_80074704(?);
void func_80074CE8(GlobalContext* globalCtx, s32 arg1);
// ? func_80074D6C(?); // ? func_80074D6C(?);
// ? func_80074FF4(?); // ? func_80074FF4(?);
// ? func_800750C0(?); // ? func_800750C0(?);

3
spec
View file

@ -1099,8 +1099,7 @@ endseg
beginseg beginseg
name "ovl_Bg_Mori_Bigst" name "ovl_Bg_Mori_Bigst"
include "build/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.o" include "build/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.o"
include "build/data/overlays/actors/z_bg_mori_bigst.data.o" include "build/src/overlays/actors/ovl_Bg_Mori_Bigst/ovl_Bg_Mori_Bigst_reloc.o"
include "build/data/overlays/actors/z_bg_mori_bigst.reloc.o"
endseg endseg
beginseg beginseg

View file

@ -1,3 +1,9 @@
/*
* File: z_bg_mori_bigst.c
* Overlay: ovl_Bg_Mori_Bigst
* Description: Forest Temple falling platform and Stalfos fight
*/
#include "z_bg_mori_bigst.h" #include "z_bg_mori_bigst.h"
#define FLAGS 0x00000010 #define FLAGS 0x00000010
@ -7,8 +13,24 @@
void BgMoriBigst_Init(Actor* thisx, GlobalContext* globalCtx); void BgMoriBigst_Init(Actor* thisx, GlobalContext* globalCtx);
void BgMoriBigst_Destroy(Actor* thisx, GlobalContext* globalCtx); void BgMoriBigst_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgMoriBigst_Update(Actor* thisx, GlobalContext* globalCtx); void BgMoriBigst_Update(Actor* thisx, GlobalContext* globalCtx);
void BgMoriBigst_Draw(Actor* thisx, GlobalContext* globalCtx);
void BgMoriBigst_SetupWaitForMoriTex(BgMoriBigst* this, GlobalContext* globalCtx);
void BgMoriBigst_WaitForMoriTex(BgMoriBigst* this, GlobalContext* globalCtx);
void BgMoriBigst_SetupNoop(BgMoriBigst* this, GlobalContext* globalCtx);
void BgMoriBigst_SetupStalfosFight(BgMoriBigst* this, GlobalContext* globalCtx);
void BgMoriBigst_StalfosFight(BgMoriBigst* this, GlobalContext* globalCtx);
void BgMoriBigst_SetupFall(BgMoriBigst* this, GlobalContext* globalCtx);
void BgMoriBigst_Fall(BgMoriBigst* this, GlobalContext* globalCtx);
void BgMoriBigst_SetupLanding(BgMoriBigst* this, GlobalContext* globalCtx);
void BgMoriBigst_Landing(BgMoriBigst* this, GlobalContext* globalCtx);
void BgMoriBigst_SetupStalfosPairFight(BgMoriBigst* this, GlobalContext* globalCtx);
void BgMoriBigst_StalfosPairFight(BgMoriBigst* this, GlobalContext* globalCtx);
void BgMoriBigst_SetupDone(BgMoriBigst* this, GlobalContext* globalCtx);
extern ColHeader D_0600221C;
extern Gfx D_06001E50[];
/*
const ActorInit Bg_Mori_Bigst_InitVars = { const ActorInit Bg_Mori_Bigst_InitVars = {
ACTOR_BG_MORI_BIGST, ACTOR_BG_MORI_BIGST,
ACTORTYPE_BG, ACTORTYPE_BG,
@ -20,39 +42,220 @@ const ActorInit Bg_Mori_Bigst_InitVars = {
(ActorFunc)BgMoriBigst_Update, (ActorFunc)BgMoriBigst_Update,
NULL, NULL,
}; };
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A0BC0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A0BC8.s") static InitChainEntry sInitChain[] = {
ICHAIN_F32(uncullZoneForward, 3000, ICHAIN_CONTINUE), ICHAIN_F32(uncullZoneScale, 3000, ICHAIN_CONTINUE),
ICHAIN_F32(uncullZoneDownward, 3000, ICHAIN_CONTINUE), ICHAIN_F32_DIV1000(gravity, -500, ICHAIN_CONTINUE),
ICHAIN_F32_DIV1000(minVelocityY, -12000, ICHAIN_CONTINUE), ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/BgMoriBigst_Init.s") void BgMoriBigst_SetupAction(BgMoriBigst* this, BgMoriBigstActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/BgMoriBigst_Destroy.s") void BgMoriBigst_InitDynapoly(BgMoriBigst* this, GlobalContext* globalCtx, ColHeader* collision, s32 moveFlag) {
s32 pad;
ColHeader* colHeader = NULL;
s32 pad2;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A0DDC.s") DynaPolyInfo_SetActorMove(&this->dyna, moveFlag);
DynaPolyInfo_Alloc(collision, &colHeader);
this->dyna.dynaPolyId =
DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, colHeader);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A0E04.s") if (this->dyna.dynaPolyId == 0x32) {
// Warning : move BG login failed
osSyncPrintf("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n", "../z_bg_mori_bigst.c", 190,
this->dyna.actor.id, this->dyna.actor.params);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A0ED0.s") void BgMoriBigst_Init(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgMoriBigst* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A0EF4.s") // mori (bigST.keyceiling)
osSyncPrintf("mori (bigST.鍵型天井)(arg : %04x)(sw %d)(noE %d)(roomC %d)(playerPosY %f)\n", this->dyna.actor.params,
Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F),
Flags_GetTempClear(globalCtx, this->dyna.actor.room), Flags_GetClear(globalCtx, this->dyna.actor.room),
PLAYER->actor.posRot.pos.y);
BgMoriBigst_InitDynapoly(this, globalCtx, &D_0600221C, DPM_UNK);
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
this->moriTexObjIndex = Object_GetIndex(&globalCtx->objectCtx, OBJECT_MORI_TEX);
if (this->moriTexObjIndex < 0) {
// 【Big Stalfos key ceiling】 bank danger!
osSyncPrintf("【ビッグスタルフォス鍵型天井】 バンク危険!\n");
osSyncPrintf("%s %d\n", "../z_bg_mori_bigst.c", 234);
Actor_Kill(&this->dyna.actor);
return;
}
if (Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F)) {
this->dyna.actor.posRot.pos.y = this->dyna.actor.initPosRot.pos.y;
} else {
this->dyna.actor.posRot.pos.y = this->dyna.actor.initPosRot.pos.y + 270.0f;
}
Actor_SetHeight(&this->dyna.actor, 50.0f);
BgMoriBigst_SetupWaitForMoriTex(this, globalCtx);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A0FB0.s") void BgMoriBigst_Destroy(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgMoriBigst* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A1024.s") DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A104C.s") void BgMoriBigst_SetupWaitForMoriTex(BgMoriBigst* this, GlobalContext* globalCtx) {
BgMoriBigst_SetupAction(this, BgMoriBigst_WaitForMoriTex);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A10D4.s") void BgMoriBigst_WaitForMoriTex(BgMoriBigst* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A1164.s") if (Object_IsLoaded(&globalCtx->objectCtx, this->moriTexObjIndex)) {
thisx->draw = BgMoriBigst_Draw;
if (Flags_GetClear(globalCtx, thisx->room) && (PLAYER->actor.posRot.pos.y > 700.0f)) {
if (Flags_GetSwitch(globalCtx, (thisx->params >> 8) & 0x3F)) {
BgMoriBigst_SetupDone(this, globalCtx);
} else {
BgMoriBigst_SetupStalfosFight(this, globalCtx);
}
} else {
BgMoriBigst_SetupNoop(this, globalCtx);
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A1190.s") void BgMoriBigst_SetupNoop(BgMoriBigst* this, GlobalContext* globalCtx) {
BgMoriBigst_SetupAction(this, NULL);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A12C4.s") void BgMoriBigst_SetupStalfosFight(BgMoriBigst* this, GlobalContext* globalCtx) {
Actor* stalfos;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A1320.s") BgMoriBigst_SetupAction(this, BgMoriBigst_StalfosFight);
Flags_UnsetClear(globalCtx, this->dyna.actor.room);
stalfos = Actor_SpawnAsChild(&globalCtx->actorCtx, &this->dyna.actor, globalCtx, ACTOR_EN_TEST, 209.0f, 827.0f,
-3320.0f, 0, 0, 0, 1);
if (stalfos != NULL) {
this->dyna.actor.child = NULL;
this->dyna.actor.initPosRot.rot.z++;
} else {
// Second Stalfos failure
osSyncPrintf("Warning : 第2スタルフォス発生失敗\n");
}
Flags_SetClear(globalCtx, this->dyna.actor.room);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/BgMoriBigst_Update.s") void BgMoriBigst_StalfosFight(BgMoriBigst* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Mori_Bigst/func_808A13B4.s") if ((this->dyna.actor.initPosRot.rot.z == 0) &&
((this->dyna.actor.initPosRot.pos.y - 5.0f) <= PLAYER->actor.posRot.pos.y)) {
BgMoriBigst_SetupFall(this, globalCtx);
func_800800F8(globalCtx, 0xC94, 0x48, &this->dyna.actor, 0);
}
}
void BgMoriBigst_SetupFall(BgMoriBigst* this, GlobalContext* globalCtx) {
BgMoriBigst_SetupAction(this, BgMoriBigst_Fall);
}
void BgMoriBigst_Fall(BgMoriBigst* this, GlobalContext* globalCtx) {
Actor_MoveForward(&this->dyna.actor);
if (this->dyna.actor.posRot.pos.y <= this->dyna.actor.initPosRot.pos.y) {
this->dyna.actor.posRot.pos.y = this->dyna.actor.initPosRot.pos.y;
BgMoriBigst_SetupLanding(this, globalCtx);
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_STONE_BOUND);
func_800800F8(globalCtx, 0x3FC, 8, &this->dyna.actor, 0);
func_8002DF38(globalCtx, NULL, 0x3C);
}
}
void BgMoriBigst_SetupLanding(BgMoriBigst* this, GlobalContext* globalCtx) {
s32 pad;
s32 quake;
BgMoriBigst_SetupAction(this, BgMoriBigst_Landing);
this->waitTimer = 18;
quake = Quake_Add(ACTIVE_CAM, 3);
Quake_SetSpeed(quake, 25000);
Quake_SetQuakeValues(quake, 5, 0, 0, 0);
Quake_SetCountdown(quake, 16);
}
void BgMoriBigst_Landing(BgMoriBigst* this, GlobalContext* globalCtx) {
if (this->waitTimer <= 0) {
BgMoriBigst_SetupStalfosPairFight(this, globalCtx);
}
}
void BgMoriBigst_SetupStalfosPairFight(BgMoriBigst* this, GlobalContext* globalCtx) {
Actor* stalfos1;
Actor* stalfos2;
BgMoriBigst_SetupAction(this, BgMoriBigst_StalfosPairFight);
Flags_UnsetClear(globalCtx, this->dyna.actor.room);
stalfos1 =
Actor_SpawnAsChild(&globalCtx->actorCtx, &this->dyna.actor, globalCtx, ACTOR_EN_TEST, 70.0f, 827.0f, -3383.0f, 0, 0, 0, 5);
if (stalfos1 != NULL) {
this->dyna.actor.child = NULL;
this->dyna.actor.initPosRot.rot.z++;
} else {
// Warning: 3-1 Stalfos failure
osSyncPrintf("Warning : 第3-1スタルフォス発生失敗\n");
}
stalfos2 =
Actor_SpawnAsChild(&globalCtx->actorCtx, &this->dyna.actor, globalCtx, ACTOR_EN_TEST, 170.0f, 827.0f, -3260.0f, 0, 0, 0, 5);
if (stalfos2 != NULL) {
this->dyna.actor.child = NULL;
this->dyna.actor.initPosRot.rot.z++;
} else {
// Warning: 3-2 Stalfos failure
osSyncPrintf("Warning : 第3-2スタルフォス発生失敗\n");
}
Flags_SetClear(globalCtx, this->dyna.actor.room);
}
void BgMoriBigst_StalfosPairFight(BgMoriBigst* this, GlobalContext* globalCtx) {
if ((this->dyna.actor.initPosRot.rot.z == 0) && !Player_InCsMode(globalCtx)) {
Flags_SetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F);
BgMoriBigst_SetupDone(this, globalCtx);
}
}
void BgMoriBigst_SetupDone(BgMoriBigst* this, GlobalContext* globalCtx) {
BgMoriBigst_SetupAction(this, NULL);
}
void BgMoriBigst_Update(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgMoriBigst* this = THIS;
Actor_SetHeight(&this->dyna.actor, 50.0f);
if (this->waitTimer > 0) {
this->waitTimer--;
}
if (func_80043590(&this->dyna)) {
func_80074CE8(globalCtx, 6);
}
if (this->actionFunc != NULL) {
this->actionFunc(this, globalCtx);
}
}
void BgMoriBigst_Draw(Actor* thisx, GlobalContext* globalCtx) {
s32 pad;
BgMoriBigst* this = THIS;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_mori_bigst.c", 541);
func_80093D18(globalCtx->state.gfxCtx);
gSPSegment(oGfxCtx->polyOpa.p++, 0x08, globalCtx->objectCtx.status[this->moriTexObjIndex].segment);
gSPMatrix(oGfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_mori_bigst.c", 548),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(oGfxCtx->polyOpa.p++, D_06001E50);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_mori_bigst.c", 553);
}

View file

@ -6,9 +6,13 @@
struct BgMoriBigst; struct BgMoriBigst;
typedef void (*BgMoriBigstActionFunc)(struct BgMoriBigst*, GlobalContext*);
typedef struct BgMoriBigst { typedef struct BgMoriBigst {
/* 0x0000 */ Actor actor; /* 0x0000 */ DynaPolyActor dyna;
/* 0x014C */ char unk_14C[0x20]; /* 0x0164 */ BgMoriBigstActionFunc actionFunc;
/* 0x0168 */ s16 waitTimer;
/* 0x016A */ s8 moriTexObjIndex;
} BgMoriBigst; // size = 0x016C } BgMoriBigst; // size = 0x016C
extern const ActorInit Bg_Mori_Bigst_InitVars; extern const ActorInit Bg_Mori_Bigst_InitVars;

View file

@ -1107,6 +1107,10 @@ D_06000498 = 0x06000498;
// z_bg_menkuri_eye // z_bg_menkuri_eye
D_06002D20 = 0x06002D20; D_06002D20 = 0x06002D20;
// z_bg_mori_bigst
D_0600221C = 0x0600221C;
D_06001E50 = 0x06001E50;
// z_bg_mori_hashira4 // z_bg_mori_hashira4
D_06001AF8 = 0x06001AF8; D_06001AF8 = 0x06001AF8;
D_060089E0 = 0x060089E0; D_060089E0 = 0x060089E0;