From c52cb091ab044a8d56636905834d1e00e5126053 Mon Sep 17 00:00:00 2001 From: zelda2773 Date: Thu, 26 Mar 2020 01:22:08 -0400 Subject: [PATCH 1/3] Bg_Gjyo_Bridge OK --- .../ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Destroy.s | 16 --- .../ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Draw.s | 103 ---------------- .../ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Init.s | 54 --------- .../ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Update.s | 12 -- .../actors/ovl_Bg_Gjyo_Bridge/func_808787A4.s | 6 - .../actors/ovl_Bg_Gjyo_Bridge/func_808787B0.s | 90 -------------- .../actors/ovl_Bg_Gjyo_Bridge/func_80878904.s | 34 ------ data/overlays/actors/z_bg_gjyo_bridge.data.s | 18 --- .../overlays/actors/z_bg_gjyo_bridge.rodata.s | 30 ----- spec | 2 - .../ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c | 111 ++++++++++++++++-- .../ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.h | 4 +- 12 files changed, 100 insertions(+), 380 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_808787A4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_808787B0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_80878904.s delete mode 100644 data/overlays/actors/z_bg_gjyo_bridge.data.s delete mode 100644 data/overlays/actors/z_bg_gjyo_bridge.rodata.s diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Destroy.s deleted file mode 100644 index 5e3d8d5678..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Destroy.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel BgGjyoBridge_Destroy -/* 000B4 80878774 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 000B8 80878778 AFA40018 */ sw $a0, 0x0018($sp) -/* 000BC 8087877C 8FAE0018 */ lw $t6, 0x0018($sp) -/* 000C0 80878780 AFBF0014 */ sw $ra, 0x0014($sp) -/* 000C4 80878784 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 000C8 80878788 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810 -/* 000CC 8087878C 0C00FB56 */ jal DynaPolyInfo_Free - ## DynaPolyInfo_delReserve -/* 000D0 80878790 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C -/* 000D4 80878794 8FBF0014 */ lw $ra, 0x0014($sp) -/* 000D8 80878798 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 000DC 8087879C 03E00008 */ jr $ra -/* 000E0 808787A0 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Draw.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Draw.s deleted file mode 100644 index 413c8c638e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Draw.s +++ /dev/null @@ -1,103 +0,0 @@ -glabel BgGjyoBridge_Draw -/* 002DC 8087899C 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90 -/* 002E0 808789A0 AFB10038 */ sw $s1, 0x0038($sp) -/* 002E4 808789A4 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 002E8 808789A8 AFBF003C */ sw $ra, 0x003C($sp) -/* 002EC 808789AC AFB00034 */ sw $s0, 0x0034($sp) -/* 002F0 808789B0 AFA40070 */ sw $a0, 0x0070($sp) -/* 002F4 808789B4 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000 -/* 002F8 808789B8 3C068088 */ lui $a2, %hi(D_80878B60) ## $a2 = 80880000 -/* 002FC 808789BC 24C68B60 */ addiu $a2, $a2, %lo(D_80878B60) ## $a2 = 80878B60 -/* 00300 808789C0 27A40058 */ addiu $a0, $sp, 0x0058 ## $a0 = FFFFFFE8 -/* 00304 808789C4 24070104 */ addiu $a3, $zero, 0x0104 ## $a3 = 00000104 -/* 00308 808789C8 0C031AB1 */ jal func_800C6AC4 -/* 0030C 808789CC 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 00310 808789D0 0C024F61 */ jal func_80093D84 -/* 00314 808789D4 8E240000 */ lw $a0, 0x0000($s1) ## 00000000 -/* 00318 808789D8 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 0031C 808789DC 3C0FDB06 */ lui $t7, 0xDB06 ## $t7 = DB060000 -/* 00320 808789E0 35EF0020 */ ori $t7, $t7, 0x0020 ## $t7 = DB060020 -/* 00324 808789E4 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008 -/* 00328 808789E8 AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0 -/* 0032C 808789EC 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00330 808789F0 02214821 */ addu $t1, $s1, $at -/* 00334 808789F4 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000 -/* 00338 808789F8 8D231DE4 */ lw $v1, 0x1DE4($t1) ## 00001DE4 -/* 0033C 808789FC 8E240000 */ lw $a0, 0x0000($s1) ## 00000000 -/* 00340 80878A00 24180020 */ addiu $t8, $zero, 0x0020 ## $t8 = 00000020 -/* 00344 80878A04 00030823 */ subu $at, $zero, $v1 -/* 00348 80878A08 00013080 */ sll $a2, $at, 2 -/* 0034C 80878A0C 00C13023 */ subu $a2, $a2, $at -/* 00350 80878A10 30C6007F */ andi $a2, $a2, 0x007F ## $a2 = 00000000 -/* 00354 80878A14 AFB80010 */ sw $t8, 0x0010($sp) -/* 00358 80878A18 AFA90044 */ sw $t1, 0x0044($sp) -/* 0035C 80878A1C 24070020 */ addiu $a3, $zero, 0x0020 ## $a3 = 00000020 -/* 00360 80878A20 AFA20054 */ sw $v0, 0x0054($sp) -/* 00364 80878A24 0C0253A7 */ jal Draw_TexScroll -/* 00368 80878A28 3065007F */ andi $a1, $v1, 0x007F ## $a1 = 00000000 -/* 0036C 80878A2C 8FA80054 */ lw $t0, 0x0054($sp) -/* 00370 80878A30 8FA90044 */ lw $t1, 0x0044($sp) -/* 00374 80878A34 3C0ADB06 */ lui $t2, 0xDB06 ## $t2 = DB060000 -/* 00378 80878A38 AD020004 */ sw $v0, 0x0004($t0) ## 00000004 -/* 0037C 80878A3C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 00380 80878A40 354A0024 */ ori $t2, $t2, 0x0024 ## $t2 = DB060024 -/* 00384 80878A44 240B0020 */ addiu $t3, $zero, 0x0020 ## $t3 = 00000020 -/* 00388 80878A48 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008 -/* 0038C 80878A4C AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0 -/* 00390 80878A50 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000 -/* 00394 80878A54 8D231DE4 */ lw $v1, 0x1DE4($t1) ## 00001DE4 -/* 00398 80878A58 8E240000 */ lw $a0, 0x0000($s1) ## 00000000 -/* 0039C 80878A5C 240C0020 */ addiu $t4, $zero, 0x0020 ## $t4 = 00000020 -/* 003A0 80878A60 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001 -/* 003A4 80878A64 240F0020 */ addiu $t7, $zero, 0x0020 ## $t7 = 00000020 -/* 003A8 80878A68 24180020 */ addiu $t8, $zero, 0x0020 ## $t8 = 00000020 -/* 003AC 80878A6C 00033823 */ subu $a3, $zero, $v1 -/* 003B0 80878A70 306E007F */ andi $t6, $v1, 0x007F ## $t6 = 00000000 -/* 003B4 80878A74 AFAE0020 */ sw $t6, 0x0020($sp) -/* 003B8 80878A78 30E7007F */ andi $a3, $a3, 0x007F ## $a3 = 00000000 -/* 003BC 80878A7C AFB80028 */ sw $t8, 0x0028($sp) -/* 003C0 80878A80 AFAF0024 */ sw $t7, 0x0024($sp) -/* 003C4 80878A84 AFAD0018 */ sw $t5, 0x0018($sp) -/* 003C8 80878A88 AFAC0014 */ sw $t4, 0x0014($sp) -/* 003CC 80878A8C AFA0001C */ sw $zero, 0x001C($sp) -/* 003D0 80878A90 AFAB0010 */ sw $t3, 0x0010($sp) -/* 003D4 80878A94 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 003D8 80878A98 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 003DC 80878A9C 0C0253D0 */ jal Draw_TwoTexScroll -/* 003E0 80878AA0 AFA20050 */ sw $v0, 0x0050($sp) -/* 003E4 80878AA4 8FA80050 */ lw $t0, 0x0050($sp) -/* 003E8 80878AA8 3C0ADA38 */ lui $t2, 0xDA38 ## $t2 = DA380000 -/* 003EC 80878AAC 354A0003 */ ori $t2, $t2, 0x0003 ## $t2 = DA380003 -/* 003F0 80878AB0 AD020004 */ sw $v0, 0x0004($t0) ## 00000004 -/* 003F4 80878AB4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 003F8 80878AB8 3C058088 */ lui $a1, %hi(D_80878B78) ## $a1 = 80880000 -/* 003FC 80878ABC 24A58B78 */ addiu $a1, $a1, %lo(D_80878B78) ## $a1 = 80878B78 -/* 00400 80878AC0 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008 -/* 00404 80878AC4 AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0 -/* 00408 80878AC8 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000 -/* 0040C 80878ACC 8E240000 */ lw $a0, 0x0000($s1) ## 00000000 -/* 00410 80878AD0 24060119 */ addiu $a2, $zero, 0x0119 ## $a2 = 00000119 -/* 00414 80878AD4 0C0346A2 */ jal Matrix_NewMtx -/* 00418 80878AD8 AFA2004C */ sw $v0, 0x004C($sp) -/* 0041C 80878ADC 8FA3004C */ lw $v1, 0x004C($sp) -/* 00420 80878AE0 3C0D0600 */ lui $t5, 0x0600 ## $t5 = 06000000 -/* 00424 80878AE4 25AD0600 */ addiu $t5, $t5, 0x0600 ## $t5 = 06000600 -/* 00428 80878AE8 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 0042C 80878AEC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0 -/* 00430 80878AF0 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000 -/* 00434 80878AF4 3C068088 */ lui $a2, %hi(D_80878B90) ## $a2 = 80880000 -/* 00438 80878AF8 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008 -/* 0043C 80878AFC AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0 -/* 00440 80878B00 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004 -/* 00444 80878B04 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000 -/* 00448 80878B08 8E250000 */ lw $a1, 0x0000($s1) ## 00000000 -/* 0044C 80878B0C 24C68B90 */ addiu $a2, $a2, %lo(D_80878B90) ## $a2 = 80878B90 -/* 00450 80878B10 27A40058 */ addiu $a0, $sp, 0x0058 ## $a0 = FFFFFFE8 -/* 00454 80878B14 0C031AD5 */ jal func_800C6B54 -/* 00458 80878B18 2407011D */ addiu $a3, $zero, 0x011D ## $a3 = 0000011D -/* 0045C 80878B1C 8FBF003C */ lw $ra, 0x003C($sp) -/* 00460 80878B20 8FB00034 */ lw $s0, 0x0034($sp) -/* 00464 80878B24 8FB10038 */ lw $s1, 0x0038($sp) -/* 00468 80878B28 03E00008 */ jr $ra -/* 0046C 80878B2C 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000 - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Init.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Init.s deleted file mode 100644 index 5906d4139e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Init.s +++ /dev/null @@ -1,54 +0,0 @@ -glabel BgGjyoBridge_Init -/* 00000 808786C0 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 00004 808786C4 AFA50034 */ sw $a1, 0x0034($sp) -/* 00008 808786C8 AFBF001C */ sw $ra, 0x001C($sp) -/* 0000C 808786CC AFB00018 */ sw $s0, 0x0018($sp) -/* 00010 808786D0 3C058088 */ lui $a1, %hi(D_80878B50) ## $a1 = 80880000 -/* 00014 808786D4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00018 808786D8 AFA00024 */ sw $zero, 0x0024($sp) -/* 0001C 808786DC 0C01E037 */ jal Actor_ProcessInitChain - -/* 00020 808786E0 24A58B50 */ addiu $a1, $a1, %lo(D_80878B50) ## $a1 = 80878B50 -/* 00024 808786E4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00028 808786E8 0C010D20 */ jal DynaPolyInfo_SetActorMove - -/* 0002C 808786EC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00030 808786F0 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000 -/* 00034 808786F4 24840DB8 */ addiu $a0, $a0, 0x0DB8 ## $a0 = 06000DB8 -/* 00038 808786F8 0C010620 */ jal DynaPolyInfo_Alloc - -/* 0003C 808786FC 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4 -/* 00040 80878700 8FA40034 */ lw $a0, 0x0034($sp) -/* 00044 80878704 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 00048 80878708 8FA70024 */ lw $a3, 0x0024($sp) -/* 0004C 8087870C 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810 -/* 00050 80878710 0C00FA9D */ jal DynaPolyInfo_RegisterActor - ## DynaPolyInfo_setActor -/* 00054 80878714 AFA50020 */ sw $a1, 0x0020($sp) -/* 00058 80878718 8FA50020 */ lw $a1, 0x0020($sp) -/* 0005C 8087871C AE02014C */ sw $v0, 0x014C($s0) ## 0000014C -/* 00060 80878720 3C0E8016 */ lui $t6, 0x8016 ## $t6 = 80160000 -/* 00064 80878724 95CEF53C */ lhu $t6, -0x0AC4($t6) ## 8015F53C -/* 00068 80878728 3C188088 */ lui $t8, %hi(func_808787A4) ## $t8 = 80880000 -/* 0006C 8087872C 271887A4 */ addiu $t8, $t8, %lo(func_808787A4) ## $t8 = 808787A4 -/* 00070 80878730 31CF2000 */ andi $t7, $t6, 0x2000 ## $t7 = 00000000 -/* 00074 80878734 51E00004 */ beql $t7, $zero, .L80878748 -/* 00078 80878738 AE000134 */ sw $zero, 0x0134($s0) ## 00000134 -/* 0007C 8087873C 10000008 */ beq $zero, $zero, .L80878760 -/* 00080 80878740 AE180164 */ sw $t8, 0x0164($s0) ## 00000164 -/* 00084 80878744 AE000134 */ sw $zero, 0x0134($s0) ## 00000134 -.L80878748: -/* 00088 80878748 8FA40034 */ lw $a0, 0x0034($sp) -/* 0008C 8087874C 0C00FAFE */ jal func_8003EBF8 -/* 00090 80878750 8E06014C */ lw $a2, 0x014C($s0) ## 0000014C -/* 00094 80878754 3C198088 */ lui $t9, %hi(func_808787B0) ## $t9 = 80880000 -/* 00098 80878758 273987B0 */ addiu $t9, $t9, %lo(func_808787B0) ## $t9 = 808787B0 -/* 0009C 8087875C AE190164 */ sw $t9, 0x0164($s0) ## 00000164 -.L80878760: -/* 000A0 80878760 8FBF001C */ lw $ra, 0x001C($sp) -/* 000A4 80878764 8FB00018 */ lw $s0, 0x0018($sp) -/* 000A8 80878768 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 000AC 8087876C 03E00008 */ jr $ra -/* 000B0 80878770 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Update.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Update.s deleted file mode 100644 index fd319bd8f8..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Update.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel BgGjyoBridge_Update -/* 002B8 80878978 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 002BC 8087897C AFBF0014 */ sw $ra, 0x0014($sp) -/* 002C0 80878980 8C990164 */ lw $t9, 0x0164($a0) ## 00000164 -/* 002C4 80878984 0320F809 */ jalr $ra, $t9 -/* 002C8 80878988 00000000 */ nop -/* 002CC 8087898C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 002D0 80878990 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 002D4 80878994 03E00008 */ jr $ra -/* 002D8 80878998 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_808787A4.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_808787A4.s deleted file mode 100644 index 3083c7d524..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_808787A4.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel func_808787A4 -/* 000E4 808787A4 AFA40000 */ sw $a0, 0x0000($sp) -/* 000E8 808787A8 03E00008 */ jr $ra -/* 000EC 808787AC AFA50004 */ sw $a1, 0x0004($sp) - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_808787B0.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_808787B0.s deleted file mode 100644 index 0fd26face6..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_808787B0.s +++ /dev/null @@ -1,90 +0,0 @@ -glabel func_808787B0 -/* 000F0 808787B0 3C068012 */ lui $a2, 0x8012 ## $a2 = 80120000 -/* 000F4 808787B4 3C078016 */ lui $a3, 0x8016 ## $a3 = 80160000 -/* 000F8 808787B8 24E7E660 */ addiu $a3, $a3, 0xE660 ## $a3 = 8015E660 -/* 000FC 808787BC 24C67120 */ addiu $a2, $a2, 0x7120 ## $a2 = 80127120 -/* 00100 808787C0 8CCE000C */ lw $t6, 0x000C($a2) ## 8012712C -/* 00104 808787C4 8CE200A4 */ lw $v0, 0x00A4($a3) ## 8015E704 -/* 00108 808787C8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0010C 808787CC AFBF0014 */ sw $ra, 0x0014($sp) -/* 00110 808787D0 AFA40018 */ sw $a0, 0x0018($sp) -/* 00114 808787D4 01C27824 */ and $t7, $t6, $v0 -/* 00118 808787D8 11E00046 */ beq $t7, $zero, .L808788F4 -/* 0011C 808787DC 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44 -/* 00120 808787E0 8CD80010 */ lw $t8, 0x0010($a2) ## 80127130 -/* 00124 808787E4 3C088012 */ lui $t0, 0x8012 ## $t0 = 80120000 -/* 00128 808787E8 0302C824 */ and $t9, $t8, $v0 -/* 0012C 808787EC 53200042 */ beql $t9, $zero, .L808788F8 -/* 00130 808787F0 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00134 808787F4 91087476 */ lbu $t0, 0x7476($t0) ## 80127476 -/* 00138 808787F8 24010012 */ addiu $at, $zero, 0x0012 ## $at = 00000012 -/* 0013C 808787FC 00E84821 */ addu $t1, $a3, $t0 -/* 00140 80878800 912A0074 */ lbu $t2, 0x0074($t1) ## 00000074 -/* 00144 80878804 1541003B */ bne $t2, $at, .L808788F4 -/* 00148 80878808 3C01C28C */ lui $at, 0xC28C ## $at = C28C0000 -/* 0014C 8087880C 44812000 */ mtc1 $at, $f4 ## $f4 = -70.00 -/* 00150 80878810 C4600024 */ lwc1 $f0, 0x0024($v1) ## 00000024 -/* 00154 80878814 3C014396 */ lui $at, 0x4396 ## $at = 43960000 -/* 00158 80878818 4600203C */ c.lt.s $f4, $f0 -/* 0015C 8087881C 00000000 */ nop -/* 00160 80878820 45020035 */ bc1fl .L808788F8 -/* 00164 80878824 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00168 80878828 44813000 */ mtc1 $at, $f6 ## $f6 = 300.00 -/* 0016C 8087882C 3C018088 */ lui $at, %hi(D_80878BA8) ## $at = 80880000 -/* 00170 80878830 4606003C */ c.lt.s $f0, $f6 -/* 00174 80878834 00000000 */ nop -/* 00178 80878838 4502002F */ bc1fl .L808788F8 -/* 0017C 8087883C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00180 80878840 C4228BA8 */ lwc1 $f2, %lo(D_80878BA8)($at) -/* 00184 80878844 C4680028 */ lwc1 $f8, 0x0028($v1) ## 00000028 -/* 00188 80878848 4608103C */ c.lt.s $f2, $f8 -/* 0018C 8087884C 00000000 */ nop -/* 00190 80878850 45020029 */ bc1fl .L808788F8 -/* 00194 80878854 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00198 80878858 C460002C */ lwc1 $f0, 0x002C($v1) ## 0000002C -/* 0019C 8087885C 3C018088 */ lui $at, %hi(D_80878BAC) ## $at = 80880000 -/* 001A0 80878860 4600103C */ c.lt.s $f2, $f0 -/* 001A4 80878864 00000000 */ nop -/* 001A8 80878868 45020023 */ bc1fl .L808788F8 -/* 001AC 8087886C 8FBF0014 */ lw $ra, 0x0014($sp) -/* 001B0 80878870 C42A8BAC */ lwc1 $f10, %lo(D_80878BAC)($at) -/* 001B4 80878874 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 001B8 80878878 460A003C */ c.lt.s $f0, $f10 -/* 001BC 8087887C 00000000 */ nop -/* 001C0 80878880 4502001D */ bc1fl .L808788F8 -/* 001C4 80878884 8FBF0014 */ lw $ra, 0x0014($sp) -/* 001C8 80878888 0C02FF21 */ jal func_800BFC84 -/* 001CC 8087888C AFA5001C */ sw $a1, 0x001C($sp) -/* 001D0 80878890 3C078016 */ lui $a3, 0x8016 ## $a3 = 80160000 -/* 001D4 80878894 24E7E660 */ addiu $a3, $a3, 0xE660 ## $a3 = 8015E660 -/* 001D8 80878898 14400016 */ bne $v0, $zero, .L808788F4 -/* 001DC 8087889C 8FA5001C */ lw $a1, 0x001C($sp) -/* 001E0 808788A0 3C020200 */ lui $v0, 0x0200 ## $v0 = 02000000 -/* 001E4 808788A4 24422640 */ addiu $v0, $v0, 0x2640 ## $v0 = 02002640 -/* 001E8 808788A8 00025900 */ sll $t3, $v0, 4 -/* 001EC 808788AC 000B6702 */ srl $t4, $t3, 28 -/* 001F0 808788B0 000C6880 */ sll $t5, $t4, 2 -/* 001F4 808788B4 3C0E8016 */ lui $t6, 0x8016 ## $t6 = 80160000 -/* 001F8 808788B8 01CD7021 */ addu $t6, $t6, $t5 -/* 001FC 808788BC 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000 -/* 00200 808788C0 8DCE6FA8 */ lw $t6, 0x6FA8($t6) ## 80166FA8 -/* 00204 808788C4 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF -/* 00208 808788C8 00417824 */ and $t7, $v0, $at -/* 0020C 808788CC 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 00210 808788D0 01CFC021 */ addu $t8, $t6, $t7 -/* 00214 808788D4 0301C821 */ addu $t9, $t8, $at -/* 00218 808788D8 ACB91D68 */ sw $t9, 0x1D68($a1) ## 00001D68 -/* 0021C 808788DC 8FAA0018 */ lw $t2, 0x0018($sp) -/* 00220 808788E0 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001 -/* 00224 808788E4 3C098088 */ lui $t1, %hi(func_80878904) ## $t1 = 80880000 -/* 00228 808788E8 A0E81414 */ sb $t0, 0x1414($a3) ## 8015FA74 -/* 0022C 808788EC 25298904 */ addiu $t1, $t1, %lo(func_80878904) ## $t1 = 80878904 -/* 00230 808788F0 AD490164 */ sw $t1, 0x0164($t2) ## 00000164 -.L808788F4: -/* 00234 808788F4 8FBF0014 */ lw $ra, 0x0014($sp) -.L808788F8: -/* 00238 808788F8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 0023C 808788FC 03E00008 */ jr $ra -/* 00240 80878900 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_80878904.s b/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_80878904.s deleted file mode 100644 index 6a5e058af3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_80878904.s +++ /dev/null @@ -1,34 +0,0 @@ -glabel func_80878904 -/* 00244 80878904 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00248 80878908 AFBF0014 */ sw $ra, 0x0014($sp) -/* 0024C 8087890C AFA40018 */ sw $a0, 0x0018($sp) -/* 00250 80878910 90AE1D6C */ lbu $t6, 0x1D6C($a1) ## 00001D6C -/* 00254 80878914 51C00015 */ beql $t6, $zero, .L8087896C -/* 00258 80878918 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0025C 8087891C 8CA21D94 */ lw $v0, 0x1D94($a1) ## 00001D94 -/* 00260 80878920 50400012 */ beql $v0, $zero, .L8087896C -/* 00264 80878924 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00268 80878928 944F0000 */ lhu $t7, 0x0000($v0) ## 00000000 -/* 0026C 8087892C 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 00270 80878930 3C188088 */ lui $t8, %hi(BgGjyoBridge_Draw) ## $t8 = 80880000 -/* 00274 80878934 15E1000C */ bne $t7, $at, .L80878968 -/* 00278 80878938 2718899C */ addiu $t8, $t8, %lo(BgGjyoBridge_Draw) ## $t8 = 8087899C -/* 0027C 8087893C AC980134 */ sw $t8, 0x0134($a0) ## 00000134 -/* 00280 80878940 8FA80018 */ lw $t0, 0x0018($sp) -/* 00284 80878944 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00288 80878948 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810 -/* 0028C 8087894C 0C00FB14 */ jal func_8003EC50 -/* 00290 80878950 8D06014C */ lw $a2, 0x014C($t0) ## 0000014C -/* 00294 80878954 3C028016 */ lui $v0, 0x8016 ## $v0 = 80160000 -/* 00298 80878958 2442E660 */ addiu $v0, $v0, 0xE660 ## $v0 = 8015E660 -/* 0029C 8087895C 94490EDC */ lhu $t1, 0x0EDC($v0) ## 8015F53C -/* 002A0 80878960 352A2000 */ ori $t2, $t1, 0x2000 ## $t2 = 00002000 -/* 002A4 80878964 A44A0EDC */ sh $t2, 0x0EDC($v0) ## 8015F53C -.L80878968: -/* 002A8 80878968 8FBF0014 */ lw $ra, 0x0014($sp) -.L8087896C: -/* 002AC 8087896C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 002B0 80878970 03E00008 */ jr $ra -/* 002B4 80878974 00000000 */ nop - - diff --git a/data/overlays/actors/z_bg_gjyo_bridge.data.s b/data/overlays/actors/z_bg_gjyo_bridge.data.s deleted file mode 100644 index 1cb203ec1f..0000000000 --- a/data/overlays/actors/z_bg_gjyo_bridge.data.s +++ /dev/null @@ -1,18 +0,0 @@ -.include "macro.inc" - - # assembler directives - .set noat # allow manual use of $at - .set noreorder # don't insert nops after branches - .set gp=64 # allow use of 64-bit general purposee registers - -.section .data - -glabel Bg_Gjyo_Bridge_InitVars - .word 0x01480600, 0x00000000, 0x01300000, 0x00000168 -.word BgGjyoBridge_Init -.word BgGjyoBridge_Destroy -.word BgGjyoBridge_Update -.word BgGjyoBridge_Draw -glabel D_80878B50 - .word 0xB0F80320, 0x48500064, 0x00000000, 0x00000000 - diff --git a/data/overlays/actors/z_bg_gjyo_bridge.rodata.s b/data/overlays/actors/z_bg_gjyo_bridge.rodata.s deleted file mode 100644 index 6dfaa6d8ab..0000000000 --- a/data/overlays/actors/z_bg_gjyo_bridge.rodata.s +++ /dev/null @@ -1,30 +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 purposee registers - -.section .rodata - -glabel D_80878B60 - - .asciz "../z_bg_gjyo_bridge.c" - .balign 4 - -glabel D_80878B78 - - .asciz "../z_bg_gjyo_bridge.c" - .balign 4 - -glabel D_80878B90 - - .asciz "../z_bg_gjyo_bridge.c" - .balign 4 - -glabel D_80878BA8 - .word 0x44A78000 -glabel D_80878BAC - .word 0x44CFC000 - - diff --git a/spec b/spec index 5c9f3c8cc7..6c77852af9 100644 --- a/spec +++ b/spec @@ -791,8 +791,6 @@ endseg beginseg name "ovl_Bg_Gjyo_Bridge" include "build/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.o" - include "build/data/overlays/actors/z_bg_gjyo_bridge.data.o" - include "build/data/overlays/actors/z_bg_gjyo_bridge.rodata.o" include "build/data/overlays/actors/z_bg_gjyo_bridge.reloc.o" endseg diff --git a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c index c9e781a478..03958b9d19 100644 --- a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c +++ b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c @@ -1,14 +1,22 @@ +/* + * File: z_bg_gjyo_bridge.c + * Overlay: ovl_Bg_Gjyo_Bridge + * Description: Rainbow Bridge outside Ganon's Castle + */ + #include "z_bg_gjyo_bridge.h" #define ROOM 0x00 #define FLAGS 0x00000000 -void BgGjyoBridge_Init(BgGjyoBridge* this, GlobalContext* globalCtx); -void BgGjyoBridge_Destroy(BgGjyoBridge* this, GlobalContext* globalCtx); -void BgGjyoBridge_Update(BgGjyoBridge* this, GlobalContext* globalCtx); -void BgGjyoBridge_Draw(BgGjyoBridge* this, GlobalContext* globalCtx); +static void BgGjyoBridge_Init(BgGjyoBridge* this, GlobalContext* globalCtx); +static void BgGjyoBridge_Destroy(BgGjyoBridge* this, GlobalContext* globalCtx); +static void BgGjyoBridge_Update(BgGjyoBridge* this, GlobalContext* globalCtx); +static void BgGjyoBridge_Draw(BgGjyoBridge* this, GlobalContext* globalCtx); +static void func_808787A4(BgGjyoBridge* this, GlobalContext* globalCtx); +static void func_808787B0(BgGjyoBridge* this, GlobalContext* globalCtx); +static void func_80878904(BgGjyoBridge* this, GlobalContext* globalCtx); -/* const ActorInit Bg_Gjyo_Bridge_InitVars = { ACTOR_BG_GJYO_BRIDGE, ACTORTYPE_PROP, @@ -21,17 +29,94 @@ const ActorInit Bg_Gjyo_Bridge_InitVars = { (ActorFunc)BgGjyoBridge_Update, (ActorFunc)BgGjyoBridge_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Init.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Destroy.s") +InitChainEntry initChain[] = { ICHAIN_F32(unk_F8, 800, ICHAIN_CONTINUE), + ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP) }; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_808787A4.s") +extern u32 D_06000600; +extern u32 D_06000DB8; +extern u32 D_02002640; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_808787B0.s") +void BgGjyoBridge_Init(BgGjyoBridge* this, GlobalContext* globalCtx) { + s32 pad; + DynaCollisionContext* dynaCollisionContext; + s32 local_c; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/func_80878904.s") + local_c = 0; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Update.s") + Actor_ProcessInitChain(&this->dyna, &initChain); + DynaPolyInfo_SetActorMove(this, 0); + DynaPolyInfo_Alloc(&D_06000DB8, &local_c); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Gjyo_Bridge/BgGjyoBridge_Draw.s") + dynaCollisionContext = &globalCtx->colCtx.dyna; + + this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, dynaCollisionContext, this, local_c); + + if (gSaveContext.event_chk_inf[4] & 0x2000) { + this->actionFunc = &func_808787A4; + } else { + this->dyna.actor.draw = 0; + func_8003EBF8(globalCtx, dynaCollisionContext, this->dyna.dynaPolyId); + this->actionFunc = &func_808787B0; + } +} + +void BgGjyoBridge_Destroy(BgGjyoBridge* this, GlobalContext* globalCtx) { + DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId); +} + +void func_808787A4(BgGjyoBridge* this, GlobalContext* globalCtx) { +} + +void func_808787B0(BgGjyoBridge* this, GlobalContext* globalCtx) { + Player* player = PLAYER; + + if ((gBitFlags[3] & gSaveContext.quest_items) && (gBitFlags[4] & gSaveContext.quest_items) && + (INV_CONTENT(ITEM_ARROW_LIGHT) == ITEM_ARROW_LIGHT) && (player->actor.posRot.pos.x > -70.0f) && + (player->actor.posRot.pos.x < 300.0f) && (player->actor.posRot.pos.y > 1340.0f) && + (player->actor.posRot.pos.z > 1340.0f) && (player->actor.posRot.pos.z < 1662.0f) && + (func_800BFC84(globalCtx) == 0)) { + globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_02002640); + gSaveContext.cutscene_trigger = 1; + this->actionFunc = &func_80878904; + } +} + +void func_80878904(BgGjyoBridge* this, GlobalContext* globalCtx) { + if ((globalCtx->csCtx.state != 0) && (globalCtx->csCtx.actorActions[2] != 0) && + (globalCtx->csCtx.actorActions[2]->action == 2)) { + this->dyna.actor.draw = &BgGjyoBridge_Draw; + func_8003EC50(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId); + gSaveContext.event_chk_inf[4] |= 0x2000; + } +} + +void BgGjyoBridge_Update(BgGjyoBridge* this, GlobalContext* globalCtx) { + this->actionFunc(&this->dyna.actor, globalCtx); +} + +void BgGjyoBridge_Draw(BgGjyoBridge* this, GlobalContext* globalCtx) { + s32 pad; + GraphicsContext* gfxCtx; + Gfx* gfxArr[4]; + + gfxCtx = globalCtx->state.gfxCtx; + + func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_bg_gjyo_bridge.c", 260); + func_80093D84(globalCtx->state.gfxCtx); + + gSPSegment(gfxCtx->polyXlu.p++, 8, + Draw_TexScroll(globalCtx->state.gfxCtx, globalCtx->gameplayFrames & 127, + globalCtx->gameplayFrames * -3 & 127, 32, 32)); + + gSPSegment(gfxCtx->polyXlu.p++, 9, + Draw_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, -globalCtx->gameplayFrames & 127, 32, 32, 1, 0, + globalCtx->gameplayFrames & 127, 32, 32)); + + gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_gjyo_bridge.c", 281), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + gSPDisplayList(gfxCtx->polyXlu.p++, &D_06000600); + + func_800C6B54(gfxArr, globalCtx->state.gfxCtx, "../z_bg_gjyo_bridge.c", 285); +} diff --git a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.h b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.h index 2ea2d90c08..8b74aac99e 100644 --- a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.h +++ b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.h @@ -5,8 +5,8 @@ #include typedef struct { - /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x1C]; + /* 0x0000 */ DynaPolyActor dyna; + /* 0x0164 */ ActorFunc actionFunc; } BgGjyoBridge; // size = 0x0168 extern const ActorInit Bg_Gjyo_Bridge_InitVars; From 1b347f247a092425a1beeb3fb5fd10c13df7eb24 Mon Sep 17 00:00:00 2001 From: zelda2773 Date: Thu, 26 Mar 2020 10:15:13 -0400 Subject: [PATCH 2/3] Made suggested changes --- data/overlays/actors/z_bg_gjyo_bridge.reloc.s | 11 ------- .../ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c | 30 ++++++++++--------- 2 files changed, 16 insertions(+), 25 deletions(-) delete mode 100644 data/overlays/actors/z_bg_gjyo_bridge.reloc.s diff --git a/data/overlays/actors/z_bg_gjyo_bridge.reloc.s b/data/overlays/actors/z_bg_gjyo_bridge.reloc.s deleted file mode 100644 index 8fe13e8eab..0000000000 --- a/data/overlays/actors/z_bg_gjyo_bridge.reloc.s +++ /dev/null @@ -1,11 +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 purposee registers - -.section .rodata -glabel D_80878BB0 - -.incbin "baserom/ovl_Bg_Gjyo_Bridge", 0x4F0, 0x00000080 diff --git a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c index 03958b9d19..109a489427 100644 --- a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c +++ b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c @@ -14,8 +14,8 @@ static void BgGjyoBridge_Destroy(BgGjyoBridge* this, GlobalContext* globalCtx); static void BgGjyoBridge_Update(BgGjyoBridge* this, GlobalContext* globalCtx); static void BgGjyoBridge_Draw(BgGjyoBridge* this, GlobalContext* globalCtx); static void func_808787A4(BgGjyoBridge* this, GlobalContext* globalCtx); -static void func_808787B0(BgGjyoBridge* this, GlobalContext* globalCtx); -static void func_80878904(BgGjyoBridge* this, GlobalContext* globalCtx); +static void BgGjyoBridge_TriggerCutscene(BgGjyoBridge* this, GlobalContext* globalCtx); +static void BgGjyoBridge_SpawnBridge(BgGjyoBridge* this, GlobalContext* globalCtx); const ActorInit Bg_Gjyo_Bridge_InitVars = { ACTOR_BG_GJYO_BRIDGE, @@ -30,12 +30,14 @@ const ActorInit Bg_Gjyo_Bridge_InitVars = { (ActorFunc)BgGjyoBridge_Draw, }; -InitChainEntry initChain[] = { ICHAIN_F32(unk_F8, 800, ICHAIN_CONTINUE), - ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP) }; +InitChainEntry initChain[] = { + ICHAIN_F32(unk_F8, 800, ICHAIN_CONTINUE), + ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP), +}; -extern u32 D_06000600; -extern u32 D_06000DB8; -extern u32 D_02002640; +extern UNK_TYPE D_06000600; +extern UNK_TYPE D_06000DB8; +extern UNK_TYPE D_02002640; void BgGjyoBridge_Init(BgGjyoBridge* this, GlobalContext* globalCtx) { s32 pad; @@ -53,11 +55,11 @@ void BgGjyoBridge_Init(BgGjyoBridge* this, GlobalContext* globalCtx) { this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, dynaCollisionContext, this, local_c); if (gSaveContext.event_chk_inf[4] & 0x2000) { - this->actionFunc = &func_808787A4; + this->actionFunc = func_808787A4; } else { - this->dyna.actor.draw = 0; + this->dyna.actor.draw = NULL; func_8003EBF8(globalCtx, dynaCollisionContext, this->dyna.dynaPolyId); - this->actionFunc = &func_808787B0; + this->actionFunc = BgGjyoBridge_TriggerCutscene; } } @@ -68,7 +70,7 @@ void BgGjyoBridge_Destroy(BgGjyoBridge* this, GlobalContext* globalCtx) { void func_808787A4(BgGjyoBridge* this, GlobalContext* globalCtx) { } -void func_808787B0(BgGjyoBridge* this, GlobalContext* globalCtx) { +void BgGjyoBridge_TriggerCutscene(BgGjyoBridge* this, GlobalContext* globalCtx) { Player* player = PLAYER; if ((gBitFlags[3] & gSaveContext.quest_items) && (gBitFlags[4] & gSaveContext.quest_items) && @@ -78,12 +80,12 @@ void func_808787B0(BgGjyoBridge* this, GlobalContext* globalCtx) { (func_800BFC84(globalCtx) == 0)) { globalCtx->csCtx.segment = SEGMENTED_TO_VIRTUAL(&D_02002640); gSaveContext.cutscene_trigger = 1; - this->actionFunc = &func_80878904; + this->actionFunc = BgGjyoBridge_SpawnBridge; } } -void func_80878904(BgGjyoBridge* this, GlobalContext* globalCtx) { - if ((globalCtx->csCtx.state != 0) && (globalCtx->csCtx.actorActions[2] != 0) && +void BgGjyoBridge_SpawnBridge(BgGjyoBridge* this, GlobalContext* globalCtx) { + if ((globalCtx->csCtx.state != 0) && (globalCtx->csCtx.actorActions[2] != NULL) && (globalCtx->csCtx.actorActions[2]->action == 2)) { this->dyna.actor.draw = &BgGjyoBridge_Draw; func_8003EC50(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId); From 55e1b3af7adad274445e9b9a905f7f3d8d38b3d8 Mon Sep 17 00:00:00 2001 From: zelda2773 Date: Thu, 26 Mar 2020 10:45:08 -0400 Subject: [PATCH 3/3] Fixed missing reloc --- spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec b/spec index 6c77852af9..bdf845a888 100644 --- a/spec +++ b/spec @@ -791,7 +791,7 @@ endseg beginseg name "ovl_Bg_Gjyo_Bridge" include "build/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.o" - include "build/data/overlays/actors/z_bg_gjyo_bridge.reloc.o" + include "build/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge_reloc.o" endseg beginseg