From 7376fe5cad441ab6635d05dd017a7f3ce79e3916 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 24 Mar 2020 21:42:07 -0400 Subject: [PATCH] Decompiled ovl_Bg_Spot12_Gate --- .../ovl_Bg_Spot12_Gate/BgSpot12Gate_Destroy.s | 16 --- .../ovl_Bg_Spot12_Gate/BgSpot12Gate_Draw.s | 17 --- .../ovl_Bg_Spot12_Gate/BgSpot12Gate_Init.s | 37 ----- .../ovl_Bg_Spot12_Gate/BgSpot12Gate_Update.s | 17 --- .../actors/ovl_Bg_Spot12_Gate/func_808B2F90.s | 42 ------ .../actors/ovl_Bg_Spot12_Gate/func_808B30C0.s | 9 -- .../actors/ovl_Bg_Spot12_Gate/func_808B30D8.s | 28 ---- .../actors/ovl_Bg_Spot12_Gate/func_808B3134.s | 9 -- .../actors/ovl_Bg_Spot12_Gate/func_808B314C.s | 16 --- .../actors/ovl_Bg_Spot12_Gate/func_808B317C.s | 7 - .../actors/ovl_Bg_Spot12_Gate/func_808B318C.s | 66 --------- .../actors/ovl_Bg_Spot12_Gate/func_808B3274.s | 12 -- .../actors/ovl_Bg_Spot12_Gate/func_808B3298.s | 6 - data/overlays/actors/z_bg_spot12_gate.data.s | 18 --- data/overlays/actors/z_bg_spot12_gate.reloc.s | 11 -- .../overlays/actors/z_bg_spot12_gate.rodata.s | 17 --- spec | 4 +- .../ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c | 136 +++++++++++++++--- .../ovl_Bg_Spot12_Gate/z_bg_spot12_gate.h | 5 +- undefined_syms.txt | 4 + 20 files changed, 125 insertions(+), 352 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B2F90.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B30C0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B30D8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3134.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B314C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B317C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B318C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3274.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3298.s delete mode 100644 data/overlays/actors/z_bg_spot12_gate.data.s delete mode 100644 data/overlays/actors/z_bg_spot12_gate.reloc.s delete mode 100644 data/overlays/actors/z_bg_spot12_gate.rodata.s diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Destroy.s deleted file mode 100644 index 34d4e0f551..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Destroy.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel BgSpot12Gate_Destroy -/* 00100 808B3090 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00104 808B3094 AFA40018 */ sw $a0, 0x0018($sp) -/* 00108 808B3098 8FAE0018 */ lw $t6, 0x0018($sp) -/* 0010C 808B309C AFBF0014 */ sw $ra, 0x0014($sp) -/* 00110 808B30A0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00114 808B30A4 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810 -/* 00118 808B30A8 0C00FB56 */ jal DynaPolyInfo_Free - ## DynaPolyInfo_delReserve -/* 0011C 808B30AC 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C -/* 00120 808B30B0 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00124 808B30B4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00128 808B30B8 03E00008 */ jr $ra -/* 0012C 808B30BC 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Draw.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Draw.s deleted file mode 100644 index 34a49ac654..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Draw.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel BgSpot12Gate_Draw -/* 00348 808B32D8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0034C 808B32DC AFA40018 */ sw $a0, 0x0018($sp) -/* 00350 808B32E0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00354 808B32E4 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00358 808B32E8 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000 -/* 0035C 808B32EC 0C00D498 */ jal Draw_DListOpa - -/* 00360 808B32F0 24A51080 */ addiu $a1, $a1, 0x1080 ## $a1 = 06001080 -/* 00364 808B32F4 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00368 808B32F8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 0036C 808B32FC 03E00008 */ jr $ra -/* 00370 808B3300 00000000 */ nop -/* 00374 808B3304 00000000 */ nop -/* 00378 808B3308 00000000 */ nop -/* 0037C 808B330C 00000000 */ nop - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Init.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Init.s deleted file mode 100644 index f77f5a919c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Init.s +++ /dev/null @@ -1,37 +0,0 @@ -glabel BgSpot12Gate_Init -/* 00088 808B3018 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 0008C 808B301C AFBF001C */ sw $ra, 0x001C($sp) -/* 00090 808B3020 AFB00018 */ sw $s0, 0x0018($sp) -/* 00094 808B3024 3C060600 */ lui $a2, 0x0600 ## $a2 = 06000000 -/* 00098 808B3028 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 0009C 808B302C AFA50024 */ sw $a1, 0x0024($sp) -/* 000A0 808B3030 24C611EC */ addiu $a2, $a2, 0x11EC ## $a2 = 060011EC -/* 000A4 808B3034 0C22CBE4 */ jal func_808B2F90 -/* 000A8 808B3038 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 000AC 808B303C 3C05808B */ lui $a1, %hi(D_808B3330) ## $a1 = 808B0000 -/* 000B0 808B3040 24A53330 */ addiu $a1, $a1, %lo(D_808B3330) ## $a1 = 808B3330 -/* 000B4 808B3044 0C01E037 */ jal Actor_ProcessInitChain - -/* 000B8 808B3048 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 000BC 808B304C 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 000C0 808B3050 8FA40024 */ lw $a0, 0x0024($sp) -/* 000C4 808B3054 0C00B2D0 */ jal Flags_GetSwitch - -/* 000C8 808B3058 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000 -/* 000CC 808B305C 10400005 */ beq $v0, $zero, .L808B3074 -/* 000D0 808B3060 00000000 */ nop -/* 000D4 808B3064 0C22CC9D */ jal func_808B3274 -/* 000D8 808B3068 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 000DC 808B306C 10000004 */ beq $zero, $zero, .L808B3080 -/* 000E0 808B3070 8FBF001C */ lw $ra, 0x001C($sp) -.L808B3074: -/* 000E4 808B3074 0C22CC30 */ jal func_808B30C0 -/* 000E8 808B3078 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 000EC 808B307C 8FBF001C */ lw $ra, 0x001C($sp) -.L808B3080: -/* 000F0 808B3080 8FB00018 */ lw $s0, 0x0018($sp) -/* 000F4 808B3084 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 000F8 808B3088 03E00008 */ jr $ra -/* 000FC 808B308C 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Update.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Update.s deleted file mode 100644 index 275228c3e3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Update.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel BgSpot12Gate_Update -/* 00314 808B32A4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00318 808B32A8 AFBF0014 */ sw $ra, 0x0014($sp) -/* 0031C 808B32AC 84820168 */ lh $v0, 0x0168($a0) ## 00000168 -/* 00320 808B32B0 18400002 */ blez $v0, .L808B32BC -/* 00324 808B32B4 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF -/* 00328 808B32B8 A48E0168 */ sh $t6, 0x0168($a0) ## 00000168 -.L808B32BC: -/* 0032C 808B32BC 8C990164 */ lw $t9, 0x0164($a0) ## 00000164 -/* 00330 808B32C0 0320F809 */ jalr $ra, $t9 -/* 00334 808B32C4 00000000 */ nop -/* 00338 808B32C8 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0033C 808B32CC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00340 808B32D0 03E00008 */ jr $ra -/* 00344 808B32D4 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B2F90.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B2F90.s deleted file mode 100644 index b4aa10b68f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B2F90.s +++ /dev/null @@ -1,42 +0,0 @@ -glabel func_808B2F90 -/* 00000 808B2F90 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00004 808B2F94 AFBF0024 */ sw $ra, 0x0024($sp) -/* 00008 808B2F98 AFB00020 */ sw $s0, 0x0020($sp) -/* 0000C 808B2F9C AFA5003C */ sw $a1, 0x003C($sp) -/* 00010 808B2FA0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00014 808B2FA4 AFA60040 */ sw $a2, 0x0040($sp) -/* 00018 808B2FA8 AFA00030 */ sw $zero, 0x0030($sp) -/* 0001C 808B2FAC 0C010D20 */ jal DynaPolyInfo_SetActorMove - -/* 00020 808B2FB0 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000 -/* 00024 808B2FB4 8FA40040 */ lw $a0, 0x0040($sp) -/* 00028 808B2FB8 0C010620 */ jal DynaPolyInfo_Alloc - -/* 0002C 808B2FBC 27A50030 */ addiu $a1, $sp, 0x0030 ## $a1 = FFFFFFF8 -/* 00030 808B2FC0 8FA4003C */ lw $a0, 0x003C($sp) -/* 00034 808B2FC4 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 00038 808B2FC8 8FA70030 */ lw $a3, 0x0030($sp) -/* 0003C 808B2FCC 0C00FA9D */ jal DynaPolyInfo_RegisterActor - ## DynaPolyInfo_setActor -/* 00040 808B2FD0 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810 -/* 00044 808B2FD4 24010032 */ addiu $at, $zero, 0x0032 ## $at = 00000032 -/* 00048 808B2FD8 1441000A */ bne $v0, $at, .L808B3004 -/* 0004C 808B2FDC AE02014C */ sw $v0, 0x014C($s0) ## 0000014C -/* 00050 808B2FE0 860E001C */ lh $t6, 0x001C($s0) ## 0000001C -/* 00054 808B2FE4 3C04808B */ lui $a0, %hi(D_808B3340) ## $a0 = 808B0000 -/* 00058 808B2FE8 3C05808B */ lui $a1, %hi(D_808B3380) ## $a1 = 808B0000 -/* 0005C 808B2FEC 86070000 */ lh $a3, 0x0000($s0) ## 00000000 -/* 00060 808B2FF0 24A53380 */ addiu $a1, $a1, %lo(D_808B3380) ## $a1 = 808B3380 -/* 00064 808B2FF4 24843340 */ addiu $a0, $a0, %lo(D_808B3340) ## $a0 = 808B3340 -/* 00068 808B2FF8 24060091 */ addiu $a2, $zero, 0x0091 ## $a2 = 00000091 -/* 0006C 808B2FFC 0C00084C */ jal osSyncPrintf - -/* 00070 808B3000 AFAE0010 */ sw $t6, 0x0010($sp) -.L808B3004: -/* 00074 808B3004 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00078 808B3008 8FB00020 */ lw $s0, 0x0020($sp) -/* 0007C 808B300C 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 00080 808B3010 03E00008 */ jr $ra -/* 00084 808B3014 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B30C0.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B30C0.s deleted file mode 100644 index 661b051144..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B30C0.s +++ /dev/null @@ -1,9 +0,0 @@ -glabel func_808B30C0 -/* 00130 808B30C0 C484000C */ lwc1 $f4, 0x000C($a0) ## 0000000C -/* 00134 808B30C4 3C0E808B */ lui $t6, %hi(func_808B30D8) ## $t6 = 808B0000 -/* 00138 808B30C8 25CE30D8 */ addiu $t6, $t6, %lo(func_808B30D8) ## $t6 = 808B30D8 -/* 0013C 808B30CC AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164 -/* 00140 808B30D0 03E00008 */ jr $ra -/* 00144 808B30D4 E4840028 */ swc1 $f4, 0x0028($a0) ## 00000028 - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B30D8.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B30D8.s deleted file mode 100644 index da55ab1c17..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B30D8.s +++ /dev/null @@ -1,28 +0,0 @@ -glabel func_808B30D8 -/* 00148 808B30D8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 0014C 808B30DC AFA40020 */ sw $a0, 0x0020($sp) -/* 00150 808B30E0 8FAE0020 */ lw $t6, 0x0020($sp) -/* 00154 808B30E4 AFBF001C */ sw $ra, 0x001C($sp) -/* 00158 808B30E8 AFA50024 */ sw $a1, 0x0024($sp) -/* 0015C 808B30EC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00160 808B30F0 85C5001C */ lh $a1, 0x001C($t6) ## 0000001C -/* 00164 808B30F4 0C00B2D0 */ jal Flags_GetSwitch - -/* 00168 808B30F8 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000 -/* 0016C 808B30FC 5040000A */ beql $v0, $zero, .L808B3128 -/* 00170 808B3100 8FBF001C */ lw $ra, 0x001C($sp) -/* 00174 808B3104 0C22CC4D */ jal func_808B3134 -/* 00178 808B3108 8FA40020 */ lw $a0, 0x0020($sp) -/* 0017C 808B310C 8FA40024 */ lw $a0, 0x0024($sp) -/* 00180 808B3110 24051040 */ addiu $a1, $zero, 0x1040 ## $a1 = 00001040 -/* 00184 808B3114 2406FF9D */ addiu $a2, $zero, 0xFF9D ## $a2 = FFFFFF9D -/* 00188 808B3118 8FA70020 */ lw $a3, 0x0020($sp) -/* 0018C 808B311C 0C02003E */ jal func_800800F8 -/* 00190 808B3120 AFA00010 */ sw $zero, 0x0010($sp) -/* 00194 808B3124 8FBF001C */ lw $ra, 0x001C($sp) -.L808B3128: -/* 00198 808B3128 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 0019C 808B312C 03E00008 */ jr $ra -/* 001A0 808B3130 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3134.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3134.s deleted file mode 100644 index 0d71903ec2..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3134.s +++ /dev/null @@ -1,9 +0,0 @@ -glabel func_808B3134 -/* 001A4 808B3134 3C0E808B */ lui $t6, %hi(func_808B314C) ## $t6 = 808B0000 -/* 001A8 808B3138 25CE314C */ addiu $t6, $t6, %lo(func_808B314C) ## $t6 = 808B314C -/* 001AC 808B313C 240F0028 */ addiu $t7, $zero, 0x0028 ## $t7 = 00000028 -/* 001B0 808B3140 AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164 -/* 001B4 808B3144 03E00008 */ jr $ra -/* 001B8 808B3148 A48F0168 */ sh $t7, 0x0168($a0) ## 00000168 - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B314C.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B314C.s deleted file mode 100644 index a6831e2823..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B314C.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel func_808B314C -/* 001BC 808B314C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 001C0 808B3150 AFBF0014 */ sw $ra, 0x0014($sp) -/* 001C4 808B3154 AFA5001C */ sw $a1, 0x001C($sp) -/* 001C8 808B3158 848E0168 */ lh $t6, 0x0168($a0) ## 00000168 -/* 001CC 808B315C 5DC00004 */ bgtzl $t6, .L808B3170 -/* 001D0 808B3160 8FBF0014 */ lw $ra, 0x0014($sp) -/* 001D4 808B3164 0C22CC5F */ jal func_808B317C -/* 001D8 808B3168 00000000 */ nop -/* 001DC 808B316C 8FBF0014 */ lw $ra, 0x0014($sp) -.L808B3170: -/* 001E0 808B3170 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 001E4 808B3174 03E00008 */ jr $ra -/* 001E8 808B3178 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B317C.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B317C.s deleted file mode 100644 index 2fd18e3ea3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B317C.s +++ /dev/null @@ -1,7 +0,0 @@ -glabel func_808B317C -/* 001EC 808B317C 3C0E808B */ lui $t6, %hi(func_808B318C) ## $t6 = 808B0000 -/* 001F0 808B3180 25CE318C */ addiu $t6, $t6, %lo(func_808B318C) ## $t6 = 808B318C -/* 001F4 808B3184 03E00008 */ jr $ra -/* 001F8 808B3188 AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164 - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B318C.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B318C.s deleted file mode 100644 index 143ee7731f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B318C.s +++ /dev/null @@ -1,66 +0,0 @@ -glabel func_808B318C -/* 001FC 808B318C 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00200 808B3190 AFB00020 */ sw $s0, 0x0020($sp) -/* 00204 808B3194 AFA5003C */ sw $a1, 0x003C($sp) -/* 00208 808B3198 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 0020C 808B319C AFBF0024 */ sw $ra, 0x0024($sp) -/* 00210 808B31A0 3C053FCC */ lui $a1, 0x3FCC ## $a1 = 3FCC0000 -/* 00214 808B31A4 3C063CF5 */ lui $a2, 0x3CF5 ## $a2 = 3CF50000 -/* 00218 808B31A8 34C6C28F */ ori $a2, $a2, 0xC28F ## $a2 = 3CF5C28F -/* 0021C 808B31AC 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3FCCCCCD -/* 00220 808B31B0 0C01DE80 */ jal Math_ApproxF - -/* 00224 808B31B4 24840060 */ addiu $a0, $a0, 0x0060 ## $a0 = 00000060 -/* 00228 808B31B8 3C014348 */ lui $at, 0x4348 ## $at = 43480000 -/* 0022C 808B31BC 44813000 */ mtc1 $at, $f6 ## $f6 = 200.00 -/* 00230 808B31C0 C604000C */ lwc1 $f4, 0x000C($s0) ## 0000000C -/* 00234 808B31C4 26040028 */ addiu $a0, $s0, 0x0028 ## $a0 = 00000028 -/* 00238 808B31C8 8E060060 */ lw $a2, 0x0060($s0) ## 00000060 -/* 0023C 808B31CC 46062200 */ add.s $f8, $f4, $f6 -/* 00240 808B31D0 44054000 */ mfc1 $a1, $f8 -/* 00244 808B31D4 0C01DE80 */ jal Math_ApproxF - -/* 00248 808B31D8 00000000 */ nop -/* 0024C 808B31DC 1040001E */ beq $v0, $zero, .L808B3258 -/* 00250 808B31E0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00254 808B31E4 0C22CC9D */ jal func_808B3274 -/* 00258 808B31E8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0025C 808B31EC 8FA2003C */ lw $v0, 0x003C($sp) -/* 00260 808B31F0 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003 -/* 00264 808B31F4 844E07A0 */ lh $t6, 0x07A0($v0) ## 000007A0 -/* 00268 808B31F8 000E7880 */ sll $t7, $t6, 2 -/* 0026C 808B31FC 004FC021 */ addu $t8, $v0, $t7 -/* 00270 808B3200 0C024BE2 */ jal func_80092F88 -/* 00274 808B3204 8F040790 */ lw $a0, 0x0790($t8) ## 00000790 -/* 00278 808B3208 00022400 */ sll $a0, $v0, 16 -/* 0027C 808B320C AFA20030 */ sw $v0, 0x0030($sp) -/* 00280 808B3210 00042403 */ sra $a0, $a0, 16 -/* 00284 808B3214 0C024B6B */ jal func_80092DAC -/* 00288 808B3218 2405C350 */ addiu $a1, $zero, 0xC350 ## $a1 = FFFFC350 -/* 0028C 808B321C 87A40032 */ lh $a0, 0x0032($sp) -/* 00290 808B3220 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003 -/* 00294 808B3224 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 00298 808B3228 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 0029C 808B322C AFA00010 */ sw $zero, 0x0010($sp) -/* 002A0 808B3230 0C024B9C */ jal func_80092E70 -/* 002A4 808B3234 AFA4002C */ sw $a0, 0x002C($sp) -/* 002A8 808B3238 8FA4002C */ lw $a0, 0x002C($sp) -/* 002AC 808B323C 0C024B7C */ jal func_80092DF0 -/* 002B0 808B3240 2405000C */ addiu $a1, $zero, 0x000C ## $a1 = 0000000C -/* 002B4 808B3244 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 002B8 808B3248 0C00BE0A */ jal Audio_PlayActorSound2 - -/* 002BC 808B324C 2405280E */ addiu $a1, $zero, 0x280E ## $a1 = 0000280E -/* 002C0 808B3250 10000004 */ beq $zero, $zero, .L808B3264 -/* 002C4 808B3254 8FBF0024 */ lw $ra, 0x0024($sp) -.L808B3258: -/* 002C8 808B3258 0C00BE5D */ jal func_8002F974 -/* 002CC 808B325C 24052067 */ addiu $a1, $zero, 0x2067 ## $a1 = 00002067 -/* 002D0 808B3260 8FBF0024 */ lw $ra, 0x0024($sp) -.L808B3264: -/* 002D4 808B3264 8FB00020 */ lw $s0, 0x0020($sp) -/* 002D8 808B3268 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 002DC 808B326C 03E00008 */ jr $ra -/* 002E0 808B3270 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3274.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3274.s deleted file mode 100644 index 12c439236c..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3274.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel func_808B3274 -/* 002E4 808B3274 3C014348 */ lui $at, 0x4348 ## $at = 43480000 -/* 002E8 808B3278 44813000 */ mtc1 $at, $f6 ## $f6 = 200.00 -/* 002EC 808B327C C484000C */ lwc1 $f4, 0x000C($a0) ## 0000000C -/* 002F0 808B3280 3C0E808B */ lui $t6, %hi(func_808B3298) ## $t6 = 808B0000 -/* 002F4 808B3284 25CE3298 */ addiu $t6, $t6, %lo(func_808B3298) ## $t6 = 808B3298 -/* 002F8 808B3288 46062200 */ add.s $f8, $f4, $f6 -/* 002FC 808B328C AC8E0164 */ sw $t6, 0x0164($a0) ## 00000164 -/* 00300 808B3290 03E00008 */ jr $ra -/* 00304 808B3294 E4880028 */ swc1 $f8, 0x0028($a0) ## 00000028 - - diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3298.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3298.s deleted file mode 100644 index e019848f93..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3298.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel func_808B3298 -/* 00308 808B3298 AFA40000 */ sw $a0, 0x0000($sp) -/* 0030C 808B329C 03E00008 */ jr $ra -/* 00310 808B32A0 AFA50004 */ sw $a1, 0x0004($sp) - - diff --git a/data/overlays/actors/z_bg_spot12_gate.data.s b/data/overlays/actors/z_bg_spot12_gate.data.s deleted file mode 100644 index 8eda552b04..0000000000 --- a/data/overlays/actors/z_bg_spot12_gate.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_Spot12_Gate_InitVars - .word 0x01900100, 0x00000000, 0x01620000, 0x0000016C -.word BgSpot12Gate_Init -.word BgSpot12Gate_Destroy -.word BgSpot12Gate_Update -.word BgSpot12Gate_Draw -glabel D_808B3330 - .word 0xC8500064, 0xB0F409C4, 0xB0F801F4, 0x30FC04B0 - diff --git a/data/overlays/actors/z_bg_spot12_gate.reloc.s b/data/overlays/actors/z_bg_spot12_gate.reloc.s deleted file mode 100644 index 978444c5bd..0000000000 --- a/data/overlays/actors/z_bg_spot12_gate.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_808B33A0 - -.incbin "baserom/ovl_Bg_Spot12_Gate", 0x410, 0x00000080 diff --git a/data/overlays/actors/z_bg_spot12_gate.rodata.s b/data/overlays/actors/z_bg_spot12_gate.rodata.s deleted file mode 100644 index cd8c467d28..0000000000 --- a/data/overlays/actors/z_bg_spot12_gate.rodata.s +++ /dev/null @@ -1,17 +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_808B3340 - .asciz "Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n" - .balign 4 - -glabel D_808B3380 - .word 0x2E2E2F7A, 0x5F62675F, 0x73706F74, 0x31325F67, 0x6174652E, 0x63000000, 0x00000000, 0x00000000 - - diff --git a/spec b/spec index 7ec58264da..774a935a27 100644 --- a/spec +++ b/spec @@ -1478,9 +1478,7 @@ endseg beginseg name "ovl_Bg_Spot12_Gate" include "build/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.o" - include "build/data/overlays/actors/z_bg_spot12_gate.data.o" - include "build/data/overlays/actors/z_bg_spot12_gate.rodata.o" - include "build/data/overlays/actors/z_bg_spot12_gate.reloc.o" + include "build/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c b/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c index 65f8e8ef02..f8a190be0b 100644 --- a/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c +++ b/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c @@ -1,14 +1,28 @@ +/* + * File: z_bg_spot12_gate.c + * Overlay: Bg_Spot12_Gate + * Description: + */ + #include "z_bg_spot12_gate.h" #define ROOM 0x00 #define FLAGS 0x00000000 -void BgSpot12Gate_Init(BgSpot12Gate* this, GlobalContext* globalCtx); -void BgSpot12Gate_Destroy(BgSpot12Gate* this, GlobalContext* globalCtx); -void BgSpot12Gate_Update(BgSpot12Gate* this, GlobalContext* globalCtx); -void BgSpot12Gate_Draw(BgSpot12Gate* this, GlobalContext* globalCtx); +static void BgSpot12Gate_Init(BgSpot12Gate* this, GlobalContext* globalCtx); +static void BgSpot12Gate_Destroy(BgSpot12Gate* this, GlobalContext* globalCtx); +static void BgSpot12Gate_Update(BgSpot12Gate* this, GlobalContext* globalCtx); +static void BgSpot12Gate_Draw(BgSpot12Gate* this, GlobalContext* globalCtx); + +static void func_808B30C0(BgSpot12Gate* this); +static void func_808B30D8(BgSpot12Gate* this, GlobalContext* globalCtx); +static void func_808B3134(BgSpot12Gate* this); +static void func_808B314C(BgSpot12Gate* this, GlobalContext* globalCtx); +static void func_808B317C(BgSpot12Gate* this); +static void func_808B318C(BgSpot12Gate* this, GlobalContext* globalCtx); +static void func_808B3274(BgSpot12Gate* this); +static void func_808B3298(BgSpot12Gate* this, GlobalContext* globalCtx); -/* const ActorInit Bg_Spot12_Gate_InitVars = { ACTOR_BG_SPOT12_GATE, ACTORTYPE_BG, @@ -21,29 +35,113 @@ const ActorInit Bg_Spot12_Gate_InitVars = { (ActorFunc)BgSpot12Gate_Update, (ActorFunc)BgSpot12Gate_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B2F90.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Init.s") +static InitChainEntry initChain[] = { + ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_CONTINUE), + ICHAIN_F32(unk_F4, 2500, ICHAIN_CONTINUE), + ICHAIN_F32(unk_F8, 500, ICHAIN_CONTINUE), + ICHAIN_F32(unk_FC, 1200, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Destroy.s") +extern UNK_TYPE D_06001080; +extern UNK_TYPE D_060011EC; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B30C0.s") +static void func_808B2F90(BgSpot12Gate* this, GlobalContext* globalCtx, UNK_TYPE collision, DynaPolyMoveFlag flags) { + Actor* thisx = &this->dyna.actor; + s32 localC = 0; + s32 pad[2]; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B30D8.s") + DynaPolyInfo_SetActorMove(thisx, flags); + DynaPolyInfo_Alloc(collision, &localC); + this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, thisx, localC); + if (this->dyna.dynaPolyId == 0x32) { + osSyncPrintf("Warning : move BG 登録失敗(%s %d)(name %d)(arg_data 0x%04x)\n", "../z_bg_spot12_gate.c", 145, + thisx->id, thisx->params); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3134.s") +static void BgSpot12Gate_Init(BgSpot12Gate* this, GlobalContext* globalCtx) { + Actor* thisx = &this->dyna.actor; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B314C.s") + func_808B2F90(this, globalCtx, &D_060011EC, 0); + Actor_ProcessInitChain(thisx, initChain); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B317C.s") + if (Flags_GetSwitch(globalCtx, thisx->params & 0x3F)) { + func_808B3274(this); + } else { + func_808B30C0(this); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B318C.s") +static void BgSpot12Gate_Destroy(BgSpot12Gate* this, GlobalContext* globalCtx) { + DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3274.s") +static void func_808B30C0(BgSpot12Gate* this) { + Actor* thisx = &this->dyna.actor; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/func_808B3298.s") + this->actionFunc = (ActorFunc)func_808B30D8; + thisx->posRot.pos.y = thisx->initPosRot.pos.y; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Update.s") +static void func_808B30D8(BgSpot12Gate* this, GlobalContext* globalCtx) { + Actor* thisx = &this->dyna.actor; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot12_Gate/BgSpot12Gate_Draw.s") + if (Flags_GetSwitch(globalCtx, thisx->params & 0x3F)) { + func_808B3134(this); + func_800800F8(globalCtx, 0x1040, -0x63, thisx, 0); + } +} + +static void func_808B3134(BgSpot12Gate* this) { + this->actionFunc = (ActorFunc)func_808B314C; + this->unk_168 = 0x28; +} + +static void func_808B314C(BgSpot12Gate* this, GlobalContext* globalCtx) { + if (this->unk_168 <= 0) { + func_808B317C(this); + } +} + +static void func_808B317C(BgSpot12Gate* this) { + this->actionFunc = (ActorFunc)func_808B318C; +} + +static void func_808B318C(BgSpot12Gate* this, GlobalContext* globalCtx) { + Actor* thisx = &this->dyna.actor; + s32 var; + + Math_ApproxF(&thisx->velocity.y, 1.6f, 0.03f); + if (Math_ApproxF(&thisx->posRot.pos.y, thisx->initPosRot.pos.y + 200.0f, thisx->velocity.y)) { + func_808B3274(this); + var = func_80092F88(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0], 3); + func_80092DAC(var, -0x3CB0); + func_80092E70(var, 3, 0, 0, 0); + func_80092DF0(var, 0xC); + Audio_PlayActorSound2(thisx, NA_SE_EV_BRIDGE_OPEN_STOP); + } else { + func_8002F974(thisx, 0x2067); + } +} + +static void func_808B3274(BgSpot12Gate* this) { + Actor* thisx = &this->dyna.actor; + + this->actionFunc = (ActorFunc)func_808B3298; + thisx->posRot.pos.y = thisx->initPosRot.pos.y + 200.0f; +} + +static void func_808B3298(BgSpot12Gate* this, GlobalContext* globalCtx) { +} + +static void BgSpot12Gate_Update(BgSpot12Gate* this, GlobalContext* globalCtx) { + if (this->unk_168 > 0) { + this->unk_168 -= 1; + } + this->actionFunc(this, globalCtx); +} + +static void BgSpot12Gate_Draw(BgSpot12Gate* this, GlobalContext* globalCtx) { + Draw_DListOpa(globalCtx, &D_06001080); +} diff --git a/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.h b/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.h index 3a6d11ba25..9ba6dc086d 100644 --- a/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.h +++ b/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.h @@ -5,8 +5,9 @@ #include typedef struct { - /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x20]; + /* 0x0000 */ DynaPolyActor dyna; + /* 0x0164 */ ActorFunc actionFunc; + /* 0x0168 */ s16 unk_168; } BgSpot12Gate; // size = 0x016C extern const ActorInit Bg_Spot12_Gate_InitVars; diff --git a/undefined_syms.txt b/undefined_syms.txt index 80c6aaebd7..c90f13470b 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -152,6 +152,10 @@ DOOR_TOKI_COLLISION_DATA = 0x06007888; // z_bg_spot09_obj D_06008010 = 0x06008010; +// z_bg_spot12_gate +D_06001080 = 0x06001080; +D_060011EC = 0x060011EC; + // z_bg_spot18_futa DL_SPOT18_FUTA = 0x06000368; DL_SPOT18_FUTA2 = 0x06000150;