From 67467fd831d2928715835f8a389b4f464a0f9a7a Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Mon, 5 Sep 2022 22:50:19 +0200 Subject: [PATCH] Extract some data And split up subtasks and world events. --- asm/macros/scripts.inc | 2 +- ..._080A2BE4.inc => SyncPlayerToPlatform.inc} | 0 asm/non_matching/scroll/sub_08080CB4.inc | 4 +- asm/src/code_080043E8.s | 2 + assets/assets.json | 19361 ---------------- assets/gfx.json | 2178 +- data/animations/npc/bladeBrothers.s | 4 + data/animations/npc/kid.s | 1 + data/animations/npc/sturgeon.s | 14 +- .../spriteAnimations166.s} | 11 - data/animations/spriteAnimations322.s | 394 + data/const/collisionMatrix.s | 36 + data/const/enemyUtils.s | 29 - data/const/enterPortalSubtask.s | 32 - data/const/entity.s | 12 - data/const/fade.s | 9 - data/const/figurine_menu.s | 57 - data/const/fileselect_after.s | 63 - data/const/fileselect_before.s | 28 - data/const/game.s | 649 - data/const/game_2.s | 480 +- data/const/manager/enterRoomTextboxManager.s | 10 +- data/const/movement.s | 14 - data/const/npc/bladeBrothers.s | 76 - data/const/npc/dog.s | 80 - data/const/npc/forestMinish.s | 110 - data/const/npc/gorman.s | 40 - data/const/npc/guard.s | 19 - data/const/npc/kid.s | 61 - data/const/npc/postman.s | 286 - data/const/npc/sittingPerson.s | 60 - data/const/npc/sturgeon.s | 26 +- data/const/npcUtils.s | 14 - data/const/playerItem/playerItemBow.s | 9 - .../playerItem/playerItemCellOverwriteSet.s | 2 +- data/const/playerItem/playerItemShield.s | 34 - data/const/playerUtils.s | 198 - data/const/sub_08055E08.s | 16 - data/const/subtask.s | 338 +- data/const/subtask2.s | 151 - data/const/ui.s | 29 - data/gfx/gfx_and_palettes.s | 794 +- ...ceneOrchestratorGreatWhirlwindRevealed.inc | 4 +- .../cloudTops/script_Npc4EFirstCloud.inc | 2 +- .../cloudTops/script_Npc4EKinstoneFused.inc | 2 +- .../ezlo/script_Npc4EEzloCutscene.inc | 4 +- .../intro/script_Npc4EOutsideLinksHouse.inc | 2 +- .../script_Npc4EIntroAssembly.inc | 4 +- .../introBusinessScrub/script_080157AC.inc | 6 +- .../introCeremony/script_Npc4EMonsters.inc | 2 +- .../introTown/script_Npc4EIntroCastle.inc | 6 +- .../introTown/script_Npc4EIntroTown.inc | 10 +- .../kinstones/script_Npc4EFirstKinstone.inc | 2 +- ...script_CutsceneOrchestratorMinishVaati.inc | 4 +- ...cript_CutsceneOrchestratorVaatiAppears.inc | 10 +- .../outro/script_Npc4EFixedEverything.inc | 2 +- .../outro/script_Npc4EMinishPortalClosing.inc | 2 +- ...t_CutsceneOrchestratorTakeoverCutscene.inc | 10 +- ...ipt_CutsceneOrchestratorVaatiWithZelda.inc | 4 +- .../dhc/script_Npc4EAfterDefeatingV2.inc | 2 +- data/scripts/dhc/script_Vaati1Intro.inc | 4 +- ..._CutsceneOrchestratorAllBooksCollected.inc | 4 +- .../script_Npc4EFinalSwordRumble.inc | 8 +- .../sanctuary/script_Npc4ESanctuaryIntro.inc | 4 +- .../sanctuary/script_Npc4ESpawnTextBoard.inc | 4 +- .../sanctuary/script_Npc4EThirdSanctuary.inc | 2 +- data/scripts/unused/script_08016482.inc | 2 +- data/scripts/veilFalls/script_BigGoron3.inc | 6 +- include/beanstalkSubtask.h | 6 + include/color.h | 2 +- include/common.h | 19 +- include/cutscene.h | 23 + include/enemyUtils.h | 11 + include/enterPortalSubtask.h | 11 + include/entity.h | 6 +- include/figurineMenu.h | 32 + include/fileselect.h | 3 +- include/functions.h | 8 +- include/game.h | 62 +- include/global.h | 10 +- include/hitbox.h | 32 +- include/itemMetaData.h | 2 +- include/kinstone.h | 92 +- include/menu.h | 2 + include/pauseMenu.h | 43 + include/player.h | 8 +- include/room.h | 22 +- include/save.h | 26 +- include/script.h | 13 +- include/structures.h | 31 +- include/subtask.h | 70 +- include/subtask2.h | 12 + linker.ld | 137 +- src/beanstalkSubtask.c | 46 +- src/color.c | 144 +- src/common.c | 108 +- src/cutscene.c | 779 + src/data/figurineMenuData.c | 56 + src/data/hitbox.c | 138 + src/data/objPalettes.c | 132 + src/demo.c | 16 +- src/enemy.c | 32 +- src/enemy/chuchuBoss.c | 6 +- src/enemy/octorokBoss.c | 4 +- src/enemyUtils.c | 36 +- src/enterPortalSubtask.c | 138 +- src/entity.c | 16 +- src/fade.c | 7 +- src/fileselect.c | 295 +- src/game.c | 2496 +- src/gameData.c | 503 + src/gameOverTask.c | 240 + src/gameUtils.c | 945 + src/itemMetaData.c | 142 +- src/itemUtils.c | 591 + src/kinstone.c | 143 +- src/main.c | 2 +- src/manager/enterRoomTextboxManager.c | 33 +- src/manager/staticBackgroundManager.c | 4 +- src/manager/weatherChangeManager.c | 2 +- src/menu/{figurine_menu.c => figurineMenu.c} | 68 +- src/menu/{kinstone_menu.c => kinstoneMenu.c} | 32 +- src/{subtask2.c => menu/pauseMenu.c} | 1566 +- src/menu/pauseMenuScreen6.c | 276 + src/menu/pause_menu.c | 567 - src/movement.c | 45 +- src/npc/beedle.c | 4 +- src/npc/bladeBrothers.c | 217 +- src/npc/carpenter.c | 2 +- src/npc/castleMaid.c | 2 +- src/npc/dog.c | 185 +- src/npc/farmers.c | 6 +- src/npc/forestMinish.c | 524 +- src/npc/gorman.c | 87 +- src/npc/goron.c | 6 +- src/npc/guard.c | 240 +- src/npc/hurdyGurdyMan.c | 7 +- src/npc/kid.c | 204 +- src/npc/mama.c | 2 +- src/npc/melari.c | 4 +- src/npc/minishEzlo.c | 2 +- src/npc/mountainMinish.c | 6 +- src/npc/mutoh.c | 2 +- src/npc/npc58.c | 2 +- src/npc/percy.c | 2 +- src/npc/phonograph.c | 4 +- src/npc/postman.c | 173 +- src/npc/sittingPerson.c | 116 +- src/npc/smith.c | 6 +- src/npc/sturgeon.c | 38 +- src/npc/syrup.c | 4 +- src/npc/talon.c | 6 +- src/npc/tingleSiblings.c | 24 +- src/npc/townMinish.c | 2 +- src/npc/townsperson.c | 14 +- src/npc/windTribespeople.c | 7 +- src/npc/zelda.c | 24 +- src/npc/zeldaFollower.c | 29 +- src/npcUtils.c | 13 + src/object/angryStatue.c | 5 +- src/object/cameraTarget.c | 4 +- src/object/cutsceneMiscObject.c | 28 +- src/object/figurineDevice.c | 34 +- src/object/fileScreenObjects.c | 6 +- src/object/frozenOctorok.c | 2 +- src/object/gleerokParticle.c | 3 +- src/object/greatFairy.c | 4 +- src/object/kinstoneSpark.c | 2 +- src/object/lightRay.c | 20 +- src/object/linkHoldingItem.c | 8 +- src/object/lockedDoor.c | 2 +- src/object/minecart.c | 2 +- src/object/objectA.c | 2 +- src/object/pushableGrave.c | 4 +- src/object/warpPoint.c | 8 +- src/objectUtils.c | 16 +- src/physics.c | 26 +- src/playerItem/playerItemBow.c | 66 + src/playerItem/playerItemCellOverwriteSet.c | 4 + src/playerItem/playerItemGustJar.c | 6 +- src/playerItem/playerItemShield.c | 43 +- src/playerUtils.c | 266 +- src/projectile.c | 20 +- src/room.c | 3 +- src/roomInit.c | 20 +- src/save.c | 8 +- src/script.c | 22 +- src/scroll.c | 120 +- src/staffroll.c | 23 +- src/sub_08055E08.c | 36 - src/subtask.c | 1050 +- src/subtask/subtaskAuxCutscene.c | 157 + src/subtask/subtaskFastTravel.c | 191 + src/subtask/subtaskLocalMapHint.c | 96 + src/subtask/subtaskMapHint.c | 71 + src/subtask/subtaskWorldEvent.c | 103 + src/text.c | 64 +- src/title.c | 4 +- src/ui.c | 8 +- src/worldEvent/worldEvent0.c | 41 + src/worldEvent/worldEvent1.c | 54 + src/worldEvent/worldEvent10.c | 58 + src/worldEvent/worldEvent11.c | 45 + src/worldEvent/worldEvent12.c | 47 + src/worldEvent/worldEvent13.c | 39 + src/worldEvent/worldEvent14.c | 48 + src/worldEvent/worldEvent15.c | 56 + src/worldEvent/worldEvent16.c | 44 + src/worldEvent/worldEvent17.c | 161 + src/worldEvent/worldEvent19.c | 49 + src/worldEvent/worldEvent2.c | 65 + src/worldEvent/worldEvent20.c | 40 + src/worldEvent/worldEvent21.c | 39 + src/worldEvent/worldEvent22.c | 43 + src/worldEvent/worldEvent23.c | 37 + src/worldEvent/worldEvent24.c | 47 + src/worldEvent/worldEvent25.c | 71 + src/worldEvent/worldEvent3.c | 47 + src/worldEvent/worldEvent4.c | 62 + src/worldEvent/worldEvent5.c | 94 + src/worldEvent/worldEvent6.c | 66 + src/worldEvent/worldEvent7.c | 65 + src/worldEvent/worldEvent8.c | 58 + src/worldEvent/worldEvent9.c | 67 + 224 files changed, 13873 insertions(+), 28227 deletions(-) rename asm/non_matching/objectUtils/{sub_080A2BE4.inc => SyncPlayerToPlatform.inc} (100%) rename data/{const/objectUtils.s => animations/spriteAnimations166.s} (92%) create mode 100644 data/animations/spriteAnimations322.s create mode 100644 data/const/collisionMatrix.s delete mode 100644 data/const/enemyUtils.s delete mode 100644 data/const/enterPortalSubtask.s delete mode 100644 data/const/fade.s delete mode 100644 data/const/figurine_menu.s delete mode 100644 data/const/fileselect_after.s delete mode 100644 data/const/fileselect_before.s delete mode 100644 data/const/game.s delete mode 100644 data/const/movement.s delete mode 100644 data/const/npc/bladeBrothers.s delete mode 100644 data/const/npc/dog.s delete mode 100644 data/const/npc/forestMinish.s delete mode 100644 data/const/npc/gorman.s delete mode 100644 data/const/npc/kid.s delete mode 100644 data/const/npc/postman.s delete mode 100644 data/const/npc/sittingPerson.s delete mode 100644 data/const/npcUtils.s delete mode 100644 data/const/playerItem/playerItemBow.s delete mode 100644 data/const/playerItem/playerItemShield.s delete mode 100644 data/const/playerUtils.s delete mode 100644 data/const/sub_08055E08.s delete mode 100644 data/const/subtask2.s create mode 100644 include/cutscene.h create mode 100644 include/enemyUtils.h create mode 100644 include/enterPortalSubtask.h create mode 100644 include/figurineMenu.h create mode 100644 include/pauseMenu.h create mode 100644 include/subtask2.h create mode 100644 src/cutscene.c create mode 100644 src/data/figurineMenuData.c create mode 100644 src/data/hitbox.c create mode 100644 src/data/objPalettes.c create mode 100644 src/gameData.c create mode 100644 src/gameOverTask.c create mode 100644 src/gameUtils.c create mode 100644 src/itemUtils.c rename src/menu/{figurine_menu.c => figurineMenu.c} (95%) rename src/menu/{kinstone_menu.c => kinstoneMenu.c} (95%) rename src/{subtask2.c => menu/pauseMenu.c} (50%) create mode 100644 src/menu/pauseMenuScreen6.c delete mode 100644 src/menu/pause_menu.c delete mode 100644 src/sub_08055E08.c create mode 100644 src/subtask/subtaskAuxCutscene.c create mode 100644 src/subtask/subtaskFastTravel.c create mode 100644 src/subtask/subtaskLocalMapHint.c create mode 100644 src/subtask/subtaskMapHint.c create mode 100644 src/subtask/subtaskWorldEvent.c create mode 100644 src/worldEvent/worldEvent0.c create mode 100644 src/worldEvent/worldEvent1.c create mode 100644 src/worldEvent/worldEvent10.c create mode 100644 src/worldEvent/worldEvent11.c create mode 100644 src/worldEvent/worldEvent12.c create mode 100644 src/worldEvent/worldEvent13.c create mode 100644 src/worldEvent/worldEvent14.c create mode 100644 src/worldEvent/worldEvent15.c create mode 100644 src/worldEvent/worldEvent16.c create mode 100644 src/worldEvent/worldEvent17.c create mode 100644 src/worldEvent/worldEvent19.c create mode 100644 src/worldEvent/worldEvent2.c create mode 100644 src/worldEvent/worldEvent20.c create mode 100644 src/worldEvent/worldEvent21.c create mode 100644 src/worldEvent/worldEvent22.c create mode 100644 src/worldEvent/worldEvent23.c create mode 100644 src/worldEvent/worldEvent24.c create mode 100644 src/worldEvent/worldEvent25.c create mode 100644 src/worldEvent/worldEvent3.c create mode 100644 src/worldEvent/worldEvent4.c create mode 100644 src/worldEvent/worldEvent5.c create mode 100644 src/worldEvent/worldEvent6.c create mode 100644 src/worldEvent/worldEvent7.c create mode 100644 src/worldEvent/worldEvent8.c create mode 100644 src/worldEvent/worldEvent9.c diff --git a/asm/macros/scripts.inc b/asm/macros/scripts.inc index 9ac48cd7..eabc99cb 100644 --- a/asm/macros/scripts.inc +++ b/asm/macros/scripts.inc @@ -750,7 +750,7 @@ .2byte 0x0488 .endm -.macro _0807F0B4 s:req +.macro SetScrollSpeed s:req .2byte 0x0889 .2byte \s .endm diff --git a/asm/non_matching/objectUtils/sub_080A2BE4.inc b/asm/non_matching/objectUtils/SyncPlayerToPlatform.inc similarity index 100% rename from asm/non_matching/objectUtils/sub_080A2BE4.inc rename to asm/non_matching/objectUtils/SyncPlayerToPlatform.inc diff --git a/asm/non_matching/scroll/sub_08080CB4.inc b/asm/non_matching/scroll/sub_08080CB4.inc index 8e6e198f..2a2d3e17 100644 --- a/asm/non_matching/scroll/sub_08080CB4.inc +++ b/asm/non_matching/scroll/sub_08080CB4.inc @@ -17,7 +17,7 @@ _08080CD4: ldrb r0, [r4, #0xb] lsls r0, r0, #3 - ldr r1, _08080CEC @ =gUnk_080C9CBC + ldr r1, _08080CEC @ =gKinstoneWorldEvents adds r0, r0, r1 ldrb r0, [r0] movs r1, #0xf @@ -27,7 +27,7 @@ _08080CD4: strb r0, [r4, #0x1a] b _08080E00 .align 2, 0 -_08080CEC: .4byte gUnk_080C9CBC +_08080CEC: .4byte gKinstoneWorldEvents _08080CF0: adds r0, r4, #0 bl UpdateAnimationSingleFrame diff --git a/asm/src/code_080043E8.s b/asm/src/code_080043E8.s index f2487878..0216f977 100644 --- a/asm/src/code_080043E8.s +++ b/asm/src/code_080043E8.s @@ -374,6 +374,8 @@ gUnk_080046A4:: @ 080046A4 gUnk_080047F6:: @ 080047F6 .incbin "code_080043E8/gUnk_080047F6.bin" +@ TODO PlayerMacros + gUnk_080049D6:: @ 080049D6 .incbin "code_080043E8/gUnk_080049D6.bin" diff --git a/assets/assets.json b/assets/assets.json index 7426c584..ae44f992 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -3480,48 +3480,6 @@ "start": 732376, "size": 16 }, - { - "path": "data_080B3740/gUnk_080B37A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 732872 - }, - "size": 402 - }, - { - "path": "data_080B3740/gUnk_080B37A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 735136, - "size": 402 - }, - { - "path": "data_080B3740/gUnk_080B37A0_2_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 733274 - }, - "size": 994 - }, - { - "path": "data_080B3740/gUnk_080B37A0_3_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 735538, - "size": 994 - }, { "path": "data_080B3E70/gUnk_080B3E80.bin", "start": 736896, @@ -3606,16951 +3564,6 @@ "start": 738498, "size": 14 }, - { - "path": "data_080B4410/gUnk_080B44D0.bin", - "start": 738512, - "size": 32 - }, - { - "path": "data_080B4410/gUnk_080B44F0.bin", - "start": 738544, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4500.bin", - "start": 738560, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4510.bin", - "start": 738576, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4520.bin", - "start": 738592, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4530.bin", - "start": 738608, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4540.bin", - "start": 738624, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4568_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736400 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4568_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738664, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4570_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736408 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4570_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738672, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4578_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736416 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4578_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738680, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4580_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736424 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4580_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738688, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4588.bin", - "start": 738700, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4588_1.bin", - "start": 738708, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4588_2.bin", - "start": 738716, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4588_3.bin", - "start": 738724, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B45B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736472 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B45B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738736, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B45B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736480 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B45B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738744, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B45C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736488 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B45C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738752, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B45C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736496 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B45C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738760, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B45D0.bin", - "start": 738772, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B45D0_1.bin", - "start": 738780, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B45D0_2.bin", - "start": 738788, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B45D0_3.bin", - "start": 738796, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B45F8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736544 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B45F8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738808, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4600_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736552 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4600_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738816, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4608_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736560 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4608_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738824, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4610_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736568 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4610_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738832, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4618.bin", - "start": 738844, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4618_1.bin", - "start": 738852, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4618_2.bin", - "start": 738860, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4618_3.bin", - "start": 738868, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4640_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736616 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4640_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738880, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4648_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736624 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4648_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738888, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4650_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736632 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4650_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738896, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4658_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736640 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4658_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738904, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4660.bin", - "start": 738916, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4660_1.bin", - "start": 738924, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4660_2.bin", - "start": 738932, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4660_3.bin", - "start": 738940, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4688_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736688 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4688_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738952, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4690_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736696 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4690_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738960, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4698_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736704 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4698_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738968, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B46A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736712 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B46A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 738976, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B46A8.bin", - "start": 738988, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B46A8_1.bin", - "start": 738996, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B46A8_2.bin", - "start": 739004, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B46A8_3.bin", - "start": 739012, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B46D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736760 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B46D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739024, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B46D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736768 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B46D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739032, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B46E0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736776 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B46E0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739040, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B46E8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736784 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B46E8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739048, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B46F0.bin", - "start": 739060, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B46F0_1.bin", - "start": 739068, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B46F0_2.bin", - "start": 739076, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B46F0_3.bin", - "start": 739084, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4718_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736832 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4718_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739096, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4720_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736840 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4720_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739104, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4728_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736848 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4728_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739112, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4730_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736856 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4730_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739120, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4738.bin", - "start": 739132, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4738_1.bin", - "start": 739140, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4738_2.bin", - "start": 739148, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4738_3.bin", - "start": 739156, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4760_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736904 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4760_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739168, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4768_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736912 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4768_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739176, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4770_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736920 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4770_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739184, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4778_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736928 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4778_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739192, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4780.bin", - "start": 739204, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4780_1.bin", - "start": 739212, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4780_2.bin", - "start": 739220, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4780_3.bin", - "start": 739228, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B47A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736976 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B47A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739240, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B47B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736984 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B47B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739248, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B47B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 736992 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B47B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739256, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B47C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737000 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B47C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739264, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B47C8.bin", - "start": 739276, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B47C8_1.bin", - "start": 739284, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B47C8_2.bin", - "start": 739292, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B47C8_3.bin", - "start": 739300, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B47F0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737048 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B47F0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739312, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B47F8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737056 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B47F8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739320, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4800_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737064 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4800_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739328, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4808_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737072 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4808_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739336, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4810.bin", - "start": 739348, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4810_1.bin", - "start": 739356, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4810_2.bin", - "start": 739364, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4810_3.bin", - "start": 739372, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4838_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737120 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4838_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739384, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4848_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737136 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4848_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739400, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4858_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737152 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4858_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739416, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4868_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737168 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4868_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739432, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4878.bin", - "start": 739452, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4878_1.bin", - "start": 739460, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4878_2.bin", - "start": 739468, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4878_3.bin", - "start": 739476, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B48A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737224 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B48A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739488, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B48A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737232 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B48A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739496, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B48B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737240 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B48B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739504, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B48B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737248 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B48B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739512, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B48C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737256 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B48C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739520, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B48C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737264 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B48C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739528, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B48D0.bin", - "start": 739540, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B48D0_1.bin", - "start": 739548, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B48D0_2.bin", - "start": 739556, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B48D0_3.bin", - "start": 739564, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B48D0_4.bin", - "start": 739572, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B48D0_5.bin", - "start": 739580, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4908_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737328 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4908_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739592, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4910_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737336 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4910_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739600, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4918_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737344 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4918_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739608, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4920_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737352 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4920_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739616, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4928_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737360 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4928_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739624, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4930_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737368 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4930_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739632, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4938.bin", - "start": 739644, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4938_1.bin", - "start": 739652, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4938_2.bin", - "start": 739660, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4938_3.bin", - "start": 739668, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4938_4.bin", - "start": 739676, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4938_5.bin", - "start": 739684, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4970_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737432 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4970_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739696, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4978_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737440 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4978_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739704, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4980_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737448 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4980_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739712, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4988_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737456 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4988_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739720, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4990_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737464 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4990_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739728, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4998_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737472 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4998_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739736, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B49A0.bin", - "start": 739748, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B49A0_1.bin", - "start": 739756, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B49A0_2.bin", - "start": 739764, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B49A0_3.bin", - "start": 739772, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B49A0_4.bin", - "start": 739780, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B49A0_5.bin", - "start": 739788, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B49D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737536 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B49D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739800, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B49E0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737544 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B49E0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739808, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B49E8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737552 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B49E8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739816, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B49F0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737560 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B49F0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739824, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B49F8.bin", - "start": 739836, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B49F8_1.bin", - "start": 739844, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B49F8_2.bin", - "start": 739852, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B49F8_3.bin", - "start": 739860, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4A20_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737608 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A20_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739872, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A28_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737616 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A28_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739880, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A30_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737624 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A30_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739888, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A38_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737632 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A38_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739896, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A40.bin", - "start": 739908, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4A40_1.bin", - "start": 739916, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4A40_2.bin", - "start": 739924, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4A40_3.bin", - "start": 739932, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4A68_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737680 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A68_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739944, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A70_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737688 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A70_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739952, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A78_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737696 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A78_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739960, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A80_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737704 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A80_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 739968, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4A88.bin", - "start": 739980, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4A88_1.bin", - "start": 739988, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4A88_2.bin", - "start": 739996, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4A88_3.bin", - "start": 740004, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4AB0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737752 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4AB0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740016, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4AB8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737760 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4AB8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740024, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4AC0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737768 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4AC0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740032, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4AC8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737776 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4AC8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740040, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4AD0.bin", - "start": 740052, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4AD0_1.bin", - "start": 740060, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4AD0_2.bin", - "start": 740068, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4AD0_3.bin", - "start": 740076, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4AF8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737824 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4AF8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740088, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B00_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737832 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B00_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740096, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B08_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737840 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B08_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740104, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B10_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737848 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B10_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740112, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B18.bin", - "start": 740124, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4B18_1.bin", - "start": 740132, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4B18_2.bin", - "start": 740140, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4B18_3.bin", - "start": 740148, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4B40_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737896 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B40_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740160, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B48_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737904 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B48_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740168, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B50_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737912 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B50_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740176, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B58_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737920 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B58_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740184, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B60.bin", - "start": 740196, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4B60_1.bin", - "start": 740204, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4B60_2.bin", - "start": 740212, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4B60_3.bin", - "start": 740220, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4B88_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737968 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B88_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740232, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B90_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737976 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B90_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740240, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B98_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737984 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4B98_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740248, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4BA0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 737992 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4BA0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740256, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4BA8.bin", - "start": 740268, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4BA8_1.bin", - "start": 740276, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4BA8_2.bin", - "start": 740284, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4BA8_3.bin", - "start": 740292, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4BD0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738040 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4BD0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740304, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4BD8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738048 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4BD8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740312, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4BE0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738056 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4BE0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740320, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4BE8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738064 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4BE8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740328, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4BF0.bin", - "start": 740340, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4BF0_1.bin", - "start": 740348, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4BF0_2.bin", - "start": 740356, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4BF0_3.bin", - "start": 740364, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4C18_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738112 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C18_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740376, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C20_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738120 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C20_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740384, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C28_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738128 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C28_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740392, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C30_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738136 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C30_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740400, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C38.bin", - "start": 740412, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4C38_1.bin", - "start": 740420, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4C38_2.bin", - "start": 740428, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4C38_3.bin", - "start": 740436, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4C60_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738184 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C60_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740448, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C68_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738192 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C68_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740456, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C70_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738200 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C70_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740464, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C78_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738208 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C78_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740472, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4C80.bin", - "start": 740484, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4C80_1.bin", - "start": 740492, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4C80_2.bin", - "start": 740500, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4C80_3.bin", - "start": 740508, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4CA8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738256 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4CA8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740520, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4CB0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738264 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4CB0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740528, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4CB8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738272 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4CB8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740536, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4CC0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738280 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4CC0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740544, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4CC8.bin", - "start": 740556, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4CC8_1.bin", - "start": 740564, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4CC8_2.bin", - "start": 740572, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4CC8_3.bin", - "start": 740580, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4CF0.bin", - "start": 740592, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4D00.bin", - "start": 740608, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4D10.bin", - "start": 740628, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4D10_1.bin", - "start": 740636, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4D28_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738384 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D28_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740648, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D30_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738392 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D30_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740656, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D38_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738400 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D38_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740664, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D40_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738408 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D40_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740672, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D48_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738416 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D48_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740680, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D50_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738424 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D50_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740688, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D58_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738432 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D58_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740696, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D60_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738440 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D60_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740704, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D68_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738448 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D68_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740712, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D70_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738456 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D70_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740720, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D78_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738464 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D78_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740728, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D80_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738472 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D80_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740736, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D88_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738480 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D88_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740744, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D90_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738488 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D90_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740752, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D98_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738496 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4D98_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740760, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4DA0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738504 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4DA0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740768, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4DA8.bin", - "start": 740780, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_1.bin", - "start": 740788, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_2.bin", - "start": 740796, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_3.bin", - "start": 740804, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_4.bin", - "start": 740812, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_5.bin", - "start": 740820, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_6.bin", - "start": 740828, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_7.bin", - "start": 740836, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_8.bin", - "start": 740844, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_9.bin", - "start": 740852, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_10.bin", - "start": 740860, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_11.bin", - "start": 740868, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_12.bin", - "start": 740876, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_13.bin", - "start": 740884, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_14.bin", - "start": 740892, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4DA8_15.bin", - "start": 740900, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4E30_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738648 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E30_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740912, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E38_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738656 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E38_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740920, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E40_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738664 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E40_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740928, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E48_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738672 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E48_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740936, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E50.bin", - "start": 740948, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4E50_1.bin", - "start": 740956, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4E50_2.bin", - "start": 740964, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4E50_3.bin", - "start": 740972, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4E78_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738720 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E78_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740984, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E80_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738728 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E80_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 740992, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E88_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738736 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E88_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741000, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E90_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738744 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E90_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741008, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4E98.bin", - "start": 741020, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4E98_1.bin", - "start": 741028, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4E98_2.bin", - "start": 741036, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4E98_3.bin", - "start": 741044, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4EC0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738792 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4EC0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741056, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4EC8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738800 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4EC8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741064, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4ED0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738808 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4ED0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741072, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4ED8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738816 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4ED8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741080, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4EE0.bin", - "start": 741092, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4EE0_1.bin", - "start": 741100, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4EE0_2.bin", - "start": 741108, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4EE0_3.bin", - "start": 741116, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4F08_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738864 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F08_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741128, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F10_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738872 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F10_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741136, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F18_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738880 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F18_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741144, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F20_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738888 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F20_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741152, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F28.bin", - "start": 741164, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4F28_1.bin", - "start": 741172, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4F28_2.bin", - "start": 741180, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4F28_3.bin", - "start": 741188, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4F50_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738936 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F50_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741200, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F58_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738944 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F58_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741208, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F60_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738952 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F60_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741216, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F68_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 738960 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F68_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741224, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B4F70.bin", - "start": 741236, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4F70_1.bin", - "start": 741244, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4F70_2.bin", - "start": 741252, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4F70_3.bin", - "start": 741260, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B4F98_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739008 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4F98_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741272, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4FA8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739024 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4FA8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741288, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4FB8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739040 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4FB8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741304, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4FC8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739056 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4FC8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741320, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B4FD8.bin", - "start": 741340, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4FD8_1.bin", - "start": 741348, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4FD8_2.bin", - "start": 741356, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B4FD8_3.bin", - "start": 741364, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5000_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739112 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5000_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741376, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5008_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739120 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5008_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741384, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5010_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739128 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5010_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741392, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5018_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739136 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5018_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741400, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5020.bin", - "start": 741412, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5020_1.bin", - "start": 741420, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5020_2.bin", - "start": 741428, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5020_3.bin", - "start": 741436, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5048_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739184 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5048_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741448, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5050_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739192 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5050_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741456, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5058_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739200 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5058_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741464, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5060_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739208 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5060_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741472, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5068_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739216 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5068_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741480, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5070_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739224 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5070_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741488, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5078_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739232 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5078_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741496, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5080_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739240 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5080_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741504, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5088_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739248 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5088_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741512, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5090_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739256 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5090_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741520, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5098_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739264 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5098_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741528, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B50A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739272 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B50A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741536, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B50A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739280 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B50A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741544, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B50B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739288 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B50B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741552, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B50B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739296 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B50B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741560, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B50C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739304 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B50C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741568, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B50C8.bin", - "start": 741580, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_1.bin", - "start": 741588, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_2.bin", - "start": 741596, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_3.bin", - "start": 741604, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_4.bin", - "start": 741612, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_5.bin", - "start": 741620, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_6.bin", - "start": 741628, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_7.bin", - "start": 741636, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_8.bin", - "start": 741644, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_9.bin", - "start": 741652, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_10.bin", - "start": 741660, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_11.bin", - "start": 741668, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_12.bin", - "start": 741676, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_13.bin", - "start": 741684, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_14.bin", - "start": 741692, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B50C8_15.bin", - "start": 741700, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5150_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739448 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5150_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741712, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5158_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739456 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5158_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741720, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5160_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739464 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5160_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741728, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5168_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739472 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5168_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741736, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5170.bin", - "start": 741748, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5170_1.bin", - "start": 741756, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5170_2.bin", - "start": 741764, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5170_3.bin", - "start": 741772, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5198_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739520 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5198_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741784, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739528 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741792, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739536 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741800, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739544 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741808, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51B8.bin", - "start": 741820, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B51B8_1.bin", - "start": 741828, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B51B8_2.bin", - "start": 741836, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B51B8_3.bin", - "start": 741844, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B51E0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739592 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51E0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741856, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51E8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739600 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51E8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741864, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51F0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739608 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51F0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741872, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51F8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739616 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B51F8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741880, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5200_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739624 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5200_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741888, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5208_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739632 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5208_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741896, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5210_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739640 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5210_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741904, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5218_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739648 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5218_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741912, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5220_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739656 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5220_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741920, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5228_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739664 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5228_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741928, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5230_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739672 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5230_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741936, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5238_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739680 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5238_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741944, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5240_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739688 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5240_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741952, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5248_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739696 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5248_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741960, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5250_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739704 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5250_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741968, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5258_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739712 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5258_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 741976, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5260.bin", - "start": 741988, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_1.bin", - "start": 741996, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_2.bin", - "start": 742004, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_3.bin", - "start": 742012, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_4.bin", - "start": 742020, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_5.bin", - "start": 742028, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_6.bin", - "start": 742036, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_7.bin", - "start": 742044, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_8.bin", - "start": 742052, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_9.bin", - "start": 742060, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_10.bin", - "start": 742068, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_11.bin", - "start": 742076, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_12.bin", - "start": 742084, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_13.bin", - "start": 742092, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_14.bin", - "start": 742100, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5260_15.bin", - "start": 742108, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B52E8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739856 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B52E8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742120, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B52F0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739864 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B52F0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742128, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B52F8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739872 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B52F8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742136, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5300_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739880 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5300_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742144, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5308.bin", - "start": 742156, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5308_1.bin", - "start": 742164, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5308_2.bin", - "start": 742172, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5308_3.bin", - "start": 742180, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5330_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739928 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5330_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742192, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5338_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739936 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5338_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742200, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5340_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739944 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5340_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742208, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5348_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 739952 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5348_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742216, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5350.bin", - "start": 742228, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5350_1.bin", - "start": 742236, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5350_2.bin", - "start": 742244, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5350_3.bin", - "start": 742252, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5378_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740000 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5378_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742264, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5380_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740008 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5380_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742272, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5388_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740016 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5388_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742280, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5390_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740024 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5390_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742288, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5398.bin", - "start": 742300, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5398_1.bin", - "start": 742308, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5398_2.bin", - "start": 742316, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5398_3.bin", - "start": 742324, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B53C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740072 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B53C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742336, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B53C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740080 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B53C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742344, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B53D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740088 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B53D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742352, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B53D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740096 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B53D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742360, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B53E0.bin", - "start": 742372, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B53E0_1.bin", - "start": 742380, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B53E0_2.bin", - "start": 742388, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B53E0_3.bin", - "start": 742396, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5408_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740144 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5408_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742408, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5410_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740152 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5410_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742416, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5418_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740160 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5418_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742424, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5420_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740168 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5420_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742432, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5428.bin", - "start": 742444, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5428_1.bin", - "start": 742452, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5428_2.bin", - "start": 742460, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5428_3.bin", - "start": 742468, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5450_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740216 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5450_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742480, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5458_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740224 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5458_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742488, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5460_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740232 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5460_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742496, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5468_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740240 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5468_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742504, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5470_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740248 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5470_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742512, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5478_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740256 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5478_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742520, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5480_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740264 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5480_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742528, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5488_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740272 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5488_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742536, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5490_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740280 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5490_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742544, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5498_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740288 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5498_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742552, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740296 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742560, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740304 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742568, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740312 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742576, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740320 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742584, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740328 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742592, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740336 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742600, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B54D0.bin", - "start": 742612, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_1.bin", - "start": 742620, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_2.bin", - "start": 742628, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_3.bin", - "start": 742636, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_4.bin", - "start": 742644, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_5.bin", - "start": 742652, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_6.bin", - "start": 742660, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_7.bin", - "start": 742668, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_8.bin", - "start": 742676, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_9.bin", - "start": 742684, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_10.bin", - "start": 742692, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_11.bin", - "start": 742700, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_12.bin", - "start": 742708, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_13.bin", - "start": 742716, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_14.bin", - "start": 742724, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B54D0_15.bin", - "start": 742732, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5558_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740480 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5558_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742744, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5560_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740488 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5560_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742752, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5568_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740496 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5568_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742760, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5570_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740504 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5570_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742768, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5578_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740512 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5578_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742776, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5580_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740520 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5580_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742784, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5588_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740528 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5588_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742792, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5590_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740536 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5590_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742800, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5598_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740544 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5598_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742808, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740552 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742816, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740560 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742824, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740568 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742832, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740576 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742840, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740584 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742848, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740592 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742856, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740600 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 742864, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B55D8.bin", - "start": 742876, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_1.bin", - "start": 742884, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_2.bin", - "start": 742892, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_3.bin", - "start": 742900, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_4.bin", - "start": 742908, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_5.bin", - "start": 742916, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_6.bin", - "start": 742924, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_7.bin", - "start": 742932, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_8.bin", - "start": 742940, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_9.bin", - "start": 742948, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_10.bin", - "start": 742956, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_11.bin", - "start": 742964, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_12.bin", - "start": 742972, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_13.bin", - "start": 742980, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_14.bin", - "start": 742988, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B55D8_15.bin", - "start": 742996, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5660_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740744 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5660_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743008, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5668_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740752 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5668_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743016, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5670_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740760 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5670_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743024, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5678_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740768 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5678_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743032, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5680_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740776 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5680_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743040, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5688_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740784 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5688_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743048, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5690_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740792 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5690_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743056, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5698_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740800 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5698_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743064, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740808 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743072, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740816 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743080, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740824 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743088, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740832 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743096, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740840 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743104, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740848 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743112, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740856 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743120, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 740864 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743128, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B56E0.bin", - "start": 743140, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_1.bin", - "start": 743148, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_2.bin", - "start": 743156, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_3.bin", - "start": 743164, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_4.bin", - "start": 743172, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_5.bin", - "start": 743180, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_6.bin", - "start": 743188, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_7.bin", - "start": 743196, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_8.bin", - "start": 743204, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_9.bin", - "start": 743212, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_10.bin", - "start": 743220, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_11.bin", - "start": 743228, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_12.bin", - "start": 743236, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_13.bin", - "start": 743244, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_14.bin", - "start": 743252, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B56E0_15.bin", - "start": 743260, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5768_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741008 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5768_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743272, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5770_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741016 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5770_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743280, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5778_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741024 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5778_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743288, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5780_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741032 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5780_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743296, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5788_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741040 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5788_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743304, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5790_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741048 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5790_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743312, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5798_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741056 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5798_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743320, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741064 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743328, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741072 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743336, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741080 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743344, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741088 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743352, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741096 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743360, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741104 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743368, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741112 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743376, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741120 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743384, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57E0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741128 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57E0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743392, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B57E8.bin", - "start": 743404, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_1.bin", - "start": 743412, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_2.bin", - "start": 743420, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_3.bin", - "start": 743428, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_4.bin", - "start": 743436, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_5.bin", - "start": 743444, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_6.bin", - "start": 743452, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_7.bin", - "start": 743460, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_8.bin", - "start": 743468, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_9.bin", - "start": 743476, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_10.bin", - "start": 743484, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_11.bin", - "start": 743492, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_12.bin", - "start": 743500, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_13.bin", - "start": 743508, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_14.bin", - "start": 743516, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B57E8_15.bin", - "start": 743524, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5870_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741272 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5870_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743536, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5878_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741280 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5878_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743544, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5880_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741288 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5880_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743552, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5888_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741296 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5888_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743560, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5890_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741304 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5890_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743568, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5898_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741312 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5898_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743576, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741320 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743584, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741328 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743592, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741336 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743600, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741344 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743608, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741352 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743616, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741360 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743624, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741368 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743632, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741376 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743640, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58E0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741384 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58E0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743648, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58E8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741392 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58E8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743656, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B58F0.bin", - "start": 743668, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_1.bin", - "start": 743676, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_2.bin", - "start": 743684, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_3.bin", - "start": 743692, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_4.bin", - "start": 743700, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_5.bin", - "start": 743708, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_6.bin", - "start": 743716, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_7.bin", - "start": 743724, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_8.bin", - "start": 743732, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_9.bin", - "start": 743740, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_10.bin", - "start": 743748, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_11.bin", - "start": 743756, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_12.bin", - "start": 743764, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_13.bin", - "start": 743772, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_14.bin", - "start": 743780, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B58F0_15.bin", - "start": 743788, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5978_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741536 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5978_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743800, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5980_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741544 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5980_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743808, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5988_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741552 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5988_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743816, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5990_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741560 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5990_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743824, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5998.bin", - "start": 743836, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5998_1.bin", - "start": 743844, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5998_2.bin", - "start": 743852, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5998_3.bin", - "start": 743860, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B59C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741608 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B59C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743872, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B59C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741616 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B59C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743880, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B59D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741624 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B59D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743888, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B59D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741632 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B59D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743896, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B59E0.bin", - "start": 743908, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B59E0_1.bin", - "start": 743916, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B59E0_2.bin", - "start": 743924, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B59E0_3.bin", - "start": 743932, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5A08_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741680 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A08_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743944, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A10_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741688 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A10_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743952, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A18_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741696 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A18_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743960, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A20_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741704 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A20_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 743968, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A28.bin", - "start": 743980, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5A28_1.bin", - "start": 743988, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5A28_2.bin", - "start": 743996, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5A28_3.bin", - "start": 744004, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5A50_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741752 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A50_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744016, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A58_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741760 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A58_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744024, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A60_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741768 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A60_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744032, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A68_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741776 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A68_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744040, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A70.bin", - "start": 744052, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5A70_1.bin", - "start": 744060, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5A70_2.bin", - "start": 744068, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5A70_3.bin", - "start": 744076, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5A98_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741824 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5A98_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744088, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5AA0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741832 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5AA0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744096, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5AA8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741840 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5AA8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744104, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5AB0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741848 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5AB0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744112, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5AB8.bin", - "start": 744124, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5AB8_1.bin", - "start": 744132, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5AB8_2.bin", - "start": 744140, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5AB8_3.bin", - "start": 744148, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5AE0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741896 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5AE0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744160, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5AF0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741912 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5AF0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744176, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5B00_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741928 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5B00_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744192, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5B10_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 741944 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5B10_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744208, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5B20.bin", - "start": 744228, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5B20_1.bin", - "start": 744236, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5B20_2.bin", - "start": 744244, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5B20_3.bin", - "start": 744252, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5B48_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742000 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5B48_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744264, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5B50_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742008 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5B50_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744272, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5B58_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742016 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5B58_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744280, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5B60_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742024 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5B60_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744288, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5B68.bin", - "start": 744300, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5B68_1.bin", - "start": 744308, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5B68_2.bin", - "start": 744316, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5B68_3.bin", - "start": 744324, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5B90_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742072 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5B90_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744336, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5B98_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742080 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5B98_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744344, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BA0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742088 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BA0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744352, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BA8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742096 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BA8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744360, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BB0.bin", - "start": 744372, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5BB0_1.bin", - "start": 744380, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5BB0_2.bin", - "start": 744388, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5BB0_3.bin", - "start": 744396, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5BD8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742144 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BD8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744408, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BE0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742152 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BE0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744416, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BE8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742160 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BE8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744424, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BF0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742168 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BF0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744432, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BF8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742176 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5BF8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744440, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C00_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742184 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C00_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744448, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C08_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742192 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C08_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744456, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C10_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742200 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C10_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744464, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C18_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742208 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C18_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744472, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C20_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742216 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C20_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744480, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C28_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742224 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C28_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744488, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C30_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742232 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C30_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744496, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C38_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742240 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C38_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744504, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C40_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742248 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C40_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744512, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C48_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742256 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C48_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744520, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C50_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742264 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C50_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744528, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5C58.bin", - "start": 744540, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_1.bin", - "start": 744548, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_2.bin", - "start": 744556, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_3.bin", - "start": 744564, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_4.bin", - "start": 744572, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_5.bin", - "start": 744580, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_6.bin", - "start": 744588, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_7.bin", - "start": 744596, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_8.bin", - "start": 744604, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_9.bin", - "start": 744612, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_10.bin", - "start": 744620, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_11.bin", - "start": 744628, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_12.bin", - "start": 744636, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_13.bin", - "start": 744644, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_14.bin", - "start": 744652, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5C58_15.bin", - "start": 744660, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5CE0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742408 - }, - "size": 24 - }, - { - "path": "data_080B4410/gUnk_080B5CE0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744672, - "size": 24 - }, - { - "path": "data_080B4410/gUnk_080B5CF8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742432 - }, - "size": 24 - }, - { - "path": "data_080B4410/gUnk_080B5CF8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744696, - "size": 24 - }, - { - "path": "data_080B4410/gUnk_080B5D10_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742456 - }, - "size": 24 - }, - { - "path": "data_080B4410/gUnk_080B5D10_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744720, - "size": 24 - }, - { - "path": "data_080B4410/gUnk_080B5D28_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742480 - }, - "size": 24 - }, - { - "path": "data_080B4410/gUnk_080B5D28_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744744, - "size": 24 - }, - { - "path": "data_080B4410/gUnk_080B5D40.bin", - "start": 744772, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5D40_1.bin", - "start": 744780, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5D40_2.bin", - "start": 744788, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5D40_3.bin", - "start": 744796, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5D68_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742544 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5D68_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744808, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5D78_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742560 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5D78_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744824, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5D88_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742576 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5D88_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744840, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5D98_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742592 - }, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5D98_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744856, - "size": 16 - }, - { - "path": "data_080B4410/gUnk_080B5DA8.bin", - "start": 744876, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5DA8_1.bin", - "start": 744884, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5DA8_2.bin", - "start": 744892, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5DA8_3.bin", - "start": 744900, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5DD0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742648 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5DD0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744912, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5DD8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742656 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5DD8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744920, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5DE0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742664 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5DE0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744928, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5DE8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742672 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5DE8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744936, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5DF0.bin", - "start": 744948, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5DF0_1.bin", - "start": 744956, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5DF0_2.bin", - "start": 744964, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5DF0_3.bin", - "start": 744972, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5E18_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742720 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E18_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744984, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E20_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742728 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E20_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 744992, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E28_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742736 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E28_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745000, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E30_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742744 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E30_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745008, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E38.bin", - "start": 745020, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5E38_1.bin", - "start": 745028, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5E38_2.bin", - "start": 745036, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5E38_3.bin", - "start": 745044, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5E60_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742792 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E60_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745056, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E68_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742800 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E68_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745064, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E70_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742808 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E70_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745072, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E78_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742816 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E78_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745080, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E80_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742824 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E80_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745088, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5E88.bin", - "start": 745100, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5E88_1.bin", - "start": 745108, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5E88_2.bin", - "start": 745116, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5E88_3.bin", - "start": 745124, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5E88_4.bin", - "start": 745132, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5EB8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742880 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5EB8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745144, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5EC0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742888 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5EC0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745152, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5EC8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742896 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5EC8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745160, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5ED0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742904 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5ED0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745168, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5ED8.bin", - "start": 745180, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5ED8_1.bin", - "start": 745188, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5ED8_2.bin", - "start": 745196, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5ED8_3.bin", - "start": 745204, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5F00_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742952 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F00_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745216, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F08_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742960 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F08_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745224, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F10_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742968 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F10_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745232, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F18_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742976 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F18_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745240, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F20_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 742984 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F20_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745248, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F28.bin", - "start": 745260, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5F28_1.bin", - "start": 745268, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5F28_2.bin", - "start": 745276, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5F28_3.bin", - "start": 745284, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5F28_4.bin", - "start": 745292, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5F58_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743040 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F58_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745304, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F60_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743048 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F60_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745312, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F68_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743056 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F68_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745320, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F70_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743064 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F70_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745328, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F78_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743072 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F78_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745336, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5F80.bin", - "start": 745348, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5F80_1.bin", - "start": 745356, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5F80_2.bin", - "start": 745364, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5F80_3.bin", - "start": 745372, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5F80_4.bin", - "start": 745380, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5FB0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743128 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5FB0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745392, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5FB8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743136 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5FB8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745400, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5FC0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743144 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5FC0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745408, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5FC8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743152 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5FC8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745416, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5FD0.bin", - "start": 745428, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5FD0_1.bin", - "start": 745436, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5FD0_2.bin", - "start": 745444, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B5FD0_3.bin", - "start": 745452, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B5FF8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743200 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B5FF8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745464, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6000_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743208 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6000_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745472, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6008_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743216 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6008_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745480, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6010_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743224 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6010_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745488, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6018_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743232 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6018_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745496, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6020_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743240 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6020_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745504, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6028_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743248 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6028_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745512, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6030_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743256 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6030_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745520, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6038_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743264 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6038_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745528, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6040_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743272 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6040_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745536, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6048_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743280 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6048_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745544, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6050_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743288 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6050_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745552, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6058_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743296 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6058_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745560, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6060_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743304 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6060_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745568, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6068_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743312 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6068_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745576, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6070_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743320 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6070_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745584, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6078.bin", - "start": 745596, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_1.bin", - "start": 745604, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_2.bin", - "start": 745612, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_3.bin", - "start": 745620, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_4.bin", - "start": 745628, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_5.bin", - "start": 745636, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_6.bin", - "start": 745644, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_7.bin", - "start": 745652, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_8.bin", - "start": 745660, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_9.bin", - "start": 745668, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_10.bin", - "start": 745676, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_11.bin", - "start": 745684, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_12.bin", - "start": 745692, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_13.bin", - "start": 745700, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_14.bin", - "start": 745708, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6078_15.bin", - "start": 745716, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6100_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743464 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6100_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745728, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6108_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743472 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6108_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745736, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6110_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743480 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6110_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745744, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6118_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743488 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6118_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745752, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6120.bin", - "start": 745764, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6120_1.bin", - "start": 745772, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6120_2.bin", - "start": 745780, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6120_3.bin", - "start": 745788, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6148_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743536 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6148_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745800, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6150_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743544 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6150_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745808, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6158_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743552 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6158_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745816, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6160_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743560 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6160_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745824, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6168.bin", - "start": 745836, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6168_1.bin", - "start": 745844, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6168_2.bin", - "start": 745852, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6168_3.bin", - "start": 745860, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6190_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743608 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6190_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745872, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6198_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743616 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6198_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745880, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743624 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745888, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743632 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745896, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61B0.bin", - "start": 745908, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B61B0_1.bin", - "start": 745916, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B61B0_2.bin", - "start": 745924, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B61B0_3.bin", - "start": 745932, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B61D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743680 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745944, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61E0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743688 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61E0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745952, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61E8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743696 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61E8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745960, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61F0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743704 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61F0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 745968, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B61F8.bin", - "start": 745980, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B61F8_1.bin", - "start": 745988, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B61F8_2.bin", - "start": 745996, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B61F8_3.bin", - "start": 746004, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6220_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743752 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6220_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746016, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6228_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743760 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6228_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746024, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6230_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743768 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6230_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746032, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6238_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743776 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6238_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746040, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6240_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743784 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6240_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746048, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6248_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743792 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6248_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746056, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6250_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743800 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6250_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746064, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6258_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743808 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6258_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746072, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6260_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743816 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6260_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746080, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6268_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743824 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6268_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746088, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6270_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743832 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6270_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746096, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6278_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743840 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6278_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746104, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6280_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743848 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6280_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746112, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6288_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743856 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6288_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746120, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6290_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743864 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6290_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746128, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6298_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 743872 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6298_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746136, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B62A0.bin", - "start": 746148, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_1.bin", - "start": 746156, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_2.bin", - "start": 746164, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_3.bin", - "start": 746172, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_4.bin", - "start": 746180, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_5.bin", - "start": 746188, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_6.bin", - "start": 746196, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_7.bin", - "start": 746204, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_8.bin", - "start": 746212, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_9.bin", - "start": 746220, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_10.bin", - "start": 746228, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_11.bin", - "start": 746236, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_12.bin", - "start": 746244, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_13.bin", - "start": 746252, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_14.bin", - "start": 746260, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B62A0_15.bin", - "start": 746268, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6328_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744016 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6328_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746280, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6330_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744024 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6330_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746288, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6338_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744032 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6338_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746296, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6340_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744040 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6340_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746304, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6348_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744048 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6348_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746312, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6350_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744056 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6350_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746320, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6358_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744064 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6358_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746328, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6360_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744072 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6360_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746336, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6368_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744080 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6368_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746344, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6370_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744088 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6370_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746352, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6378_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744096 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6378_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746360, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6380_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744104 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6380_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746368, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6388_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744112 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6388_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746376, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6390_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744120 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6390_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746384, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6398_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744128 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6398_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746392, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B63A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744136 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B63A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746400, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B63A8.bin", - "start": 746412, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_1.bin", - "start": 746420, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_2.bin", - "start": 746428, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_3.bin", - "start": 746436, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_4.bin", - "start": 746444, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_5.bin", - "start": 746452, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_6.bin", - "start": 746460, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_7.bin", - "start": 746468, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_8.bin", - "start": 746476, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_9.bin", - "start": 746484, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_10.bin", - "start": 746492, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_11.bin", - "start": 746500, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_12.bin", - "start": 746508, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_13.bin", - "start": 746516, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_14.bin", - "start": 746524, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B63A8_15.bin", - "start": 746532, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6430_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744280 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6430_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746544, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6438_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744288 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6438_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746552, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6440_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744296 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6440_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746560, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6448_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744304 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6448_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746568, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6450.bin", - "start": 746580, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6450_1.bin", - "start": 746588, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6450_2.bin", - "start": 746596, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6450_3.bin", - "start": 746604, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6478_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744352 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6478_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746616, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6480_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744360 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6480_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746624, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6488_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744368 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6488_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746632, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6490_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744376 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6490_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746640, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6498.bin", - "start": 746652, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6498_1.bin", - "start": 746660, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6498_2.bin", - "start": 746668, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6498_3.bin", - "start": 746676, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B64C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744424 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B64C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746688, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B64C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744432 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B64C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746696, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B64D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744440 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B64D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746704, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B64D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744448 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B64D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746712, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B64E0.bin", - "start": 746724, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B64E0_1.bin", - "start": 746732, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B64E0_2.bin", - "start": 746740, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B64E0_3.bin", - "start": 746748, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6508_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744496 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6508_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746760, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6510_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744504 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6510_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746768, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6518_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744512 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6518_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746776, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6520_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744520 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6520_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746784, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6528.bin", - "start": 746796, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6528_1.bin", - "start": 746804, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6528_2.bin", - "start": 746812, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6528_3.bin", - "start": 746820, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6550_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744568 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6550_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746832, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6558_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744576 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6558_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746840, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6560_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744584 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6560_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746848, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6568_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744592 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6568_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746856, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6570.bin", - "start": 746868, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6570_1.bin", - "start": 746876, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6570_2.bin", - "start": 746884, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6570_3.bin", - "start": 746892, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6598_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744640 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6598_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746904, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744648 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746912, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744656 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746920, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744664 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746928, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744672 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746936, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744680 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746944, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744688 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746952, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744696 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746960, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744704 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746968, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65E0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744712 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65E0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746976, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65E8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744720 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65E8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746984, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65F0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744728 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65F0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 746992, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65F8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744736 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B65F8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747000, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6600_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744744 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6600_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747008, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6608_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744752 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6608_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747016, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6610_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744760 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6610_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747024, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6618.bin", - "start": 747036, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_1.bin", - "start": 747044, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_2.bin", - "start": 747052, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_3.bin", - "start": 747060, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_4.bin", - "start": 747068, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_5.bin", - "start": 747076, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_6.bin", - "start": 747084, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_7.bin", - "start": 747092, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_8.bin", - "start": 747100, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_9.bin", - "start": 747108, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_10.bin", - "start": 747116, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_11.bin", - "start": 747124, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_12.bin", - "start": 747132, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_13.bin", - "start": 747140, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_14.bin", - "start": 747148, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6618_15.bin", - "start": 747156, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B66A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744904 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747168, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744912 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747176, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744920 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747184, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744928 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747192, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744936 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747200, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744944 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747208, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744952 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747216, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744960 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747224, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66E0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744968 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66E0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747232, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66E8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744976 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66E8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747240, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66F0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744984 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66F0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747248, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66F8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 744992 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B66F8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747256, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6700_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745000 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6700_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747264, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6708_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745008 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6708_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747272, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6710_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745016 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6710_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747280, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6718_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745024 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6718_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747288, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6720.bin", - "start": 747300, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_1.bin", - "start": 747308, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_2.bin", - "start": 747316, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_3.bin", - "start": 747324, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_4.bin", - "start": 747332, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_5.bin", - "start": 747340, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_6.bin", - "start": 747348, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_7.bin", - "start": 747356, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_8.bin", - "start": 747364, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_9.bin", - "start": 747372, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_10.bin", - "start": 747380, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_11.bin", - "start": 747388, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_12.bin", - "start": 747396, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_13.bin", - "start": 747404, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_14.bin", - "start": 747412, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6720_15.bin", - "start": 747420, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B67A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745168 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B67A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747432, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B67B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745176 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B67B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747440, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B67B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745184 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B67B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747448, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B67C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745192 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B67C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747456, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B67C8.bin", - "start": 747468, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B67C8_1.bin", - "start": 747476, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B67C8_2.bin", - "start": 747484, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B67C8_3.bin", - "start": 747492, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B67F0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745240 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B67F0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747504, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B67F8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745248 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B67F8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747512, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6800_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745256 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6800_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747520, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6808_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745264 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6808_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747528, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6810.bin", - "start": 747540, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6810_1.bin", - "start": 747548, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6810_2.bin", - "start": 747556, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6810_3.bin", - "start": 747564, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6838_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745312 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6838_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747576, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6840_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745320 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6840_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747584, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6848_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745328 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6848_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747592, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6850_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745336 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6850_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747600, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6858.bin", - "start": 747612, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6858_1.bin", - "start": 747620, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6858_2.bin", - "start": 747628, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6858_3.bin", - "start": 747636, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6880_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745384 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6880_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747648, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6888_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745392 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6888_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747656, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6890_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745400 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6890_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747664, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6898_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745408 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6898_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747672, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B68A0.bin", - "start": 747684, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B68A0_1.bin", - "start": 747692, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B68A0_2.bin", - "start": 747700, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B68A0_3.bin", - "start": 747708, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B68C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745456 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B68C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747720, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B68D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745464 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B68D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747728, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B68D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745472 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B68D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747736, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B68E0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745480 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B68E0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747744, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B68E8.bin", - "start": 747756, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B68E8_1.bin", - "start": 747764, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B68E8_2.bin", - "start": 747772, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B68E8_3.bin", - "start": 747780, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6910_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745528 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6910_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747792, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6918_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745536 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6918_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747800, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6920_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745544 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6920_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747808, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6928_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745552 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6928_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747816, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6930_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745560 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6930_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747824, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6938.bin", - "start": 747836, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6938_1.bin", - "start": 747844, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6938_2.bin", - "start": 747852, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6938_3.bin", - "start": 747860, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6938_4.bin", - "start": 747868, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6938_5.bin", - "start": 747876, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6938_6.bin", - "start": 747884, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6938_7.bin", - "start": 747892, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6980_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745640 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6980_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747904, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6988_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745648 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6988_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747912, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6990_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745656 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6990_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747920, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6998_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745664 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6998_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747928, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745672 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747936, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745680 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747944, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745688 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747952, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745696 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747960, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745704 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747968, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745712 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747976, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745720 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747984, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745728 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 747992, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69E0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745736 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69E0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748000, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69E8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745744 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69E8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748008, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69F0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745752 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69F0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748016, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69F8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745760 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B69F8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748024, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6A00.bin", - "start": 748036, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_1.bin", - "start": 748044, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_2.bin", - "start": 748052, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_3.bin", - "start": 748060, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_4.bin", - "start": 748068, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_5.bin", - "start": 748076, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_6.bin", - "start": 748084, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_7.bin", - "start": 748092, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_8.bin", - "start": 748100, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_9.bin", - "start": 748108, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_10.bin", - "start": 748116, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_11.bin", - "start": 748124, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_12.bin", - "start": 748132, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_13.bin", - "start": 748140, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_14.bin", - "start": 748148, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6A00_15.bin", - "start": 748156, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6A88_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745904 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6A88_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748168, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6A90_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745912 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6A90_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748176, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6A98_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745920 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6A98_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748184, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AA0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745928 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AA0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748192, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AA8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745936 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AA8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748200, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AB0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745944 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AB0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748208, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AB8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745952 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AB8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748216, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AC0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745960 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AC0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748224, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AC8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745968 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AC8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748232, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AD0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745976 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AD0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748240, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AD8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745984 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AD8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748248, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AE0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 745992 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AE0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748256, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AE8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746000 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AE8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748264, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AF0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746008 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AF0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748272, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AF8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746016 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6AF8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748280, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6B00_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746024 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6B00_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748288, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6B08.bin", - "start": 748300, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_1.bin", - "start": 748308, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_2.bin", - "start": 748316, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_3.bin", - "start": 748324, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_4.bin", - "start": 748332, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_5.bin", - "start": 748340, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_6.bin", - "start": 748348, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_7.bin", - "start": 748356, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_8.bin", - "start": 748364, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_9.bin", - "start": 748372, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_10.bin", - "start": 748380, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_11.bin", - "start": 748388, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_12.bin", - "start": 748396, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_13.bin", - "start": 748404, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_14.bin", - "start": 748412, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6B08_15.bin", - "start": 748420, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6B90_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746168 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6B90_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748432, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6B98_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746176 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6B98_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748440, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BA0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746184 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BA0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748448, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BA8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746192 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BA8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748456, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BB0.bin", - "start": 748468, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6BB0_1.bin", - "start": 748476, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6BB0_2.bin", - "start": 748484, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6BB0_3.bin", - "start": 748492, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6BD8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746240 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BD8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748504, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BE0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746248 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BE0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748512, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BE8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746256 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BE8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748520, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BF0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746264 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BF0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748528, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6BF8.bin", - "start": 748540, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6BF8_1.bin", - "start": 748548, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6BF8_2.bin", - "start": 748556, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6BF8_3.bin", - "start": 748564, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6C20_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746312 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C20_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748576, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C28_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746320 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C28_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748584, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C30_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746328 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C30_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748592, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C38_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746336 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C38_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748600, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C40_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746344 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C40_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748608, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C48_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746352 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C48_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748616, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C50_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746360 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C50_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748624, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C58.bin", - "start": 748636, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6C58_1.bin", - "start": 748644, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6C58_2.bin", - "start": 748652, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6C58_3.bin", - "start": 748660, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6C58_4.bin", - "start": 748668, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6C58_5.bin", - "start": 748676, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6C58_6.bin", - "start": 748684, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6C98_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746432 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6C98_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748696, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CA0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746440 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CA0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748704, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CA8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746448 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CA8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748712, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CB0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746456 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CB0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748720, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CB8.bin", - "start": 748732, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6CB8_1.bin", - "start": 748740, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6CB8_2.bin", - "start": 748748, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6CB8_3.bin", - "start": 748756, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6CE0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746504 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CE0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748768, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CE8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746512 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CE8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748776, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CF0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746520 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CF0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748784, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CF8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746528 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6CF8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748792, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D00.bin", - "start": 748804, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6D00_1.bin", - "start": 748812, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6D00_2.bin", - "start": 748820, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6D00_3.bin", - "start": 748828, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6D28_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746576 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D28_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748840, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D30_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746584 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D30_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748848, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D38_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746592 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D38_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748856, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D40_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746600 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D40_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748864, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D48_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746608 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D48_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748872, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D50_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746616 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D50_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748880, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D58_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746624 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D58_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748888, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D60_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746632 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D60_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748896, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D68_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746640 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D68_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748904, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D70_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746648 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D70_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748912, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D78_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746656 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D78_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748920, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D80_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746664 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D80_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748928, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D88_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746672 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D88_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748936, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D90_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746680 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D90_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748944, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D98_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746688 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6D98_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748952, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6DA0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746696 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6DA0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 748960, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6DA8.bin", - "start": 748972, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_1.bin", - "start": 748980, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_2.bin", - "start": 748988, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_3.bin", - "start": 748996, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_4.bin", - "start": 749004, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_5.bin", - "start": 749012, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_6.bin", - "start": 749020, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_7.bin", - "start": 749028, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_8.bin", - "start": 749036, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_9.bin", - "start": 749044, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_10.bin", - "start": 749052, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_11.bin", - "start": 749060, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_12.bin", - "start": 749068, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_13.bin", - "start": 749076, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_14.bin", - "start": 749084, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_15.bin", - "start": 749092, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_16.bin", - "start": 749100, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_17.bin", - "start": 749108, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_18.bin", - "start": 749116, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_19.bin", - "start": 749124, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_20.bin", - "start": 749132, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_21.bin", - "start": 749140, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_22.bin", - "start": 749148, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_23.bin", - "start": 749156, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_24.bin", - "start": 749164, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_25.bin", - "start": 749172, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_26.bin", - "start": 749180, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_27.bin", - "start": 749188, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_28.bin", - "start": 749196, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_29.bin", - "start": 749204, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6DA8_30.bin", - "start": 749212, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6EA8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746960 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EA8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749224, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EB0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746968 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EB0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749232, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EB8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746976 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EB8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749240, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EC0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746984 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EC0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749248, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EC8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 746992 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EC8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749256, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6ED0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747000 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6ED0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749264, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6ED8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747008 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6ED8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749272, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EE0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747016 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EE0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749280, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EE8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747024 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EE8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749288, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EF0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747032 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EF0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749296, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EF8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747040 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6EF8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749304, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6F00_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747048 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6F00_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749312, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6F08_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747056 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6F08_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749320, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6F10_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747064 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6F10_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749328, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6F18_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747072 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6F18_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749336, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6F20_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747080 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6F20_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749344, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6F28.bin", - "start": 749356, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_1.bin", - "start": 749364, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_2.bin", - "start": 749372, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_3.bin", - "start": 749380, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_4.bin", - "start": 749388, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_5.bin", - "start": 749396, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_6.bin", - "start": 749404, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_7.bin", - "start": 749412, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_8.bin", - "start": 749420, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_9.bin", - "start": 749428, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_10.bin", - "start": 749436, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_11.bin", - "start": 749444, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_12.bin", - "start": 749452, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_13.bin", - "start": 749460, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_14.bin", - "start": 749468, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6F28_15.bin", - "start": 749476, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B6FB0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747224 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FB0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749488, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FB8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747232 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FB8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749496, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FC0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747240 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FC0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749504, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FC8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747248 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FC8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749512, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FD0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747256 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FD0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749520, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FD8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747264 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FD8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749528, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FE0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747272 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FE0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749536, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FE8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747280 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FE8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749544, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B6FF0.bin", - "start": 749556, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_1.bin", - "start": 749564, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_2.bin", - "start": 749572, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_3.bin", - "start": 749580, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_4.bin", - "start": 749588, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_5.bin", - "start": 749596, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_6.bin", - "start": 749604, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_7.bin", - "start": 749612, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_8.bin", - "start": 749620, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_9.bin", - "start": 749628, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_10.bin", - "start": 749636, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_11.bin", - "start": 749644, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_12.bin", - "start": 749652, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B6FF0_13.bin", - "start": 749660, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B7068_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747408 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7068_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749672, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7070_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747416 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7070_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749680, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7078_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747424 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7078_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749688, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7080_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747432 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7080_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749696, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7088_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747440 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7088_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749704, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7090_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747448 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7090_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749712, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7098_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747456 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7098_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749720, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747464 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749728, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747472 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749736, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747480 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749744, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747488 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749752, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747496 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749760, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747504 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749768, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747512 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749776, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747520 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749784, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70E0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747528 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70E0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749792, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B70E8.bin", - "start": 749804, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_1.bin", - "start": 749812, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_2.bin", - "start": 749820, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_3.bin", - "start": 749828, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_4.bin", - "start": 749836, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_5.bin", - "start": 749844, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_6.bin", - "start": 749852, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_7.bin", - "start": 749860, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_8.bin", - "start": 749868, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_9.bin", - "start": 749876, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_10.bin", - "start": 749884, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_11.bin", - "start": 749892, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_12.bin", - "start": 749900, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_13.bin", - "start": 749908, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_14.bin", - "start": 749916, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B70E8_15.bin", - "start": 749924, - "size": 12 - }, - { - "path": "data_080B4410/gUnk_080B7170_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747672 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7170_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749936, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7178_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747680 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7178_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749944, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7180_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747688 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7180_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749952, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7188_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747696 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7188_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749960, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7190_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747704 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7190_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749968, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7198_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747712 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B7198_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749976, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71A0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747720 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71A0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749984, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71A8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747728 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71A8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 749992, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71B0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747736 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71B0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 750000, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71B8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747744 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71B8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 750008, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71C0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747752 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71C0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 750016, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71C8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747760 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71C8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 750024, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71D0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747768 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71D0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 750032, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71D8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747776 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71D8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 750040, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71E0_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747784 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71E0_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 750048, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71E8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 747792 - }, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71E8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 750056, - "size": 8 - }, - { - "path": "data_080B4410/gUnk_080B71F0.bin", - "start": 750068, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_1.bin", - "start": 750076, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_2.bin", - "start": 750084, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_3.bin", - "start": 750092, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_4.bin", - "start": 750100, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_5.bin", - "start": 750108, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_6.bin", - "start": 750116, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_7.bin", - "start": 750124, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_8.bin", - "start": 750132, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_9.bin", - "start": 750140, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_10.bin", - "start": 750148, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_11.bin", - "start": 750156, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_12.bin", - "start": 750164, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_13.bin", - "start": 750172, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_14.bin", - "start": 750180, - "size": 4 - }, - { - "path": "data_080B4410/gUnk_080B71F0_15.bin", - "start": 750188, - "size": 12 - }, { "path": "data_080B7910/gUnk_080B7910.bin", "start": 751888, @@ -21602,67 +4615,6 @@ "start": 826396, "size": 32 }, - { - "path": "data_080C93E0/gUnk_080C9C6C.bin", - "start": 826476, - "size": 64 - }, - { - "path": "data_080C93E0/gUnk_080C9CBC_JP.bin", - "variants": [ - "JP" - ], - "starts": { - "JP": 825948 - }, - "size": 944 - }, - { - "path": "data_080C93E0/gUnk_080C9CBC_1_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 824292 - }, - "size": 944 - }, - { - "path": "data_080C93E0/gUnk_080C9CBC_2_USA-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "DEMO_USA", - "DEMO_JP" - ], - "start": 826556, - "size": 944 - }, - { - "path": "data_080C93E0/gUnk_080CA06C_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 825236 - }, - "size": 176 - }, - { - "path": "data_080C93E0/gUnk_080CA06C_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 827500, - "size": 176 - }, - { - "path": "data_080C93E0/gUnk_080CA11C.bin", - "start": 827676, - "size": 20 - }, { "path": "animations/gSpriteAnimations_Octorok_0.bin", "start": 827776, @@ -28438,46 +11390,6 @@ "size": 17, "type": "animation" }, - { - "path": "data_080D3D94/gUnk_080D3D94.bin", - "start": 867732, - "size": 224 - }, - { - "path": "data_080D3D94/gUnk_080D3E74.bin", - "start": 867956, - "size": 28 - }, - { - "path": "data_080D3D94/gUnk_080D3E90.bin", - "start": 867984, - "size": 160 - }, - { - "path": "data_080D3D94/gUnk_080D3F30.bin", - "start": 868144, - "size": 160 - }, - { - "path": "data_080D3D94/gUnk_080D3FD0.bin", - "start": 868304, - "size": 160 - }, - { - "path": "data_080D3D94/gUnk_080D4070.bin", - "start": 868464, - "size": 160 - }, - { - "path": "data_080D3D94/gUnk_080D4138.bin", - "start": 868664, - "size": 8 - }, - { - "path": "data_080D3D94/gUnk_080D4140.bin", - "start": 868672, - "size": 16 - }, { "offsets": { "EU": -2212 @@ -29912,1012 +12824,6 @@ "DEMO_JP": -2076 } }, - { - "path": "data_080D5360/gUnk_080FC3C4.bin", - "start": 1033156, - "size": 32 - }, - { - "path": "data_080D5360/gUnk_080FC3E4_JP.bin", - "variants": [ - "JP" - ], - "starts": { - "JP": 1032340 - }, - "size": 1120 - }, - { - "path": "data_080D5360/gUnk_080FC3E4_1_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1030440 - }, - "size": 1120 - }, - { - "path": "data_080D5360/gUnk_080FC3E4_2_USA-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "DEMO_USA", - "DEMO_JP" - ], - "start": 1033188, - "size": 1120 - }, - { - "path": "data_080D5360/gUnk_080FC844.bin", - "start": 1034308, - "size": 24 - }, - { - "path": "data_080D5360/gUnk_080FC85C.bin", - "start": 1034332, - "size": 72 - }, - { - "path": "data_080FC8A4/gUnk_080FC914.bin", - "start": 1034516, - "size": 40 - }, - { - "path": "data_080FC8A4/gUnk_080FC970.bin", - "start": 1034608, - "size": 16 - }, - { - "path": "data_080FC8A4/gUnk_080FC980.bin", - "start": 1034624, - "size": 32 - }, - { - "path": "data_080FC8A4/gUnk_080FC9A0.bin", - "start": 1034656, - "size": 16 - }, - { - "path": "data_080FC8A4/gUnk_080FCB94.bin", - "start": 1035156, - "size": 32 - }, - { - "path": "data_080FC8A4/gUnk_080FCBC4.bin", - "start": 1035204, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCBC4_1.bin", - "start": 1035220, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCBC4_2.bin", - "start": 1035236, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCBC4_3.bin", - "start": 1035252, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCBC4_4.bin", - "start": 1035268, - "size": 16 - }, - { - "path": "data_080FC8A4/gUnk_080FCC14.bin", - "start": 1035284, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCC14_1.bin", - "start": 1035300, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCC14_2.bin", - "start": 1035316, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCC14_3.bin", - "start": 1035332, - "size": 16 - }, - { - "path": "data_080FC8A4/gUnk_080FCC54.bin", - "start": 1035348, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCC54_1.bin", - "start": 1035364, - "size": 32 - }, - { - "path": "data_080FC8A4/gUnk_080FCC84.bin", - "start": 1035396, - "size": 24 - }, - { - "path": "data_080FC8A4/gUnk_080FCC9C.bin", - "start": 1035420, - "size": 24 - }, - { - "path": "data_080FC8A4/gUnk_080FCCB4.bin", - "start": 1035448, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FCCB4_1.bin", - "start": 1035460, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FCCB4_2.bin", - "start": 1035472, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FCCB4_3.bin", - "start": 1035484, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FCCB4_4.bin", - "start": 1035496, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FCCB4_5.bin", - "start": 1035508, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FCD84.bin", - "start": 1035652, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCD84_1.bin", - "start": 1035668, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCD84_2.bin", - "start": 1035684, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCD84_3.bin", - "start": 1035700, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCD84_4.bin", - "start": 1035716, - "size": 16 - }, - { - "path": "data_080FC8A4/gUnk_080FCDE0.bin", - "start": 1035744, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCDE0_1.bin", - "start": 1035760, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCDE0_2.bin", - "start": 1035776, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCDE0_3.bin", - "start": 1035792, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCDE0_4.bin", - "start": 1035808, - "size": 16 - }, - { - "path": "data_080FC8A4/gUnk_080FCE30.bin", - "start": 1035824, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCE30_1.bin", - "start": 1035840, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCE30_2.bin", - "start": 1035856, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCE30_3.bin", - "start": 1035872, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCE30_4.bin", - "start": 1035888, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCE30_5.bin", - "start": 1035904, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCE30_6.bin", - "start": 1035920, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCE30_7.bin", - "start": 1035936, - "size": 16 - }, - { - "path": "data_080FC8A4/gUnk_080FCEBC.bin", - "start": 1035964, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCEBC_1.bin", - "start": 1035980, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FCEBC_2.bin", - "start": 1035996, - "size": 16 - }, - { - "path": "data_080FC8A4/gUnk_080FCF24.bin", - "start": 1036068, - "size": 32 - }, - { - "path": "data_080FC8A4/gUnk_080FCF44.bin", - "start": 1036100, - "size": 32 - }, - { - "path": "data_080FC8A4/gUnk_080FCF64.bin", - "start": 1036132, - "size": 32 - }, - { - "path": "data_080FC8A4/gUnk_080FCF84.bin", - "start": 1036164, - "size": 32 - }, - { - "path": "data_080FC8A4/gUnk_080FCFE8.bin", - "start": 1036264, - "size": 32 - }, - { - "path": "data_080FC8A4/gUnk_080FD008.bin", - "start": 1036296, - "size": 32 - }, - { - "path": "data_080FC8A4/gUnk_080FD028.bin", - "start": 1036328, - "size": 32 - }, - { - "path": "data_080FC8A4/gUnk_080FD048.bin", - "start": 1036360, - "size": 48 - }, - { - "path": "data_080FC8A4/gUnk_080FD078.bin", - "start": 1036408, - "size": 32 - }, - { - "path": "data_080FC8A4/gUnk_080FD098.bin", - "start": 1036440, - "size": 48 - }, - { - "path": "data_080FC8A4/gUnk_080FD0C8.bin", - "start": 1036488, - "size": 32 - }, - { - "path": "data_080FC8A4/gUnk_080FD0E8.bin", - "start": 1036520, - "size": 32 - }, - { - "path": "data_080FC8A4/gHitbox_0.bin", - "start": 1036624, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_30.bin", - "start": 1036632, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_31.bin", - "start": 1036640, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_1.bin", - "start": 1036648, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_2.bin", - "start": 1036656, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD178.bin", - "start": 1036664, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_3.bin", - "start": 1036672, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_4.bin", - "start": 1036680, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD190.bin", - "start": 1036688, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_5.bin", - "start": 1036696, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_6.bin", - "start": 1036704, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD1A8.bin", - "start": 1036712, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FD1B4.bin", - "start": 1036724, - "size": 16 - }, - { - "path": "data_080FC8A4/gHitbox_7.bin", - "start": 1036740, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_8.bin", - "start": 1036748, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD1D4.bin", - "start": 1036756, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD1DC.bin", - "start": 1036764, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD1E4.bin", - "start": 1036772, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD1EC.bin", - "start": 1036780, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD1F4.bin", - "start": 1036788, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD1FC.bin", - "start": 1036796, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD204.bin", - "start": 1036804, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD20C.bin", - "start": 1036812, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD214.bin", - "start": 1036820, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD21C.bin", - "start": 1036828, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD224.bin", - "start": 1036836, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD22C.bin", - "start": 1036844, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FD238.bin", - "start": 1036856, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD240.bin", - "start": 1036864, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD248.bin", - "start": 1036872, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_9.bin", - "start": 1036880, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD258.bin", - "start": 1036888, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD260.bin", - "start": 1036896, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_10.bin", - "start": 1036904, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD270.bin", - "start": 1036912, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD278.bin", - "start": 1036920, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD280.bin", - "start": 1036928, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD288.bin", - "start": 1036936, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD290.bin", - "start": 1036944, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD298.bin", - "start": 1036952, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD2A0.bin", - "start": 1036960, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD2A8.bin", - "start": 1036968, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_11.bin", - "start": 1036976, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_12.bin", - "start": 1036984, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_13.bin", - "start": 1036992, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_14.bin", - "start": 1037000, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD2D0.bin", - "start": 1037008, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD2D8.bin", - "start": 1037016, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD2E0.bin", - "start": 1037024, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD2E8.bin", - "start": 1037032, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD2F0.bin", - "start": 1037040, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_15.bin", - "start": 1037048, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_16.bin", - "start": 1037056, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD308.bin", - "start": 1037064, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD310.bin", - "start": 1037072, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_17.bin", - "start": 1037080, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD320.bin", - "start": 1037088, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD328.bin", - "start": 1037096, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD330.bin", - "start": 1037104, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_18.bin", - "start": 1037112, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD340.bin", - "start": 1037120, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FD34C.bin", - "start": 1037132, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD354.bin", - "start": 1037140, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD35C.bin", - "start": 1037148, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD364.bin", - "start": 1037156, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD36C.bin", - "start": 1037164, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD374.bin", - "start": 1037172, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD37C.bin", - "start": 1037180, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD384.bin", - "start": 1037188, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD38C.bin", - "start": 1037196, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD394.bin", - "start": 1037204, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD39C.bin", - "start": 1037212, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD3A4.bin", - "start": 1037220, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD3AC.bin", - "start": 1037228, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD3B4.bin", - "start": 1037236, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD3BC.bin", - "start": 1037244, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD3C4.bin", - "start": 1037252, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD3CC.bin", - "start": 1037260, - "size": 16 - }, - { - "path": "data_080FC8A4/gUnk_080FD3DC.bin", - "start": 1037276, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD3E4.bin", - "start": 1037284, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD3EC.bin", - "start": 1037292, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD3F4.bin", - "start": 1037300, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD3FC.bin", - "start": 1037308, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FD408.bin", - "start": 1037320, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_19.bin", - "start": 1037328, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FD41C.bin", - "start": 1037340, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD424.bin", - "start": 1037348, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD42C.bin", - "start": 1037356, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD434.bin", - "start": 1037364, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD43C.bin", - "start": 1037372, - "size": 12 - }, - { - "path": "data_080FC8A4/gHitbox_20.bin", - "start": 1037384, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD450.bin", - "start": 1037392, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_21.bin", - "start": 1037400, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_22.bin", - "start": 1037408, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_23.bin", - "start": 1037416, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_32.bin", - "start": 1037424, - "size": 16 - }, - { - "path": "data_080FC8A4/gHitbox_24.bin", - "start": 1037440, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD488.bin", - "start": 1037448, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD490.bin", - "start": 1037456, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_25.bin", - "start": 1037464, - "size": 12 - }, - { - "path": "data_080FC8A4/gHitbox_26.bin", - "start": 1037476, - "size": 20 - }, - { - "path": "data_080FC8A4/gUnk_080FD4B8.bin", - "start": 1037496, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD4C0.bin", - "start": 1037504, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD4C8.bin", - "start": 1037512, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD4D0.bin", - "start": 1037520, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD4D8.bin", - "start": 1037528, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD4E0.bin", - "start": 1037536, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD4E8.bin", - "start": 1037544, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD4F0.bin", - "start": 1037552, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD4F8.bin", - "start": 1037560, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD500.bin", - "start": 1037568, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD508.bin", - "start": 1037576, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD510.bin", - "start": 1037584, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD518.bin", - "start": 1037592, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD520.bin", - "start": 1037600, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_27.bin", - "start": 1037608, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD530.bin", - "start": 1037616, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD538.bin", - "start": 1037624, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FD544.bin", - "start": 1037636, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_28.bin", - "start": 1037644, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FD558.bin", - "start": 1037656, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD560.bin", - "start": 1037664, - "size": 8 - }, - { - "path": "data_080FC8A4/gHitbox_29.bin", - "start": 1037672, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD570.bin", - "start": 1037680, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD578.bin", - "start": 1037688, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD580.bin", - "start": 1037696, - "size": 8 - }, - { - "path": "data_080FC8A4/gUnk_080FD588.bin", - "start": 1037704, - "size": 8 - }, - { - "path": "data_080FC8A4/gWalletSizes.bin", - "start": 1037712, - "size": 16 - }, - { - "path": "data_080FC8A4/gBombBagSizes.bin", - "start": 1037728, - "size": 4 - }, - { - "path": "data_080FC8A4/gQuiverSizes.bin", - "start": 1037732, - "size": 4 - }, - { - "path": "data_080FC8A4/gUnk_080FD5A8.bin", - "start": 1037736, - "size": 12 - }, - { - "path": "data_080FC8A4/gUnk_080FD964_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1035944 - }, - "size": 944 - }, - { - "path": "data_080FC8A4/gUnk_080FD964_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 1038692, - "size": 944 - }, { "path": "animations/gSpriteAnimations_322_0.bin", "start": 1039636, @@ -31452,99 +13358,6 @@ "size": 8, "type": "animation" }, - { - "path": "data_080FC8A4/gUnk_080FE1B4.bin", - "start": 1040820, - "size": 18 - }, - { - "path": "data_080FC8A4/gUnk_080FE1C6.bin", - "start": 1040838, - "size": 23 - }, - { - "path": "data_080FC8A4/gUnk_080FE1DD.bin", - "start": 1040861, - "size": 195 - }, - { - "path": "data_080FC8A4/gUnk_080FE320_JP.bin", - "variants": [ - "JP" - ], - "starts": { - "JP": 1040336 - }, - "size": 752 - }, - { - "path": "data_080FC8A4/gUnk_080FE320_1_DEMO_JP.bin", - "variants": [ - "DEMO_JP" - ], - "starts": { - "DEMO_JP": 1039108 - }, - "size": 752 - }, - { - "path": "data_080FC8A4/gUnk_080FE320_2_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1038436 - }, - "size": 752 - }, - { - "path": "data_080FC8A4/gUnk_080FE320_3_USA-DEMO_USA.bin", - "variants": [ - "USA", - "DEMO_USA" - ], - "start": 1041184, - "size": 752 - }, - { - "path": "data_080FC8A4/gUnk_080FE320_4_JP.bin", - "variants": [ - "JP" - ], - "starts": { - "JP": 1041088 - }, - "size": 1208 - }, - { - "path": "data_080FC8A4/gUnk_080FE320_5_DEMO_JP.bin", - "variants": [ - "DEMO_JP" - ], - "starts": { - "DEMO_JP": 1039860 - }, - "size": 1208 - }, - { - "path": "data_080FC8A4/gUnk_080FE320_6_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1039188 - }, - "size": 1208 - }, - { - "path": "data_080FC8A4/gUnk_080FE320_7_USA-DEMO_USA.bin", - "variants": [ - "USA", - "DEMO_USA" - ], - "start": 1041936, - "size": 1208 - }, { "path": "data_080FC8A4/gUnk_080FEAC8.bin", "start": 1043144, @@ -31732,310 +13545,6 @@ "start": 1044088, "size": 48 }, - { - "path": "data_080FEEB8/gUnk_080FEED4.bin", - "start": 1044180, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEED4_1.bin", - "start": 1044196, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEED4_2.bin", - "start": 1044212, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEED4_3.bin", - "start": 1044228, - "size": 48 - }, - { - "path": "data_080FEEB8/gUnk_080FEF48.bin", - "start": 1044296, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEF48_1_JP.bin", - "variants": [ - "JP" - ], - "starts": { - "JP": 1043464 - }, - "size": 32 - }, - { - "path": "data_080FEEB8/gUnk_080FEF48_2_DEMO_JP.bin", - "variants": [ - "DEMO_JP" - ], - "starts": { - "DEMO_JP": 1042236 - }, - "size": 32 - }, - { - "path": "data_080FEEB8/gUnk_080FEF48_3_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1041564 - }, - "size": 32 - }, - { - "path": "data_080FEEB8/gUnk_080FEF48_4_USA-DEMO_USA.bin", - "variants": [ - "USA", - "DEMO_USA" - ], - "start": 1044312, - "size": 32 - }, - { - "path": "data_080FEEB8/gUnk_080FEF78.bin", - "start": 1044344, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEF78_1.bin", - "start": 1044360, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEF78_2.bin", - "start": 1044376, - "size": 16 - }, - { - "path": "data_080FEEB8/gUnk_080FEFA8.bin", - "start": 1044392, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEFA8_1.bin", - "start": 1044408, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEFA8_2.bin", - "start": 1044424, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEFA8_3.bin", - "start": 1044440, - "size": 16 - }, - { - "path": "data_080FEEB8/gUnk_080FEFE8.bin", - "start": 1044456, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEFE8_1.bin", - "start": 1044472, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEFE8_2.bin", - "start": 1044488, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEFE8_3.bin", - "start": 1044504, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FEFE8_4.bin", - "start": 1044520, - "size": 16 - }, - { - "path": "data_080FEEB8/gUnk_080FF038.bin", - "start": 1044536, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF038_1.bin", - "start": 1044552, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF038_2.bin", - "start": 1044568, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF038_3.bin", - "start": 1044584, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF038_4.bin", - "start": 1044600, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF038_5.bin", - "start": 1044616, - "size": 16 - }, - { - "path": "data_080FEEB8/gUnk_080FF098.bin", - "start": 1044632, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF098_1.bin", - "start": 1044648, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF098_2.bin", - "start": 1044664, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF098_3.bin", - "start": 1044680, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF098_4.bin", - "start": 1044696, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF098_5.bin", - "start": 1044712, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF098_6.bin", - "start": 1044728, - "size": 16 - }, - { - "path": "data_080FEEB8/gUnk_080FF128.bin", - "start": 1044776, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF128_1.bin", - "start": 1044792, - "size": 16 - }, - { - "path": "data_080FEEB8/gUnk_080FF154.bin", - "start": 1044820, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF154_1.bin", - "start": 1044836, - "size": 16 - }, - { - "path": "data_080FEEB8/gUnk_080FF17C.bin", - "start": 1044860, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF17C_1.bin", - "start": 1044876, - "size": 64 - }, - { - "path": "data_080FEEB8/gUnk_080FF1D4.bin", - "start": 1044948, - "size": 32 - }, - { - "path": "data_080FEEB8/gUnk_080FF204.bin", - "start": 1044996, - "size": 36 - }, - { - "path": "data_080FEEB8/gUnk_080FF264.bin", - "start": 1045092, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF264_1.bin", - "start": 1045108, - "size": 16 - }, - { - "path": "data_080FEEB8/gUnk_080FF298.bin", - "start": 1045144, - "size": 32 - }, - { - "path": "data_080FEEB8/gUnk_080FF2C0.bin", - "start": 1045184, - "size": 28 - }, - { - "path": "data_080FEEB8/gUnk_080FF2C0_1.bin", - "start": 1045216, - "size": 32 - }, - { - "path": "data_080FEEB8/gUnk_080FF308.bin", - "start": 1045256, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF308_1.bin", - "start": 1045272, - "size": 16 - }, - { - "path": "data_080FEEB8/gUnk_080FF33C.bin", - "start": 1045308, - "size": 32 - }, - { - "path": "data_080FEEB8/gUnk_080FF378.bin", - "start": 1045368, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF378_1.bin", - "start": 1045384, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF378_2.bin", - "start": 1045400, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF378_3.bin", - "start": 1045416, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF378_4.bin", - "start": 1045432, - "size": 16 - }, - { - "path": "data_080FEEB8/gUnk_080FF400.bin", - "start": 1045504, - "size": 12 - }, - { - "path": "data_080FEEB8/gUnk_080FF400_1.bin", - "start": 1045520, - "size": 16 - }, { "offsets": { "EU": -2220, @@ -33306,26 +14815,6 @@ "start": 1085824, "size": 12 }, - { - "path": "data_08108E6C/gUnk_081091E4.bin", - "start": 1085924, - "size": 10 - }, - { - "path": "data_08108E6C/gUnk_081091EE.bin", - "start": 1085934, - "size": 10 - }, - { - "path": "data_08108E6C/gUnk_081091F8.bin", - "start": 1085944, - "size": 10 - }, - { - "path": "data_08108E6C/gUnk_08109202.bin", - "start": 1085954, - "size": 18 - }, { "path": "data_08108E6C/gUnk_08109230.bin", "start": 1086000, @@ -33356,41 +14845,6 @@ "start": 1086670, "size": 1378 }, - { - "path": "data_08108E6C/gUnk_08109A58.bin", - "start": 1088088, - "size": 16 - }, - { - "path": "data_08108E6C/gUnk_08109A68.bin", - "start": 1088104, - "size": 16 - }, - { - "path": "data_08108E6C/gUnk_08109A78.bin", - "start": 1088120, - "size": 16 - }, - { - "path": "data_08108E6C/gUnk_08109A88.bin", - "start": 1088136, - "size": 16 - }, - { - "path": "data_08108E6C/gUnk_08109A98.bin", - "start": 1088152, - "size": 16 - }, - { - "path": "data_08108E6C/gUnk_08109AA8.bin", - "start": 1088168, - "size": 16 - }, - { - "path": "data_08108E6C/gUnk_08109AB8.bin", - "start": 1088184, - "size": 16 - }, { "path": "animations/gSpriteAnimations_Gentari_0.bin", "start": 1088216, @@ -33769,139 +15223,6 @@ "size": 15, "type": "animation" }, - { - "path": "forestMinish/gUnk_08109C98.bin", - "start": 1088664, - "size": 128 - }, - { - "path": "forestMinish/gUnk_08109DC8.bin", - "start": 1088968, - "size": 420 - }, - { - "path": "forestMinish/gUnk_08109DC8_1_JP.bin", - "variants": [ - "JP" - ], - "starts": { - "JP": 1088560 - }, - "size": 43 - }, - { - "path": "forestMinish/gUnk_08109DC8_2_DEMO_JP.bin", - "variants": [ - "DEMO_JP" - ], - "starts": { - "DEMO_JP": 1087336 - }, - "size": 43 - }, - { - "path": "forestMinish/gUnk_08109DC8_3_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1087168 - }, - "size": 43 - }, - { - "path": "forestMinish/gUnk_08109DC8_4_USA-DEMO_USA.bin", - "variants": [ - "USA", - "DEMO_USA" - ], - "start": 1089388, - "size": 43 - }, - { - "path": "forestMinish/gUnk_08109DC8_5_JP.bin", - "variants": [ - "JP" - ], - "starts": { - "JP": 1088603 - }, - "size": 177 - }, - { - "path": "forestMinish/gUnk_08109DC8_6_DEMO_JP.bin", - "variants": [ - "DEMO_JP" - ], - "starts": { - "DEMO_JP": 1087379 - }, - "size": 177 - }, - { - "path": "forestMinish/gUnk_08109DC8_7_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1087211 - }, - "size": 177 - }, - { - "path": "forestMinish/gUnk_08109DC8_8_USA-DEMO_USA.bin", - "variants": [ - "USA", - "DEMO_USA" - ], - "start": 1089431, - "size": 177 - }, - { - "path": "forestMinish/gUnk_08109DC8_9.bin", - "start": 1089608, - "size": 36 - }, - { - "path": "forestMinish/gUnk_08109DC8_10.bin", - "start": 1089648, - "size": 4 - }, - { - "path": "forestMinish/gUnk_08109DC8_11.bin", - "start": 1089656, - "size": 4 - }, - { - "path": "forestMinish/gUnk_08109DC8_12.bin", - "start": 1089664, - "size": 4 - }, - { - "path": "forestMinish/gUnk_08109DC8_13.bin", - "start": 1089672, - "size": 704 - }, - { - "path": "forestMinish/gUnk_0810A348.bin", - "start": 1090376, - "size": 12 - }, - { - "path": "forestMinish/gUnk_0810A354.bin", - "start": 1090388, - "size": 6 - }, - { - "path": "forestMinish/gUnk_0810A35A.bin", - "start": 1090394, - "size": 8 - }, - { - "path": "forestMinish/gUnk_0810A362.bin", - "start": 1090402, - "size": 8 - }, { "path": "animations/gSpriteAnimations_Postman_0.bin", "start": 1092240, @@ -35164,85 +16485,6 @@ "start": 1098362, "size": 6 }, - { - "path": "kid/gUnk_0810BD7C.bin", - "start": 1097084, - "size": 16 - }, - { - "path": "kid/gUnk_0810BD8C.bin", - "start": 1097100, - "size": 16 - }, - { - "path": "kid/gUnk_0810BD9C.bin", - "start": 1097116, - "size": 16 - }, - { - "path": "kid/gUnk_0810BDAC.bin", - "start": 1097132, - "size": 12 - }, - { - "path": "kid/gUnk_0810BDB8.bin", - "start": 1097144, - "size": 12 - }, - { - "path": "kid/gUnk_0810BDE8.bin", - "start": 1097192, - "size": 36 - }, - { - "path": "kid/gUnk_0810BE10.bin", - "start": 1097240, - "size": 503 - }, - { - "path": "kid/gUnk_0810BE10_1_JP.bin", - "variants": [ - "JP" - ], - "starts": { - "JP": 1096915 - }, - "size": 145 - }, - { - "path": "kid/gUnk_0810BE10_2_DEMO_JP.bin", - "variants": [ - "DEMO_JP" - ], - "starts": { - "DEMO_JP": 1095691 - }, - "size": 145 - }, - { - "path": "kid/gUnk_0810BE10_3_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1095523 - }, - "size": 145 - }, - { - "path": "kid/gUnk_0810BE10_4_USA-DEMO_USA.bin", - "variants": [ - "USA", - "DEMO_USA" - ], - "start": 1097743, - "size": 145 - }, - { - "path": "kid/gUnk_0810C0A0.bin", - "start": 1097888, - "size": 36 - }, { "path": "npc9/gUnk_0810C2A0.bin", "start": 1098400, @@ -35740,21 +16982,6 @@ "start": 1111682, "size": 58 }, - { - "path": "guard/gUnk_0810CF4C.bin", - "start": 1101644, - "size": 344 - }, - { - "path": "guard/gUnk_0810D0A4.bin", - "start": 1101988, - "size": 9344 - }, - { - "path": "guard/gUnk_0810F524.bin", - "start": 1111332, - "size": 32 - }, { "path": "animations/gSpriteAnimations_GuardWithSpear_0.bin", "start": 1111780, @@ -37147,86 +18374,6 @@ "size": 113, "type": "animation" }, - { - "path": "bladeBrothers/gUnk_081115DC.bin", - "start": 1119708, - "size": 16 - }, - { - "path": "bladeBrothers/BladeBrothers_PlayerMacros.bin", - "start": 1119760, - "size": 8 - }, - { - "path": "bladeBrothers/BladeBrothers_EquippedItem.bin", - "start": 1119768, - "size": 11 - }, - { - "path": "bladeBrothers/gUnk_08111623.bin", - "start": 1119779, - "size": 8 - }, - { - "path": "bladeBrothers/gUnk_0811162B.bin", - "start": 1119787, - "size": 57 - }, - { - "path": "bladeBrothers/gUnk_08111664.bin", - "start": 1119844, - "size": 22 - }, - { - "path": "bladeBrothers/gUnk_0811167A.bin", - "start": 1119866, - "size": 22 - }, - { - "path": "bladeBrothers/gUnk_08111690.bin", - "start": 1119888, - "size": 22 - }, - { - "path": "bladeBrothers/gUnk_081116A6.bin", - "start": 1119910, - "size": 22 - }, - { - "path": "bladeBrothers/gUnk_081116BC.bin", - "start": 1119932, - "size": 22 - }, - { - "path": "bladeBrothers/gUnk_081116D2.bin", - "start": 1119954, - "size": 22 - }, - { - "path": "bladeBrothers/gUnk_081116E8.bin", - "start": 1119976, - "size": 22 - }, - { - "path": "bladeBrothers/gUnk_081116FE.bin", - "start": 1119998, - "size": 22 - }, - { - "path": "bladeBrothers/gUnk_08111714.bin", - "start": 1120020, - "size": 22 - }, - { - "path": "bladeBrothers/gUnk_0811172A.bin", - "start": 1120042, - "size": 22 - }, - { - "path": "bladeBrothers/gUnk_08111740.bin", - "start": 1120064, - "size": 44 - }, { "path": "animations/gSpriteAnimations_BladeBrothers_1_1.bin", "start": 1120108, @@ -37479,56 +18626,6 @@ "size": 25, "type": "animation" }, - { - "path": "gorman/gUnk_08111C3C.bin", - "start": 1121340, - "size": 12 - }, - { - "path": "gorman/gUnk_08111C50.bin", - "start": 1121360, - "size": 12 - }, - { - "path": "gorman/gUnk_08111C5C.bin", - "start": 1121372, - "size": 24 - }, - { - "path": "gorman/gUnk_08111C74.bin", - "start": 1121396, - "size": 16 - }, - { - "path": "gorman/gUnk_08111C84.bin", - "start": 1121412, - "size": 8 - }, - { - "path": "gorman/gUnk_08111C8C.bin", - "start": 1121420, - "size": 16 - }, - { - "path": "gorman/gUnk_08111C9C.bin", - "start": 1121436, - "size": 12 - }, - { - "path": "gorman/gUnk_08111CA8.bin", - "start": 1121448, - "size": 12 - }, - { - "path": "gorman/gUnk_08111CB4.bin", - "start": 1121460, - "size": 4 - }, - { - "path": "gorman/gUnk_08111CB8.bin", - "start": 1121464, - "size": 4 - }, { "path": "animations/gSpriteAnimations_Dog_0.bin", "start": 1122274, @@ -37715,152 +18812,6 @@ "size": 32, "type": "animation" }, - { - "path": "dog/gUnk_08111D58_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1119400 - }, - "size": 48 - }, - { - "path": "dog/gUnk_08111D58_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 1121624, - "size": 48 - }, - { - "path": "dog/gUnk_08111DA8.bin", - "start": 1121704, - "size": 8 - }, - { - "path": "dog/gUnk_08111DB0.bin", - "start": 1121712, - "size": 128 - }, - { - "path": "dog/gUnk_08111E30.bin", - "start": 1121840, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34.bin", - "start": 1121844, - "size": 164 - }, - { - "path": "dog/gUnk_08111E34_1.bin", - "start": 1122012, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_2.bin", - "start": 1122020, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_3.bin", - "start": 1122028, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_4.bin", - "start": 1122036, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_5.bin", - "start": 1122044, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_6.bin", - "start": 1122052, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_7.bin", - "start": 1122060, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_8.bin", - "start": 1122068, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_9.bin", - "start": 1122076, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_10.bin", - "start": 1122084, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_11.bin", - "start": 1122092, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_12.bin", - "start": 1122100, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_13.bin", - "start": 1122108, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_14.bin", - "start": 1122116, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_15.bin", - "start": 1122124, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_16.bin", - "start": 1122132, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_17.bin", - "start": 1122140, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_18.bin", - "start": 1122148, - "size": 4 - }, - { - "path": "dog/gUnk_08111E34_19.bin", - "start": 1122156, - "size": 4 - }, - { - "path": "dog/gUnk_08111F74.bin", - "start": 1122164, - "size": 100 - }, - { - "path": "dog/gUnk_08111FD8.bin", - "start": 1122264, - "size": 10 - }, { "path": "animations/gSpriteAnimations_Syrup_0.bin", "start": 1122824, @@ -39018,16 +19969,6 @@ "size": 7, "type": "animation" }, - { - "path": "data_081146D0/gUnk_08114F30.bin", - "start": 1134384, - "size": 4 - }, - { - "path": "data_081146D0/gUnk_08114F34.bin", - "start": 1134388, - "size": 4 - }, { "path": "sprites/gSpriteFrames_1.bin", "start": 1134488, @@ -39866,151 +20807,6 @@ "start": 1162816, "size": 8 }, - { - "path": "data_0811BE38/gUnk_0811BFE0.bin", - "start": 1163232, - "size": 8 - }, - { - "path": "data_0811BE38/gUnk_0811C000.bin", - "start": 1163264, - "size": 12 - }, - { - "path": "data_0811BE38/gUnk_0811C00C.bin", - "start": 1163276, - "size": 8 - }, - { - "path": "data_0811BE38/gUnk_0811C014.bin", - "start": 1163284, - "size": 8 - }, - { - "path": "data_0811BE38/gUnk_0811C01C.bin", - "start": 1163292, - "size": 84 - }, - { - "path": "data_0811BE38/gUnk_0811C070.bin", - "start": 1163376, - "size": 32 - }, - { - "path": "data_0811BE38/gUnk_0811C090.bin", - "start": 1163408, - "size": 32 - }, - { - "path": "data_0811BE38/gUnk_0811C0B8.bin", - "start": 1163448, - "size": 16 - }, - { - "path": "data_0811BE38/gUnk_0811C0C8.bin", - "start": 1163464, - "size": 16 - }, - { - "path": "data_0811BE38/gUnk_0811C0D8.bin", - "start": 1163480, - "size": 16 - }, - { - "path": "data_0811BE38/gUnk_0811C0F8.bin", - "start": 1163512, - "size": 8 - }, - { - "path": "data_0811BE38/gUnk_0811C100.bin", - "start": 1163520, - "size": 8 - }, - { - "path": "data_0811BE38/gUnk_0811C108.bin", - "start": 1163528, - "size": 8 - }, - { - "path": "data_0811BE38/gUnk_0811C110.bin", - "start": 1163536, - "size": 8 - }, - { - "path": "data_0811BE38/gUnk_0811C118.bin", - "start": 1163544, - "size": 8 - }, - { - "path": "data_0811BE38/gUnk_0811C1F8.bin", - "start": 1163768, - "size": 18 - }, - { - "path": "data_0811BE38/gUnk_0811C20A.bin", - "start": 1163786, - "size": 18 - }, - { - "path": "data_0811BE38/gUnk_0811C21C.bin", - "start": 1163804, - "size": 18 - }, - { - "path": "data_0811BE38/gUnk_0811C22E.bin", - "start": 1163822, - "size": 18 - }, - { - "path": "data_0811BE38/gUnk_0811C240.bin", - "start": 1163840, - "size": 10 - }, - { - "path": "data_0811BE38/gUnk_0811C24A.bin", - "start": 1163850, - "size": 10 - }, - { - "path": "data_0811BE38/gUnk_0811C254.bin", - "start": 1163860, - "size": 10 - }, - { - "path": "data_0811BE38/gUnk_0811C25E.bin", - "start": 1163870, - "size": 10 - }, - { - "path": "data_0811BE38/gUnk_0811C268.bin", - "start": 1163880, - "size": 20 - }, - { - "path": "data_0811BE38/gUnk_0811C2AC.bin", - "start": 1163948, - "size": 32 - }, - { - "path": "data_0811BE38/gUnk_0811C2CC.bin", - "start": 1163980, - "size": 32 - }, - { - "path": "data_0811BE38/gUnk_0811C2EC.bin", - "start": 1164012, - "size": 362 - }, - { - "path": "data_0811BE38/gUnk_0811C456.bin", - "start": 1164374, - "size": 16 - }, - { - "path": "data_0811BE38/gUnk_0811C466.bin", - "start": 1164390, - "size": 34 - }, { "path": "demo/save1.bin", "starts": { @@ -43149,16 +23945,6 @@ "EU": -2248 } }, - { - "path": "data_08125104/gUnk_08126EE4.bin", - "start": 1208036, - "size": 8 - }, - { - "path": "data_08125104/gUnk_08126EEC.bin", - "start": 1208044, - "size": 8 - }, { "path": "animations/gSpriteAnimations_166_0.bin", "start": 1208052, @@ -43345,11 +24131,6 @@ "size": 9, "type": "animation" }, - { - "path": "data_08125104/gUnk_081271CC.bin", - "start": 1208780, - "size": 8 - }, { "path": "playerItemShield/gUnk_081271DC.bin", "start": 1208796, @@ -43431,127 +24212,6 @@ "start": 1212308, "size": 144 }, - { - "path": "data_08127280/gUnk_08128A38.bin", - "start": 1215032, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_1.bin", - "start": 1215040, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_2.bin", - "start": 1215048, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_3.bin", - "start": 1215056, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_4.bin", - "start": 1215064, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_5.bin", - "start": 1215072, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_6.bin", - "start": 1215080, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_7.bin", - "start": 1215088, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_8.bin", - "start": 1215096, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_9.bin", - "start": 1215104, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_10.bin", - "start": 1215112, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_11.bin", - "start": 1215120, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_12.bin", - "start": 1215128, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_13.bin", - "start": 1215136, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_14.bin", - "start": 1215144, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_15.bin", - "start": 1215152, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_16.bin", - "start": 1215160, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_17.bin", - "start": 1215168, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_18.bin", - "start": 1215176, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128A38_19.bin", - "start": 1215184, - "size": 4 - }, - { - "path": "data_08127280/gUnk_08128AD8_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1212944 - }, - "size": 88 - }, - { - "path": "data_08127280/gUnk_08128AD8_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 1215192, - "size": 88 - }, { "path": "data_08127280/gUnk_08128C00.bin", "start": 1215488, @@ -44561,27 +25221,6 @@ "start": 1256232, "size": 8 }, - { - "path": "data_08132B30/gUnk_08133368_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1255860 - }, - "size": 1456 - }, - { - "path": "data_08132B30/gUnk_08133368_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 1258344, - "size": 1456 - }, { "offsets": { "DEMO_USA": 2608, diff --git a/assets/gfx.json b/assets/gfx.json index 067b035d..fa8a9f93 100644 --- a/assets/gfx.json +++ b/assets/gfx.json @@ -66,10 +66,16 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_0.bin", + "path": "palettes/gPalette_9.gbapal", "start": 5910432, - "size": 64, - "type": "unknown" + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_10.gbapal", + "start": 5910464, + "size": 32, + "type": "palette" }, { "path": "palettes/gPalette_11.gbapal", @@ -96,10 +102,856 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_1.bin", + "path": "palettes/gPalette_15.gbapal", "start": 5910624, - "size": 4544, - "type": "unknown" + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_16.gbapal", + "start": 5910656, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_17.gbapal", + "start": 5910688, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_18.gbapal", + "start": 5910720, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_19.gbapal", + "start": 5910752, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_20.gbapal", + "start": 5910784, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_21.gbapal", + "start": 5910816, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_22.gbapal", + "start": 5910848, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_23.gbapal", + "start": 5910880, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_24.gbapal", + "start": 5910912, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_25.gbapal", + "start": 5910944, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_26.gbapal", + "start": 5910976, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_27.gbapal", + "start": 5911008, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_28.gbapal", + "start": 5911040, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_29.gbapal", + "start": 5911072, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_30.gbapal", + "start": 5911104, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_31.gbapal", + "start": 5911136, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_32.gbapal", + "start": 5911168, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_33.gbapal", + "start": 5911200, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_34.gbapal", + "start": 5911232, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_35.gbapal", + "start": 5911264, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_36.gbapal", + "start": 5911296, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_37.gbapal", + "start": 5911328, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_38.gbapal", + "start": 5911360, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_39.gbapal", + "start": 5911392, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_40.gbapal", + "start": 5911424, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_41.gbapal", + "start": 5911456, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_42.gbapal", + "start": 5911488, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_43.gbapal", + "start": 5911520, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_44.gbapal", + "start": 5911552, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_45.gbapal", + "start": 5911584, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_46.gbapal", + "start": 5911616, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_47.gbapal", + "start": 5911648, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_48.gbapal", + "start": 5911680, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_49.gbapal", + "start": 5911712, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_50.gbapal", + "start": 5911744, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_51.gbapal", + "start": 5911776, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_52.gbapal", + "start": 5911808, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_53.gbapal", + "start": 5911840, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_54.gbapal", + "start": 5911872, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_55.gbapal", + "start": 5911904, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_56.gbapal", + "start": 5911936, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_57.gbapal", + "start": 5911968, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_58.gbapal", + "start": 5912000, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_59.gbapal", + "start": 5912032, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_60.gbapal", + "start": 5912064, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_61.gbapal", + "start": 5912096, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_62.gbapal", + "start": 5912128, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_63.gbapal", + "start": 5912160, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_64.gbapal", + "start": 5912192, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_65.gbapal", + "start": 5912224, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_66.gbapal", + "start": 5912256, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_67.gbapal", + "start": 5912288, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_68.gbapal", + "start": 5912320, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_69.gbapal", + "start": 5912352, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_70.gbapal", + "start": 5912384, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_71.gbapal", + "start": 5912416, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_72.gbapal", + "start": 5912448, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_73.gbapal", + "start": 5912480, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_74.gbapal", + "start": 5912512, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_75.gbapal", + "start": 5912544, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_76.gbapal", + "start": 5912576, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_77.gbapal", + "start": 5912608, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_78.gbapal", + "start": 5912640, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_79.gbapal", + "start": 5912672, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_80.gbapal", + "start": 5912704, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_81.gbapal", + "start": 5912736, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_82.gbapal", + "start": 5912768, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_83.gbapal", + "start": 5912800, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_84.gbapal", + "start": 5912832, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_85.gbapal", + "start": 5912864, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_86.gbapal", + "start": 5912896, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_87.gbapal", + "start": 5912928, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_88.gbapal", + "start": 5912960, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_89.gbapal", + "start": 5912992, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_90.gbapal", + "start": 5913024, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_91.gbapal", + "start": 5913056, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_92.gbapal", + "start": 5913088, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_93.gbapal", + "start": 5913120, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_94.gbapal", + "start": 5913152, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_95.gbapal", + "start": 5913184, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_96.gbapal", + "start": 5913216, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_97.gbapal", + "start": 5913248, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_98.gbapal", + "start": 5913280, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_99.gbapal", + "start": 5913312, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_100.gbapal", + "start": 5913344, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_101.gbapal", + "start": 5913376, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_102.gbapal", + "start": 5913408, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_103.gbapal", + "start": 5913440, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_104.gbapal", + "start": 5913472, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_105.gbapal", + "start": 5913504, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_106.gbapal", + "start": 5913536, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_107.gbapal", + "start": 5913568, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_108.gbapal", + "start": 5913600, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_109.gbapal", + "start": 5913632, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_110.gbapal", + "start": 5913664, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_111.gbapal", + "start": 5913696, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_112.gbapal", + "start": 5913728, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_113.gbapal", + "start": 5913760, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_114.gbapal", + "start": 5913792, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_115.gbapal", + "start": 5913824, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_116.gbapal", + "start": 5913856, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_117.gbapal", + "start": 5913888, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_118.gbapal", + "start": 5913920, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_119.gbapal", + "start": 5913952, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_120.gbapal", + "start": 5913984, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_121.gbapal", + "start": 5914016, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_122.gbapal", + "start": 5914048, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_123.gbapal", + "start": 5914080, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_124.gbapal", + "start": 5914112, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_125.gbapal", + "start": 5914144, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_126.gbapal", + "start": 5914176, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_127.gbapal", + "start": 5914208, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_128.gbapal", + "start": 5914240, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_129.gbapal", + "start": 5914272, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_130.gbapal", + "start": 5914304, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_131.gbapal", + "start": 5914336, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_132.gbapal", + "start": 5914368, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_133.gbapal", + "start": 5914400, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_134.gbapal", + "start": 5914432, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_135.gbapal", + "start": 5914464, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_136.gbapal", + "start": 5914496, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_137.gbapal", + "start": 5914528, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_138.gbapal", + "start": 5914560, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_139.gbapal", + "start": 5914592, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_140.gbapal", + "start": 5914624, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_141.gbapal", + "start": 5914656, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_142.gbapal", + "start": 5914688, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_143.gbapal", + "start": 5914720, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_144.gbapal", + "start": 5914752, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_145.gbapal", + "start": 5914784, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_146.gbapal", + "start": 5914816, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_147.gbapal", + "start": 5914848, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_148.gbapal", + "start": 5914880, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_149.gbapal", + "start": 5914912, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_150.gbapal", + "start": 5914944, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_151.gbapal", + "start": 5914976, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_152.gbapal", + "start": 5915008, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_153.gbapal", + "start": 5915040, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_154.gbapal", + "start": 5915072, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_155.gbapal", + "start": 5915104, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_156.gbapal", + "start": 5915136, + "size": 32, + "type": "palette" }, { "path": "palettes/gPalette_157.gbapal", @@ -150,11 +1002,1121 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_2.bin", + "path": "palettes/gPalette_165.gbapal", "start": 5915424, - "size": 6048, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_166.gbapal", + "start": 5915456, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_167.gbapal", + "start": 5915488, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_168.gbapal", + "start": 5915520, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_169.gbapal", + "start": 5915552, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_170.gbapal", + "start": 5915584, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_171.gbapal", + "start": 5915616, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_172.gbapal", + "start": 5915648, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_173.gbapal", + "start": 5915680, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_174.gbapal", + "start": 5915712, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_175.gbapal", + "start": 5915744, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_176.gbapal", + "start": 5915776, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_177.gbapal", + "start": 5915808, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_178.gbapal", + "start": 5915840, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_179.gbapal", + "start": 5915872, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_180.gbapal", + "start": 5915904, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_181.gbapal", + "start": 5915936, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_182.gbapal", + "start": 5915968, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_183.gbapal", + "start": 5916000, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_184.gbapal", + "start": 5916032, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_185.gbapal", + "start": 5916064, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_186.gbapal", + "start": 5916096, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_187.gbapal", + "start": 5916128, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_188.gbapal", + "start": 5916160, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_189.gbapal", + "start": 5916192, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_190.gbapal", + "start": 5916224, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_191.gbapal", + "start": 5916256, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_192.gbapal", + "start": 5916288, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_193.gbapal", + "start": 5916320, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_194.gbapal", + "start": 5916352, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_195.gbapal", + "start": 5916384, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_196.gbapal", + "start": 5916416, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_197.gbapal", + "start": 5916448, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_198.gbapal", + "start": 5916480, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_199.gbapal", + "start": 5916512, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_200.gbapal", + "start": 5916544, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_201.gbapal", + "start": 5916576, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_202.gbapal", + "start": 5916608, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_203.gbapal", + "start": 5916640, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_204.gbapal", + "start": 5916672, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_205.gbapal", + "start": 5916704, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_206.gbapal", + "start": 5916736, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_207.gbapal", + "start": 5916768, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_208.gbapal", + "start": 5916800, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_209.gbapal", + "start": 5916832, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_210.gbapal", + "start": 5916864, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_211.gbapal", + "start": 5916896, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_212.gbapal", + "start": 5916928, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_213.gbapal", + "start": 5916960, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_214.gbapal", + "start": 5916992, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_215.gbapal", + "start": 5917024, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_216.gbapal", + "start": 5917056, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_217.gbapal", + "start": 5917088, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_218.gbapal", + "start": 5917120, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_219.gbapal", + "start": 5917152, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_220.gbapal", + "start": 5917184, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_221.gbapal", + "start": 5917216, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_222.gbapal", + "start": 5917248, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_223.gbapal", + "start": 5917280, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_224.gbapal", + "start": 5917312, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_225.gbapal", + "start": 5917344, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_226.gbapal", + "start": 5917376, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_227.gbapal", + "start": 5917408, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_228.gbapal", + "start": 5917440, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_229.gbapal", + "start": 5917472, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_230.gbapal", + "start": 5917504, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_231.gbapal", + "start": 5917536, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_232.gbapal", + "start": 5917568, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_233.gbapal", + "start": 5917600, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_234.gbapal", + "start": 5917632, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_235.gbapal", + "start": 5917664, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_236.gbapal", + "start": 5917696, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_237.gbapal", + "start": 5917728, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_238.gbapal", + "start": 5917760, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_239.gbapal", + "start": 5917792, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_240.gbapal", + "start": 5917824, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_241.gbapal", + "start": 5917856, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_242.gbapal", + "start": 5917888, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_243.gbapal", + "start": 5917920, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_244.gbapal", + "start": 5917952, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_245.gbapal", + "start": 5917984, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_246.gbapal", + "start": 5918016, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_247.gbapal", + "start": 5918048, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_248.gbapal", + "start": 5918080, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_249.gbapal", + "start": 5918112, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_250.gbapal", + "start": 5918144, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_251.gbapal", + "start": 5918176, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_252.gbapal", + "start": 5918208, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_253.gbapal", + "start": 5918240, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_254.gbapal", + "start": 5918272, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_255.gbapal", + "start": 5918304, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_256.gbapal", + "start": 5918336, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_257.gbapal", + "start": 5918368, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_258.gbapal", + "start": 5918400, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_259.gbapal", + "start": 5918432, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_260.gbapal", + "start": 5918464, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_261.gbapal", + "start": 5918496, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_262.gbapal", + "start": 5918528, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_263.gbapal", + "start": 5918560, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_264.gbapal", + "start": 5918592, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_265.gbapal", + "start": 5918624, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_266.gbapal", + "start": 5918656, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_267.gbapal", + "start": 5918688, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_268.gbapal", + "start": 5918720, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_269.gbapal", + "start": 5918752, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_270.gbapal", + "start": 5918784, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_271.gbapal", + "start": 5918816, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_272.gbapal", + "start": 5918848, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_273.gbapal", + "start": 5918880, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_274.gbapal", + "start": 5918912, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_275.gbapal", + "start": 5918944, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_276.gbapal", + "start": 5918976, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_277.gbapal", + "start": 5919008, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_278.gbapal", + "start": 5919040, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_279.gbapal", + "start": 5919072, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_280.gbapal", + "start": 5919104, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_281.gbapal", + "start": 5919136, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_282.gbapal", + "start": 5919168, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_283.gbapal", + "start": 5919200, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_284.gbapal", + "start": 5919232, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_285.gbapal", + "start": 5919264, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_286.gbapal", + "start": 5919296, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_287.gbapal", + "start": 5919328, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_288.gbapal", + "start": 5919360, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_289.gbapal", + "start": 5919392, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_290.gbapal", + "start": 5919424, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_291.gbapal", + "start": 5919456, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_292.gbapal", + "start": 5919488, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_293.gbapal", + "start": 5919520, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_294.gbapal", + "start": 5919552, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_295.gbapal", + "start": 5919584, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_296.gbapal", + "start": 5919616, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_297.gbapal", + "start": 5919648, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_298.gbapal", + "start": 5919680, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_299.gbapal", + "start": 5919712, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_300.gbapal", + "start": 5919744, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_301.gbapal", + "start": 5919776, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_302.gbapal", + "start": 5919808, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_303.gbapal", + "start": 5919840, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_304.gbapal", + "start": 5919872, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_305.gbapal", + "start": 5919904, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_306.gbapal", + "start": 5919936, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_307.gbapal", + "start": 5919968, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_308.gbapal", + "start": 5920000, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_309.gbapal", + "start": 5920032, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_310.gbapal", + "start": 5920064, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_311.gbapal", + "start": 5920096, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_312.gbapal", + "start": 5920128, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_313.gbapal", + "start": 5920160, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_314.gbapal", + "start": 5920192, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_315.gbapal", + "start": 5920224, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_316.gbapal", + "start": 5920256, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_317.gbapal", + "start": 5920288, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_318.gbapal", + "start": 5920320, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_319.gbapal", + "start": 5920352, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_320.gbapal", + "start": 5920384, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_321.gbapal", + "start": 5920416, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_322.gbapal", + "start": 5920448, + "size": 32, + "type": "palette" + }, + { + "path": "assets/gfx_unknown_0.bin", + "start": 5920480, + "size": 128, "type": "unknown" }, + { + "path": "palettes/gPalette_327.gbapal", + "start": 5920608, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_328.gbapal", + "start": 5920640, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_329.gbapal", + "start": 5920672, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_330.gbapal", + "start": 5920704, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_331.gbapal", + "start": 5920736, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_332.gbapal", + "start": 5920768, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_333.gbapal", + "start": 5920800, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_334.gbapal", + "start": 5920832, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_335.gbapal", + "start": 5920864, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_336.gbapal", + "start": 5920896, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_337.gbapal", + "start": 5920928, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_338.gbapal", + "start": 5920960, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_339.gbapal", + "start": 5920992, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_340.gbapal", + "start": 5921024, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_341.gbapal", + "start": 5921056, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_342.gbapal", + "start": 5921088, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_343.gbapal", + "start": 5921120, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_344.gbapal", + "start": 5921152, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_345.gbapal", + "start": 5921184, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_346.gbapal", + "start": 5921216, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_347.gbapal", + "start": 5921248, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_348.gbapal", + "start": 5921280, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_349.gbapal", + "start": 5921312, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_350.gbapal", + "start": 5921344, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_351.gbapal", + "start": 5921376, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_352.gbapal", + "start": 5921408, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_353.gbapal", + "start": 5921440, + "size": 32, + "type": "palette" + }, { "path": "palettes/gPalette_354.gbapal", "start": 5921472, @@ -1950,7 +3912,7 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_3.bin", + "path": "assets/gfx_unknown_1.bin", "start": 5931040, "size": 416, "type": "unknown" @@ -2034,10 +3996,16 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_4.bin", + "path": "palettes/gPalette_679.gbapal", "start": 5931872, - "size": 64, - "type": "unknown" + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_680.gbapal", + "start": 5931904, + "size": 32, + "type": "palette" }, { "path": "palettes/bgAnim_57_0.gbapal", @@ -5502,10 +7470,10 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_5.bin", + "path": "palettes/gPalette_1261.gbapal", "start": 5950496, "size": 32, - "type": "unknown" + "type": "palette" }, { "path": "palettes/gPalette_1262.gbapal", @@ -9312,7 +11280,7 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_6.bin", + "path": "assets/gfx_unknown_2.bin", "start": 5970816, "size": 384, "type": "unknown" @@ -10710,10 +12678,22 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_7.bin", + "path": "palettes/gPalette_2140.gbapal", "start": 5978624, - "size": 96, - "type": "unknown" + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_2141.gbapal", + "start": 5978656, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_2142.gbapal", + "start": 5978688, + "size": 32, + "type": "palette" }, { "path": "palettes/gPalette_2143.gbapal", @@ -10812,10 +12792,22 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_8.bin", + "path": "palettes/gPalette_2159.gbapal", "start": 5979232, - "size": 96, - "type": "unknown" + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_2160.gbapal", + "start": 5979264, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_2161.gbapal", + "start": 5979296, + "size": 32, + "type": "palette" }, { "path": "palettes/gPalette_2162.gbapal", @@ -10914,10 +12906,22 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_9.bin", + "path": "palettes/gPalette_2178.gbapal", "start": 5979840, - "size": 96, - "type": "unknown" + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_2179.gbapal", + "start": 5979872, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_2180.gbapal", + "start": 5979904, + "size": 32, + "type": "palette" }, { "path": "palettes/gPalette_2181.gbapal", @@ -11016,10 +13020,22 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_10.bin", + "path": "palettes/gPalette_2197.gbapal", "start": 5980448, - "size": 96, - "type": "unknown" + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_2198.gbapal", + "start": 5980480, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_2199.gbapal", + "start": 5980512, + "size": 32, + "type": "palette" }, { "path": "assets/gUnk_085B4180.bin", @@ -11076,10 +13092,22 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_11.bin", + "path": "palettes/gPalette_2212.gbapal", "start": 5980928, - "size": 96, - "type": "unknown" + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_2213.gbapal", + "start": 5980960, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_2214.gbapal", + "start": 5980992, + "size": 32, + "type": "palette" }, { "path": "palettes/gPalette_2215.gbapal", @@ -11346,9 +13374,21 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_12.bin", + "path": "palettes/gPalette_2259.gbapal", "start": 5982432, - "size": 1088, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_2260.gbapal", + "start": 5982464, + "size": 32, + "type": "palette" + }, + { + "path": "assets/gfx_unknown_3.bin", + "start": 5982496, + "size": 1024, "type": "unknown" }, { @@ -13055,7 +15095,7 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_13.bin", + "path": "assets/gfx_unknown_4.bin", "start": 6018688, "size": 128, "type": "unknown" @@ -13265,10 +15305,46 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_14.bin", + "path": "palettes/gPalette_3430.gbapal", "start": 6019904, - "size": 224, - "type": "unknown" + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_3431.gbapal", + "start": 6019936, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_3432.gbapal", + "start": 6019968, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_3433.gbapal", + "start": 6020000, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_3434.gbapal", + "start": 6020032, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_3435.gbapal", + "start": 6020064, + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_3436.gbapal", + "start": 6020096, + "size": 32, + "type": "palette" }, { "path": "palettes/gPalette_3437.gbapal", @@ -15119,10 +17195,16 @@ "type": "palette" }, { - "path": "assets/gfx_unknown_15.bin", + "path": "palettes/gPalette_3773.gbapal", "start": 6030880, - "size": 64, - "type": "unknown" + "size": 32, + "type": "palette" + }, + { + "path": "palettes/gPalette_3774.gbapal", + "start": 6030912, + "size": 32, + "type": "palette" }, { "path": "gfx/gGfx_89_3.4bpp", @@ -18278,7 +20360,7 @@ "type": "gfx" }, { - "path": "assets/gfx_unknown_16.bin", + "path": "assets/gfx_unknown_5.bin", "start": 6835328, "size": 7840, "type": "unknown" @@ -20864,7 +22946,7 @@ "type": "gfx" }, { - "path": "assets/gfx_unknown_17.bin", + "path": "assets/gfx_unknown_6.bin", "start": 7899808, "size": 12288, "type": "unknown" @@ -20924,7 +23006,7 @@ "type": "gfx" }, { - "path": "assets/gfx_unknown_18.bin", + "path": "assets/gfx_unknown_7.bin", "start": 7934624, "size": 6144, "type": "unknown" @@ -22074,7 +24156,7 @@ "type": "gfx" }, { - "path": "assets/gfx_unknown_19.bin", + "path": "assets/gfx_unknown_8.bin", "start": 9272672, "size": 10240, "type": "unknown" @@ -22086,7 +24168,7 @@ "type": "gfx" }, { - "path": "assets/gfx_unknown_20.bin", + "path": "assets/gfx_unknown_9.bin", "start": 9285472, "size": 2560, "type": "unknown" @@ -22370,7 +24452,7 @@ ] }, { - "path": "assets/gfx_unknown_21.bin", + "path": "assets/gfx_unknown_10.bin", "start": 9422944, "size": 1280, "type": "unknown", @@ -22782,7 +24864,7 @@ "type": "gfx" }, { - "path": "assets/gfx_unknown_22.bin", + "path": "assets/gfx_unknown_11.bin", "start": 9624544, "size": 2048, "type": "unknown" @@ -22920,7 +25002,7 @@ "type": "gfx" }, { - "path": "assets/gfx_unknown_23.bin", + "path": "assets/gfx_unknown_12.bin", "start": 9683168, "size": 1280, "type": "unknown" @@ -23337,7 +25419,7 @@ "type": "gfx" }, { - "path": "assets/gfx_unknown_24.bin", + "path": "assets/gfx_unknown_13.bin", "start": 10164432, "size": 1216, "type": "unknown" diff --git a/data/animations/npc/bladeBrothers.s b/data/animations/npc/bladeBrothers.s index 4ae287d6..9e768314 100644 --- a/data/animations/npc/bladeBrothers.s +++ b/data/animations/npc/bladeBrothers.s @@ -4,6 +4,10 @@ .section .rodata @ .align 2 + +gSpriteAnimations_BladeBrothers_1_1:: @ 0811176C + .include "animations/gSpriteAnimations_BladeBrothers_1_1.s" + gSpriteAnimations_BladeBrothers_1_0:: @ 08111771 .include "animations/gSpriteAnimations_BladeBrothers_1_0.s" diff --git a/data/animations/npc/kid.s b/data/animations/npc/kid.s index 7c0ab4e6..fcaf867e 100644 --- a/data/animations/npc/kid.s +++ b/data/animations/npc/kid.s @@ -90,6 +90,7 @@ gSpriteAnimations_Kid:: @ 0810C1E4 .4byte gSpriteAnimations_Kid_0 .4byte 00000000 +@ TODO data of an unused entity? gUnk_0810C268:: @ 0810C268 .4byte sub_08062AD0 .4byte sub_08062AD4 diff --git a/data/animations/npc/sturgeon.s b/data/animations/npc/sturgeon.s index 9b38a7b6..a4fa9b14 100644 --- a/data/animations/npc/sturgeon.s +++ b/data/animations/npc/sturgeon.s @@ -4,6 +4,18 @@ .section .rodata .align 2 +gSpriteAnimations_Sturgeon_4:: @ 0810FB24 + .include "animations/gSpriteAnimations_Sturgeon_4.s" + +gSpriteAnimations_Sturgeon_5:: @ 0810FB39 + .include "animations/gSpriteAnimations_Sturgeon_5.s" + +gSpriteAnimations_Sturgeon_6:: @ 0810FB4E + .include "animations/gSpriteAnimations_Sturgeon_6.s" + +gSpriteAnimations_Sturgeon_7:: @ 0810FB63 + .include "animations/gSpriteAnimations_Sturgeon_7.s" + gSpriteAnimations_Sturgeon_0:: @ 0810FB78 .include "animations/gSpriteAnimations_Sturgeon_0.s" @@ -33,4 +45,4 @@ gSpriteAnimations_Sturgeon:: @ 0810FBD0 .4byte gSpriteAnimations_Sturgeon_7 .4byte gSpriteAnimations_Sturgeon_8 .4byte gSpriteAnimations_Sturgeon_9 - .4byte 00000000 + .4byte 00000000 \ No newline at end of file diff --git a/data/const/objectUtils.s b/data/animations/spriteAnimations166.s similarity index 92% rename from data/const/objectUtils.s rename to data/animations/spriteAnimations166.s index 4ec60fa0..e49e063d 100644 --- a/data/const/objectUtils.s +++ b/data/animations/spriteAnimations166.s @@ -4,13 +4,6 @@ .section .rodata .align 2 -@ physics.c, dust.c, lilypadLarge.c, pullableMushroom.c, playerItemGust.c -gUnk_08126EE4:: @ 08126EE4 - .incbin "data_08125104/gUnk_08126EE4.bin" - -@ itemLantern.c -gUnk_08126EEC:: @ 08126EEC - .incbin "data_08125104/gUnk_08126EEC.bin" gSpriteAnimations_166_0:: @ 08126EF4 .include "animations/gSpriteAnimations_166_0.s" @@ -139,7 +132,3 @@ gSpriteAnimations_166:: @ 0812714C .4byte gSpriteAnimations_166_29 .4byte gSpriteAnimations_166_30 .4byte 00000000 - -@ playerItemBoomerang.c -gUnk_081271CC:: @ 081271CC - .incbin "data_08125104/gUnk_081271CC.bin" diff --git a/data/animations/spriteAnimations322.s b/data/animations/spriteAnimations322.s new file mode 100644 index 00000000..34951694 --- /dev/null +++ b/data/animations/spriteAnimations322.s @@ -0,0 +1,394 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gSpriteAnimations_322_0:: @ 080FDD14 + .include "animations/gSpriteAnimations_322_0.s" + +gSpriteAnimations_322_1:: @ 080FDD19 + .include "animations/gSpriteAnimations_322_1.s" + +gSpriteAnimations_322_2:: @ 080FDD1E + .include "animations/gSpriteAnimations_322_2.s" + +gSpriteAnimations_322_3:: @ 080FDD23 + .include "animations/gSpriteAnimations_322_3.s" + +gSpriteAnimations_322_4:: @ 080FDD28 + .include "animations/gSpriteAnimations_322_4.s" + +gSpriteAnimations_322_6:: @ 080FDD2D + .include "animations/gSpriteAnimations_322_6.s" + +gSpriteAnimations_322_7:: @ 080FDD32 + .include "animations/gSpriteAnimations_322_7.s" + +gSpriteAnimations_322_8:: @ 080FDD37 + .include "animations/gSpriteAnimations_322_8.s" + +gSpriteAnimations_322_9:: @ 080FDD48 + .include "animations/gSpriteAnimations_322_9.s" + +gSpriteAnimations_322_10:: @ 080FDD4D + .include "animations/gSpriteAnimations_322_10.s" + +gSpriteAnimations_322_11:: @ 080FDD52 + .include "animations/gSpriteAnimations_322_11.s" + +gSpriteAnimations_322_12:: @ 080FDD57 + .include "animations/gSpriteAnimations_322_12.s" + +gSpriteAnimations_322_13:: @ 080FDD5C + .include "animations/gSpriteAnimations_322_13.s" + +gSpriteAnimations_322_14:: @ 080FDD61 + .include "animations/gSpriteAnimations_322_14.s" + +gSpriteAnimations_322_15:: @ 080FDD92 + .include "animations/gSpriteAnimations_322_15.s" + +gSpriteAnimations_322_5:: @ 080FDD97 + .include "animations/gSpriteAnimations_322_5.s" + +gSpriteAnimations_322_17:: @ 080FDDA8 + .include "animations/gSpriteAnimations_322_17.s" + +gSpriteAnimations_322_18:: @ 080FDDAD + .include "animations/gSpriteAnimations_322_18.s" + +gSpriteAnimations_322_19:: @ 080FDDB2 + .include "animations/gSpriteAnimations_322_19.s" + +gSpriteAnimations_322_20:: @ 080FDDB7 + .include "animations/gSpriteAnimations_322_20.s" + +gSpriteAnimations_322_21:: @ 080FDDBC + .include "animations/gSpriteAnimations_322_21.s" + +gSpriteAnimations_322_22:: @ 080FDDC1 + .include "animations/gSpriteAnimations_322_22.s" + +gSpriteAnimations_322_23:: @ 080FDDC6 + .include "animations/gSpriteAnimations_322_23.s" + +gSpriteAnimations_322_28:: @ 080FDDCB + .include "animations/gSpriteAnimations_322_28.s" + +gSpriteAnimations_322_38:: @ 080FDDD0 + .include "animations/gSpriteAnimations_322_38.s" + +gSpriteAnimations_322_39:: @ 080FDDD5 + .include "animations/gSpriteAnimations_322_39.s" + +gSpriteAnimations_322_34:: @ 080FDDDA + .include "animations/gSpriteAnimations_322_34.s" + +gSpriteAnimations_322_35:: @ 080FDDDF + .include "animations/gSpriteAnimations_322_35.s" + +gSpriteAnimations_322_40:: @ 080FDDE4 + .include "animations/gSpriteAnimations_322_40.s" + +gSpriteAnimations_322_41:: @ 080FDDF5 + .include "animations/gSpriteAnimations_322_41.s" + +gSpriteAnimations_322_42:: @ 080FDE0E + .include "animations/gSpriteAnimations_322_42.s" + +gSpriteAnimations_322_43:: @ 080FDE27 + .include "animations/gSpriteAnimations_322_43.s" + +gSpriteAnimations_322_44:: @ 080FDE40 + .include "animations/gSpriteAnimations_322_44.s" + +gSpriteAnimations_322_45:: @ 080FDE59 + .include "animations/gSpriteAnimations_322_45.s" + +gSpriteAnimations_322_46:: @ 080FDE72 + .include "animations/gSpriteAnimations_322_46.s" + +gSpriteAnimations_322_36:: @ 080FDE8B + .include "animations/gSpriteAnimations_322_36.s" + +gSpriteAnimations_322_37:: @ 080FDE90 + .include "animations/gSpriteAnimations_322_37.s" + +gSpriteAnimations_322_54:: @ 080FDE95 + .include "animations/gSpriteAnimations_322_54.s" + +gSpriteAnimations_322_33:: @ 080FDE9A + .include "animations/gSpriteAnimations_322_33.s" + +gSpriteAnimations_322_47:: @ 080FDE9F + .include "animations/gSpriteAnimations_322_47.s" + +gSpriteAnimations_322_48:: @ 080FDEA4 + .include "animations/gSpriteAnimations_322_48.s" + +gSpriteAnimations_322_49:: @ 080FDEA9 + .include "animations/gSpriteAnimations_322_49.s" + +gSpriteAnimations_322_52:: @ 080FDEAE + .include "animations/gSpriteAnimations_322_52.s" + +gSpriteAnimations_322_53:: @ 080FDEB3 + .include "animations/gSpriteAnimations_322_53.s" + +gSpriteAnimations_322_24:: @ 080FDEB8 + .include "animations/gSpriteAnimations_322_24.s" + +gSpriteAnimations_322_58:: @ 080FDEBD + .include "animations/gSpriteAnimations_322_58.s" + +gSpriteAnimations_322_59:: @ 080FDEC2 + .include "animations/gSpriteAnimations_322_59.s" + +gSpriteAnimations_322_25:: @ 080FDEC7 + .include "animations/gSpriteAnimations_322_25.s" + +gSpriteAnimations_322_60:: @ 080FDECC + .include "animations/gSpriteAnimations_322_60.s" + +gSpriteAnimations_322_55:: @ 080FDED1 + .include "animations/gSpriteAnimations_322_55.s" + +gSpriteAnimations_322_68:: @ 080FDED6 + .include "animations/gSpriteAnimations_322_68.s" + +gSpriteAnimations_322_69:: @ 080FDEDB + .include "animations/gSpriteAnimations_322_69.s" + +gSpriteAnimations_322_26:: @ 080FDEE0 + .include "animations/gSpriteAnimations_322_26.s" + +gSpriteAnimations_322_64:: @ 080FDEE5 + .include "animations/gSpriteAnimations_322_64.s" + +gSpriteAnimations_322_65:: @ 080FDEEA + .include "animations/gSpriteAnimations_322_65.s" + +gSpriteAnimations_322_66:: @ 080FDEEF + .include "animations/gSpriteAnimations_322_66.s" + +gSpriteAnimations_322_67:: @ 080FDEF4 + .include "animations/gSpriteAnimations_322_67.s" + +gSpriteAnimations_322_71:: @ 080FDEF9 + .include "animations/gSpriteAnimations_322_71.s" + +gSpriteAnimations_322_81:: @ 080FDEFE + .include "animations/gSpriteAnimations_322_81.s" + +gSpriteAnimations_322_82:: @ 080FDF03 + .include "animations/gSpriteAnimations_322_82.s" + +gSpriteAnimations_322_83:: @ 080FDF08 + .include "animations/gSpriteAnimations_322_83.s" + +gSpriteAnimations_322_84:: @ 080FDF0D + .include "animations/gSpriteAnimations_322_84.s" + +gSpriteAnimations_322_95:: @ 080FDF12 + .include "animations/gSpriteAnimations_322_95.s" + +gSpriteAnimations_322_96:: @ 080FDF17 + .include "animations/gSpriteAnimations_322_96.s" + +gSpriteAnimations_322_98:: @ 080FDF28 + .include "animations/gSpriteAnimations_322_98.s" + +gSpriteAnimations_322_99:: @ 080FDF45 + .include "animations/gSpriteAnimations_322_99.s" + +gSpriteAnimations_322_87:: @ 080FDF4A + .include "animations/gSpriteAnimations_322_87.s" + +gSpriteAnimations_322_104:: @ 080FDF4F + .include "animations/gSpriteAnimations_322_104.s" + +gSpriteAnimations_322_105:: @ 080FDF54 + .include "animations/gSpriteAnimations_322_105.s" + +gSpriteAnimations_322_106:: @ 080FDF59 + .include "animations/gSpriteAnimations_322_106.s" + +gSpriteAnimations_322_107:: @ 080FDF5E + .include "animations/gSpriteAnimations_322_107.s" + +gSpriteAnimations_322_93:: @ 080FDF63 + .include "animations/gSpriteAnimations_322_93.s" + +gSpriteAnimations_322_94:: @ 080FDF68 + .include "animations/gSpriteAnimations_322_94.s" + +gSpriteAnimations_322_63:: @ 080FDF6D + .include "animations/gSpriteAnimations_322_63.s" + +gSpriteAnimations_322_100:: @ 080FDF72 + .include "animations/gSpriteAnimations_322_100.s" + +gSpriteAnimations_322_101:: @ 080FDF77 + .include "animations/gSpriteAnimations_322_101.s" + +gSpriteAnimations_322_102:: @ 080FDF7C + .include "animations/gSpriteAnimations_322_102.s" + +gSpriteAnimations_322_103:: @ 080FDF81 + .include "animations/gSpriteAnimations_322_103.s" + +gSpriteAnimations_322_91:: @ 080FDF86 + .include "animations/gSpriteAnimations_322_91.s" + +gSpriteAnimations_322_92:: @ 080FDF8F + .include "animations/gSpriteAnimations_322_92.s" + +gSpriteAnimations_322_108:: @ 080FDF94 + .include "animations/gSpriteAnimations_322_108.s" + +gSpriteAnimations_322_109:: @ 080FDF99 + .include "animations/gSpriteAnimations_322_109.s" + +gSpriteAnimations_322_110:: @ 080FDF9E + .include "animations/gSpriteAnimations_322_110.s" + +gSpriteAnimations_322_111:: @ 080FDFA3 + .include "animations/gSpriteAnimations_322_111.s" + +gSpriteAnimations_322_112:: @ 080FDFA8 + .include "animations/gSpriteAnimations_322_112.s" + +gSpriteAnimations_322_72:: @ 080FDFC1 + .include "animations/gSpriteAnimations_322_72.s" + +gSpriteAnimations_322_97:: @ 080FDFC6 + .include "animations/gSpriteAnimations_322_97.s" + +gSpriteAnimations_322_61:: @ 080FDFCB + .include "animations/gSpriteAnimations_322_61.s" + +gSpriteAnimations_322_62:: @ 080FDFD0 + .include "animations/gSpriteAnimations_322_62.s" + +@ subtask2.c, ui.c, pause_menu.c +gSpriteAnimations_322:: @ 080FDFD8 + .4byte gSpriteAnimations_322_0 + .4byte gSpriteAnimations_322_1 + .4byte gSpriteAnimations_322_2 + .4byte gSpriteAnimations_322_3 + .4byte gSpriteAnimations_322_4 + .4byte gSpriteAnimations_322_5 + .4byte gSpriteAnimations_322_6 + .4byte gSpriteAnimations_322_7 + .4byte gSpriteAnimations_322_8 + .4byte gSpriteAnimations_322_9 + .4byte gSpriteAnimations_322_10 + .4byte gSpriteAnimations_322_11 + .4byte gSpriteAnimations_322_12 + .4byte gSpriteAnimations_322_13 + .4byte gSpriteAnimations_322_14 + .4byte gSpriteAnimations_322_15 + .4byte gSpriteAnimations_322_5 + .4byte gSpriteAnimations_322_17 + .4byte gSpriteAnimations_322_18 + .4byte gSpriteAnimations_322_19 + .4byte gSpriteAnimations_322_20 + .4byte gSpriteAnimations_322_21 + .4byte gSpriteAnimations_322_22 + .4byte gSpriteAnimations_322_23 + .4byte gSpriteAnimations_322_24 + .4byte gSpriteAnimations_322_25 + .4byte gSpriteAnimations_322_26 + .4byte gSpriteAnimations_322_5 + .4byte gSpriteAnimations_322_28 + .4byte gSpriteAnimations_322_28 + .4byte gSpriteAnimations_322_28 + .4byte gSpriteAnimations_322_28 + .4byte gSpriteAnimations_322_28 + .4byte gSpriteAnimations_322_33 + .4byte gSpriteAnimations_322_34 + .4byte gSpriteAnimations_322_35 + .4byte gSpriteAnimations_322_36 + .4byte gSpriteAnimations_322_37 + .4byte gSpriteAnimations_322_38 + .4byte gSpriteAnimations_322_39 + .4byte gSpriteAnimations_322_40 + .4byte gSpriteAnimations_322_41 + .4byte gSpriteAnimations_322_42 + .4byte gSpriteAnimations_322_43 + .4byte gSpriteAnimations_322_44 + .4byte gSpriteAnimations_322_45 + .4byte gSpriteAnimations_322_46 + .4byte gSpriteAnimations_322_47 + .4byte gSpriteAnimations_322_48 + .4byte gSpriteAnimations_322_49 + .4byte gSpriteAnimations_322_5 + .4byte gSpriteAnimations_322_5 + .4byte gSpriteAnimations_322_52 + .4byte gSpriteAnimations_322_53 + .4byte gSpriteAnimations_322_54 + .4byte gSpriteAnimations_322_55 + .4byte gSpriteAnimations_322_25 + .4byte gSpriteAnimations_322_24 + .4byte gSpriteAnimations_322_58 + .4byte gSpriteAnimations_322_59 + .4byte gSpriteAnimations_322_60 + .4byte gSpriteAnimations_322_61 + .4byte gSpriteAnimations_322_62 + .4byte gSpriteAnimations_322_63 + .4byte gSpriteAnimations_322_64 + .4byte gSpriteAnimations_322_65 + .4byte gSpriteAnimations_322_66 + .4byte gSpriteAnimations_322_67 + .4byte gSpriteAnimations_322_68 + .4byte gSpriteAnimations_322_69 + .4byte gSpriteAnimations_322_26 + .4byte gSpriteAnimations_322_71 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_71 + .4byte gSpriteAnimations_322_81 + .4byte gSpriteAnimations_322_82 + .4byte gSpriteAnimations_322_83 + .4byte gSpriteAnimations_322_84 + .4byte gSpriteAnimations_322_84 + .4byte gSpriteAnimations_322_84 + .4byte gSpriteAnimations_322_87 + .4byte gSpriteAnimations_322_87 + .4byte gSpriteAnimations_322_87 + .4byte gSpriteAnimations_322_5 + .4byte gSpriteAnimations_322_91 + .4byte gSpriteAnimations_322_92 + .4byte gSpriteAnimations_322_93 + .4byte gSpriteAnimations_322_94 + .4byte gSpriteAnimations_322_95 + .4byte gSpriteAnimations_322_96 + .4byte gSpriteAnimations_322_97 + .4byte gSpriteAnimations_322_98 + .4byte gSpriteAnimations_322_99 + .4byte gSpriteAnimations_322_100 + .4byte gSpriteAnimations_322_101 + .4byte gSpriteAnimations_322_102 + .4byte gSpriteAnimations_322_103 + .4byte gSpriteAnimations_322_104 + .4byte gSpriteAnimations_322_105 + .4byte gSpriteAnimations_322_106 + .4byte gSpriteAnimations_322_107 + .4byte gSpriteAnimations_322_108 + .4byte gSpriteAnimations_322_109 + .4byte gSpriteAnimations_322_110 + .4byte gSpriteAnimations_322_111 + .4byte gSpriteAnimations_322_112 + .4byte gSpriteAnimations_322_112 + .4byte gSpriteAnimations_322_112 + .4byte gSpriteAnimations_322_0 + .4byte gSpriteAnimations_322_0 + .4byte gSpriteAnimations_322_0 + .4byte 00000000 diff --git a/data/const/collisionMatrix.s b/data/const/collisionMatrix.s new file mode 100644 index 00000000..14af6d20 --- /dev/null +++ b/data/const/collisionMatrix.s @@ -0,0 +1,36 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 +@ before: playerItemCellOverwriteSet + +@ collision.c +gCollisionMtx:: @ 080B7B74 + .incbin "data_080B7B74/gCollisionMtx.bin" + .incbin "data_080B7B74/gUnk_080B802E.bin" + .incbin "data_080B7B74/gUnk_080BA2C0.bin" +.ifdef EU + .incbin "data_080B7B74/gUnk_080B7B74_1_EU.bin" +.else + .incbin "data_080B7B74/gUnk_080B7B74_2_USA-JP-DEMO_USA-DEMO_JP.bin" +.endif + .incbin "data_080B7B74/gUnk_080B7B74_3.bin" +.ifdef JP + @ TODO only small differences + .incbin "data_080B7B74/gUnk_080B7B74_4_JP.bin" +.else +.ifdef EU + @ TODO only small differences + .incbin "data_080B7B74/gUnk_080B7B74_5_EU.bin" +.else + .incbin "data_080B7B74/gUnk_080B7B74_6_USA-DEMO_USA-DEMO_JP.bin" +.endif +.endif +.ifdef EU + @ TODO only small differences + .incbin "data_080B7B74/gUnk_080B7B74_7_EU.bin" +.else + .incbin "data_080B7B74/gUnk_080B7B74_8_USA-JP-DEMO_USA-DEMO_JP.bin" +.endif + .incbin "data_080B7B74/gUnk_080B7B74_9.bin" diff --git a/data/const/enemyUtils.s b/data/const/enemyUtils.s deleted file mode 100644 index c1af4f6d..00000000 --- a/data/const/enemyUtils.s +++ /dev/null @@ -1,29 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -@ before: enemy66.c -@ in here: enemyUtils.c, createEnemy.c, enterPortalSubtask.c, room.c roomInit.c, fade.c -@ after: fileselect.c - -@ enemyUtils.c -gUnk_080D3D94:: @ 080D3D94 - .incbin "data_080D3D94/gUnk_080D3D94.bin" - -@ enemyUtils.c -gUnk_080D3E74:: @ 080D3E74 - .incbin "data_080D3D94/gUnk_080D3E74.bin" - -gUnk_080D3E90:: @ 080D3E90 - .incbin "data_080D3D94/gUnk_080D3E90.bin" - -gUnk_080D3F30:: @ 080D3F30 - .incbin "data_080D3D94/gUnk_080D3F30.bin" - -gUnk_080D3FD0:: @ 080D3FD0 - .incbin "data_080D3D94/gUnk_080D3FD0.bin" - -gUnk_080D4070:: @ 080D4070 - .incbin "data_080D3D94/gUnk_080D4070.bin" diff --git a/data/const/enterPortalSubtask.s b/data/const/enterPortalSubtask.s deleted file mode 100644 index 6a48b0a8..00000000 --- a/data/const/enterPortalSubtask.s +++ /dev/null @@ -1,32 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -@ enterPortalSubtask.c -gUnk_080D4110:: @ 080D4110 - .4byte gUnk_080D3E90 - .4byte gUnk_080D3F30 - .4byte gUnk_080D3FD0 - .4byte gUnk_080D4070 - -@ enterPortalSubtask.c -gUnk_080D4120:: @ 080D4120 - .4byte sub_0804AAD4 - .4byte sub_0804AB04 - .4byte sub_0804AB24 - -@ enterPortalSubtask.c -gUnk_080D412C:: @ 080D412C - .4byte sub_0804AB70 - .4byte sub_0804AC1C - .4byte sub_0804ACC8 - -@ enterPortalSubtask.c -gUnk_080D4138:: @ 080D4138 - .incbin "data_080D3D94/gUnk_080D4138.bin" - -@ enterPortalSubtask.c -gUnk_080D4140:: @ 080D4140 - .incbin "data_080D3D94/gUnk_080D4140.bin" diff --git a/data/const/entity.s b/data/const/entity.s index 6d01b7ba..af8d9ff0 100644 --- a/data/const/entity.s +++ b/data/const/entity.s @@ -378,15 +378,3 @@ gUnk_08109194:: @ 08109194 .4byte gUnk_08109158 .4byte gUnk_08109178 .4byte gUnk_0810918C - -@ beanstalkSubtask.c, room.c -gUnk_081091E4:: @ 081091E4 - .incbin "data_08108E6C/gUnk_081091E4.bin" - -@ entity.c -gUnk_081091EE:: @ 081091EE - .incbin "data_08108E6C/gUnk_081091EE.bin" - -@ entity.c -gUnk_081091F8:: @ 081091F8 - .incbin "data_08108E6C/gUnk_081091F8.bin" diff --git a/data/const/fade.s b/data/const/fade.s deleted file mode 100644 index 2a313307..00000000 --- a/data/const/fade.s +++ /dev/null @@ -1,9 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - - -gUnk_080FC3C4:: @ 080FC3C4 - .incbin "data_080D5360/gUnk_080FC3C4.bin" diff --git a/data/const/figurine_menu.s b/data/const/figurine_menu.s deleted file mode 100644 index ab68b97d..00000000 --- a/data/const/figurine_menu.s +++ /dev/null @@ -1,57 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -@ figurine_menu.c, pause_menu.c -gUnk_08128A38:: @ 08128A38 - .incbin "data_08127280/gUnk_08128A38.bin" - .4byte PauseMenu_Variant0 - .incbin "data_08127280/gUnk_08128A38_1.bin" - .4byte PauseMenu_ItemMenu - .incbin "data_08127280/gUnk_08128A38_2.bin" - .4byte PauseMenu2 - .incbin "data_08127280/gUnk_08128A38_3.bin" - .4byte PauseMenu_Variant0 - .incbin "data_08127280/gUnk_08128A38_4.bin" - .4byte sub_080A6270 - .incbin "data_08127280/gUnk_08128A38_5.bin" - .4byte sub_080A5BF0 - .incbin "data_08127280/gUnk_08128A38_6.bin" - .4byte sub_080A6608 - .incbin "data_08127280/gUnk_08128A38_7.bin" - .4byte sub_080A6008 - .incbin "data_08127280/gUnk_08128A38_8.bin" - .4byte sub_080A60E0 - .incbin "data_08127280/gUnk_08128A38_9.bin" - .4byte sub_080A5AD8 - .incbin "data_08127280/gUnk_08128A38_10.bin" - .4byte sub_080A5990 - .incbin "data_08127280/gUnk_08128A38_11.bin" - .4byte sub_080A5990 - .incbin "data_08127280/gUnk_08128A38_12.bin" - .4byte PauseMenu_Variant0 - .incbin "data_08127280/gUnk_08128A38_13.bin" - .4byte PauseMenu_Variant0 - .incbin "data_08127280/gUnk_08128A38_14.bin" - .4byte PauseMenu_Variant0 - .incbin "data_08127280/gUnk_08128A38_15.bin" - .4byte PauseMenu_Variant0 - .incbin "data_08127280/gUnk_08128A38_16.bin" - .4byte PauseMenu_Variant0 - .incbin "data_08127280/gUnk_08128A38_17.bin" - .4byte PauseMenu_Variant0 - .incbin "data_08127280/gUnk_08128A38_18.bin" - .4byte PauseMenu_Variant0 - .incbin "data_08127280/gUnk_08128A38_19.bin" - .4byte PauseMenu_Variant0 - -@ figurine_menu.c -gUnk_08128AD8:: @ 08128AD8 -.ifdef EU - @ TODO only small differences - .incbin "data_08127280/gUnk_08128AD8_EU.bin" -.else - .incbin "data_08127280/gUnk_08128AD8_1_USA-JP-DEMO_USA-DEMO_JP.bin" -.endif diff --git a/data/const/fileselect_after.s b/data/const/fileselect_after.s deleted file mode 100644 index 3f38e66b..00000000 --- a/data/const/fileselect_after.s +++ /dev/null @@ -1,63 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -@ fileselect.c -gUnk_080FC908:: @ 080FC908 - .4byte sub_08050888 - .4byte sub_080508E4 - .4byte sub_08050910 - - -@ fileselect.c -gUnk_080FC914:: @ 080FC914 - .incbin "data_080FC8A4/gUnk_080FC914.bin" - -gUnk_080FC93C:: @ 080FC93C - .4byte sub_08050C54 - .4byte sub_08050D68 - -gUnk_080FC944:: @ 080FC944 - .4byte sub_08050DB8 - .4byte sub_08050DE4 - .4byte sub_08050E88 - -gUnk_080FC950:: @ 080FC950 - .4byte sub_08050EB8 - .4byte sub_08050EF4 - .4byte sub_08050FFC - .4byte sub_0805103C - -gUnk_080FC960:: @ 080FC960 - .4byte sub_08051090 - .4byte sub_080610B8 - .4byte sub_0805138C - .4byte sub_0805144C - -gUnk_080FC970:: @ 080FC970 - .incbin "data_080FC8A4/gUnk_080FC970.bin" - -gUnk_080FC980:: @ 080FC980 - .incbin "data_080FC8A4/gUnk_080FC980.bin" - -gUnk_080FC9A0:: @ 080FC9A0 - .incbin "data_080FC8A4/gUnk_080FC9A0.bin" - -gUnk_080FC9B0:: @ 080FC9B0 - .4byte sub_080513A8 - .4byte sub_080513C0 - .4byte sub_0805141C - -gUnk_080FC9BC:: @ 080FC9BC - .4byte sub_080515c8 - .4byte sub_080515D4 - .4byte sub_080516E0 - -@ fileselect.c -gUnk_080FC9C8:: @ 080FC9C8 - .4byte sub_08051738 - .4byte sub_080517EC - .4byte sub_08051874 - .4byte sub_080518E4 diff --git a/data/const/fileselect_before.s b/data/const/fileselect_before.s deleted file mode 100644 index bd996c19..00000000 --- a/data/const/fileselect_before.s +++ /dev/null @@ -1,28 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - - -@ figurine_menu.c, figurineDevice.c -gUnk_080FC3E4:: @ 080FC3E4 -.ifdef JP - @ TODO only small differences - .incbin "data_080D5360/gUnk_080FC3E4_JP.bin" -.else -.ifdef EU - @ TODO only small differences - .incbin "data_080D5360/gUnk_080FC3E4_1_EU.bin" -.else - .incbin "data_080D5360/gUnk_080FC3E4_2_USA-DEMO_USA-DEMO_JP.bin" -.endif -.endif - -@ fileselect.c -gUnk_080FC844:: @ 080FC844 - .incbin "data_080D5360/gUnk_080FC844.bin" - -@ fileselect.c -gUnk_080FC85C:: @ 080FC85C - .incbin "data_080D5360/gUnk_080FC85C.bin" diff --git a/data/const/game.s b/data/const/game.s deleted file mode 100644 index e2ae564b..00000000 --- a/data/const/game.s +++ /dev/null @@ -1,649 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -@ game.c -gUnk_080FCB94:: @ 080FCB94 - .incbin "data_080FC8A4/gUnk_080FCB94.bin" - -gUnk_080FCBB4:: @ 080FCBB4 - .4byte sub_080535AC - .4byte sub_080535F4 - .4byte nullsub_481 - .4byte sub_08053618 - -gUnk_080FCBC4:: @ 080FCBC4 - .incbin "data_080FC8A4/gUnk_080FCBC4.bin" - .4byte script_IntroCameraTarget - .incbin "data_080FC8A4/gUnk_080FCBC4_1.bin" - .4byte script_ZeldaMoveToLinksHouse - .incbin "data_080FC8A4/gUnk_080FCBC4_2.bin" - .4byte script_HouseDoorIntro - .incbin "data_080FC8A4/gUnk_080FCBC4_3.bin" - .4byte script_CutsceneOrchestratorIntro2 - .incbin "data_080FC8A4/gUnk_080FCBC4_4.bin" - -gUnk_080FCC14:: @ 080FCC14 - .incbin "data_080FC8A4/gUnk_080FCC14.bin" - .4byte script_CutsceneOrchestratorIntro - .incbin "data_080FC8A4/gUnk_080FCC14_1.bin" - .4byte script_SmithIntro - .incbin "data_080FC8A4/gUnk_080FCC14_2.bin" - .4byte script_ZeldaIntro - .incbin "data_080FC8A4/gUnk_080FCC14_3.bin" - -gUnk_080FCC54:: @ 080FCC54 - .incbin "data_080FC8A4/gUnk_080FCC54.bin" - .4byte script_ZeldaLeaveLinksHouse - .incbin "data_080FC8A4/gUnk_080FCC54_1.bin" - -gUnk_080FCC84:: @ 080FCC84 - .incbin "data_080FC8A4/gUnk_080FCC84.bin" - -gUnk_080FCC9C:: @ 080FCC9C - .incbin "data_080FC8A4/gUnk_080FCC9C.bin" - -gUnk_080FCCB4:: @ 080FCCB4 - .4byte gUnk_080FCC84 - .incbin "data_080FC8A4/gUnk_080FCCB4.bin" - .4byte gUnk_080FCC84 - .incbin "data_080FC8A4/gUnk_080FCCB4_1.bin" - .4byte gUnk_080FCC9C - .incbin "data_080FC8A4/gUnk_080FCCB4_2.bin" - .4byte gUnk_080FCC9C - .incbin "data_080FC8A4/gUnk_080FCCB4_3.bin" - .4byte gUnk_080FCC84 - .incbin "data_080FC8A4/gUnk_080FCCB4_4.bin" - .4byte gUnk_080FCC84 - .incbin "data_080FC8A4/gUnk_080FCCB4_5.bin" - -gUnk_080FCCFC:: @ 080FCCFC - .4byte sub_08053758 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053904 - .4byte sub_08053974 - .4byte nullsub_482 - .4byte sub_080539BC - .4byte nullsub_482 - -gUnk_080FCD38:: @ 080FCD38 - .4byte sub_0805370C - .4byte nullsub_482 - -gUnk_080FCD40:: @ 080FCD40 - .4byte sub_08053758 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_080539F4 - .4byte sub_08053A1C - .4byte sub_08053A5C - .4byte sub_08053A90 - -gUnk_080FCD84:: @ 080FCD84 - .incbin "data_080FC8A4/gUnk_080FCD84.bin" - .4byte script_CutsceneOrchestratorMinishVaati - .incbin "data_080FC8A4/gUnk_080FCD84_1.bin" - .4byte script_MinishEzlo - .incbin "data_080FC8A4/gUnk_080FCD84_2.bin" - .4byte script_CutsceneMiscObjectMinishCap - .incbin "data_080FC8A4/gUnk_080FCD84_3.bin" - .4byte script_Vaati - .incbin "data_080FC8A4/gUnk_080FCD84_4.bin" - -gUnk_080FCDD4:: @ 080FCDD4 - .4byte sub_08053ACC - .4byte sub_08053B00 - .4byte sub_08053B10 - -gUnk_080FCDE0:: @ 080FCDE0 - .incbin "data_080FC8A4/gUnk_080FCDE0.bin" - .4byte script_CutsceneOrchestratorTakeoverCutscene - .incbin "data_080FC8A4/gUnk_080FCDE0_1.bin" - .4byte script_KingDaltusTakeover - .incbin "data_080FC8A4/gUnk_080FCDE0_2.bin" - .4byte script_VaatiTakeover - .incbin "data_080FC8A4/gUnk_080FCDE0_3.bin" - .4byte script_ZeldaStoneTakeover - .incbin "data_080FC8A4/gUnk_080FCDE0_4.bin" - -gUnk_080FCE30:: @ 080FCE30 - .incbin "data_080FC8A4/gUnk_080FCE30.bin" - .4byte script_MinisterPothoTakeover - .incbin "data_080FC8A4/gUnk_080FCE30_1.bin" - .4byte script_GuardTakeover - .incbin "data_080FC8A4/gUnk_080FCE30_2.bin" - .4byte script_GuardTakeover - .incbin "data_080FC8A4/gUnk_080FCE30_3.bin" - .4byte script_GuardTakeover - .incbin "data_080FC8A4/gUnk_080FCE30_4.bin" - .4byte script_GuardTakeover - .incbin "data_080FC8A4/gUnk_080FCE30_5.bin" - .4byte script_GuardTakeover - .incbin "data_080FC8A4/gUnk_080FCE30_6.bin" - .4byte script_GuardTakeover - .incbin "data_080FC8A4/gUnk_080FCE30_7.bin" - -gUnk_080FCEB0:: @ 080FCEB0 - .4byte sub_08053B74 - .4byte sub_08053BAC - .4byte sub_08053BBC - -gUnk_080FCEBC:: @ 080FCEBC - .incbin "data_080FC8A4/gUnk_080FCEBC.bin" - .4byte script_ZeldaStoneInDHC - .incbin "data_080FC8A4/gUnk_080FCEBC_1.bin" - .4byte script_ZeldaStoneDHC - .incbin "data_080FC8A4/gUnk_080FCEBC_2.bin" - -gUnk_080FCEEC:: @ 080FCEEC - .4byte sub_08053C20 - .4byte nullsub_483 - .4byte sub_08053C60 - -gUnk_080FCEF8:: @ 080FCEF8 - .4byte sub_08053CAC - .4byte sub_08053CAC - .4byte sub_08053E58 - -gUnk_080FCF04:: @ 080FCF04 - .4byte gUnk_080FCF24 - .4byte 0x00001c58 - .4byte gUnk_080FCF44 - .4byte 0x00002058 - .4byte gUnk_080FCF64 - .4byte 0x00001d58 - .4byte gUnk_080FCF84 - .4byte 0x00002258 - -gUnk_080FCF24:: @ 080FCF24 - .incbin "data_080FC8A4/gUnk_080FCF24.bin" - -gUnk_080FCF44:: @ 080FCF44 - .incbin "data_080FC8A4/gUnk_080FCF44.bin" - -gUnk_080FCF64:: @ 080FCF64 - .incbin "data_080FC8A4/gUnk_080FCF64.bin" - -gUnk_080FCF84:: @ 080FCF84 - .incbin "data_080FC8A4/gUnk_080FCF84.bin" - -gUnk_080FCFA4:: @ 080FCFA4 - .4byte sub_08053CC8 - .4byte sub_08053D34 - .4byte sub_08053D90 - .4byte sub_08053DB4 - .4byte sub_08053E30 - -gUnk_080FCFB8:: @ 080FCFB8 - .4byte gUnk_080FCFE8 - .4byte gUnk_080FD008 - .4byte 0x10100e88 - .4byte gUnk_080FD028 - .4byte gUnk_080FD048 - .4byte 0x10101088 - .4byte gUnk_080FD078 - .4byte gUnk_080FD098 - .4byte 0x10101388 - .4byte gUnk_080FD0C8 - .4byte gUnk_080FD0E8 - .4byte 0x10101588 - -gUnk_080FCFE8:: @ 080FCFE8 - .incbin "data_080FC8A4/gUnk_080FCFE8.bin" - -gUnk_080FD008:: @ 080FD008 - .incbin "data_080FC8A4/gUnk_080FD008.bin" - -gUnk_080FD028:: @ 080FD028 - .incbin "data_080FC8A4/gUnk_080FD028.bin" - -gUnk_080FD048:: @ 080FD048 - .incbin "data_080FC8A4/gUnk_080FD048.bin" - -gUnk_080FD078:: @ 080FD078 - .incbin "data_080FC8A4/gUnk_080FD078.bin" - -gUnk_080FD098:: @ 080FD098 - .incbin "data_080FC8A4/gUnk_080FD098.bin" - -gUnk_080FD0C8:: @ 080FD0C8 - .incbin "data_080FC8A4/gUnk_080FD0C8.bin" - -gUnk_080FD0E8:: @ 080FD0E8 - .incbin "data_080FC8A4/gUnk_080FD0E8.bin" - -gUnk_080FD108:: @ 080FD108 - .4byte sub_08053E74 - .4byte sub_08053EC4 - .4byte sub_08053EFC - .4byte sub_08053F20 - .4byte sub_08053EC4 - .4byte sub_08053EFC - .4byte sub_08053F20 - .4byte sub_08053EC4 - .4byte sub_08053EFC - .4byte sub_08053F20 - .4byte sub_08053EC4 - .4byte sub_08053F88 - -gUnk_080FD138:: @ 080FD138 - .4byte sub_080536D4 - .4byte sub_08053B58 - .4byte sub_0805373C - .4byte sub_08053AB0 - .4byte sub_080536F0 - .4byte sub_08053C04 - -gHitbox_0:: @ 080FD150 - .incbin "data_080FC8A4/gHitbox_0.bin" - -gHitbox_30:: @ 080FD158 - .incbin "data_080FC8A4/gHitbox_30.bin" - -gHitbox_31:: @ 080FD160 - .incbin "data_080FC8A4/gHitbox_31.bin" - -gHitbox_1:: @ 080FD168 - .incbin "data_080FC8A4/gHitbox_1.bin" - -gHitbox_2:: @ 080FD170 - .incbin "data_080FC8A4/gHitbox_2.bin" - -gUnk_080FD178:: @ 080FD178 - .incbin "data_080FC8A4/gUnk_080FD178.bin" - -gHitbox_3:: @ 080FD180 - .incbin "data_080FC8A4/gHitbox_3.bin" - -gHitbox_4:: @ 080FD188 - .incbin "data_080FC8A4/gHitbox_4.bin" - -gUnk_080FD190:: @ 080FD190 - .incbin "data_080FC8A4/gUnk_080FD190.bin" - -gHitbox_5:: @ 080FD198 - .incbin "data_080FC8A4/gHitbox_5.bin" - -gHitbox_6:: @ 080FD1A0 - .incbin "data_080FC8A4/gHitbox_6.bin" - -gUnk_080FD1A8:: @ 080FD1A8 - .incbin "data_080FC8A4/gUnk_080FD1A8.bin" - -gUnk_080FD1B4:: @ 080FD1B4 - .incbin "data_080FC8A4/gUnk_080FD1B4.bin" - -gHitbox_7:: @ 080FD1C4 - .incbin "data_080FC8A4/gHitbox_7.bin" - -gHitbox_8:: @ 080FD1CC - .incbin "data_080FC8A4/gHitbox_8.bin" - -gUnk_080FD1D4:: @ 080FD1D4 - .incbin "data_080FC8A4/gUnk_080FD1D4.bin" - -gUnk_080FD1DC:: @ 080FD1DC - .incbin "data_080FC8A4/gUnk_080FD1DC.bin" - -gUnk_080FD1E4:: @ 080FD1E4 - .incbin "data_080FC8A4/gUnk_080FD1E4.bin" - -gUnk_080FD1EC:: @ 080FD1EC - .incbin "data_080FC8A4/gUnk_080FD1EC.bin" - -gUnk_080FD1F4:: @ 080FD1F4 - .incbin "data_080FC8A4/gUnk_080FD1F4.bin" - -gUnk_080FD1FC:: @ 080FD1FC - .incbin "data_080FC8A4/gUnk_080FD1FC.bin" - -gUnk_080FD204:: @ 080FD204 - .incbin "data_080FC8A4/gUnk_080FD204.bin" - -gUnk_080FD20C:: @ 080FD20C - .incbin "data_080FC8A4/gUnk_080FD20C.bin" - -gUnk_080FD214:: @ 080FD214 - .incbin "data_080FC8A4/gUnk_080FD214.bin" - -gUnk_080FD21C:: @ 080FD21C - .incbin "data_080FC8A4/gUnk_080FD21C.bin" - -gUnk_080FD224:: @ 080FD224 - .incbin "data_080FC8A4/gUnk_080FD224.bin" - -gUnk_080FD22C:: @ 080FD22C - .incbin "data_080FC8A4/gUnk_080FD22C.bin" - -gUnk_080FD238:: @ 080FD238 - .incbin "data_080FC8A4/gUnk_080FD238.bin" - -gUnk_080FD240:: @ 080FD240 - .incbin "data_080FC8A4/gUnk_080FD240.bin" - -gUnk_080FD248:: @ 080FD248 - .incbin "data_080FC8A4/gUnk_080FD248.bin" - -gHitbox_9:: @ 080FD250 - .incbin "data_080FC8A4/gHitbox_9.bin" - -gUnk_080FD258:: @ 080FD258 - .incbin "data_080FC8A4/gUnk_080FD258.bin" - -gUnk_080FD260:: @ 080FD260 - .incbin "data_080FC8A4/gUnk_080FD260.bin" - -gHitbox_10:: @ 080FD268 - .incbin "data_080FC8A4/gHitbox_10.bin" - -gUnk_080FD270:: @ 080FD270 - .incbin "data_080FC8A4/gUnk_080FD270.bin" - -gUnk_080FD278:: @ 080FD278 - .incbin "data_080FC8A4/gUnk_080FD278.bin" - -gUnk_080FD280:: @ 080FD280 - .incbin "data_080FC8A4/gUnk_080FD280.bin" - -gUnk_080FD288:: @ 080FD288 - .incbin "data_080FC8A4/gUnk_080FD288.bin" - -gUnk_080FD290:: @ 080FD290 - .incbin "data_080FC8A4/gUnk_080FD290.bin" - -gUnk_080FD298:: @ 080FD298 - .incbin "data_080FC8A4/gUnk_080FD298.bin" - -gUnk_080FD2A0:: @ 080FD2A0 - .incbin "data_080FC8A4/gUnk_080FD2A0.bin" - -gUnk_080FD2A8:: @ 080FD2A8 - .incbin "data_080FC8A4/gUnk_080FD2A8.bin" - -gHitbox_11:: @ 080FD2B0 - .incbin "data_080FC8A4/gHitbox_11.bin" - -gHitbox_12:: @ 080FD2B8 - .incbin "data_080FC8A4/gHitbox_12.bin" - -gHitbox_13:: @ 080FD2C0 - .incbin "data_080FC8A4/gHitbox_13.bin" - -gHitbox_14:: @ 080FD2C8 - .incbin "data_080FC8A4/gHitbox_14.bin" - -gUnk_080FD2D0:: @ 080FD2D0 - .incbin "data_080FC8A4/gUnk_080FD2D0.bin" - -gUnk_080FD2D8:: @ 080FD2D8 - .incbin "data_080FC8A4/gUnk_080FD2D8.bin" - -gUnk_080FD2E0:: @ 080FD2E0 - .incbin "data_080FC8A4/gUnk_080FD2E0.bin" - -gUnk_080FD2E8:: @ 080FD2E8 - .incbin "data_080FC8A4/gUnk_080FD2E8.bin" - -gUnk_080FD2F0:: @ 080FD2F0 - .incbin "data_080FC8A4/gUnk_080FD2F0.bin" - -gHitbox_15:: @ 080FD2F8 - .incbin "data_080FC8A4/gHitbox_15.bin" - -gHitbox_16:: @ 080FD300 - .incbin "data_080FC8A4/gHitbox_16.bin" - -gUnk_080FD308:: @ 080FD308 - .incbin "data_080FC8A4/gUnk_080FD308.bin" - -gUnk_080FD310:: @ 080FD310 - .incbin "data_080FC8A4/gUnk_080FD310.bin" - -gHitbox_17:: @ 080FD318 - .incbin "data_080FC8A4/gHitbox_17.bin" - -gUnk_080FD320:: @ 080FD320 - .incbin "data_080FC8A4/gUnk_080FD320.bin" - -gUnk_080FD328:: @ 080FD328 - .incbin "data_080FC8A4/gUnk_080FD328.bin" - -gUnk_080FD330:: @ 080FD330 - .incbin "data_080FC8A4/gUnk_080FD330.bin" - -gHitbox_18:: @ 080FD338 - .incbin "data_080FC8A4/gHitbox_18.bin" - -gUnk_080FD340:: @ 080FD340 - .incbin "data_080FC8A4/gUnk_080FD340.bin" - -gUnk_080FD34C:: @ 080FD34C - .incbin "data_080FC8A4/gUnk_080FD34C.bin" - -gUnk_080FD354:: @ 080FD354 - .incbin "data_080FC8A4/gUnk_080FD354.bin" - -gUnk_080FD35C:: @ 080FD35C - .incbin "data_080FC8A4/gUnk_080FD35C.bin" - -gUnk_080FD364:: @ 080FD364 - .incbin "data_080FC8A4/gUnk_080FD364.bin" - -gUnk_080FD36C:: @ 080FD36C - .incbin "data_080FC8A4/gUnk_080FD36C.bin" - -gUnk_080FD374:: @ 080FD374 - .incbin "data_080FC8A4/gUnk_080FD374.bin" - -gUnk_080FD37C:: @ 080FD37C - .incbin "data_080FC8A4/gUnk_080FD37C.bin" - -gUnk_080FD384:: @ 080FD384 - .incbin "data_080FC8A4/gUnk_080FD384.bin" - -gUnk_080FD38C:: @ 080FD38C - .incbin "data_080FC8A4/gUnk_080FD38C.bin" - -gUnk_080FD394:: @ 080FD394 - .incbin "data_080FC8A4/gUnk_080FD394.bin" - -gUnk_080FD39C:: @ 080FD39C - .incbin "data_080FC8A4/gUnk_080FD39C.bin" - -gUnk_080FD3A4:: @ 080FD3A4 - .incbin "data_080FC8A4/gUnk_080FD3A4.bin" - -gUnk_080FD3AC:: @ 080FD3AC - .incbin "data_080FC8A4/gUnk_080FD3AC.bin" - -gUnk_080FD3B4:: @ 080FD3B4 - .incbin "data_080FC8A4/gUnk_080FD3B4.bin" - -gUnk_080FD3BC:: @ 080FD3BC - .incbin "data_080FC8A4/gUnk_080FD3BC.bin" - -gUnk_080FD3C4:: @ 080FD3C4 - .incbin "data_080FC8A4/gUnk_080FD3C4.bin" - -gUnk_080FD3CC:: @ 080FD3CC - .incbin "data_080FC8A4/gUnk_080FD3CC.bin" - -gUnk_080FD3DC:: @ 080FD3DC - .incbin "data_080FC8A4/gUnk_080FD3DC.bin" - -gUnk_080FD3E4:: @ 080FD3E4 - .incbin "data_080FC8A4/gUnk_080FD3E4.bin" - -gUnk_080FD3EC:: @ 080FD3EC - .incbin "data_080FC8A4/gUnk_080FD3EC.bin" - -gUnk_080FD3F4:: @ 080FD3F4 - .incbin "data_080FC8A4/gUnk_080FD3F4.bin" - -gUnk_080FD3FC:: @ 080FD3FC - .incbin "data_080FC8A4/gUnk_080FD3FC.bin" - -gUnk_080FD408:: @ 080FD408 - .incbin "data_080FC8A4/gUnk_080FD408.bin" - -gHitbox_19:: @ 080FD410 - .incbin "data_080FC8A4/gHitbox_19.bin" - -gUnk_080FD41C:: @ 080FD41C - .incbin "data_080FC8A4/gUnk_080FD41C.bin" - -gUnk_080FD424:: @ 080FD424 - .incbin "data_080FC8A4/gUnk_080FD424.bin" - -gUnk_080FD42C:: @ 080FD42C - .incbin "data_080FC8A4/gUnk_080FD42C.bin" - -gUnk_080FD434:: @ 080FD434 - .incbin "data_080FC8A4/gUnk_080FD434.bin" - -gUnk_080FD43C:: @ 080FD43C - .incbin "data_080FC8A4/gUnk_080FD43C.bin" - -gHitbox_20:: @ 080FD448 - .incbin "data_080FC8A4/gHitbox_20.bin" - -gUnk_080FD450:: @ 080FD450 - .incbin "data_080FC8A4/gUnk_080FD450.bin" - -gHitbox_21:: @ 080FD458 - .incbin "data_080FC8A4/gHitbox_21.bin" - -gHitbox_22:: @ 080FD460 - .incbin "data_080FC8A4/gHitbox_22.bin" - -gHitbox_23:: @ 080FD468 - .incbin "data_080FC8A4/gHitbox_23.bin" - -gHitbox_32:: @ 080FD470 - .incbin "data_080FC8A4/gHitbox_32.bin" - -gHitbox_24:: @ 080FD480 - .incbin "data_080FC8A4/gHitbox_24.bin" - -gUnk_080FD488:: @ 080FD488 - .incbin "data_080FC8A4/gUnk_080FD488.bin" - -gUnk_080FD490:: @ 080FD490 - .incbin "data_080FC8A4/gUnk_080FD490.bin" - -gHitbox_25:: @ 080FD498 - .incbin "data_080FC8A4/gHitbox_25.bin" - -gHitbox_26:: @ 080FD4A4 - .incbin "data_080FC8A4/gHitbox_26.bin" - -gUnk_080FD4B8:: @ 080FD4B8 - .incbin "data_080FC8A4/gUnk_080FD4B8.bin" - -gUnk_080FD4C0:: @ 080FD4C0 - .incbin "data_080FC8A4/gUnk_080FD4C0.bin" - -gUnk_080FD4C8:: @ 080FD4C8 - .incbin "data_080FC8A4/gUnk_080FD4C8.bin" - -gUnk_080FD4D0:: @ 080FD4D0 - .incbin "data_080FC8A4/gUnk_080FD4D0.bin" - -gUnk_080FD4D8:: @ 080FD4D8 - .incbin "data_080FC8A4/gUnk_080FD4D8.bin" - -gUnk_080FD4E0:: @ 080FD4E0 - .incbin "data_080FC8A4/gUnk_080FD4E0.bin" - -gUnk_080FD4E8:: @ 080FD4E8 - .incbin "data_080FC8A4/gUnk_080FD4E8.bin" - -gUnk_080FD4F0:: @ 080FD4F0 - .incbin "data_080FC8A4/gUnk_080FD4F0.bin" - -gUnk_080FD4F8:: @ 080FD4F8 - .incbin "data_080FC8A4/gUnk_080FD4F8.bin" - -gUnk_080FD500:: @ 080FD500 - .incbin "data_080FC8A4/gUnk_080FD500.bin" - -gUnk_080FD508:: @ 080FD508 - .incbin "data_080FC8A4/gUnk_080FD508.bin" - -gUnk_080FD510:: @ 080FD510 - .incbin "data_080FC8A4/gUnk_080FD510.bin" - -gUnk_080FD518:: @ 080FD518 - .incbin "data_080FC8A4/gUnk_080FD518.bin" - -gUnk_080FD520:: @ 080FD520 - .incbin "data_080FC8A4/gUnk_080FD520.bin" - -gHitbox_27:: @ 080FD528 - .incbin "data_080FC8A4/gHitbox_27.bin" - -gUnk_080FD530:: @ 080FD530 - .incbin "data_080FC8A4/gUnk_080FD530.bin" - -gUnk_080FD538:: @ 080FD538 - .incbin "data_080FC8A4/gUnk_080FD538.bin" - -gUnk_080FD544:: @ 080FD544 - .incbin "data_080FC8A4/gUnk_080FD544.bin" - -gHitbox_28:: @ 080FD54C - .incbin "data_080FC8A4/gHitbox_28.bin" - -gUnk_080FD558:: @ 080FD558 - .incbin "data_080FC8A4/gUnk_080FD558.bin" - -gUnk_080FD560:: @ 080FD560 - .incbin "data_080FC8A4/gUnk_080FD560.bin" - -gHitbox_29:: @ 080FD568 - .incbin "data_080FC8A4/gHitbox_29.bin" - -gUnk_080FD570:: @ 080FD570 - .incbin "data_080FC8A4/gUnk_080FD570.bin" - -gUnk_080FD578:: @ 080FD578 - .incbin "data_080FC8A4/gUnk_080FD578.bin" - -gUnk_080FD580:: @ 080FD580 - .incbin "data_080FC8A4/gUnk_080FD580.bin" - -gUnk_080FD588:: @ 080FD588 - .incbin "data_080FC8A4/gUnk_080FD588.bin" - -gWalletSizes:: @ 080FD590 - .incbin "data_080FC8A4/gWalletSizes.bin" - -gBombBagSizes:: @ 080FD5A0 - .incbin "data_080FC8A4/gBombBagSizes.bin" - -gQuiverSizes:: @ 080FD5A4 - .incbin "data_080FC8A4/gQuiverSizes.bin" - -@ game.c -gUnk_080FD5A8:: @ 080FD5A8 - .incbin "data_080FC8A4/gUnk_080FD5A8.bin" diff --git a/data/const/game_2.s b/data/const/game_2.s index b39ff9aa..b2567dbf 100644 --- a/data/const/game_2.s +++ b/data/const/game_2.s @@ -4,486 +4,8 @@ .section .rodata .align 2 -@ game.c, linkHoldingItem.c -gUnk_080FD964:: @ 080FD964 -.ifdef EU - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FD964_EU.bin" -.else - .incbin "data_080FC8A4/gUnk_080FD964_1_USA-JP-DEMO_USA-DEMO_JP.bin" -.endif -gSpriteAnimations_322_0:: @ 080FDD14 - .include "animations/gSpriteAnimations_322_0.s" - -gSpriteAnimations_322_1:: @ 080FDD19 - .include "animations/gSpriteAnimations_322_1.s" - -gSpriteAnimations_322_2:: @ 080FDD1E - .include "animations/gSpriteAnimations_322_2.s" - -gSpriteAnimations_322_3:: @ 080FDD23 - .include "animations/gSpriteAnimations_322_3.s" - -gSpriteAnimations_322_4:: @ 080FDD28 - .include "animations/gSpriteAnimations_322_4.s" - -gSpriteAnimations_322_6:: @ 080FDD2D - .include "animations/gSpriteAnimations_322_6.s" - -gSpriteAnimations_322_7:: @ 080FDD32 - .include "animations/gSpriteAnimations_322_7.s" - -gSpriteAnimations_322_8:: @ 080FDD37 - .include "animations/gSpriteAnimations_322_8.s" - -gSpriteAnimations_322_9:: @ 080FDD48 - .include "animations/gSpriteAnimations_322_9.s" - -gSpriteAnimations_322_10:: @ 080FDD4D - .include "animations/gSpriteAnimations_322_10.s" - -gSpriteAnimations_322_11:: @ 080FDD52 - .include "animations/gSpriteAnimations_322_11.s" - -gSpriteAnimations_322_12:: @ 080FDD57 - .include "animations/gSpriteAnimations_322_12.s" - -gSpriteAnimations_322_13:: @ 080FDD5C - .include "animations/gSpriteAnimations_322_13.s" - -gSpriteAnimations_322_14:: @ 080FDD61 - .include "animations/gSpriteAnimations_322_14.s" - -gSpriteAnimations_322_15:: @ 080FDD92 - .include "animations/gSpriteAnimations_322_15.s" - -gSpriteAnimations_322_5:: @ 080FDD97 - .include "animations/gSpriteAnimations_322_5.s" - -gSpriteAnimations_322_17:: @ 080FDDA8 - .include "animations/gSpriteAnimations_322_17.s" - -gSpriteAnimations_322_18:: @ 080FDDAD - .include "animations/gSpriteAnimations_322_18.s" - -gSpriteAnimations_322_19:: @ 080FDDB2 - .include "animations/gSpriteAnimations_322_19.s" - -gSpriteAnimations_322_20:: @ 080FDDB7 - .include "animations/gSpriteAnimations_322_20.s" - -gSpriteAnimations_322_21:: @ 080FDDBC - .include "animations/gSpriteAnimations_322_21.s" - -gSpriteAnimations_322_22:: @ 080FDDC1 - .include "animations/gSpriteAnimations_322_22.s" - -gSpriteAnimations_322_23:: @ 080FDDC6 - .include "animations/gSpriteAnimations_322_23.s" - -gSpriteAnimations_322_28:: @ 080FDDCB - .include "animations/gSpriteAnimations_322_28.s" - -gSpriteAnimations_322_38:: @ 080FDDD0 - .include "animations/gSpriteAnimations_322_38.s" - -gSpriteAnimations_322_39:: @ 080FDDD5 - .include "animations/gSpriteAnimations_322_39.s" - -gSpriteAnimations_322_34:: @ 080FDDDA - .include "animations/gSpriteAnimations_322_34.s" - -gSpriteAnimations_322_35:: @ 080FDDDF - .include "animations/gSpriteAnimations_322_35.s" - -gSpriteAnimations_322_40:: @ 080FDDE4 - .include "animations/gSpriteAnimations_322_40.s" - -gSpriteAnimations_322_41:: @ 080FDDF5 - .include "animations/gSpriteAnimations_322_41.s" - -gSpriteAnimations_322_42:: @ 080FDE0E - .include "animations/gSpriteAnimations_322_42.s" - -gSpriteAnimations_322_43:: @ 080FDE27 - .include "animations/gSpriteAnimations_322_43.s" - -gSpriteAnimations_322_44:: @ 080FDE40 - .include "animations/gSpriteAnimations_322_44.s" - -gSpriteAnimations_322_45:: @ 080FDE59 - .include "animations/gSpriteAnimations_322_45.s" - -gSpriteAnimations_322_46:: @ 080FDE72 - .include "animations/gSpriteAnimations_322_46.s" - -gSpriteAnimations_322_36:: @ 080FDE8B - .include "animations/gSpriteAnimations_322_36.s" - -gSpriteAnimations_322_37:: @ 080FDE90 - .include "animations/gSpriteAnimations_322_37.s" - -gSpriteAnimations_322_54:: @ 080FDE95 - .include "animations/gSpriteAnimations_322_54.s" - -gSpriteAnimations_322_33:: @ 080FDE9A - .include "animations/gSpriteAnimations_322_33.s" - -gSpriteAnimations_322_47:: @ 080FDE9F - .include "animations/gSpriteAnimations_322_47.s" - -gSpriteAnimations_322_48:: @ 080FDEA4 - .include "animations/gSpriteAnimations_322_48.s" - -gSpriteAnimations_322_49:: @ 080FDEA9 - .include "animations/gSpriteAnimations_322_49.s" - -gSpriteAnimations_322_52:: @ 080FDEAE - .include "animations/gSpriteAnimations_322_52.s" - -gSpriteAnimations_322_53:: @ 080FDEB3 - .include "animations/gSpriteAnimations_322_53.s" - -gSpriteAnimations_322_24:: @ 080FDEB8 - .include "animations/gSpriteAnimations_322_24.s" - -gSpriteAnimations_322_58:: @ 080FDEBD - .include "animations/gSpriteAnimations_322_58.s" - -gSpriteAnimations_322_59:: @ 080FDEC2 - .include "animations/gSpriteAnimations_322_59.s" - -gSpriteAnimations_322_25:: @ 080FDEC7 - .include "animations/gSpriteAnimations_322_25.s" - -gSpriteAnimations_322_60:: @ 080FDECC - .include "animations/gSpriteAnimations_322_60.s" - -gSpriteAnimations_322_55:: @ 080FDED1 - .include "animations/gSpriteAnimations_322_55.s" - -gSpriteAnimations_322_68:: @ 080FDED6 - .include "animations/gSpriteAnimations_322_68.s" - -gSpriteAnimations_322_69:: @ 080FDEDB - .include "animations/gSpriteAnimations_322_69.s" - -gSpriteAnimations_322_26:: @ 080FDEE0 - .include "animations/gSpriteAnimations_322_26.s" - -gSpriteAnimations_322_64:: @ 080FDEE5 - .include "animations/gSpriteAnimations_322_64.s" - -gSpriteAnimations_322_65:: @ 080FDEEA - .include "animations/gSpriteAnimations_322_65.s" - -gSpriteAnimations_322_66:: @ 080FDEEF - .include "animations/gSpriteAnimations_322_66.s" - -gSpriteAnimations_322_67:: @ 080FDEF4 - .include "animations/gSpriteAnimations_322_67.s" - -gSpriteAnimations_322_71:: @ 080FDEF9 - .include "animations/gSpriteAnimations_322_71.s" - -gSpriteAnimations_322_81:: @ 080FDEFE - .include "animations/gSpriteAnimations_322_81.s" - -gSpriteAnimations_322_82:: @ 080FDF03 - .include "animations/gSpriteAnimations_322_82.s" - -gSpriteAnimations_322_83:: @ 080FDF08 - .include "animations/gSpriteAnimations_322_83.s" - -gSpriteAnimations_322_84:: @ 080FDF0D - .include "animations/gSpriteAnimations_322_84.s" - -gSpriteAnimations_322_95:: @ 080FDF12 - .include "animations/gSpriteAnimations_322_95.s" - -gSpriteAnimations_322_96:: @ 080FDF17 - .include "animations/gSpriteAnimations_322_96.s" - -gSpriteAnimations_322_98:: @ 080FDF28 - .include "animations/gSpriteAnimations_322_98.s" - -gSpriteAnimations_322_99:: @ 080FDF45 - .include "animations/gSpriteAnimations_322_99.s" - -gSpriteAnimations_322_87:: @ 080FDF4A - .include "animations/gSpriteAnimations_322_87.s" - -gSpriteAnimations_322_104:: @ 080FDF4F - .include "animations/gSpriteAnimations_322_104.s" - -gSpriteAnimations_322_105:: @ 080FDF54 - .include "animations/gSpriteAnimations_322_105.s" - -gSpriteAnimations_322_106:: @ 080FDF59 - .include "animations/gSpriteAnimations_322_106.s" - -gSpriteAnimations_322_107:: @ 080FDF5E - .include "animations/gSpriteAnimations_322_107.s" - -gSpriteAnimations_322_93:: @ 080FDF63 - .include "animations/gSpriteAnimations_322_93.s" - -gSpriteAnimations_322_94:: @ 080FDF68 - .include "animations/gSpriteAnimations_322_94.s" - -gSpriteAnimations_322_63:: @ 080FDF6D - .include "animations/gSpriteAnimations_322_63.s" - -gSpriteAnimations_322_100:: @ 080FDF72 - .include "animations/gSpriteAnimations_322_100.s" - -gSpriteAnimations_322_101:: @ 080FDF77 - .include "animations/gSpriteAnimations_322_101.s" - -gSpriteAnimations_322_102:: @ 080FDF7C - .include "animations/gSpriteAnimations_322_102.s" - -gSpriteAnimations_322_103:: @ 080FDF81 - .include "animations/gSpriteAnimations_322_103.s" - -gSpriteAnimations_322_91:: @ 080FDF86 - .include "animations/gSpriteAnimations_322_91.s" - -gSpriteAnimations_322_92:: @ 080FDF8F - .include "animations/gSpriteAnimations_322_92.s" - -gSpriteAnimations_322_108:: @ 080FDF94 - .include "animations/gSpriteAnimations_322_108.s" - -gSpriteAnimations_322_109:: @ 080FDF99 - .include "animations/gSpriteAnimations_322_109.s" - -gSpriteAnimations_322_110:: @ 080FDF9E - .include "animations/gSpriteAnimations_322_110.s" - -gSpriteAnimations_322_111:: @ 080FDFA3 - .include "animations/gSpriteAnimations_322_111.s" - -gSpriteAnimations_322_112:: @ 080FDFA8 - .include "animations/gSpriteAnimations_322_112.s" - -gSpriteAnimations_322_72:: @ 080FDFC1 - .include "animations/gSpriteAnimations_322_72.s" - -gSpriteAnimations_322_97:: @ 080FDFC6 - .include "animations/gSpriteAnimations_322_97.s" - -gSpriteAnimations_322_61:: @ 080FDFCB - .include "animations/gSpriteAnimations_322_61.s" - -gSpriteAnimations_322_62:: @ 080FDFD0 - .include "animations/gSpriteAnimations_322_62.s" - -@ subtask2.c, ui.c, pause_menu.c -gSpriteAnimations_322:: @ 080FDFD8 - .4byte gSpriteAnimations_322_0 - .4byte gSpriteAnimations_322_1 - .4byte gSpriteAnimations_322_2 - .4byte gSpriteAnimations_322_3 - .4byte gSpriteAnimations_322_4 - .4byte gSpriteAnimations_322_5 - .4byte gSpriteAnimations_322_6 - .4byte gSpriteAnimations_322_7 - .4byte gSpriteAnimations_322_8 - .4byte gSpriteAnimations_322_9 - .4byte gSpriteAnimations_322_10 - .4byte gSpriteAnimations_322_11 - .4byte gSpriteAnimations_322_12 - .4byte gSpriteAnimations_322_13 - .4byte gSpriteAnimations_322_14 - .4byte gSpriteAnimations_322_15 - .4byte gSpriteAnimations_322_5 - .4byte gSpriteAnimations_322_17 - .4byte gSpriteAnimations_322_18 - .4byte gSpriteAnimations_322_19 - .4byte gSpriteAnimations_322_20 - .4byte gSpriteAnimations_322_21 - .4byte gSpriteAnimations_322_22 - .4byte gSpriteAnimations_322_23 - .4byte gSpriteAnimations_322_24 - .4byte gSpriteAnimations_322_25 - .4byte gSpriteAnimations_322_26 - .4byte gSpriteAnimations_322_5 - .4byte gSpriteAnimations_322_28 - .4byte gSpriteAnimations_322_28 - .4byte gSpriteAnimations_322_28 - .4byte gSpriteAnimations_322_28 - .4byte gSpriteAnimations_322_28 - .4byte gSpriteAnimations_322_33 - .4byte gSpriteAnimations_322_34 - .4byte gSpriteAnimations_322_35 - .4byte gSpriteAnimations_322_36 - .4byte gSpriteAnimations_322_37 - .4byte gSpriteAnimations_322_38 - .4byte gSpriteAnimations_322_39 - .4byte gSpriteAnimations_322_40 - .4byte gSpriteAnimations_322_41 - .4byte gSpriteAnimations_322_42 - .4byte gSpriteAnimations_322_43 - .4byte gSpriteAnimations_322_44 - .4byte gSpriteAnimations_322_45 - .4byte gSpriteAnimations_322_46 - .4byte gSpriteAnimations_322_47 - .4byte gSpriteAnimations_322_48 - .4byte gSpriteAnimations_322_49 - .4byte gSpriteAnimations_322_5 - .4byte gSpriteAnimations_322_5 - .4byte gSpriteAnimations_322_52 - .4byte gSpriteAnimations_322_53 - .4byte gSpriteAnimations_322_54 - .4byte gSpriteAnimations_322_55 - .4byte gSpriteAnimations_322_25 - .4byte gSpriteAnimations_322_24 - .4byte gSpriteAnimations_322_58 - .4byte gSpriteAnimations_322_59 - .4byte gSpriteAnimations_322_60 - .4byte gSpriteAnimations_322_61 - .4byte gSpriteAnimations_322_62 - .4byte gSpriteAnimations_322_63 - .4byte gSpriteAnimations_322_64 - .4byte gSpriteAnimations_322_65 - .4byte gSpriteAnimations_322_66 - .4byte gSpriteAnimations_322_67 - .4byte gSpriteAnimations_322_68 - .4byte gSpriteAnimations_322_69 - .4byte gSpriteAnimations_322_26 - .4byte gSpriteAnimations_322_71 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_71 - .4byte gSpriteAnimations_322_81 - .4byte gSpriteAnimations_322_82 - .4byte gSpriteAnimations_322_83 - .4byte gSpriteAnimations_322_84 - .4byte gSpriteAnimations_322_84 - .4byte gSpriteAnimations_322_84 - .4byte gSpriteAnimations_322_87 - .4byte gSpriteAnimations_322_87 - .4byte gSpriteAnimations_322_87 - .4byte gSpriteAnimations_322_5 - .4byte gSpriteAnimations_322_91 - .4byte gSpriteAnimations_322_92 - .4byte gSpriteAnimations_322_93 - .4byte gSpriteAnimations_322_94 - .4byte gSpriteAnimations_322_95 - .4byte gSpriteAnimations_322_96 - .4byte gSpriteAnimations_322_97 - .4byte gSpriteAnimations_322_98 - .4byte gSpriteAnimations_322_99 - .4byte gSpriteAnimations_322_100 - .4byte gSpriteAnimations_322_101 - .4byte gSpriteAnimations_322_102 - .4byte gSpriteAnimations_322_103 - .4byte gSpriteAnimations_322_104 - .4byte gSpriteAnimations_322_105 - .4byte gSpriteAnimations_322_106 - .4byte gSpriteAnimations_322_107 - .4byte gSpriteAnimations_322_108 - .4byte gSpriteAnimations_322_109 - .4byte gSpriteAnimations_322_110 - .4byte gSpriteAnimations_322_111 - .4byte gSpriteAnimations_322_112 - .4byte gSpriteAnimations_322_112 - .4byte gSpriteAnimations_322_112 - .4byte gSpriteAnimations_322_0 - .4byte gSpriteAnimations_322_0 - .4byte gSpriteAnimations_322_0 - .4byte 00000000 - -@ game.c -gUnk_080FE1B4:: @ 080FE1B4 - .incbin "data_080FC8A4/gUnk_080FE1B4.bin" - -gUnk_080FE1C6:: @ 080FE1C6 - .incbin "data_080FC8A4/gUnk_080FE1C6.bin" - -gUnk_080FE1DD:: @ 080FE1DD - .incbin "data_080FC8A4/gUnk_080FE1DD.bin" - -gUnk_080FE2A0:: @ 080FE2A0 - .4byte sub_0805488C - .4byte sub_080548E8 - .4byte sub_08054920 - -@ game.c -gUnk_080FE2AC:: @ 080FE2AC - .4byte sub_08055D80 - .4byte sub_08054E00 - .4byte sub_080558EC - .4byte sub_08054CE8 - .4byte sub_08054C04 - .4byte sub_08055168 - .4byte sub_080552FC - .4byte sub_08055BB0 - .4byte sub_08055414 - .4byte sub_080559E0 - .4byte sub_0805559C - .4byte sub_080554FC - .4byte sub_08055818 - .4byte sub_08055094 - .4byte sub_080550F8 - .4byte sub_080556F4 - .4byte sub_08055038 - .4byte sub_08054F90 - .4byte sub_08054F90 - .4byte sub_08054D90 - .4byte sub_08055888 - .4byte sub_08055690 - .4byte sub_08055E08 - .4byte sub_080557B4 - .4byte sub_08055CD8 - .4byte sub_08055AD0 - .4byte sub_08055D80 - .4byte sub_08055D80 - .4byte sub_08055D80 - -@ game.c, kinstone.c, subtask2.c -gUnk_080FE320:: @ 080FE320 -.ifdef JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FE320_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FE320_1_DEMO_JP.bin" -.else -.ifdef EU - .incbin "data_080FC8A4/gUnk_080FE320_2_EU.bin" -.else - .incbin "data_080FC8A4/gUnk_080FE320_3_USA-DEMO_USA.bin" -.endif -.endif -.endif - -.ifdef JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FE320_4_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FE320_5_DEMO_JP.bin" -.else -.ifdef EU - .incbin "data_080FC8A4/gUnk_080FE320_6_EU.bin" -.else - .incbin "data_080FC8A4/gUnk_080FE320_7_USA-DEMO_USA.bin" -.endif -.endif -.endif - -@ kinstone.c, subtask.c +@ kinstone.c, worldEvent2.c gUnk_080FEAC8:: @ 080FEAC8 .incbin "data_080FC8A4/gUnk_080FEAC8.bin" .ifdef JP diff --git a/data/const/manager/enterRoomTextboxManager.s b/data/const/manager/enterRoomTextboxManager.s index 9b1984ac..40870ad3 100644 --- a/data/const/manager/enterRoomTextboxManager.s +++ b/data/const/manager/enterRoomTextboxManager.s @@ -4,12 +4,12 @@ .section .rodata .align 2 -gUnk_08108DE8:: @ 08108DE8 - .incbin "enterRoomTextboxManager/gUnk_08108DE8.bin" +@ gUnk_08108DE8:: @ 08108DE8 +@ .incbin "enterRoomTextboxManager/gUnk_08108DE8.bin" -EnterRoomTextboxManager_Actions:: @ 08108E28 - .4byte sub_0805E140 - .4byte sub_0805E18C +@ EnterRoomTextboxManager_Actions:: @ 08108E28 +@ .4byte sub_0805E140 +@ .4byte sub_0805E18C gUnk_08108E30:: @ 08108E30 .incbin "enterRoomTextboxManager/gUnk_08108E30.bin" diff --git a/data/const/movement.s b/data/const/movement.s deleted file mode 100644 index e85c3236..00000000 --- a/data/const/movement.s +++ /dev/null @@ -1,14 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - - -gUnk_08133368:: @ 08133368 -.ifdef EU - @ TODO only small differences - .incbin "data_08132B30/gUnk_08133368_EU.bin" -.else - .incbin "data_08132B30/gUnk_08133368_1_USA-JP-DEMO_USA-DEMO_JP.bin" -.endif diff --git a/data/const/npc/bladeBrothers.s b/data/const/npc/bladeBrothers.s deleted file mode 100644 index e96d6f92..00000000 --- a/data/const/npc/bladeBrothers.s +++ /dev/null @@ -1,76 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_081115C0:: @ 081115C0 - .4byte sub_08068A1C - .4byte sub_08068A4C - .4byte sub_08068AA4 - .4byte sub_08068ADC - -gUnk_081115D0:: @ 081115D0 - .4byte sub_08068AFC - .4byte sub_08068b2c - .4byte sub_08068B70 - -gUnk_081115DC:: @ 081115DC - .incbin "bladeBrothers/gUnk_081115DC.bin" - -BladeBrothers_PlayerMacros:: @ 081115EC - .4byte gUnk_08004A0C - .4byte gUnk_08004A16 - .4byte gUnk_08004A24 - .4byte gUnk_08004A32 - .4byte gUnk_08004A48 - .4byte gUnk_08004A72 - .4byte gUnk_08004A8C - .4byte gUnk_08004AA6 - .4byte 00000000 - .incbin "bladeBrothers/BladeBrothers_PlayerMacros.bin" - -BladeBrothers_EquippedItem:: @ 08111618 - .incbin "bladeBrothers/BladeBrothers_EquippedItem.bin" - -gUnk_08111623:: @ 08111623 - .incbin "bladeBrothers/gUnk_08111623.bin" - -gUnk_0811162B:: @ 0811162B - .incbin "bladeBrothers/gUnk_0811162B.bin" - -gUnk_08111664:: @ 08111664 - .incbin "bladeBrothers/gUnk_08111664.bin" - -gUnk_0811167A:: @ 0811167A - .incbin "bladeBrothers/gUnk_0811167A.bin" - -gUnk_08111690:: @ 08111690 - .incbin "bladeBrothers/gUnk_08111690.bin" - -gUnk_081116A6:: @ 081116A6 - .incbin "bladeBrothers/gUnk_081116A6.bin" - -gUnk_081116BC:: @ 081116BC - .incbin "bladeBrothers/gUnk_081116BC.bin" - -gUnk_081116D2:: @ 081116D2 - .incbin "bladeBrothers/gUnk_081116D2.bin" - -gUnk_081116E8:: @ 081116E8 - .incbin "bladeBrothers/gUnk_081116E8.bin" - -gUnk_081116FE:: @ 081116FE - .incbin "bladeBrothers/gUnk_081116FE.bin" - -gUnk_08111714:: @ 08111714 - .incbin "bladeBrothers/gUnk_08111714.bin" - -gUnk_0811172A:: @ 0811172A - .incbin "bladeBrothers/gUnk_0811172A.bin" - -gUnk_08111740:: @ 08111740 - .incbin "bladeBrothers/gUnk_08111740.bin" - -gSpriteAnimations_BladeBrothers_1_1:: @ 0811176C - .include "animations/gSpriteAnimations_BladeBrothers_1_1.s" diff --git a/data/const/npc/dog.s b/data/const/npc/dog.s deleted file mode 100644 index 1052fe61..00000000 --- a/data/const/npc/dog.s +++ /dev/null @@ -1,80 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08111D58:: @ 08111D58 -.ifdef EU - @ TODO only small differences - .incbin "dog/gUnk_08111D58_EU.bin" -.else - .incbin "dog/gUnk_08111D58_1_USA-JP-DEMO_USA-DEMO_JP.bin" -.endif - -gUnk_08111D88:: @ 08111D88 - .4byte sub_08069B44 - .4byte sub_08069C40 - .4byte sub_08069D54 - .4byte sub_08069DF8 - .4byte sub_08069E44 - .4byte sub_08069E50 - .4byte sub_08069ECC - .4byte sub_08069EE0 - -gUnk_08111DA8:: @ 08111DA8 - .incbin "dog/gUnk_08111DA8.bin" - -gUnk_08111DB0:: @ 08111DB0 - .incbin "dog/gUnk_08111DB0.bin" - -gUnk_08111E30:: @ 08111E30 - .incbin "dog/gUnk_08111E30.bin" - -gUnk_08111E34:: @ 08111E34 - .incbin "dog/gUnk_08111E34.bin" - .4byte sub_0806A0A4 - .incbin "dog/gUnk_08111E34_1.bin" - .4byte sub_0806A0A4 - .incbin "dog/gUnk_08111E34_2.bin" - .4byte sub_0806A0A4 - .incbin "dog/gUnk_08111E34_3.bin" - .4byte sub_0806A0A4 - .incbin "dog/gUnk_08111E34_4.bin" - .4byte sub_0806A0A4 - .incbin "dog/gUnk_08111E34_5.bin" - .4byte sub_0806A0A4 - .incbin "dog/gUnk_08111E34_6.bin" - .4byte sub_0806A0A4 - .incbin "dog/gUnk_08111E34_7.bin" - .4byte sub_0806A0A4 - .incbin "dog/gUnk_08111E34_8.bin" - .4byte sub_0806A0A4 - .incbin "dog/gUnk_08111E34_9.bin" - .4byte sub_0806A0A4 - .incbin "dog/gUnk_08111E34_10.bin" - .4byte sub_0806A144 - .incbin "dog/gUnk_08111E34_11.bin" - .4byte sub_0806A144 - .incbin "dog/gUnk_08111E34_12.bin" - .4byte sub_0806A144 - .incbin "dog/gUnk_08111E34_13.bin" - .4byte sub_0806A144 - .incbin "dog/gUnk_08111E34_14.bin" - .4byte sub_0806A144 - .incbin "dog/gUnk_08111E34_15.bin" - .4byte sub_0806A144 - .incbin "dog/gUnk_08111E34_16.bin" - .4byte sub_0806A144 - .incbin "dog/gUnk_08111E34_17.bin" - .4byte sub_0806A144 - .incbin "dog/gUnk_08111E34_18.bin" - .4byte sub_0806A144 - .incbin "dog/gUnk_08111E34_19.bin" - .4byte sub_0806A144 - -gUnk_08111F74:: @ 08111F74 - .incbin "dog/gUnk_08111F74.bin" - -gUnk_08111FD8:: @ 08111FD8 - .incbin "dog/gUnk_08111FD8.bin" diff --git a/data/const/npc/forestMinish.s b/data/const/npc/forestMinish.s deleted file mode 100644 index 97cf8805..00000000 --- a/data/const/npc/forestMinish.s +++ /dev/null @@ -1,110 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08109C98:: @ 08109C98 - .incbin "forestMinish/gUnk_08109C98.bin" - -gUnk_08109D18:: @ 08109D18 - .4byte script_BombMinish - .4byte script_BombMinishKinstone - .4byte script_ForestMinish12 - .4byte script_ForestMinish13 - .4byte script_ForestMinish14 - .4byte script_ForestMinish15 - .4byte script_ForestMinish16 - .4byte script_ForestMinish17 - .4byte script_ForestMinish18 - .4byte script_ForestMinish19 - .4byte script_ForestMinish20 - .4byte script_ForestMinish21 - .4byte script_ForestMinish1 - .4byte script_ForestMinish1 - .4byte script_ForestMinish1 - .4byte script_ForestMinish2 - .4byte script_ForestMinish3 - .4byte script_ForestMinish1 - .4byte script_ForestMinish1 - .4byte script_ForestMinish1 - .4byte script_ForestMinish1 - .4byte script_ForestMinish1 - .4byte script_ForestMinish10 - .4byte script_ForestMinish4 - .4byte script_ForestMinish4 - .4byte script_ForestMinish4 - .4byte script_ForestMinish4 - .4byte script_ForestMinish4 - .4byte script_ForestMinish4 - .4byte script_ForestMinish4 - .4byte script_ForestMinish4 - .4byte script_ForestMinish4 - .4byte script_ForestMinish4 - .4byte script_ForestMinish4 - .4byte script_ForestMinish4 - .4byte script_ForestMinish4 - .4byte script_ForestMinish11 - .4byte script_ForestMinish11 - .4byte script_ForestMinish11 - .4byte script_ForestMinish5 - .4byte script_ForestMinish6 - .4byte script_ForestMinish7 - .4byte script_ForestMinish8 - .4byte script_ForestMinish9 - -gUnk_08109DC8:: @ 08109DC8 - .incbin "forestMinish/gUnk_08109DC8.bin" -.ifdef JP - @ TODO only small differences - .incbin "forestMinish/gUnk_08109DC8_1_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "forestMinish/gUnk_08109DC8_2_DEMO_JP.bin" -.else -.ifdef EU - .incbin "forestMinish/gUnk_08109DC8_3_EU.bin" -.else - .incbin "forestMinish/gUnk_08109DC8_4_USA-DEMO_USA.bin" -.endif -.endif -.endif - -.ifdef JP - @ TODO only small differences - .incbin "forestMinish/gUnk_08109DC8_5_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "forestMinish/gUnk_08109DC8_6_DEMO_JP.bin" -.else -.ifdef EU - .incbin "forestMinish/gUnk_08109DC8_7_EU.bin" -.else - .incbin "forestMinish/gUnk_08109DC8_8_USA-DEMO_USA.bin" -.endif -.endif -.endif - - .incbin "forestMinish/gUnk_08109DC8_9.bin" - .4byte sub_080601D4 - .incbin "forestMinish/gUnk_08109DC8_10.bin" - .4byte sub_080601D4 - .incbin "forestMinish/gUnk_08109DC8_11.bin" - .4byte sub_080601D4 - .incbin "forestMinish/gUnk_08109DC8_12.bin" - .4byte sub_080601D4 - .incbin "forestMinish/gUnk_08109DC8_13.bin" - -gUnk_0810A348:: @ 0810A348 - .incbin "forestMinish/gUnk_0810A348.bin" - -gUnk_0810A354:: @ 0810A354 - .incbin "forestMinish/gUnk_0810A354.bin" - -gUnk_0810A35A:: @ 0810A35A - .incbin "forestMinish/gUnk_0810A35A.bin" - -gUnk_0810A362:: @ 0810A362 - .incbin "forestMinish/gUnk_0810A362.bin" diff --git a/data/const/npc/gorman.s b/data/const/npc/gorman.s deleted file mode 100644 index ddd35df3..00000000 --- a/data/const/npc/gorman.s +++ /dev/null @@ -1,40 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08111C3C:: @ 08111C3C - .incbin "gorman/gUnk_08111C3C.bin" - -gUnk_08111C48:: @ 08111C48 - .4byte sub_080697C4 - .4byte sub_080697EC - -gUnk_08111C50:: @ 08111C50 - .incbin "gorman/gUnk_08111C50.bin" - -gUnk_08111C5C:: @ 08111C5C - .incbin "gorman/gUnk_08111C5C.bin" - -gUnk_08111C74:: @ 08111C74 - .incbin "gorman/gUnk_08111C74.bin" - -gUnk_08111C84:: @ 08111C84 - .incbin "gorman/gUnk_08111C84.bin" - -gUnk_08111C8C:: @ 08111C8C - .incbin "gorman/gUnk_08111C8C.bin" - -gUnk_08111C9C:: @ 08111C9C - .incbin "gorman/gUnk_08111C9C.bin" - -gUnk_08111CA8:: @ 08111CA8 - .incbin "gorman/gUnk_08111CA8.bin" - -gUnk_08111CB4:: @ 08111CB4 - .incbin "gorman/gUnk_08111CB4.bin" - -gUnk_08111CB8:: @ 08111CB8 - .incbin "gorman/gUnk_08111CB8.bin" - diff --git a/data/const/npc/guard.s b/data/const/npc/guard.s index 5cefab70..80437a5e 100644 --- a/data/const/npc/guard.s +++ b/data/const/npc/guard.s @@ -4,25 +4,6 @@ .section .rodata .align 2 -gUnk_0810CF4C:: @ 0810CF4C - .incbin "guard/gUnk_0810CF4C.bin" - -gUnk_0810D0A4:: @ 0810D0A4 - .incbin "guard/gUnk_0810D0A4.bin" - -gUnk_0810F524:: @ 0810F524 - .incbin "guard/gUnk_0810F524.bin" - -gUnk_0810F544:: @ 0810F544 - .4byte sub_08063E90 - .4byte sub_08063F20 - .4byte sub_08063F78 - -gUnk_0810F550:: @ 0810F550 - .4byte sub_08063D44 - .4byte sub_08063DC8 - .4byte sub_08063E54 - .4byte sub_08063E6C gUnk_0810F560:: @ 0810F560 .incbin "guard/gUnk_0810F560.bin" diff --git a/data/const/npc/kid.s b/data/const/npc/kid.s deleted file mode 100644 index 40071f15..00000000 --- a/data/const/npc/kid.s +++ /dev/null @@ -1,61 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_0810BD7C:: @ 0810BD7C - .incbin "kid/gUnk_0810BD7C.bin" - -gUnk_0810BD8C:: @ 0810BD8C - .incbin "kid/gUnk_0810BD8C.bin" - -gUnk_0810BD9C:: @ 0810BD9C - .incbin "kid/gUnk_0810BD9C.bin" - -gUnk_0810BDAC:: @ 0810BDAC - .incbin "kid/gUnk_0810BDAC.bin" - -gUnk_0810BDB8:: @ 0810BDB8 - .incbin "kid/gUnk_0810BDB8.bin" - -gUnk_0810BDC4:: @ 0810BDC4 - .4byte gUnk_0810BD7C - .4byte gUnk_0810BD7C - .4byte gUnk_0810BD7C - .4byte gUnk_0810BD7C - .4byte gUnk_0810BD8C - .4byte gUnk_0810BD8C - .4byte gUnk_0810BD9C - .4byte gUnk_0810BDAC - .4byte gUnk_0810BDB8 - -gUnk_0810BDE8:: @ 0810BDE8 - .incbin "kid/gUnk_0810BDE8.bin" - -gUnk_0810BE0C:: @ 0810BE0C - .4byte sub_080620F4 - -gUnk_0810BE10:: @ 0810BE10 - .4byte sub_08062130 - .4byte sub_08062194 - .incbin "kid/gUnk_0810BE10.bin" -.ifdef JP - @ TODO only small differences - .incbin "kid/gUnk_0810BE10_1_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "kid/gUnk_0810BE10_2_DEMO_JP.bin" -.else -.ifdef EU - .incbin "kid/gUnk_0810BE10_3_EU.bin" -.else - .incbin "kid/gUnk_0810BE10_4_USA-DEMO_USA.bin" -.endif -.endif -.endif - -gUnk_0810C0A0:: @ 0810C0A0 - .incbin "kid/gUnk_0810C0A0.bin" - diff --git a/data/const/npc/postman.s b/data/const/npc/postman.s deleted file mode 100644 index 4c069bbe..00000000 --- a/data/const/npc/postman.s +++ /dev/null @@ -1,286 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_0810A66C:: @ 0810A66C - .incbin "postman/gUnk_0810A66C.bin" - -gUnk_0810A768:: @ 0810A768 - .incbin "postman/gUnk_0810A768.bin" - -gUnk_0810A76D:: @ 0810A76D - .incbin "postman/gUnk_0810A76D.bin" - -gUnk_0810A772:: @ 0810A772 - .incbin "postman/gUnk_0810A772.bin" - -gUnk_0810A777:: @ 0810A777 - .incbin "postman/gUnk_0810A777.bin" - -gUnk_0810A77D:: @ 0810A77D - .incbin "postman/gUnk_0810A77D.bin" - -gUnk_0810A783:: @ 0810A783 - .incbin "postman/gUnk_0810A783.bin" - -gUnk_0810A789:: @ 0810A789 - .incbin "postman/gUnk_0810A789.bin" - -gUnk_0810A78E:: @ 0810A78E - .incbin "postman/gUnk_0810A78E.bin" - -gUnk_0810A794:: @ 0810A794 - .incbin "postman/gUnk_0810A794.bin" - -gUnk_0810A79A:: @ 0810A79A - .incbin "postman/gUnk_0810A79A.bin" - -gUnk_0810A7A0:: @ 0810A7A0 - .incbin "postman/gUnk_0810A7A0.bin" - -gUnk_0810A7A6:: @ 0810A7A6 - .incbin "postman/gUnk_0810A7A6.bin" - -gUnk_0810A7AC:: @ 0810A7AC - .incbin "postman/gUnk_0810A7AC.bin" - -gUnk_0810A7B3:: @ 0810A7B3 - .incbin "postman/gUnk_0810A7B3.bin" - -gUnk_0810A7B9:: @ 0810A7B9 - .incbin "postman/gUnk_0810A7B9.bin" - -gUnk_0810A7BF:: @ 0810A7BF - .incbin "postman/gUnk_0810A7BF.bin" - -gUnk_0810A7C5:: @ 0810A7C5 - .incbin "postman/gUnk_0810A7C5.bin" - -gUnk_0810A7CA:: @ 0810A7CA - .incbin "postman/gUnk_0810A7CA.bin" - -gUnk_0810A7D0:: @ 0810A7D0 - .incbin "postman/gUnk_0810A7D0.bin" - -gUnk_0810A7D6:: @ 0810A7D6 - .incbin "postman/gUnk_0810A7D6.bin" - -gUnk_0810A7DB:: @ 0810A7DB - .incbin "postman/gUnk_0810A7DB.bin" - -gUnk_0810A7E0:: @ 0810A7E0 - .incbin "postman/gUnk_0810A7E0.bin" - -gUnk_0810A7E5:: @ 0810A7E5 - .incbin "postman/gUnk_0810A7E5.bin" - -gUnk_0810A7F5:: @ 0810A7F5 - .incbin "postman/gUnk_0810A7F5.bin" - -gUnk_0810A805:: @ 0810A805 - .incbin "postman/gUnk_0810A805.bin" - -gUnk_0810A80D:: @ 0810A80D - .incbin "postman/gUnk_0810A80D.bin" - -gUnk_0810A815:: @ 0810A815 - .incbin "postman/gUnk_0810A815.bin" - -gUnk_0810A81A:: @ 0810A81A - .incbin "postman/gUnk_0810A81A.bin" - -gUnk_0810A81F:: @ 0810A81F - .incbin "postman/gUnk_0810A81F.bin" - -gUnk_0810A825:: @ 0810A825 - .incbin "postman/gUnk_0810A825.bin" - -gUnk_0810A82A:: @ 0810A82A - .incbin "postman/gUnk_0810A82A.bin" - -gUnk_0810A82F:: @ 0810A82F - .incbin "postman/gUnk_0810A82F.bin" - -gUnk_0810A835:: @ 0810A835 - .incbin "postman/gUnk_0810A835.bin" - -gUnk_0810A83B:: @ 0810A83B - .incbin "postman/gUnk_0810A83B.bin" - -gUnk_0810A841:: @ 0810A841 - .incbin "postman/gUnk_0810A841.bin" - -gUnk_0810A848:: @ 0810A848 - .incbin "postman/gUnk_0810A848.bin" - -gUnk_0810A84F:: @ 0810A84F - .incbin "postman/gUnk_0810A84F.bin" - -gUnk_0810A85E:: @ 0810A85E - .incbin "postman/gUnk_0810A85E.bin" - -gUnk_0810A86D:: @ 0810A86D - .incbin "postman/gUnk_0810A86D.bin" - -gUnk_0810A872:: @ 0810A872 - .incbin "postman/gUnk_0810A872.bin" - -gUnk_0810A877:: @ 0810A877 - .incbin "postman/gUnk_0810A877.bin" - -gUnk_0810A87C:: @ 0810A87C - .incbin "postman/gUnk_0810A87C.bin" - -gUnk_0810A881:: @ 0810A881 - .incbin "postman/gUnk_0810A881.bin" - -gUnk_0810A886:: @ 0810A886 - .incbin "postman/gUnk_0810A886.bin" - -gUnk_0810A88B:: @ 0810A88B - .incbin "postman/gUnk_0810A88B.bin" - -gUnk_0810A891:: @ 0810A891 - .incbin "postman/gUnk_0810A891.bin" - -gUnk_0810A897:: @ 0810A897 - .incbin "postman/gUnk_0810A897.bin" - -gUnk_0810A89C:: @ 0810A89C - .incbin "postman/gUnk_0810A89C.bin" - -gUnk_0810A8A2:: @ 0810A8A2 - .incbin "postman/gUnk_0810A8A2.bin" - -gUnk_0810A8A7:: @ 0810A8A7 - .incbin "postman/gUnk_0810A8A7.bin" - -gUnk_0810A8AC:: @ 0810A8AC - .incbin "postman/gUnk_0810A8AC.bin" - -gUnk_0810A8B1:: @ 0810A8B1 - .incbin "postman/gUnk_0810A8B1.bin" - -gUnk_0810A8B6:: @ 0810A8B6 - .incbin "postman/gUnk_0810A8B6.bin" - -gUnk_0810A8BB:: @ 0810A8BB - .incbin "postman/gUnk_0810A8BB.bin" - -gUnk_0810A8C0:: @ 0810A8C0 - .incbin "postman/gUnk_0810A8C0.bin" - -gUnk_0810A8CB:: @ 0810A8CB - .incbin "postman/gUnk_0810A8CB.bin" - -gUnk_0810A8D6:: @ 0810A8D6 - .incbin "postman/gUnk_0810A8D6.bin" - -gUnk_0810A8DB:: @ 0810A8DB - .incbin "postman/gUnk_0810A8DB.bin" - -gUnk_0810A8E0:: @ 0810A8E0 - .incbin "postman/gUnk_0810A8E0.bin" - -gUnk_0810A8E9:: @ 0810A8E9 - .incbin "postman/gUnk_0810A8E9.bin" - -gUnk_0810A8F2:: @ 0810A8F2 - .incbin "postman/gUnk_0810A8F2.bin" - -gUnk_0810A8F9:: @ 0810A8F9 - .incbin "postman/gUnk_0810A8F9.bin" - -gUnk_0810A900:: @ 0810A900 - .incbin "postman/gUnk_0810A900.bin" - -gUnk_0810A905:: @ 0810A905 - .incbin "postman/gUnk_0810A905.bin" - -gUnk_0810A90B:: @ 0810A90B - .incbin "postman/gUnk_0810A90B.bin" - -gUnk_0810A911:: @ 0810A911 - .incbin "postman/gUnk_0810A911.bin" - -gUnk_0810A918:: @ 0810A918 - .4byte gUnk_0810A768 - .4byte gUnk_0810A768 - .4byte gUnk_0810A76D - .4byte gUnk_0810A772 - .4byte gUnk_0810A777 - .4byte gUnk_0810A77D - .4byte gUnk_0810A783 - .4byte gUnk_0810A789 - .4byte gUnk_0810A78E - .4byte gUnk_0810A794 - .4byte gUnk_0810A79A - .4byte gUnk_0810A7A0 - .4byte gUnk_0810A7A6 - .4byte gUnk_0810A7AC - .4byte gUnk_0810A7B3 - .4byte gUnk_0810A7B9 - .4byte gUnk_0810A7BF - .4byte gUnk_0810A7C5 - .4byte gUnk_0810A7CA - .4byte gUnk_0810A7D0 - .4byte gUnk_0810A7D6 - .4byte gUnk_0810A7DB - .4byte gUnk_0810A7E0 - .4byte gUnk_0810A7E5 - .4byte gUnk_0810A7F5 - .4byte gUnk_0810A805 - .4byte gUnk_0810A80D - .4byte gUnk_0810A815 - .4byte gUnk_0810A81A - .4byte gUnk_0810A81F - .4byte gUnk_0810A825 - .4byte gUnk_0810A82A - .4byte gUnk_0810A82F - .4byte gUnk_0810A835 - .4byte gUnk_0810A83B - .4byte gUnk_0810A841 - .4byte gUnk_0810A848 - .4byte gUnk_0810A84F - .4byte gUnk_0810A85E - .4byte gUnk_0810A86D - .4byte gUnk_0810A872 - .4byte gUnk_0810A877 - .4byte gUnk_0810A87C - .4byte gUnk_0810A881 - .4byte gUnk_0810A886 - .4byte gUnk_0810A88B - .4byte gUnk_0810A891 - .4byte gUnk_0810A897 - .4byte gUnk_0810A89C - .4byte gUnk_0810A8A2 - .4byte gUnk_0810A8A7 - .4byte gUnk_0810A8AC - .4byte gUnk_0810A8B1 - .4byte gUnk_0810A8B6 - .4byte gUnk_0810A8BB - .4byte gUnk_0810A8C0 - .4byte gUnk_0810A8CB - .4byte gUnk_0810A8D6 - .4byte gUnk_0810A8DB - .4byte gUnk_0810A8E0 - .4byte gUnk_0810A8E9 - .4byte gUnk_0810A8F2 - .4byte gUnk_0810A8F9 - .4byte gUnk_0810A900 - .4byte gUnk_0810A905 - .4byte gUnk_0810A90B - .4byte gUnk_0810A911 - -gUnk_0810AA24:: @ 0810AA24 - .4byte sub_08060428 - .4byte sub_0806045C - .4byte sub_080604C8 - -gUnk_0810AA30:: @ 0810AA30 - .incbin "postman/gUnk_0810AA30.bin" - -gUnk_0810AA70:: @ 0810AA70 - .incbin "postman/gUnk_0810AA70.bin" diff --git a/data/const/npc/sittingPerson.s b/data/const/npc/sittingPerson.s deleted file mode 100644 index 38ddfe1f..00000000 --- a/data/const/npc/sittingPerson.s +++ /dev/null @@ -1,60 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_0810CB78:: @ 0810CB78 - .incbin "sittingPerson/gUnk_0810CB78.bin" - -gUnk_0810CBC0:: @ 0810CBC0 - .incbin "sittingPerson/gUnk_0810CBC0.bin" - -SittingPersion_Actions:: @ 0810CBD8 - .4byte SittingPersion_Init - .4byte sub_080637B8 - .4byte sub_08063830 - -gUnk_0810CBE4:: @ 0810CBE4 - .incbin "sittingPerson/gUnk_0810CBE4.bin" - -gUnk_0810CC04:: @ 0810CC04 - .incbin "sittingPerson/gUnk_0810CC04.bin" - -gUnk_0810CC08:: @ 0810CC08 - .incbin "sittingPerson/gUnk_0810CC08.bin" - .4byte sub_0806387C - .incbin "sittingPerson/gUnk_0810CC08_1.bin" - .4byte sub_0806387C - .incbin "sittingPerson/gUnk_0810CC08_2.bin" - .4byte sub_0806387C - .incbin "sittingPerson/gUnk_0810CC08_3.bin" - .4byte sub_0806387C - .incbin "sittingPerson/gUnk_0810CC08_4.bin" - .4byte sub_0806387C - .incbin "sittingPerson/gUnk_0810CC08_5.bin" - .4byte sub_0806387C - .incbin "sittingPerson/gUnk_0810CC08_6.bin" - .4byte sub_0806387C - .incbin "sittingPerson/gUnk_0810CC08_7.bin" - .4byte sub_0806387C - .incbin "sittingPerson/gUnk_0810CC08_8.bin" - .4byte sub_0806390C - .incbin "sittingPerson/gUnk_0810CC08_9.bin" - .4byte sub_0806390C - .incbin "sittingPerson/gUnk_0810CC08_10.bin" - .4byte sub_0806390C - .incbin "sittingPerson/gUnk_0810CC08_11.bin" - .4byte sub_0806390C - .incbin "sittingPerson/gUnk_0810CC08_12.bin" - .4byte sub_0806390C - .incbin "sittingPerson/gUnk_0810CC08_13.bin" - .4byte sub_0806390C - .incbin "sittingPerson/gUnk_0810CC08_14.bin" - .4byte sub_0806390C - .incbin "sittingPerson/gUnk_0810CC08_15.bin" - .4byte sub_0806390C - .incbin "sittingPerson/gUnk_0810CC08_16.bin" - -gUnk_0810CD88:: @ 0810CD88 - .incbin "sittingPerson/gUnk_0810CD88.bin" diff --git a/data/const/npc/sturgeon.s b/data/const/npc/sturgeon.s index 7da0e49d..669693b4 100644 --- a/data/const/npc/sturgeon.s +++ b/data/const/npc/sturgeon.s @@ -4,29 +4,17 @@ .section .rodata .align 2 -gUnk_0810FA38:: @ 0810FA38 - .incbin "sturgeon/gUnk_0810FA38.bin" +@ gUnk_0810FA38:: @ 0810FA38 +@ .incbin "sturgeon/gUnk_0810FA38.bin" -gUnk_0810FA44:: @ 0810FA44 - .4byte sub_08064B44 - .4byte sub_08064B88 - .4byte sub_08064C2C - .4byte sub_08064C50 +@ gUnk_0810FA44:: @ 0810FA44 +@ .4byte sub_08064B44 +@ .4byte sub_08064B88 +@ .4byte sub_08064C2C +@ .4byte sub_08064C50 gUnk_0810FA54:: @ 0810FA54 .incbin "sturgeon/gUnk_0810FA54.bin" gUnk_0810FA5A:: @ 0810FA5A .incbin "sturgeon/gUnk_0810FA5A.bin" - -gSpriteAnimations_Sturgeon_4:: @ 0810FB24 - .include "animations/gSpriteAnimations_Sturgeon_4.s" - -gSpriteAnimations_Sturgeon_5:: @ 0810FB39 - .include "animations/gSpriteAnimations_Sturgeon_5.s" - -gSpriteAnimations_Sturgeon_6:: @ 0810FB4E - .include "animations/gSpriteAnimations_Sturgeon_6.s" - -gSpriteAnimations_Sturgeon_7:: @ 0810FB63 - .include "animations/gSpriteAnimations_Sturgeon_7.s" diff --git a/data/const/npcUtils.s b/data/const/npcUtils.s deleted file mode 100644 index d532a0fe..00000000 --- a/data/const/npcUtils.s +++ /dev/null @@ -1,14 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -@ script.c, librarians.c, cutsceneMiscObject.c -gUnk_08114F30:: @ 08114F30 - .incbin "data_081146D0/gUnk_08114F30.bin" - -@ script.c, cutsceneMiscObject.c -gUnk_08114F34:: @ 08114F34 - .incbin "data_081146D0/gUnk_08114F34.bin" - diff --git a/data/const/playerItem/playerItemBow.s b/data/const/playerItem/playerItemBow.s deleted file mode 100644 index 6c7e9b98..00000000 --- a/data/const/playerItem/playerItemBow.s +++ /dev/null @@ -1,9 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -@ Probably belongs to collision.c, but needs to be placed at the end of playerItemBow.c or start of playerItemSwordBeam.c -gUnk_080B3E80:: @ 080B3E80 - .incbin "data_080B3E70/gUnk_080B3E80.bin" diff --git a/data/const/playerItem/playerItemCellOverwriteSet.s b/data/const/playerItem/playerItemCellOverwriteSet.s index ff2bddd6..97280cad 100644 --- a/data/const/playerItem/playerItemCellOverwriteSet.s +++ b/data/const/playerItem/playerItemCellOverwriteSet.s @@ -2,7 +2,7 @@ .include "constants/constants.inc" .section .rodata - .align 2 + @.align 2 @ before: playerItemBottle @ after: playerItemCellOverwriteSet diff --git a/data/const/playerItem/playerItemShield.s b/data/const/playerItem/playerItemShield.s deleted file mode 100644 index f782d79a..00000000 --- a/data/const/playerItem/playerItemShield.s +++ /dev/null @@ -1,34 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - - -gUnk_081271D4:: @ 081271D4 - .4byte sub_080A2D98 - .4byte sub_080A2E00 - -gUnk_081271DC:: @ 081271DC - .incbin "playerItemShield/gUnk_081271DC.bin" - -gUnk_08127220:: @ 08127220 - .incbin "playerItemShield/gUnk_08127220.bin" - -gUnk_08127240:: @ 08127240 - .4byte gUnk_08127250 - .4byte gUnk_08127258 - .4byte gUnk_08127260 - .4byte gUnk_08127268 - -gUnk_08127250:: @ 08127250 - .incbin "playerItemShield/gUnk_08127250.bin" - -gUnk_08127258:: @ 08127258 - .incbin "playerItemShield/gUnk_08127258.bin" - -gUnk_08127260:: @ 08127260 - .incbin "playerItemShield/gUnk_08127260.bin" - -gUnk_08127268:: @ 08127268 - .incbin "playerItemShield/gUnk_08127268.bin" diff --git a/data/const/playerUtils.s b/data/const/playerUtils.s deleted file mode 100644 index ae459b34..00000000 --- a/data/const/playerUtils.s +++ /dev/null @@ -1,198 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -@ playerUtils.c -gCreateItemsFuncs:: @ 0811BFC8 - .4byte CreateItemNone - .4byte CreateItem1 - .4byte CreateItem2 - .4byte CreateItem3 - .4byte CreateItem4 - .4byte CreateItem5 - -gUnk_0811BFE0:: @ 0811BFE0 - .incbin "data_0811BE38/gUnk_0811BFE0.bin" - -gPlayerChargeActions:: @ 0811BFE8 - .4byte sub_08078008 - .4byte sub_08078124 - .4byte sub_08078140 - .4byte sub_08078070 - .4byte sub_080780E0 - .4byte sub_08078108 - -gUnk_0811C000:: @ 0811C000 - .incbin "data_0811BE38/gUnk_0811C000.bin" - -gUnk_0811C00C:: @ 0811C00C - .incbin "data_0811BE38/gUnk_0811C00C.bin" - -gUnk_0811C014:: @ 0811C014 - .incbin "data_0811BE38/gUnk_0811C014.bin" - -gUnk_0811C01C:: @ 0811C01C - .incbin "data_0811BE38/gUnk_0811C01C.bin" - -gUnk_0811C070:: @ 0811C070 - .incbin "data_0811BE38/gUnk_0811C070.bin" - -gUnk_0811C090:: @ 0811C090 - .incbin "data_0811BE38/gUnk_0811C090.bin" - -gUnk_0811C0B0:: @ 0811C0B0 - .4byte gUnk_0811C070 - .4byte gUnk_0811C090 - -gUnk_0811C0B8:: @ 0811C0B8 - .incbin "data_0811BE38/gUnk_0811C0B8.bin" - -gUnk_0811C0C8:: @ 0811C0C8 - .incbin "data_0811BE38/gUnk_0811C0C8.bin" - -gUnk_0811C0D8:: @ 0811C0D8 - .incbin "data_0811BE38/gUnk_0811C0D8.bin" - -gUnk_0811C0E8:: @ 0811C0E8 - .4byte gUnk_0811C0B8 - .4byte gUnk_0811C0D8 - .4byte gUnk_0811C0B8 - .4byte gUnk_0811C0C8 - -gUnk_0811C0F8:: @ 0811C0F8 - .incbin "data_0811BE38/gUnk_0811C0F8.bin" - -gUnk_0811C100:: @ 0811C100 - .incbin "data_0811BE38/gUnk_0811C100.bin" - -gUnk_0811C108:: @ 0811C108 - .incbin "data_0811BE38/gUnk_0811C108.bin" - -gUnk_0811C110:: @ 0811C110 - .incbin "data_0811BE38/gUnk_0811C110.bin" - -gUnk_0811C118:: @ 0811C118 - .incbin "data_0811BE38/gUnk_0811C118.bin" - -gUnk_0811C120:: @ 0811C120 - .4byte SurfaceAction_DoNothing - .4byte SurfaceAction_Pit - .4byte 00000000 - .4byte 00000000 - .4byte SurfaceAction_SlopeGndGndVertical - .4byte SurfaceAction_SlopeGndGndHorizontal - .4byte SurfaceAction_6 - .4byte SurfaceAction_7 - .4byte SurfaceAction_MinishDoorFront - .4byte SurfaceAction_MinishDoorBack - .4byte SurfaceAction_A - .4byte SurfaceAction_B - .4byte SurfaceAction_SlopeGndWater - .4byte SurfaceAction_ConveyerNorth - .4byte SurfaceAction_ConveyerSouth - .4byte SurfaceAction_ConveyerWest - .4byte SurfaceAction_ConveyerEast - .4byte SurfaceAction_Swamp - .4byte SurfaceAction_DoNothing - .4byte SurfaceAction_DoNothing - .4byte SurfaceAction_14 - .4byte SurfaceAction_CloneTile - .4byte SurfaceAction_16 - .4byte SurfaceAction_Ice - .4byte SurfaceAction_ShallowWater - .4byte SurfaceAction_Water - .4byte SurfaceAction_Button - .4byte SurfaceAction_1B - .4byte SurfaceAction_1C - .4byte 00000000 - .4byte SurfaceAction_Ladder - .4byte 00000000 - .4byte SurfaceAction_20 - .4byte SurfaceAction_16 - .4byte SurfaceAction_22 - .4byte SurfaceAction_6 - .4byte SurfaceAction_6 - .4byte SurfaceAction_Dust - .4byte SurfaceAction_26 - .4byte SurfaceAction_Hole - .4byte SurfaceAction_SlopeGndGndVertical - .4byte SurfaceAction_SlopeGndGndHorizontal - .4byte SurfaceAction_AutoLadder - .4byte SurfaceAction_ClimbWall - .4byte SurfaceAction_2C - .4byte SurfaceAction_Dust - -gUnk_0811C1D8:: @ 0811C1D8 - .4byte gUnk_0811C240 - .4byte gUnk_0811C24A - .4byte gUnk_0811C254 - .4byte gUnk_0811C25E - -gUnk_0811C1E8:: @ 0811C1E8 - .4byte gUnk_0811C1F8 - .4byte gUnk_0811C20A - .4byte gUnk_0811C21C - .4byte gUnk_0811C22E - -gUnk_0811C1F8:: @ 0811C1F8 - .incbin "data_0811BE38/gUnk_0811C1F8.bin" - -gUnk_0811C20A:: @ 0811C20A - .incbin "data_0811BE38/gUnk_0811C20A.bin" - -gUnk_0811C21C:: @ 0811C21C - .incbin "data_0811BE38/gUnk_0811C21C.bin" - -gUnk_0811C22E:: @ 0811C22E - .incbin "data_0811BE38/gUnk_0811C22E.bin" - -gUnk_0811C240:: @ 0811C240 - .incbin "data_0811BE38/gUnk_0811C240.bin" - -gUnk_0811C24A:: @ 0811C24A - .incbin "data_0811BE38/gUnk_0811C24A.bin" - -gUnk_0811C254:: @ 0811C254 - .incbin "data_0811BE38/gUnk_0811C254.bin" - -gUnk_0811C25E:: @ 0811C25E - .incbin "data_0811BE38/gUnk_0811C25E.bin" - -gUnk_0811C268:: @ 0811C268 - .incbin "data_0811BE38/gUnk_0811C268.bin" - -gUnk_0811C27C:: @ 0811C27C - .4byte sub_0807B114 - .4byte sub_0807B128 - -gUnk_0811C284:: @ 0811C284 - .4byte sub_0807B1A8 - .4byte sub_0807B144 - .4byte nullsub_506 - .4byte sub_0807B178 - .4byte sub_0807B2F8 - -gUnk_0811C298:: @ 0811C298 - .4byte sub_0807B1DC - .4byte sub_0807B1EC - .4byte sub_0807B21C - .4byte sub_0807B264 - .4byte sub_0807B2B8 - -gUnk_0811C2AC:: @ 0811C2AC - .incbin "data_0811BE38/gUnk_0811C2AC.bin" - -gUnk_0811C2CC:: @ 0811C2CC - .incbin "data_0811BE38/gUnk_0811C2CC.bin" - -gUnk_0811C2EC:: @ 0811C2EC - .incbin "data_0811BE38/gUnk_0811C2EC.bin" - -gUnk_0811C456:: @ 0811C456 - .incbin "data_0811BE38/gUnk_0811C456.bin" - -@ playerUtils.c -gUnk_0811C466:: @ 0811C466 - .incbin "data_0811BE38/gUnk_0811C466.bin" diff --git a/data/const/sub_08055E08.s b/data/const/sub_08055E08.s deleted file mode 100644 index 886a191c..00000000 --- a/data/const/sub_08055E08.s +++ /dev/null @@ -1,16 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -@ sub_08055E08.c -gUnk_080FF400:: @ 080FF400 - .incbin "data_080FEEB8/gUnk_080FF400.bin" - .4byte script_StampKinstone - .incbin "data_080FEEB8/gUnk_080FF400_1.bin" - -@ sub_08055E08.c -gUnk_080FF420:: @ 080FF420 - .4byte sub_08055E24 - .4byte nullsub_493 diff --git a/data/const/subtask.s b/data/const/subtask.s index e1c00700..a5234fc3 100644 --- a/data/const/subtask.s +++ b/data/const/subtask.s @@ -4,270 +4,148 @@ .section .rodata .align 2 -@ subtask.c -gUnk_080FEEB8:: @ 080FEEB8 - .4byte sub_08054C20 - .4byte sub_08054C58 - .4byte sub_08054C88 - .4byte sub_08054CC0 +@ subtask2.c +gUnk_08128C00:: @ 08128C00 + .incbin "data_08127280/gUnk_08128C00.bin" -gUnk_080FEEC8:: @ 080FEEC8 - .4byte sub_08054D04 - .4byte sub_08054D3C - .4byte sub_08054D74 +gUnk_08128C04:: @ 08128C04 + .incbin "data_08127280/gUnk_08128C04.bin" -gUnk_080FEED4:: @ 080FEED4 - .incbin "data_080FEEB8/gUnk_080FEED4.bin" - .4byte script_BigGoronKinstone1 - .incbin "data_080FEEB8/gUnk_080FEED4_1.bin" - .4byte script_BigGoronKinstone2 - .incbin "data_080FEEB8/gUnk_080FEED4_2.bin" - .4byte script_BigGoronKinstone3 - .incbin "data_080FEEB8/gUnk_080FEED4_3.bin" +gUnk_08128C14:: @ 08128C14 + .incbin "data_08127280/gUnk_08128C14.bin" -gUnk_080FEF34:: @ 080FEF34 - .4byte sub_08054DAC - .4byte nullsub_484 +gUnk_08128C94:: @ 08128C94 + .incbin "data_08127280/gUnk_08128C94.bin" -gUnk_080FEF3C:: @ 080FEF3C - .4byte sub_08054E1C - .4byte sub_08054E5C - .4byte sub_08054E9C +gUnk_08128D14:: @ 08128D14 + .4byte sub_080A59AC + .4byte sub_080A59C8 + .4byte sub_080A5A54 + .4byte sub_080A5A90 -gUnk_080FEF48:: @ 080FEF48 - .incbin "data_080FEEB8/gUnk_080FEF48.bin" - .4byte script_GoronKinstone -.ifdef JP - .incbin "data_080FEEB8/gUnk_080FEF48_1_JP.bin" -.else -.ifdef DEMO_JP - .incbin "data_080FEEB8/gUnk_080FEF48_2_DEMO_JP.bin" -.else -.ifdef EU - .incbin "data_080FEEB8/gUnk_080FEF48_3_EU.bin" -.else - .incbin "data_080FEEB8/gUnk_080FEF48_4_USA-DEMO_USA.bin" -.endif -.endif -.endif +gUnk_08128D24:: @ 08128D24 + .4byte sub_080A5AF4 + .4byte sub_080A5B34 + .4byte sub_080A5BB8 -gUnk_080FEF78:: @ 080FEF78 - .incbin "data_080FEEB8/gUnk_080FEF78.bin" - .4byte script_Goron1Kinstone2 - .incbin "data_080FEEB8/gUnk_080FEF78_1.bin" - .4byte script_Goron2Kinstone2 - .incbin "data_080FEEB8/gUnk_080FEF78_2.bin" +gUnk_08128D30:: @ 08128D30 + .4byte sub_080A5C44 + .4byte sub_080A5C9C -gUnk_080FEFA8:: @ 080FEFA8 - .incbin "data_080FEEB8/gUnk_080FEFA8.bin" - .4byte script_Goron1Kinstone3 - .incbin "data_080FEEB8/gUnk_080FEFA8_1.bin" - .4byte script_Goron2Kinstone3 - .incbin "data_080FEEB8/gUnk_080FEFA8_2.bin" - .4byte script_Goron3Kinstone3 - .incbin "data_080FEEB8/gUnk_080FEFA8_3.bin" +gUnk_08128D38:: @ 08128D38 + .incbin "data_08127280/gUnk_08128D38.bin" -gUnk_080FEFE8:: @ 080FEFE8 - .incbin "data_080FEEB8/gUnk_080FEFE8.bin" - .4byte script_Goron1Kinstone4 - .incbin "data_080FEEB8/gUnk_080FEFE8_1.bin" - .4byte script_Goron2Kinstone4 - .incbin "data_080FEEB8/gUnk_080FEFE8_2.bin" - .4byte script_Goron2Kinstone4 - .incbin "data_080FEEB8/gUnk_080FEFE8_3.bin" - .4byte script_Goron4Kinstone4 - .incbin "data_080FEEB8/gUnk_080FEFE8_4.bin" +gUnk_08128D3C:: @ 08128D3C + .incbin "data_08127280/gUnk_08128D3C.bin" -gUnk_080FF038:: @ 080FF038 - .incbin "data_080FEEB8/gUnk_080FF038.bin" - .4byte script_Goron1Kinstone5 - .incbin "data_080FEEB8/gUnk_080FF038_1.bin" - .4byte script_Goron2Kinstone5 - .incbin "data_080FEEB8/gUnk_080FF038_2.bin" - .4byte script_Goron2Kinstone5 - .incbin "data_080FEEB8/gUnk_080FF038_3.bin" - .4byte script_Goron2Kinstone5 - .incbin "data_080FEEB8/gUnk_080FF038_4.bin" - .4byte script_Goron5Kinstone5 - .incbin "data_080FEEB8/gUnk_080FF038_5.bin" +gUnk_08128D43:: @ 08128D43 + .incbin "data_08127280/gUnk_08128D43.bin" -gUnk_080FF098:: @ 080FF098 - .incbin "data_080FEEB8/gUnk_080FF098.bin" - .4byte script_Goron1Kinstone6 - .incbin "data_080FEEB8/gUnk_080FF098_1.bin" - .4byte script_Goron2Kinstone6 - .incbin "data_080FEEB8/gUnk_080FF098_2.bin" - .4byte script_Goron2Kinstone6 - .incbin "data_080FEEB8/gUnk_080FF098_3.bin" - .4byte script_Goron2Kinstone6 - .incbin "data_080FEEB8/gUnk_080FF098_4.bin" - .4byte script_Goron2Kinstone6 - .incbin "data_080FEEB8/gUnk_080FF098_5.bin" - .4byte script_Goron6Kindstone6 - .incbin "data_080FEEB8/gUnk_080FF098_6.bin" +gUnk_08128D51:: @ 08128D51 + .incbin "data_08127280/gUnk_08128D51.bin" -gUnk_080FF108:: @ 080FF108 - .4byte gUnk_080FEF48 - .4byte gUnk_080FEF78 - .4byte gUnk_080FEFA8 - .4byte gUnk_080FEFE8 - .4byte gUnk_080FF038 - .4byte gUnk_080FF098 +gUnk_08128D58:: @ 08128D58 + .4byte sub_080A6024 + .4byte sub_080A6044 -gUnk_080FF120:: @ 080FF120 - .4byte sub_08054FAC - .4byte sub_08055014 +gUnk_08128D60:: @ 08128D60 + .incbin "data_08127280/gUnk_08128D60.bin" -gUnk_080FF128:: @ 080FF128 - .incbin "data_080FEEB8/gUnk_080FF128.bin" - .4byte script_GoronMerchantArriving - .incbin "data_080FEEB8/gUnk_080FF128_1.bin" +gUnk_08128D70:: @ 08128D70 + .incbin "data_08127280/gUnk_08128D70.bin" -gUnk_080FF148:: @ 080FF148 - .4byte sub_08055054 - .4byte sub_0805508C - .4byte sub_08055090 +gUnk_08128DB0:: @ 08128DB0 + .4byte sub_080A6108 + .4byte sub_080A612C -gUnk_080FF154:: @ 080FF154 - .incbin "data_080FEEB8/gUnk_080FF154.bin" - .4byte script_MutohKinstone - .incbin "data_080FEEB8/gUnk_080FF154_1.bin" +gUnk_08128DB8:: @ 08128DB8 + .incbin "data_08127280/gUnk_08128DB8.bin" -gUnk_080FF174:: @ 080FF174 - .4byte sub_080550B0 - .4byte nullsub_487 +gUnk_08128DBC:: @ 08128DBC + .incbin "data_08127280/gUnk_08128DBC.bin" -gUnk_080FF17C:: @ 080FF17C - .incbin "data_080FEEB8/gUnk_080FF17C.bin" - .4byte script_GhostBrotherKinstone - .incbin "data_080FEEB8/gUnk_080FF17C_1.bin" +gUnk_08128DCC:: @ 08128DCC + .4byte sub_080A6290 + .4byte sub_080A62E0 -gUnk_080FF1CC:: @ 080FF1CC - .4byte sub_08055114 - .4byte nullsub_488 +gUnk_08128DD4:: @ 08128DD4 + .incbin "data_08127280/gUnk_08128DD4.bin" -gUnk_080FF1D4:: @ 080FF1D4 - .incbin "data_080FEEB8/gUnk_080FF1D4.bin" +gUnk_08128DD8:: @ 08128DD8 + .incbin "data_08127280/gUnk_08128DD8.bin" -gUnk_080FF1F4:: @ 080FF1F4 - .4byte sub_08055184 - .4byte sub_08055224 - .4byte sub_0805524C - .4byte sub_080552E0 +gUnk_08128DE8:: @ 08128DE8 + .incbin "data_08127280/gUnk_08128DE8.bin" -gUnk_080FF204:: @ 080FF204 - .incbin "data_080FEEB8/gUnk_080FF204.bin" +Subtask_MapHint_Functions:: @ 08128E70 + .4byte Subtask_MapHint_0 + .4byte Subtask_MapHint_1 -gUnk_080FF228:: @ 080FF228 - .4byte sub_08055318 - .4byte sub_08055350 - .4byte sub_08055380 - .4byte sub_080553B8 +gUnk_08128E78:: @ 08128E78 + .4byte sub_080A6650 + .4byte sub_080A667C -gUnk_080FF238:: @ 080FF238 - .4byte sub_08055430 - .4byte sub_08055468 - .4byte sub_08055498 - .4byte sub_080554D4 +gUnk_08128E80:: @ 08128E80 + .incbin "data_08127280/gUnk_08128E80.bin" -gUnk_080FF248:: @ 080FF248 - .4byte sub_08055518 - .4byte sub_08055548 - .4byte sub_08055580 +gUnk_08128E84:: @ 08128E84 + .incbin "data_08127280/gUnk_08128E84.bin" -gUnk_080FF254:: @ 080FF254 - .4byte sub_080555B8 - .4byte sub_0805560C - .4byte sub_08055634 - .4byte sub_08055674 +gUnk_08128E94:: @ 08128E94 + .incbin "data_08127280/gUnk_08128E94.bin" -gUnk_080FF264:: @ 080FF264 - .incbin "data_080FEEB8/gUnk_080FF264.bin" - .4byte script_CarlovKinstone - .incbin "data_080FEEB8/gUnk_080FF264_1.bin" +gUnk_08128F1C:: @ 08128F1C + .4byte sub_080A6B04 + .4byte sub_080A6C1C -gUnk_080FF284:: @ 080FF284 - .4byte sub_080556AC - .4byte nullsub_489 +Subtask_FastTravel_Functions:: @ 08128F24 + .4byte Subtask_FastTravel_0 + .4byte Subtask_FastTravel_1 + .4byte Subtask_FastTravel_2 + .4byte Subtask_FastTravel_3 + .4byte Subtask_FastTravel_4 -gUnk_080FF28C:: @ 080FF28C - .4byte sub_08055710 - .4byte sub_0805576C - .4byte sub_08055798 +gUnk_08128F38:: @ 08128F38 + .incbin "data_08127280/gUnk_08128F38.bin" -gUnk_080FF298:: @ 080FF298 - .incbin "data_080FEEB8/gUnk_080FF298.bin" +gUnk_08128F4C:: @ 08128F4C + .incbin "data_08127280/gUnk_08128F4C.bin" -gUnk_080FF2B8:: @ 080FF2B8 - .4byte sub_080557D0 - .4byte nullsub_490 +gUnk_08128F58:: @ 08128F58 + .incbin "data_08127280/gUnk_08128F58.bin" -gUnk_080FF2C0:: @ 080FF2C0 - .incbin "data_080FEEB8/gUnk_080FF2C0.bin" - .4byte script_GormanFirstAppearance - .incbin "data_080FEEB8/gUnk_080FF2C0_1.bin" +gUnk_08128FA8:: @ 08128FA8 + .incbin "data_08127280/gUnk_08128FA8.bin" -gUnk_080FF300:: @ 080FF300 - .4byte sub_08055834 - .4byte nullsub_491 +gUnk_08128FC0:: @ 08128FC0 + .incbin "data_08127280/gUnk_08128FC0.bin" -gUnk_080FF308:: @ 080FF308 - .incbin "data_080FEEB8/gUnk_080FF308.bin" - .4byte script_SyrupKinstone - .incbin "data_080FEEB8/gUnk_080FF308_1.bin" +gUnk_08128FD8:: @ 08128FD8 + .incbin "data_08127280/gUnk_08128FD8.bin" -gUnk_080FF328:: @ 080FF328 - .4byte sub_080558A4 - .4byte nullsub_492 +gUnk_08128FF0:: @ 08128FF0 + .incbin "data_08127280/gUnk_08128FF0.bin" -gUnk_080FF330:: @ 080FF330 - .4byte sub_08055908 - .4byte sub_08055948 - .4byte sub_08055978 +gUnk_08129004:: @ 08129004 + .incbin "data_08127280/gUnk_08129004.bin" -gUnk_080FF33C:: @ 080FF33C - .incbin "data_080FEEB8/gUnk_080FF33C.bin" +gUnk_0812901C:: @ 0812901C + .4byte Subtask_FadeIn + .4byte Subtask_Init + .4byte Subtask_Update + .4byte Subtask_FadeOut + .4byte Subtask_Die -gUnk_080FF35C:: @ 080FF35C - .4byte sub_080559FC - .4byte sub_08055A3C - .4byte sub_08055A6C - .4byte sub_08055AA8 - -gUnk_080FF36C:: @ 080FF36C - .4byte sub_08055AEC - .4byte sub_08055B38 - .4byte sub_08055B54 - -gUnk_080FF378:: @ 080FF378 - .incbin "data_080FEEB8/gUnk_080FF378.bin" - .4byte script_KinstoneSparkKinstoneSpark - .incbin "data_080FEEB8/gUnk_080FF378_1.bin" - .4byte script_KinstoneSparkKinstoneSparkFromBottom - .incbin "data_080FEEB8/gUnk_080FF378_2.bin" - .4byte script_KinstoneSparkKinstoneSparkGoronMerchang - .incbin "data_080FEEB8/gUnk_080FF378_3.bin" - .4byte script_KinstoneSparkKinstoneSparkGoron - .incbin "data_080FEEB8/gUnk_080FF378_4.bin" - -gUnk_080FF3C8:: @ 080FF3C8 - .4byte sub_08055BCC - .4byte sub_08055C04 - .4byte sub_08055C34 - .4byte sub_08055CB0 - .4byte 0x000000ff - .4byte 00000000 - .4byte 00000000 - .4byte 00000000 - -@ subtask.c -gUnk_080FF3E8:: @ 080FF3E8 - .4byte sub_08055CF4 - .4byte sub_08055D2C - .4byte sub_08055D64 - -@ subtask.c -gUnk_080FF3F4:: @ 080FF3F4 - .4byte sub_08055D9C - .4byte sub_08055DC0 - .4byte sub_08055DEC +@ subtask2.c +gSubtasks:: @ 08129030 + .4byte Subtask_Exit + .4byte Subtask_PauseMenu + .4byte Subtask_Exit + .4byte Subtask_MapHint + .4byte Subtask_KinstoneMenu + .4byte Subtask_AuxCutscene + .4byte Subtask_PortalCutscene + .4byte Subtask_FigurineMenu + .4byte Subtask_WorldEvent + .4byte Subtask_FastTravel + .4byte Subtask_LocalMapHint diff --git a/data/const/subtask2.s b/data/const/subtask2.s deleted file mode 100644 index 537031fd..00000000 --- a/data/const/subtask2.s +++ /dev/null @@ -1,151 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -@ subtask2.c -gUnk_08128C00:: @ 08128C00 - .incbin "data_08127280/gUnk_08128C00.bin" - -gUnk_08128C04:: @ 08128C04 - .incbin "data_08127280/gUnk_08128C04.bin" - -gUnk_08128C14:: @ 08128C14 - .incbin "data_08127280/gUnk_08128C14.bin" - -gUnk_08128C94:: @ 08128C94 - .incbin "data_08127280/gUnk_08128C94.bin" - -gUnk_08128D14:: @ 08128D14 - .4byte sub_080A59AC - .4byte sub_080A59C8 - .4byte sub_080A5A54 - .4byte sub_080A5A90 - -gUnk_08128D24:: @ 08128D24 - .4byte sub_080A5AF4 - .4byte sub_080A5B34 - .4byte sub_080A5BB8 - -gUnk_08128D30:: @ 08128D30 - .4byte sub_080A5C44 - .4byte sub_080A5C9C - -gUnk_08128D38:: @ 08128D38 - .incbin "data_08127280/gUnk_08128D38.bin" - -gUnk_08128D3C:: @ 08128D3C - .incbin "data_08127280/gUnk_08128D3C.bin" - -gUnk_08128D43:: @ 08128D43 - .incbin "data_08127280/gUnk_08128D43.bin" - -gUnk_08128D51:: @ 08128D51 - .incbin "data_08127280/gUnk_08128D51.bin" - -gUnk_08128D58:: @ 08128D58 - .4byte sub_080A6024 - .4byte sub_080A6044 - -gUnk_08128D60:: @ 08128D60 - .incbin "data_08127280/gUnk_08128D60.bin" - -gUnk_08128D70:: @ 08128D70 - .incbin "data_08127280/gUnk_08128D70.bin" - -gUnk_08128DB0:: @ 08128DB0 - .4byte sub_080A6108 - .4byte sub_080A612C - -gUnk_08128DB8:: @ 08128DB8 - .incbin "data_08127280/gUnk_08128DB8.bin" - -gUnk_08128DBC:: @ 08128DBC - .incbin "data_08127280/gUnk_08128DBC.bin" - -gUnk_08128DCC:: @ 08128DCC - .4byte sub_080A6290 - .4byte sub_080A62E0 - -gUnk_08128DD4:: @ 08128DD4 - .incbin "data_08127280/gUnk_08128DD4.bin" - -gUnk_08128DD8:: @ 08128DD8 - .incbin "data_08127280/gUnk_08128DD8.bin" - -gUnk_08128DE8:: @ 08128DE8 - .incbin "data_08127280/gUnk_08128DE8.bin" - -gUnk_08128E70:: @ 08128E70 - .4byte sub_080A6534 - .4byte sub_080A65AC - -gUnk_08128E78:: @ 08128E78 - .4byte sub_080A6650 - .4byte sub_080A667C - -gUnk_08128E80:: @ 08128E80 - .incbin "data_08127280/gUnk_08128E80.bin" - -gUnk_08128E84:: @ 08128E84 - .incbin "data_08127280/gUnk_08128E84.bin" - -gUnk_08128E94:: @ 08128E94 - .incbin "data_08127280/gUnk_08128E94.bin" - -gUnk_08128F1C:: @ 08128F1C - .4byte sub_080A6B04 - .4byte sub_080A6C1C - -gUnk_08128F24:: @ 08128F24 - .4byte sub_080A6CA8 - .4byte sub_080A6CD8 - .4byte sub_080A6DD0 - .4byte sub_080A6DF8 - .4byte sub_080A6E44 - -gUnk_08128F38:: @ 08128F38 - .incbin "data_08127280/gUnk_08128F38.bin" - -gUnk_08128F4C:: @ 08128F4C - .incbin "data_08127280/gUnk_08128F4C.bin" - -gUnk_08128F58:: @ 08128F58 - .incbin "data_08127280/gUnk_08128F58.bin" - -gUnk_08128FA8:: @ 08128FA8 - .incbin "data_08127280/gUnk_08128FA8.bin" - -gUnk_08128FC0:: @ 08128FC0 - .incbin "data_08127280/gUnk_08128FC0.bin" - -gUnk_08128FD8:: @ 08128FD8 - .incbin "data_08127280/gUnk_08128FD8.bin" - -gUnk_08128FF0:: @ 08128FF0 - .incbin "data_08127280/gUnk_08128FF0.bin" - -gUnk_08129004:: @ 08129004 - .incbin "data_08127280/gUnk_08129004.bin" - -gUnk_0812901C:: @ 0812901C - .4byte Subtask_FadeIn - .4byte Subtask_Init - .4byte Subtask_Update - .4byte Subtask_FadeOut - .4byte Subtask_Die - -@ subtask2.c -gSubtasks:: @ 08129030 - .4byte Subtask_Exit - .4byte Subtask_PauseMenu - .4byte Subtask_Exit - .4byte Subtask_MapHint - .4byte Subtask_KinstoneMenu - .4byte Subtask_AuxCutscene - .4byte Subtask_PortalCutscene - .4byte Subtask_FigurineMenu - .4byte Subtask_WorldEvent - .4byte Subtask_FastTravel - .4byte Subtask_LocalMapHint diff --git a/data/const/ui.s b/data/const/ui.s index 21114cf0..23f3eaeb 100644 --- a/data/const/ui.s +++ b/data/const/ui.s @@ -8,35 +8,6 @@ @ afterwards on data side: sineTable.c @ after: octorok.c -@ collision.c -gCollisionMtx:: @ 080B7B74 - .incbin "data_080B7B74/gCollisionMtx.bin" - .incbin "data_080B7B74/gUnk_080B802E.bin" - .incbin "data_080B7B74/gUnk_080BA2C0.bin" -.ifdef EU - .incbin "data_080B7B74/gUnk_080B7B74_1_EU.bin" -.else - .incbin "data_080B7B74/gUnk_080B7B74_2_USA-JP-DEMO_USA-DEMO_JP.bin" -.endif - .incbin "data_080B7B74/gUnk_080B7B74_3.bin" -.ifdef JP - @ TODO only small differences - .incbin "data_080B7B74/gUnk_080B7B74_4_JP.bin" -.else -.ifdef EU - @ TODO only small differences - .incbin "data_080B7B74/gUnk_080B7B74_5_EU.bin" -.else - .incbin "data_080B7B74/gUnk_080B7B74_6_USA-DEMO_USA-DEMO_JP.bin" -.endif -.endif -.ifdef EU - @ TODO only small differences - .incbin "data_080B7B74/gUnk_080B7B74_7_EU.bin" -.else - .incbin "data_080B7B74/gUnk_080B7B74_8_USA-JP-DEMO_USA-DEMO_JP.bin" -.endif - .incbin "data_080B7B74/gUnk_080B7B74_9.bin" @ ui.c const diff --git a/data/gfx/gfx_and_palettes.s b/data/gfx/gfx_and_palettes.s index 9a4e60af..91af788c 100644 --- a/data/gfx/gfx_and_palettes.s +++ b/data/gfx/gfx_and_palettes.s @@ -23,8 +23,10 @@ gPalette_7:: .incbin "palettes/gPalette_7.gbapal" gPalette_8:: .incbin "palettes/gPalette_8.gbapal" -gfx_unknown_0:: - .incbin "assets/gfx_unknown_0.bin" +gPalette_9:: + .incbin "palettes/gPalette_9.gbapal" +gPalette_10:: + .incbin "palettes/gPalette_10.gbapal" gPalette_11:: .incbin "palettes/gPalette_11.gbapal" gPalette_12:: @@ -33,8 +35,290 @@ gPalette_13:: .incbin "palettes/gPalette_13.gbapal" gPalette_14:: .incbin "palettes/gPalette_14.gbapal" -gfx_unknown_1:: - .incbin "assets/gfx_unknown_1.bin" +gPalette_15:: + .incbin "palettes/gPalette_15.gbapal" +gPalette_16:: + .incbin "palettes/gPalette_16.gbapal" +gPalette_17:: + .incbin "palettes/gPalette_17.gbapal" +gPalette_18:: + .incbin "palettes/gPalette_18.gbapal" +gPalette_19:: + .incbin "palettes/gPalette_19.gbapal" +gPalette_20:: + .incbin "palettes/gPalette_20.gbapal" +gPalette_21:: + .incbin "palettes/gPalette_21.gbapal" +gPalette_22:: + .incbin "palettes/gPalette_22.gbapal" +gPalette_23:: + .incbin "palettes/gPalette_23.gbapal" +gPalette_24:: + .incbin "palettes/gPalette_24.gbapal" +gPalette_25:: + .incbin "palettes/gPalette_25.gbapal" +gPalette_26:: + .incbin "palettes/gPalette_26.gbapal" +gPalette_27:: + .incbin "palettes/gPalette_27.gbapal" +gPalette_28:: + .incbin "palettes/gPalette_28.gbapal" +gPalette_29:: + .incbin "palettes/gPalette_29.gbapal" +gPalette_30:: + .incbin "palettes/gPalette_30.gbapal" +gPalette_31:: + .incbin "palettes/gPalette_31.gbapal" +gPalette_32:: + .incbin "palettes/gPalette_32.gbapal" +gPalette_33:: + .incbin "palettes/gPalette_33.gbapal" +gPalette_34:: + .incbin "palettes/gPalette_34.gbapal" +gPalette_35:: + .incbin "palettes/gPalette_35.gbapal" +gPalette_36:: + .incbin "palettes/gPalette_36.gbapal" +gPalette_37:: + .incbin "palettes/gPalette_37.gbapal" +gPalette_38:: + .incbin "palettes/gPalette_38.gbapal" +gPalette_39:: + .incbin "palettes/gPalette_39.gbapal" +gPalette_40:: + .incbin "palettes/gPalette_40.gbapal" +gPalette_41:: + .incbin "palettes/gPalette_41.gbapal" +gPalette_42:: + .incbin "palettes/gPalette_42.gbapal" +gPalette_43:: + .incbin "palettes/gPalette_43.gbapal" +gPalette_44:: + .incbin "palettes/gPalette_44.gbapal" +gPalette_45:: + .incbin "palettes/gPalette_45.gbapal" +gPalette_46:: + .incbin "palettes/gPalette_46.gbapal" +gPalette_47:: + .incbin "palettes/gPalette_47.gbapal" +gPalette_48:: + .incbin "palettes/gPalette_48.gbapal" +gPalette_49:: + .incbin "palettes/gPalette_49.gbapal" +gPalette_50:: + .incbin "palettes/gPalette_50.gbapal" +gPalette_51:: + .incbin "palettes/gPalette_51.gbapal" +gPalette_52:: + .incbin "palettes/gPalette_52.gbapal" +gPalette_53:: + .incbin "palettes/gPalette_53.gbapal" +gPalette_54:: + .incbin "palettes/gPalette_54.gbapal" +gPalette_55:: + .incbin "palettes/gPalette_55.gbapal" +gPalette_56:: + .incbin "palettes/gPalette_56.gbapal" +gPalette_57:: + .incbin "palettes/gPalette_57.gbapal" +gPalette_58:: + .incbin "palettes/gPalette_58.gbapal" +gPalette_59:: + .incbin "palettes/gPalette_59.gbapal" +gPalette_60:: + .incbin "palettes/gPalette_60.gbapal" +gPalette_61:: + .incbin "palettes/gPalette_61.gbapal" +gPalette_62:: + .incbin "palettes/gPalette_62.gbapal" +gPalette_63:: + .incbin "palettes/gPalette_63.gbapal" +gPalette_64:: + .incbin "palettes/gPalette_64.gbapal" +gPalette_65:: + .incbin "palettes/gPalette_65.gbapal" +gPalette_66:: + .incbin "palettes/gPalette_66.gbapal" +gPalette_67:: + .incbin "palettes/gPalette_67.gbapal" +gPalette_68:: + .incbin "palettes/gPalette_68.gbapal" +gPalette_69:: + .incbin "palettes/gPalette_69.gbapal" +gPalette_70:: + .incbin "palettes/gPalette_70.gbapal" +gPalette_71:: + .incbin "palettes/gPalette_71.gbapal" +gPalette_72:: + .incbin "palettes/gPalette_72.gbapal" +gPalette_73:: + .incbin "palettes/gPalette_73.gbapal" +gPalette_74:: + .incbin "palettes/gPalette_74.gbapal" +gPalette_75:: + .incbin "palettes/gPalette_75.gbapal" +gPalette_76:: + .incbin "palettes/gPalette_76.gbapal" +gPalette_77:: + .incbin "palettes/gPalette_77.gbapal" +gPalette_78:: + .incbin "palettes/gPalette_78.gbapal" +gPalette_79:: + .incbin "palettes/gPalette_79.gbapal" +gPalette_80:: + .incbin "palettes/gPalette_80.gbapal" +gPalette_81:: + .incbin "palettes/gPalette_81.gbapal" +gPalette_82:: + .incbin "palettes/gPalette_82.gbapal" +gPalette_83:: + .incbin "palettes/gPalette_83.gbapal" +gPalette_84:: + .incbin "palettes/gPalette_84.gbapal" +gPalette_85:: + .incbin "palettes/gPalette_85.gbapal" +gPalette_86:: + .incbin "palettes/gPalette_86.gbapal" +gPalette_87:: + .incbin "palettes/gPalette_87.gbapal" +gPalette_88:: + .incbin "palettes/gPalette_88.gbapal" +gPalette_89:: + .incbin "palettes/gPalette_89.gbapal" +gPalette_90:: + .incbin "palettes/gPalette_90.gbapal" +gPalette_91:: + .incbin "palettes/gPalette_91.gbapal" +gPalette_92:: + .incbin "palettes/gPalette_92.gbapal" +gPalette_93:: + .incbin "palettes/gPalette_93.gbapal" +gPalette_94:: + .incbin "palettes/gPalette_94.gbapal" +gPalette_95:: + .incbin "palettes/gPalette_95.gbapal" +gPalette_96:: + .incbin "palettes/gPalette_96.gbapal" +gPalette_97:: + .incbin "palettes/gPalette_97.gbapal" +gPalette_98:: + .incbin "palettes/gPalette_98.gbapal" +gPalette_99:: + .incbin "palettes/gPalette_99.gbapal" +gPalette_100:: + .incbin "palettes/gPalette_100.gbapal" +gPalette_101:: + .incbin "palettes/gPalette_101.gbapal" +gPalette_102:: + .incbin "palettes/gPalette_102.gbapal" +gPalette_103:: + .incbin "palettes/gPalette_103.gbapal" +gPalette_104:: + .incbin "palettes/gPalette_104.gbapal" +gPalette_105:: + .incbin "palettes/gPalette_105.gbapal" +gPalette_106:: + .incbin "palettes/gPalette_106.gbapal" +gPalette_107:: + .incbin "palettes/gPalette_107.gbapal" +gPalette_108:: + .incbin "palettes/gPalette_108.gbapal" +gPalette_109:: + .incbin "palettes/gPalette_109.gbapal" +gPalette_110:: + .incbin "palettes/gPalette_110.gbapal" +gPalette_111:: + .incbin "palettes/gPalette_111.gbapal" +gPalette_112:: + .incbin "palettes/gPalette_112.gbapal" +gPalette_113:: + .incbin "palettes/gPalette_113.gbapal" +gPalette_114:: + .incbin "palettes/gPalette_114.gbapal" +gPalette_115:: + .incbin "palettes/gPalette_115.gbapal" +gPalette_116:: + .incbin "palettes/gPalette_116.gbapal" +gPalette_117:: + .incbin "palettes/gPalette_117.gbapal" +gPalette_118:: + .incbin "palettes/gPalette_118.gbapal" +gPalette_119:: + .incbin "palettes/gPalette_119.gbapal" +gPalette_120:: + .incbin "palettes/gPalette_120.gbapal" +gPalette_121:: + .incbin "palettes/gPalette_121.gbapal" +gPalette_122:: + .incbin "palettes/gPalette_122.gbapal" +gPalette_123:: + .incbin "palettes/gPalette_123.gbapal" +gPalette_124:: + .incbin "palettes/gPalette_124.gbapal" +gPalette_125:: + .incbin "palettes/gPalette_125.gbapal" +gPalette_126:: + .incbin "palettes/gPalette_126.gbapal" +gPalette_127:: + .incbin "palettes/gPalette_127.gbapal" +gPalette_128:: + .incbin "palettes/gPalette_128.gbapal" +gPalette_129:: + .incbin "palettes/gPalette_129.gbapal" +gPalette_130:: + .incbin "palettes/gPalette_130.gbapal" +gPalette_131:: + .incbin "palettes/gPalette_131.gbapal" +gPalette_132:: + .incbin "palettes/gPalette_132.gbapal" +gPalette_133:: + .incbin "palettes/gPalette_133.gbapal" +gPalette_134:: + .incbin "palettes/gPalette_134.gbapal" +gPalette_135:: + .incbin "palettes/gPalette_135.gbapal" +gPalette_136:: + .incbin "palettes/gPalette_136.gbapal" +gPalette_137:: + .incbin "palettes/gPalette_137.gbapal" +gPalette_138:: + .incbin "palettes/gPalette_138.gbapal" +gPalette_139:: + .incbin "palettes/gPalette_139.gbapal" +gPalette_140:: + .incbin "palettes/gPalette_140.gbapal" +gPalette_141:: + .incbin "palettes/gPalette_141.gbapal" +gPalette_142:: + .incbin "palettes/gPalette_142.gbapal" +gPalette_143:: + .incbin "palettes/gPalette_143.gbapal" +gPalette_144:: + .incbin "palettes/gPalette_144.gbapal" +gPalette_145:: + .incbin "palettes/gPalette_145.gbapal" +gPalette_146:: + .incbin "palettes/gPalette_146.gbapal" +gPalette_147:: + .incbin "palettes/gPalette_147.gbapal" +gPalette_148:: + .incbin "palettes/gPalette_148.gbapal" +gPalette_149:: + .incbin "palettes/gPalette_149.gbapal" +gPalette_150:: + .incbin "palettes/gPalette_150.gbapal" +gPalette_151:: + .incbin "palettes/gPalette_151.gbapal" +gPalette_152:: + .incbin "palettes/gPalette_152.gbapal" +gPalette_153:: + .incbin "palettes/gPalette_153.gbapal" +gPalette_154:: + .incbin "palettes/gPalette_154.gbapal" +gPalette_155:: + .incbin "palettes/gPalette_155.gbapal" +gPalette_156:: + .incbin "palettes/gPalette_156.gbapal" gPalette_157:: .incbin "palettes/gPalette_157.gbapal" gPalette_158:: @@ -51,8 +335,378 @@ gPalette_163:: .incbin "palettes/gPalette_163.gbapal" gPalette_164:: .incbin "palettes/gPalette_164.gbapal" -gfx_unknown_2:: - .incbin "assets/gfx_unknown_2.bin" +gPalette_165:: + .incbin "palettes/gPalette_165.gbapal" +gPalette_166:: + .incbin "palettes/gPalette_166.gbapal" +gPalette_167:: + .incbin "palettes/gPalette_167.gbapal" +gPalette_168:: + .incbin "palettes/gPalette_168.gbapal" +gPalette_169:: + .incbin "palettes/gPalette_169.gbapal" +gPalette_170:: + .incbin "palettes/gPalette_170.gbapal" +gPalette_171:: + .incbin "palettes/gPalette_171.gbapal" +gPalette_172:: + .incbin "palettes/gPalette_172.gbapal" +gPalette_173:: + .incbin "palettes/gPalette_173.gbapal" +gPalette_174:: + .incbin "palettes/gPalette_174.gbapal" +gPalette_175:: + .incbin "palettes/gPalette_175.gbapal" +gPalette_176:: + .incbin "palettes/gPalette_176.gbapal" +gPalette_177:: + .incbin "palettes/gPalette_177.gbapal" +gPalette_178:: + .incbin "palettes/gPalette_178.gbapal" +gPalette_179:: + .incbin "palettes/gPalette_179.gbapal" +gPalette_180:: + .incbin "palettes/gPalette_180.gbapal" +gPalette_181:: + .incbin "palettes/gPalette_181.gbapal" +gPalette_182:: + .incbin "palettes/gPalette_182.gbapal" +gPalette_183:: + .incbin "palettes/gPalette_183.gbapal" +gPalette_184:: + .incbin "palettes/gPalette_184.gbapal" +gPalette_185:: + .incbin "palettes/gPalette_185.gbapal" +gPalette_186:: + .incbin "palettes/gPalette_186.gbapal" +gPalette_187:: + .incbin "palettes/gPalette_187.gbapal" +gPalette_188:: + .incbin "palettes/gPalette_188.gbapal" +gPalette_189:: + .incbin "palettes/gPalette_189.gbapal" +gPalette_190:: + .incbin "palettes/gPalette_190.gbapal" +gPalette_191:: + .incbin "palettes/gPalette_191.gbapal" +gPalette_192:: + .incbin "palettes/gPalette_192.gbapal" +gPalette_193:: + .incbin "palettes/gPalette_193.gbapal" +gPalette_194:: + .incbin "palettes/gPalette_194.gbapal" +gPalette_195:: + .incbin "palettes/gPalette_195.gbapal" +gPalette_196:: + .incbin "palettes/gPalette_196.gbapal" +gPalette_197:: + .incbin "palettes/gPalette_197.gbapal" +gPalette_198:: + .incbin "palettes/gPalette_198.gbapal" +gPalette_199:: + .incbin "palettes/gPalette_199.gbapal" +gPalette_200:: + .incbin "palettes/gPalette_200.gbapal" +gPalette_201:: + .incbin "palettes/gPalette_201.gbapal" +gPalette_202:: + .incbin "palettes/gPalette_202.gbapal" +gPalette_203:: + .incbin "palettes/gPalette_203.gbapal" +gPalette_204:: + .incbin "palettes/gPalette_204.gbapal" +gPalette_205:: + .incbin "palettes/gPalette_205.gbapal" +gPalette_206:: + .incbin "palettes/gPalette_206.gbapal" +gPalette_207:: + .incbin "palettes/gPalette_207.gbapal" +gPalette_208:: + .incbin "palettes/gPalette_208.gbapal" +gPalette_209:: + .incbin "palettes/gPalette_209.gbapal" +gPalette_210:: + .incbin "palettes/gPalette_210.gbapal" +gPalette_211:: + .incbin "palettes/gPalette_211.gbapal" +gPalette_212:: + .incbin "palettes/gPalette_212.gbapal" +gPalette_213:: + .incbin "palettes/gPalette_213.gbapal" +gPalette_214:: + .incbin "palettes/gPalette_214.gbapal" +gPalette_215:: + .incbin "palettes/gPalette_215.gbapal" +gPalette_216:: + .incbin "palettes/gPalette_216.gbapal" +gPalette_217:: + .incbin "palettes/gPalette_217.gbapal" +gPalette_218:: + .incbin "palettes/gPalette_218.gbapal" +gPalette_219:: + .incbin "palettes/gPalette_219.gbapal" +gPalette_220:: + .incbin "palettes/gPalette_220.gbapal" +gPalette_221:: + .incbin "palettes/gPalette_221.gbapal" +gPalette_222:: + .incbin "palettes/gPalette_222.gbapal" +gPalette_223:: + .incbin "palettes/gPalette_223.gbapal" +gPalette_224:: + .incbin "palettes/gPalette_224.gbapal" +gPalette_225:: + .incbin "palettes/gPalette_225.gbapal" +gPalette_226:: + .incbin "palettes/gPalette_226.gbapal" +gPalette_227:: + .incbin "palettes/gPalette_227.gbapal" +gPalette_228:: + .incbin "palettes/gPalette_228.gbapal" +gPalette_229:: + .incbin "palettes/gPalette_229.gbapal" +gPalette_230:: + .incbin "palettes/gPalette_230.gbapal" +gPalette_231:: + .incbin "palettes/gPalette_231.gbapal" +gPalette_232:: + .incbin "palettes/gPalette_232.gbapal" +gPalette_233:: + .incbin "palettes/gPalette_233.gbapal" +gPalette_234:: + .incbin "palettes/gPalette_234.gbapal" +gPalette_235:: + .incbin "palettes/gPalette_235.gbapal" +gPalette_236:: + .incbin "palettes/gPalette_236.gbapal" +gPalette_237:: + .incbin "palettes/gPalette_237.gbapal" +gPalette_238:: + .incbin "palettes/gPalette_238.gbapal" +gPalette_239:: + .incbin "palettes/gPalette_239.gbapal" +gPalette_240:: + .incbin "palettes/gPalette_240.gbapal" +gPalette_241:: + .incbin "palettes/gPalette_241.gbapal" +gPalette_242:: + .incbin "palettes/gPalette_242.gbapal" +gPalette_243:: + .incbin "palettes/gPalette_243.gbapal" +gPalette_244:: + .incbin "palettes/gPalette_244.gbapal" +gPalette_245:: + .incbin "palettes/gPalette_245.gbapal" +gPalette_246:: + .incbin "palettes/gPalette_246.gbapal" +gPalette_247:: + .incbin "palettes/gPalette_247.gbapal" +gPalette_248:: + .incbin "palettes/gPalette_248.gbapal" +gPalette_249:: + .incbin "palettes/gPalette_249.gbapal" +gPalette_250:: + .incbin "palettes/gPalette_250.gbapal" +gPalette_251:: + .incbin "palettes/gPalette_251.gbapal" +gPalette_252:: + .incbin "palettes/gPalette_252.gbapal" +gPalette_253:: + .incbin "palettes/gPalette_253.gbapal" +gPalette_254:: + .incbin "palettes/gPalette_254.gbapal" +gPalette_255:: + .incbin "palettes/gPalette_255.gbapal" +gPalette_256:: + .incbin "palettes/gPalette_256.gbapal" +gPalette_257:: + .incbin "palettes/gPalette_257.gbapal" +gPalette_258:: + .incbin "palettes/gPalette_258.gbapal" +gPalette_259:: + .incbin "palettes/gPalette_259.gbapal" +gPalette_260:: + .incbin "palettes/gPalette_260.gbapal" +gPalette_261:: + .incbin "palettes/gPalette_261.gbapal" +gPalette_262:: + .incbin "palettes/gPalette_262.gbapal" +gPalette_263:: + .incbin "palettes/gPalette_263.gbapal" +gPalette_264:: + .incbin "palettes/gPalette_264.gbapal" +gPalette_265:: + .incbin "palettes/gPalette_265.gbapal" +gPalette_266:: + .incbin "palettes/gPalette_266.gbapal" +gPalette_267:: + .incbin "palettes/gPalette_267.gbapal" +gPalette_268:: + .incbin "palettes/gPalette_268.gbapal" +gPalette_269:: + .incbin "palettes/gPalette_269.gbapal" +gPalette_270:: + .incbin "palettes/gPalette_270.gbapal" +gPalette_271:: + .incbin "palettes/gPalette_271.gbapal" +gPalette_272:: + .incbin "palettes/gPalette_272.gbapal" +gPalette_273:: + .incbin "palettes/gPalette_273.gbapal" +gPalette_274:: + .incbin "palettes/gPalette_274.gbapal" +gPalette_275:: + .incbin "palettes/gPalette_275.gbapal" +gPalette_276:: + .incbin "palettes/gPalette_276.gbapal" +gPalette_277:: + .incbin "palettes/gPalette_277.gbapal" +gPalette_278:: + .incbin "palettes/gPalette_278.gbapal" +gPalette_279:: + .incbin "palettes/gPalette_279.gbapal" +gPalette_280:: + .incbin "palettes/gPalette_280.gbapal" +gPalette_281:: + .incbin "palettes/gPalette_281.gbapal" +gPalette_282:: + .incbin "palettes/gPalette_282.gbapal" +gPalette_283:: + .incbin "palettes/gPalette_283.gbapal" +gPalette_284:: + .incbin "palettes/gPalette_284.gbapal" +gPalette_285:: + .incbin "palettes/gPalette_285.gbapal" +gPalette_286:: + .incbin "palettes/gPalette_286.gbapal" +gPalette_287:: + .incbin "palettes/gPalette_287.gbapal" +gPalette_288:: + .incbin "palettes/gPalette_288.gbapal" +gPalette_289:: + .incbin "palettes/gPalette_289.gbapal" +gPalette_290:: + .incbin "palettes/gPalette_290.gbapal" +gPalette_291:: + .incbin "palettes/gPalette_291.gbapal" +gPalette_292:: + .incbin "palettes/gPalette_292.gbapal" +gPalette_293:: + .incbin "palettes/gPalette_293.gbapal" +gPalette_294:: + .incbin "palettes/gPalette_294.gbapal" +gPalette_295:: + .incbin "palettes/gPalette_295.gbapal" +gPalette_296:: + .incbin "palettes/gPalette_296.gbapal" +gPalette_297:: + .incbin "palettes/gPalette_297.gbapal" +gPalette_298:: + .incbin "palettes/gPalette_298.gbapal" +gPalette_299:: + .incbin "palettes/gPalette_299.gbapal" +gPalette_300:: + .incbin "palettes/gPalette_300.gbapal" +gPalette_301:: + .incbin "palettes/gPalette_301.gbapal" +gPalette_302:: + .incbin "palettes/gPalette_302.gbapal" +gPalette_303:: + .incbin "palettes/gPalette_303.gbapal" +gPalette_304:: + .incbin "palettes/gPalette_304.gbapal" +gPalette_305:: + .incbin "palettes/gPalette_305.gbapal" +gPalette_306:: + .incbin "palettes/gPalette_306.gbapal" +gPalette_307:: + .incbin "palettes/gPalette_307.gbapal" +gPalette_308:: + .incbin "palettes/gPalette_308.gbapal" +gPalette_309:: + .incbin "palettes/gPalette_309.gbapal" +gPalette_310:: + .incbin "palettes/gPalette_310.gbapal" +gPalette_311:: + .incbin "palettes/gPalette_311.gbapal" +gPalette_312:: + .incbin "palettes/gPalette_312.gbapal" +gPalette_313:: + .incbin "palettes/gPalette_313.gbapal" +gPalette_314:: + .incbin "palettes/gPalette_314.gbapal" +gPalette_315:: + .incbin "palettes/gPalette_315.gbapal" +gPalette_316:: + .incbin "palettes/gPalette_316.gbapal" +gPalette_317:: + .incbin "palettes/gPalette_317.gbapal" +gPalette_318:: + .incbin "palettes/gPalette_318.gbapal" +gPalette_319:: + .incbin "palettes/gPalette_319.gbapal" +gPalette_320:: + .incbin "palettes/gPalette_320.gbapal" +gPalette_321:: + .incbin "palettes/gPalette_321.gbapal" +gPalette_322:: + .incbin "palettes/gPalette_322.gbapal" +gfx_unknown_0:: + .incbin "assets/gfx_unknown_0.bin" +gPalette_327:: + .incbin "palettes/gPalette_327.gbapal" +gPalette_328:: + .incbin "palettes/gPalette_328.gbapal" +gPalette_329:: + .incbin "palettes/gPalette_329.gbapal" +gPalette_330:: + .incbin "palettes/gPalette_330.gbapal" +gPalette_331:: + .incbin "palettes/gPalette_331.gbapal" +gPalette_332:: + .incbin "palettes/gPalette_332.gbapal" +gPalette_333:: + .incbin "palettes/gPalette_333.gbapal" +gPalette_334:: + .incbin "palettes/gPalette_334.gbapal" +gPalette_335:: + .incbin "palettes/gPalette_335.gbapal" +gPalette_336:: + .incbin "palettes/gPalette_336.gbapal" +gPalette_337:: + .incbin "palettes/gPalette_337.gbapal" +gPalette_338:: + .incbin "palettes/gPalette_338.gbapal" +gPalette_339:: + .incbin "palettes/gPalette_339.gbapal" +gPalette_340:: + .incbin "palettes/gPalette_340.gbapal" +gPalette_341:: + .incbin "palettes/gPalette_341.gbapal" +gPalette_342:: + .incbin "palettes/gPalette_342.gbapal" +gPalette_343:: + .incbin "palettes/gPalette_343.gbapal" +gPalette_344:: + .incbin "palettes/gPalette_344.gbapal" +gPalette_345:: + .incbin "palettes/gPalette_345.gbapal" +gPalette_346:: + .incbin "palettes/gPalette_346.gbapal" +gPalette_347:: + .incbin "palettes/gPalette_347.gbapal" +gPalette_348:: + .incbin "palettes/gPalette_348.gbapal" +gPalette_349:: + .incbin "palettes/gPalette_349.gbapal" +gPalette_350:: + .incbin "palettes/gPalette_350.gbapal" +gPalette_351:: + .incbin "palettes/gPalette_351.gbapal" +gPalette_352:: + .incbin "palettes/gPalette_352.gbapal" +gPalette_353:: + .incbin "palettes/gPalette_353.gbapal" gPalette_354:: .incbin "palettes/gPalette_354.gbapal" gPalette_355:: @@ -651,8 +1305,8 @@ gPalette_651:: .incbin "palettes/gPalette_651.gbapal" gPalette_652:: .incbin "palettes/gPalette_652.gbapal" -gfx_unknown_3:: - .incbin "assets/gfx_unknown_3.bin" +gfx_unknown_1:: + .incbin "assets/gfx_unknown_1.bin" gPalette_666:: .incbin "palettes/gPalette_666.gbapal" gPalette_667:: @@ -679,8 +1333,10 @@ gPalette_677:: .incbin "palettes/gPalette_677.gbapal" gPalette_678:: .incbin "palettes/gPalette_678.gbapal" -gfx_unknown_4:: - .incbin "assets/gfx_unknown_4.bin" +gPalette_679:: + .incbin "palettes/gPalette_679.gbapal" +gPalette_680:: + .incbin "palettes/gPalette_680.gbapal" bgAnim_57_0:: .incbin "palettes/bgAnim_57_0.gbapal" bgAnim_57_1:: @@ -1835,8 +2491,8 @@ gPalette_1259:: .incbin "palettes/gPalette_1259.gbapal" gPalette_1260:: .incbin "palettes/gPalette_1260.gbapal" -gfx_unknown_5:: - .incbin "assets/gfx_unknown_5.bin" +gPalette_1261:: + .incbin "palettes/gPalette_1261.gbapal" gPalette_1262:: .incbin "palettes/gPalette_1262.gbapal" gPalette_1263:: @@ -3105,8 +3761,8 @@ gPalette_1894:: .incbin "palettes/gPalette_1894.gbapal" gPalette_1895:: .incbin "palettes/gPalette_1895.gbapal" -gfx_unknown_6:: - .incbin "assets/gfx_unknown_6.bin" +gfx_unknown_2:: + .incbin "assets/gfx_unknown_2.bin" gPalette_1908:: .incbin "palettes/gPalette_1908.gbapal" gPalette_1909:: @@ -3571,8 +4227,12 @@ gPalette_2138:: .incbin "palettes/gPalette_2138.gbapal" gPalette_2139:: .incbin "palettes/gPalette_2139.gbapal" -gfx_unknown_7:: - .incbin "assets/gfx_unknown_7.bin" +gPalette_2140:: + .incbin "palettes/gPalette_2140.gbapal" +gPalette_2141:: + .incbin "palettes/gPalette_2141.gbapal" +gPalette_2142:: + .incbin "palettes/gPalette_2142.gbapal" gPalette_2143:: .incbin "palettes/gPalette_2143.gbapal" gPalette_2144:: @@ -3605,8 +4265,12 @@ gPalette_2157:: .incbin "palettes/gPalette_2157.gbapal" gPalette_2158:: .incbin "palettes/gPalette_2158.gbapal" -gfx_unknown_8:: - .incbin "assets/gfx_unknown_8.bin" +gPalette_2159:: + .incbin "palettes/gPalette_2159.gbapal" +gPalette_2160:: + .incbin "palettes/gPalette_2160.gbapal" +gPalette_2161:: + .incbin "palettes/gPalette_2161.gbapal" gPalette_2162:: .incbin "palettes/gPalette_2162.gbapal" gPalette_2163:: @@ -3639,8 +4303,12 @@ gPalette_2176:: .incbin "palettes/gPalette_2176.gbapal" gPalette_2177:: .incbin "palettes/gPalette_2177.gbapal" -gfx_unknown_9:: - .incbin "assets/gfx_unknown_9.bin" +gPalette_2178:: + .incbin "palettes/gPalette_2178.gbapal" +gPalette_2179:: + .incbin "palettes/gPalette_2179.gbapal" +gPalette_2180:: + .incbin "palettes/gPalette_2180.gbapal" gPalette_2181:: .incbin "palettes/gPalette_2181.gbapal" gPalette_2182:: @@ -3673,8 +4341,12 @@ gPalette_2195:: .incbin "palettes/gPalette_2195.gbapal" gPalette_2196:: .incbin "palettes/gPalette_2196.gbapal" -gfx_unknown_10:: - .incbin "assets/gfx_unknown_10.bin" +gPalette_2197:: + .incbin "palettes/gPalette_2197.gbapal" +gPalette_2198:: + .incbin "palettes/gPalette_2198.gbapal" +gPalette_2199:: + .incbin "palettes/gPalette_2199.gbapal" gUnk_085B4180:: .incbin "assets/gUnk_085B4180.bin" gPalette_2204:: @@ -3693,8 +4365,12 @@ gPalette_2210:: .incbin "palettes/gPalette_2210.gbapal" gPalette_2211:: .incbin "palettes/gPalette_2211.gbapal" -gfx_unknown_11:: - .incbin "assets/gfx_unknown_11.bin" +gPalette_2212:: + .incbin "palettes/gPalette_2212.gbapal" +gPalette_2213:: + .incbin "palettes/gPalette_2213.gbapal" +gPalette_2214:: + .incbin "palettes/gPalette_2214.gbapal" gPalette_2215:: .incbin "palettes/gPalette_2215.gbapal" gPalette_2216:: @@ -3783,8 +4459,12 @@ gPalette_2257:: .incbin "palettes/gPalette_2257.gbapal" gPalette_2258:: .incbin "palettes/gPalette_2258.gbapal" -gfx_unknown_12:: - .incbin "assets/gfx_unknown_12.bin" +gPalette_2259:: + .incbin "palettes/gPalette_2259.gbapal" +gPalette_2260:: + .incbin "palettes/gPalette_2260.gbapal" +gfx_unknown_3:: + .incbin "assets/gfx_unknown_3.bin" gPalette_2293:: .incbin "palettes/gPalette_2293.gbapal" gPalette_2294:: @@ -4349,8 +5029,8 @@ gPalette_3390:: .incbin "palettes/gPalette_3390.gbapal" gPalette_3391:: .incbin "palettes/gPalette_3391.gbapal" -gfx_unknown_13:: - .incbin "assets/gfx_unknown_13.bin" +gfx_unknown_4:: + .incbin "assets/gfx_unknown_4.bin" gPalette_3396:: .incbin "palettes/gPalette_3396.gbapal" gPalette_3397:: @@ -4419,8 +5099,20 @@ gPalette_3428:: .incbin "palettes/gPalette_3428.gbapal" gPalette_3429:: .incbin "palettes/gPalette_3429.gbapal" -gfx_unknown_14:: - .incbin "assets/gfx_unknown_14.bin" +gPalette_3430:: + .incbin "palettes/gPalette_3430.gbapal" +gPalette_3431:: + .incbin "palettes/gPalette_3431.gbapal" +gPalette_3432:: + .incbin "palettes/gPalette_3432.gbapal" +gPalette_3433:: + .incbin "palettes/gPalette_3433.gbapal" +gPalette_3434:: + .incbin "palettes/gPalette_3434.gbapal" +gPalette_3435:: + .incbin "palettes/gPalette_3435.gbapal" +gPalette_3436:: + .incbin "palettes/gPalette_3436.gbapal" gPalette_3437:: .incbin "palettes/gPalette_3437.gbapal" gPalette_3438:: @@ -5037,8 +5729,10 @@ bgAnim_79_14:: .incbin "palettes/bgAnim_79_14.gbapal" bgAnim_79_15:: .incbin "palettes/bgAnim_79_15.gbapal" -gfx_unknown_15:: - .incbin "assets/gfx_unknown_15.bin" +gPalette_3773:: + .incbin "palettes/gPalette_3773.gbapal" +gPalette_3774:: + .incbin "palettes/gPalette_3774.gbapal" gGfx_89_3:: .incbin "gfx/gGfx_89_3.4bpp" gGfx_24_0:: @@ -6081,8 +6775,8 @@ fixedTypeGfx_243:: .incbin "gfx/fixedTypeGfx_243.4bpp" fixedTypeGfx_398:: .incbin "gfx/fixedTypeGfx_398.4bpp" -gfx_unknown_16:: - .incbin "assets/gfx_unknown_16.bin" +gfx_unknown_5:: + .incbin "assets/gfx_unknown_5.bin" fixedTypeGfx_496:: .incbin "gfx/fixedTypeGfx_496.4bpp" fixedTypeGfx_456:: @@ -6948,8 +7642,8 @@ gGfx_21_0:: .incbin "gfx/gGfx_21_0.4bpp" gGfx_48_0:: .incbin "gfx/gGfx_48_0.4bpp" -gfx_unknown_17:: - .incbin "assets/gfx_unknown_17.bin" +gfx_unknown_6:: + .incbin "assets/gfx_unknown_6.bin" gGfx_47_0:: .incbin "gfx/gGfx_47_0.4bpp" gGfx_49_0:: @@ -6968,8 +7662,8 @@ gGfx_76_0:: .incbin "gfx/gGfx_76_0.4bpp" gGfx_77_0:: .incbin "gfx/gGfx_77_0.4bpp" -gfx_unknown_18:: - .incbin "assets/gfx_unknown_18.bin" +gfx_unknown_7:: + .incbin "assets/gfx_unknown_7.bin" gGfx_78_0:: .incbin "gfx/gGfx_78_0.4bpp" gGfx_54_0:: @@ -7346,12 +8040,12 @@ gGfx_2_4:: .incbin "gfx/gGfx_2_4.4bpp" fixedTypeGfx_511:: .incbin "gfx/fixedTypeGfx_511.4bpp" -gfx_unknown_19:: - .incbin "assets/gfx_unknown_19.bin" +gfx_unknown_8:: + .incbin "assets/gfx_unknown_8.bin" fixedTypeGfx_512:: .incbin "gfx/fixedTypeGfx_512.4bpp" -gfx_unknown_20:: - .incbin "assets/gfx_unknown_20.bin" +gfx_unknown_9:: + .incbin "assets/gfx_unknown_9.bin" fixedTypeGfx_513:: .incbin "gfx/fixedTypeGfx_513.4bpp" fixedTypeGfx_514:: @@ -7435,8 +8129,8 @@ gGfx_10_0:: .ifndef EU gGfx_11_1:: .incbin "gfx/gGfx_11_1.4bpp" -gfx_unknown_21:: - .incbin "assets/gfx_unknown_21.bin" +gfx_unknown_10:: + .incbin "assets/gfx_unknown_10.bin" .endif gGfx_88_0:: .incbin "gfx/gGfx_88_0.4bpp" @@ -7564,8 +8258,8 @@ gGfx_92_0:: .incbin "gfx/gGfx_92_0.4bpp" gGfx_92_2:: .incbin "gfx/gGfx_92_2.4bpp" -gfx_unknown_22:: - .incbin "assets/gfx_unknown_22.bin" +gfx_unknown_11:: + .incbin "assets/gfx_unknown_11.bin" gGfx_92_4:: .incbin "gfx/gGfx_92_4.4bpp" gGfx_92_1:: @@ -7610,8 +8304,8 @@ gGfx_96_1:: .incbin "gfx/gGfx_96_1.4bpp" gGfx_102_1:: .incbin "gfx/gGfx_102_1.4bpp" -gfx_unknown_23:: - .incbin "assets/gfx_unknown_23.bin" +gfx_unknown_12:: + .incbin "assets/gfx_unknown_12.bin" gGfx_105_1:: .incbin "gfx/gGfx_105_1.4bpp" gGfx_113_1:: @@ -7737,5 +8431,5 @@ gGfx_132_0:: .align 2 fixedTypeGfx_214:: .incbin "gfx/fixedTypeGfx_214.4bpp.lz" -gfx_unknown_24:: - .incbin "assets/gfx_unknown_24.bin" +gfx_unknown_13:: + .incbin "assets/gfx_unknown_13.bin" diff --git a/data/scripts/cloudTops/script_CutsceneOrchestratorGreatWhirlwindRevealed.inc b/data/scripts/cloudTops/script_CutsceneOrchestratorGreatWhirlwindRevealed.inc index f2ee4050..135e95c0 100644 --- a/data/scripts/cloudTops/script_CutsceneOrchestratorGreatWhirlwindRevealed.inc +++ b/data/scripts/cloudTops/script_CutsceneOrchestratorGreatWhirlwindRevealed.inc @@ -3,7 +3,7 @@ SCRIPT_START script_CutsceneOrchestratorGreatWhirlwindRevealed BeginBlock Call SetPriorityHighest SetEntitySpeed 0x0700 - _0807F0B4 0x0007 + SetScrollSpeed 7 CameraTargetEntity Call sub_0807FBC4 EndBlock @@ -14,7 +14,7 @@ SCRIPT_START script_CutsceneOrchestratorGreatWhirlwindRevealed SetSyncFlag 0x0000000a WaitForSyncFlagAndClear 0x00000004 _0807EEB4 - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer Call sub_0807FBCC EnablePlayerControl diff --git a/data/scripts/cloudTops/script_Npc4EFirstCloud.inc b/data/scripts/cloudTops/script_Npc4EFirstCloud.inc index 7ee1968c..126ad33e 100644 --- a/data/scripts/cloudTops/script_Npc4EFirstCloud.inc +++ b/data/scripts/cloudTops/script_Npc4EFirstCloud.inc @@ -24,7 +24,7 @@ script_0800D650: Call sub_0807FBC4 Call sub_0807FBA0 SetEntitySpeed 0x0700 - _0807F0B4 0x0007 + SetScrollSpeed 7 CameraTargetEntity _0807EDD4 0x01e8, 0x01b8 Wait 0x003c diff --git a/data/scripts/cloudTops/script_Npc4EKinstoneFused.inc b/data/scripts/cloudTops/script_Npc4EKinstoneFused.inc index 9a46581f..f4372344 100644 --- a/data/scripts/cloudTops/script_Npc4EKinstoneFused.inc +++ b/data/scripts/cloudTops/script_Npc4EKinstoneFused.inc @@ -1,7 +1,7 @@ @ Cloud Tops NPC4E after Kinstone has been fused SCRIPT_START script_Npc4EKinstoneFused _0807EEB4 - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer Call sub_0807FBCC EnablePlayerControl diff --git a/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc b/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc index 76640636..65c464af 100644 --- a/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc +++ b/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc @@ -62,7 +62,7 @@ script_08012566: StartPlayerScript script_PlayerEzloBeingBullied WaitForSyncFlagAndClear 0x00000001 SetEntityPositionRelative 0x0388, 0x0168 - _0807F0B4 0x0001 + SetScrollSpeed 1 CameraTargetEntity Wait 0x005a SetSyncFlag 0x00000004 @@ -113,7 +113,7 @@ script_08012566: Wait 0x003c PlayBGM Call sub_0806DCA0 - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer Call EnablePauseMenu EnablePlayerControl diff --git a/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc b/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc index 60b87ab5..f63130ca 100644 --- a/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc +++ b/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc @@ -12,7 +12,7 @@ SCRIPT_START script_Npc4EOutsideLinksHouse WaitForFadeFinish SetSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000002 - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer Call EnablePauseMenu EnablePlayerControl diff --git a/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc b/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc index be79b6e2..f89bcaa1 100644 --- a/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc +++ b/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc @@ -9,7 +9,7 @@ script_08008E12: SetPlayerIdle Call WaitForPlayerNormal Call DisablePauseMenuAndPutAwayItems - _0807F0B4 0x0001 + SetScrollSpeed 1 CameraTargetEntity WaitForPlayerEnterRoom Wait 0x003c @@ -66,7 +66,7 @@ script_08008E12: _0807E8E4_0 SetSyncFlag 0x00000080 WaitForSyncFlagAndClear 0x00000100 - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer SetGlobalFlag TABIDACHI Call sub_0806DCC0 diff --git a/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc b/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc index 074c3e75..c1affdb9 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc @@ -20,7 +20,7 @@ script_080157DA: SetSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000002 StartPlayerScript script_PlayerIntroBusinessScrub1 - _0807F0B4 0x0001 + SetScrollSpeed 1 SetEntityPositionRelative 0x0248, 0x0218 CameraTargetEntity Call WaitForCameraTouchRoomBorder @@ -50,7 +50,7 @@ script_08015888: JumpIf script_08015888 SetPlayerIdle Call DisablePauseMenuAndPutAwayItems - _0807F0B4 0x0002 + SetScrollSpeed 2 SetEntityPositionRelative 0x0248, 0x0208 CameraTargetEntity StartPlayerScript script_PlayerIntroBusinessScrub3 @@ -68,7 +68,7 @@ script_08015888: Call sub_08066FB8 Call EnablePauseMenu EnablePlayerControl - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc b/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc index 1aa6c7fa..eb566324 100644 --- a/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc +++ b/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc @@ -31,7 +31,7 @@ SCRIPT_START script_Npc4EMonsters Call SetPlayerActionNormal CallWithArg EquipItem, ITEM_SHIELD CallWithArg SetPlayerMacro, gUnk_080049F6 - _0807F0B4 0x0001 + SetScrollSpeed 1 SetEntityPositionRelative 0x01f8, 0x0068 SetSyncFlag 0x00000004 Wait 0x001e diff --git a/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc b/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc index cd6a0d9b..0884bbc7 100644 --- a/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc +++ b/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc @@ -34,10 +34,10 @@ SCRIPT_START script_Npc4EIntroCastle StartPlayerScript script_PlayerAtIntroCeremony WaitForSyncFlagAndClear 0x00000400 SetEntityPositionRelative 0x01f8, 0x0050 - _0807F0B4 0x0007 + SetScrollSpeed 7 CameraTargetEntity Wait 0x000a - _0807F0B4 0x0001 + SetScrollSpeed 1 SetFadeTime 0x0001 SetFade4 SetSyncFlag 0x0002a800 @@ -67,7 +67,7 @@ SCRIPT_START script_Npc4EIntroCastle MessageFromTargetPos TEXT_PROLOGUE, 0x3a, 0x000c WaitUntilTextboxCloses SetEntityPositionRelative 0x01f8, 0x01c0 - _0807F0B4 0x0004 + SetScrollSpeed 4 Wait 0x0078 SetSyncFlag 0x00280000 WaitForSyncFlagAndClear 0x00500000 diff --git a/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc b/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc index 0a7ccb4a..14a92e0c 100644 --- a/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc +++ b/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc @@ -11,12 +11,12 @@ SCRIPT_START script_Npc4EIntroTown WaitForFadeFinish StartPlayerScript script_PlayerIntro1 SetSyncFlag 0x00000002 - _0807F0B4 0x0001 + SetScrollSpeed 1 SetEntityPositionRelative 0x00c8, 0x0218 Call WaitForCameraTouchRoomBorder Wait 0x0064 @ Camera reaches center of town square - _0807F0B4 0x0002 + SetScrollSpeed 2 SetEntityPositionRelative 0x00c8, 0x0368 Call WaitForCameraTouchRoomBorder WaitForSyncFlagAndClear 0x00000001 @@ -27,7 +27,7 @@ SCRIPT_START script_Npc4EIntroTown SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 @ Zelda ran off. Give control to the player - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer Call EnablePauseMenu EnablePlayerControl @@ -85,7 +85,7 @@ SCRIPT_START script_Npc4EIntroTown WaitUntilTextboxCloses StartPlayerScript script_PlayerIntro5 SetEntityPositionRelative 0x00f0, 0x0258 - _0807F0B4 0x0001 + SetScrollSpeed 1 CameraTargetEntity Wait 0x001e Call sub_08063C2C @@ -161,7 +161,7 @@ SCRIPT_START script_Npc4EIntroTown @ Give control back to the player CallWithArg SetPlayerMacro, 0x00000000 Call NPC4E_RestoreEquippedItems - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer Wait 0x000a SetSyncFlag 0x00000002 diff --git a/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc b/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc index 952b62d8..bfcfdea3 100644 --- a/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc +++ b/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc @@ -1,7 +1,7 @@ @ Hyrule Town NPC4E Kinstone Cutscene SCRIPT_START script_Npc4EFirstKinstone BeginBlock - _0807F0B4 0x0001 + SetScrollSpeed 1 CameraTargetPlayer EndBlock script_0800F09A: diff --git a/data/scripts/cutscene/originStory/script_CutsceneOrchestratorMinishVaati.inc b/data/scripts/cutscene/originStory/script_CutsceneOrchestratorMinishVaati.inc index e18c6468..38109c0e 100644 --- a/data/scripts/cutscene/originStory/script_CutsceneOrchestratorMinishVaati.inc +++ b/data/scripts/cutscene/originStory/script_CutsceneOrchestratorMinishVaati.inc @@ -1,7 +1,7 @@ @ Ezlo Cutscene CUTSCENE_ORCHESTRATOR MinishVaati SCRIPT_START script_CutsceneOrchestratorMinishVaati BeginBlock - _0807F0B4 0x0007 + SetScrollSpeed 7 SetEntityPositionRelative 0x0078, 0x0068 CameraTargetEntity EndBlock @@ -16,7 +16,7 @@ SCRIPT_START script_CutsceneOrchestratorMinishVaati WaitForSyncFlagAndClear 0x00001000 SetSyncFlag 0x00000880 WaitForSyncFlagAndClear 0x00001100 - _0807F0B4 0x0004 + SetScrollSpeed 4 SetEntityPositionRelative 0x0078, 0x0090 MessageFromTargetPos TEXT_VAATI, 0x30, 0x0002 WaitUntilTextboxCloses diff --git a/data/scripts/cutscene/originStory/script_CutsceneOrchestratorVaatiAppears.inc b/data/scripts/cutscene/originStory/script_CutsceneOrchestratorVaatiAppears.inc index 6d3e1cbe..a04a4ef1 100644 --- a/data/scripts/cutscene/originStory/script_CutsceneOrchestratorVaatiAppears.inc +++ b/data/scripts/cutscene/originStory/script_CutsceneOrchestratorVaatiAppears.inc @@ -11,7 +11,7 @@ script_08014FCC: Call WaitForPlayerNormal Call DisablePauseMenuAndPutAwayItems StopBgm - _0807F0B4 0x0001 + SetScrollSpeed 1 CameraTargetEntity StartPlayerScript script_PlayerAtVaatisAppearance WaitForSyncFlagAndClear 0x00000001 @@ -39,7 +39,7 @@ script_08014FCC: StopBgm StartPlayerScript script_PlayerTryToFollowVaati CameraTargetEntity - _0807F0B4 0x0003 + SetScrollSpeed 3 SetEntityPositionRelative 0x01f8, 0x0148 WaitForSyncFlagAndClear 0x00000001 Call sub_0804F6A8 @@ -105,7 +105,7 @@ script_08015104: PlaySound SFX_10B Wait 0x003c PlaySound SFX_SECRET - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer SetLocalFlag SOUGEN_06_SAIKAI EzloMessage TEXT_VAATI, 0x0c @@ -120,7 +120,7 @@ script_08015104: SetPlayerIdle CallWithArg SetPlayerFlag, PL_NO_CAP MoveEntityToPlayer - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetEntity SetFadeTime 0x0100 SetFade4 @@ -139,7 +139,7 @@ script_08015104: EzloMessage TEXT_VAATI, 0x15 EndBlock WaitUntilTextboxCloses - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer Call EnableRandomDrops PlayBGM diff --git a/data/scripts/cutscene/outro/script_Npc4EFixedEverything.inc b/data/scripts/cutscene/outro/script_Npc4EFixedEverything.inc index a802c19a..53cf9705 100644 --- a/data/scripts/cutscene/outro/script_Npc4EFixedEverything.inc +++ b/data/scripts/cutscene/outro/script_Npc4EFixedEverything.inc @@ -11,7 +11,7 @@ SCRIPT_START script_Npc4EFixedEverything PlaySound SFX_APPARATE EndBlock Wait 0x0078 - _0807F0B4 0x0001 + SetScrollSpeed 1 SetEntityPositionRelative 0x0088, 0x0078 Call WaitForCameraTouchRoomBorder MessageFromTargetPos TEXT_VAATI2, 0x64, 0x0000 diff --git a/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc b/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc index d4e0b0ab..b20b5172 100644 --- a/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc +++ b/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc @@ -59,7 +59,7 @@ SCRIPT_START script_Npc4EMinishPortalClosing Call sub_0807FB94 @ Roll Credits MoveEntityToPlayer Call sub_0807F844 - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer SetSyncFlag 0x80000000 SetFade4 diff --git a/data/scripts/cutscene/takeover/script_CutsceneOrchestratorTakeoverCutscene.inc b/data/scripts/cutscene/takeover/script_CutsceneOrchestratorTakeoverCutscene.inc index 0ea36fde..5f75acdc 100644 --- a/data/scripts/cutscene/takeover/script_CutsceneOrchestratorTakeoverCutscene.inc +++ b/data/scripts/cutscene/takeover/script_CutsceneOrchestratorTakeoverCutscene.inc @@ -1,7 +1,7 @@ @ Western Wood Cutscene CUTSCENE_ORCHESTRATOR in Castle SCRIPT_START script_CutsceneOrchestratorTakeoverCutscene BeginBlock - _0807F0B4 0x0007 + SetScrollSpeed 7 SetEntityPositionRelative 0x0088, 0x0068 CameraTargetEntity EndBlock @@ -9,26 +9,26 @@ SCRIPT_START script_CutsceneOrchestratorTakeoverCutscene SetFade4 WaitForFadeFinish Wait 0x003c - _0807F0B4 0x0004 + SetScrollSpeed 4 SetEntityPositionRelative 0x0088, 0x00e0 CameraTargetEntity Wait 0x003c PlayBgm BGM_VAATI_THEME SetSyncFlag 0x00000010 WaitForSyncFlagAndClear 0x00000020 - _0807F0B4 0x0004 + SetScrollSpeed 4 SetEntityPositionRelative 0x0088, 0x0070 CameraTargetEntity Wait 0x003c SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000008 - _0807F0B4 0x0004 + SetScrollSpeed 4 SetEntityPositionRelative 0x0088, 0x00e0 CameraTargetEntity Wait 0x003c SetSyncFlag 0x00000010 WaitForSyncFlagAndClear 0x00000020 - _0807F0B4 0x0004 + SetScrollSpeed 4 SetEntityPositionRelative 0x0088, 0x0070 CameraTargetEntity Wait 0x003c diff --git a/data/scripts/dhc/script_CutsceneOrchestratorVaatiWithZelda.inc b/data/scripts/dhc/script_CutsceneOrchestratorVaatiWithZelda.inc index dcbe756b..f6743f5b 100644 --- a/data/scripts/dhc/script_CutsceneOrchestratorVaatiWithZelda.inc +++ b/data/scripts/dhc/script_CutsceneOrchestratorVaatiWithZelda.inc @@ -11,7 +11,7 @@ script_0800DA64: _0807E8E4_0 Call CreatePlayerExclamationMark Wait 0x003c - _0807F0B4 0x0004 + SetScrollSpeed 4 SetEntityPositionRelative 0x0078, 0x0080 CameraTargetEntity Call WaitForCameraTouchRoomBorder @@ -25,7 +25,7 @@ script_0800DA64: WaitUntilTextboxCloses _0807E8E4_0 CallWithArg SetPlayerPos, 0x00780138 - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer Call WaitForCameraTouchRoomBorder SetRoomFlag 0x0000 diff --git a/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc b/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc index cadcafdc..a147db33 100644 --- a/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc +++ b/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc @@ -8,7 +8,7 @@ script_0800DB7C: SetPlayerIdle Call WaitForPlayerNormal Call DisablePauseMenuAndPutAwayItems - _0807F0B4 0x0001 + SetScrollSpeed 1 SetEntityPositionRelative 0x0078, 0x0078 CameraTargetEntity Call WaitForCameraTouchRoomBorder diff --git a/data/scripts/dhc/script_Vaati1Intro.inc b/data/scripts/dhc/script_Vaati1Intro.inc index 8e7a3d72..30ea180c 100644 --- a/data/scripts/dhc/script_Vaati1Intro.inc +++ b/data/scripts/dhc/script_Vaati1Intro.inc @@ -14,7 +14,7 @@ SCRIPT_START script_Vaati1Intro Call CreatePlayerExclamationMark Wait 0x003c _0807E8E4_0 - _0807F0B4 0x0001 + SetScrollSpeed 1 CameraTargetEntity Call WaitForCameraTouchRoomBorder Call Vaati_Apparate @@ -29,7 +29,7 @@ SCRIPT_START script_Vaati1Intro SetRoomFlag 0x0000 DoPostScriptAction 0x0008 Wait 0x0080 - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer Call WaitForCameraTouchRoomBorder SetLocalFlag 0x0078 diff --git a/data/scripts/hyruleTown/script_CutsceneOrchestratorAllBooksCollected.inc b/data/scripts/hyruleTown/script_CutsceneOrchestratorAllBooksCollected.inc index 148ddcf9..133c4a9e 100644 --- a/data/scripts/hyruleTown/script_CutsceneOrchestratorAllBooksCollected.inc +++ b/data/scripts/hyruleTown/script_CutsceneOrchestratorAllBooksCollected.inc @@ -2,14 +2,14 @@ SCRIPT_START script_CutsceneOrchestratorAllBooksCollected BeginBlock SetEntityPositionRelative 0x0068, 0x0068 - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetEntity EndBlock Wait 0x001e SetSyncFlag 0x00000002 WaitForSyncFlag 0x00000001 Wait 0x000f - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer Wait 0x001e SetSyncFlag 0x00000004 diff --git a/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc b/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc index cd82075c..afa05cc5 100644 --- a/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc +++ b/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc @@ -3,7 +3,7 @@ SCRIPT_START script_Npc4EFinalSwordRumble Call CreatePlayerExclamationMark Wait 0x003c .ifdef EU - _0807F0B4 0x0007 + SetScrollSpeed 7 SetEntityPositionRelative 0x00e8, 0x00a8 CameraTargetEntity Wait 0x003c @@ -13,19 +13,19 @@ SCRIPT_START script_Npc4EFinalSwordRumble CallWithArg DeleteRepeatedSoundManager, 0x00000001 _0807F0C8 0x0000, 0x0000 Wait 0x003c - _0807F0B4 0x0004 + SetScrollSpeed 4 SetEntityPositionRelative 0x00e8, 0x0050 CameraTargetEntity Wait 0x003c LoadRoomEntityList gUnk_080F55D8 Wait 0x0078 - _0807F0B4 0x0007 + SetScrollSpeed 7 MoveEntityToPlayer CameraTargetEntity Wait 0x003c EzloMessage TEXT_PANEL_TUTORIAL, 0x02 WaitUntilTextboxCloses - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer SetLocalFlag 0x007c Call sub_08053250 diff --git a/data/scripts/sanctuary/script_Npc4ESanctuaryIntro.inc b/data/scripts/sanctuary/script_Npc4ESanctuaryIntro.inc index 7fac00e4..c79401b8 100644 --- a/data/scripts/sanctuary/script_Npc4ESanctuaryIntro.inc +++ b/data/scripts/sanctuary/script_Npc4ESanctuaryIntro.inc @@ -9,12 +9,12 @@ script_08013CA6: Call DisablePauseMenuAndPutAwayItems Call CreatePlayerExclamationMark Wait 0x003c - _0807F0B4 0x0001 + SetScrollSpeed 1 SetEntityPositionRelative 0x00e8, 0x0138 CameraTargetEntity Call WaitForCameraTouchRoomBorder Wait 0x0078 - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer Call WaitForCameraTouchRoomBorder EzloMessage TEXT_PANEL_TUTORIAL, 0x04 diff --git a/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc b/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc index ed7ce571..97e1d836 100644 --- a/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc +++ b/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Npc4ESpawnTextBoard Call CreatePlayerExclamationMark Wait 0x003c - _0807F0B4 0x0007 + SetScrollSpeed 7 SetEntityPositionRelative 0x00e8, 0x00a8 CameraTargetEntity Wait 0x003c @@ -14,7 +14,7 @@ SCRIPT_START script_Npc4ESpawnTextBoard WaitForSyncFlagAndClear 0x00000002 EzloMessage TEXT_PANEL_TUTORIAL, 0x01 WaitUntilTextboxCloses - _0807F0B4 0x0004 + SetScrollSpeed 4 CameraTargetPlayer SetLocalFlag 0x007a Call sub_08053250 diff --git a/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc b/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc index 3bab3e34..abe02e5b 100644 --- a/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc +++ b/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc @@ -79,7 +79,7 @@ script_080138D0: WaitUntilTextboxCloses SetSyncFlag 0x00040000 .ifndef EU - _0807F0B4 0x0002 + SetScrollSpeed 2 SetEntityPositionRelative 0x00e8, 0x00d8 CameraTargetEntity .endif diff --git a/data/scripts/unused/script_08016482.inc b/data/scripts/unused/script_08016482.inc index e6357030..be00febe 100644 --- a/data/scripts/unused/script_08016482.inc +++ b/data/scripts/unused/script_08016482.inc @@ -75,7 +75,7 @@ SCRIPT_START script_08016482 InitItemGetSequence ITEM_SMITH_SWORD CameraTargetEntity CameraTargetPlayer - _0807F0B4 0x0007 + SetScrollSpeed 7 _0807F0C8 0x003c, 0x0003 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/veilFalls/script_BigGoron3.inc b/data/scripts/veilFalls/script_BigGoron3.inc index c3d78354..1fa9e8d7 100644 --- a/data/scripts/veilFalls/script_BigGoron3.inc +++ b/data/scripts/veilFalls/script_BigGoron3.inc @@ -9,7 +9,7 @@ script_0800934E: SetPlayerIdle Call DisablePauseMenuAndPutAwayItems Call sub_0806D638 - _0807F0B4 0x0001 + SetScrollSpeed 1 CameraTargetEntity CheckGlobalFlag GAMECLEAR JumpIf script_BigGoronTalk @@ -18,10 +18,10 @@ script_0800934E: script_08009376: WaitUntilTextboxCloses Call sub_0806D640 - _0807F0B4 0x0001 + SetScrollSpeed 1 CameraTargetPlayer Wait 0x002d - _0807F0B4 0x0004 + SetScrollSpeed 4 EnablePlayerControl Call EnablePauseMenu Jump script_0800934E diff --git a/include/beanstalkSubtask.h b/include/beanstalkSubtask.h index 15348f87..3f7d452c 100644 --- a/include/beanstalkSubtask.h +++ b/include/beanstalkSubtask.h @@ -18,4 +18,10 @@ typedef struct { u16 tileIndex; } struct_080B44D0; +typedef struct { + u32 src; + void* dest; + u32 size; +} struct_08109194; + #endif // BEANSTALKSUBTASK_H diff --git a/include/color.h b/include/color.h index fc99cdf8..eaebb6a6 100644 --- a/include/color.h +++ b/include/color.h @@ -7,7 +7,7 @@ typedef struct { u8 _0_0 : 4; u8 _0_4 : 4; u8 _1; - u16 _2; + u16 objPaletteId; } Palette; extern Palette gPaletteList[0x10]; diff --git a/include/common.h b/include/common.h index ce4a0968..5d68679b 100644 --- a/include/common.h +++ b/include/common.h @@ -17,24 +17,7 @@ typedef struct { } Input; extern Input gInput; /**< Input instance. */ -typedef struct { - u8 evt_type; - u8 entity_idx; - u8 area; - u8 room; - u16 _4; - u16 _6; - u16 x; - u16 y; - u16 _c; - u16 _e; - u8 _10; - u8 _11; - u16 flag; -} struct_080FE320; -extern struct_080FE320 gUnk_080FE320[]; - -void LoadPalettes(const u8*, s32, s32); +void LoadPalettes(const u8* src, s32 destPaletteNum, s32 numPalettes); /** * Loads a packed group of palettes. diff --git a/include/cutscene.h b/include/cutscene.h new file mode 100644 index 00000000..4b6b6cfc --- /dev/null +++ b/include/cutscene.h @@ -0,0 +1,23 @@ +#ifndef CUTSCENE_H +#define CUTSCENE_H + +#include "room.h" + +typedef struct { + const EntityData* entityData; + u8 area; + u8 room; + s8 scrollX; + s8 scrollY; +} struct_080FCF04; + +typedef struct { + const EntityData* entityData1; + const EntityData* entityData2; + u8 area; + u8 room; + s8 scrollX; + s8 scrollY; +} struct_080FCFB8; + +#endif // CUTSCENE_H diff --git a/include/enemyUtils.h b/include/enemyUtils.h new file mode 100644 index 00000000..869e58a1 --- /dev/null +++ b/include/enemyUtils.h @@ -0,0 +1,11 @@ +#ifndef ENEMYUTILS_H +#define ENEMYUTILS_H + +#include "global.h" + +typedef struct { + u8 unk_0; + u8 unk_1; +} PACKED struct_080D3D94; + +#endif // ENEMYUTILS_H diff --git a/include/enterPortalSubtask.h b/include/enterPortalSubtask.h new file mode 100644 index 00000000..ead7a1e0 --- /dev/null +++ b/include/enterPortalSubtask.h @@ -0,0 +1,11 @@ +#ifndef ENTERPORTALSUBTASK_H +#define ENTERPORTALSUBTASK_H + +#include "global.h" + +typedef struct { + u8 paletteGroup; + u8 gfxGroup; +} PACKED struct_080D4138; + +#endif // ENTERPORTALSUBTASK_H diff --git a/include/entity.h b/include/entity.h index 9c06ff5d..78dcde47 100644 --- a/include/entity.h +++ b/include/entity.h @@ -254,7 +254,7 @@ void InitAnimationForceUpdate(Entity* entity, u32 animIndex); void UpdateAnimationSingleFrame(Entity* entity); void UpdateSpriteForCollisionLayer(Entity* entity); void GetNextFrame(Entity* entity); -u32 LoadExtraSpriteData(Entity* entity, const SpriteLoadData* spriteData); +bool32 LoadExtraSpriteData(Entity* entity, const SpriteLoadData* spriteData); void SetExtraSpriteFrame(Entity*, u32, u32); void SetSpriteSubEntryOffsetData1(Entity*, u32, u32); void SetSpriteSubEntryOffsetData2(Entity*, u32, u32); @@ -549,5 +549,9 @@ extern u8 gManagerCount; #define Direction8FromAnimationState(expr) ((expr) << 2) ///@} + + +extern void DeleteAllEntities(void); + #endif // ENTITY_H // clang-format on diff --git a/include/figurineMenu.h b/include/figurineMenu.h new file mode 100644 index 00000000..3f2fd835 --- /dev/null +++ b/include/figurineMenu.h @@ -0,0 +1,32 @@ +#ifndef FIGURINEMENU_H +#define FIGURINEMENU_H + +#include "global.h" + +typedef struct { + u8 paletteGroup; + u8 gfxGroup; + u16 unk2; + u16 bg1Control; + u16 bg2Control; +} struct_08128AD8; + +enum enum_080FC3E4 { + // CheckLocalFlagByBank + UNK_6_8 = 8, + UNK_6_40 = 0x40, // 64 + // CheckKinstoneFused + UNK_6_10 = 0x10, // 16 + // CheckKinstoneFused multiple with unk_4 as index + UNK_6_20 = 0x20, // 32 +}; + +typedef struct { + u32 bank; + u16 flag; + u8 unk_6; /**< @see enum_080FC3E4 */ + u8 type; /**< Type of the OBJECT_A2 that is spawned. */ +} struct_080FC3E4; +extern const struct_080FC3E4 gUnk_080FC3E4[]; + +#endif // FIGURINEMENU_H diff --git a/include/fileselect.h b/include/fileselect.h index 8e75cbc0..29923481 100644 --- a/include/fileselect.h +++ b/include/fileselect.h @@ -52,7 +52,7 @@ extern struct_02019EE0 gMapDataBottomSpecial; // TODO size: 0x8000 from ClearTilemaps? extern void sub_08056FEC(u32, struct_020227E8*); -extern u32 sub_0805F46C(u32, const Font*); +extern u32 ShowTextBox(u32 textIndexOrPtr, const Font* font); extern void ClearTilemaps(void); extern void ResetSaveFile(u32); extern WStruct* sub_0805F2C8(void); @@ -67,7 +67,6 @@ extern const Font gUnk_080FC844; extern const u16 gUnk_080FC85C[][3]; extern void (*const gUnk_080FC908[])(void); extern const u8 gGlobalGfxAndPalettes[]; -extern void (*const gUnk_080FC93C[])(); extern u32 gUsedPalettes; extern u8 gTextGfxBuffer[]; extern u8 gUnk_02022030; diff --git a/include/functions.h b/include/functions.h index b526cb06..0e7b79f8 100644 --- a/include/functions.h +++ b/include/functions.h @@ -21,12 +21,12 @@ extern void CreateItemOnGround(Entity*); extern void CreateMagicSparkles(u32, u32, u32); extern void CreateMinishEntrance(u32 tile); extern u32 CreateRandomItemDrop(Entity*, u32); -extern void DrawDirect(u32, u32); +extern void DrawDirect(u32 spriteIndex, u32 frameIndex); extern void DrawEntities(void); extern bool32 EntityWithinDistance(Entity*, s32, s32, s32); extern void FlushSprites(void); extern LayerStruct* GetLayerByIndex(u32); -extern u32 GetTileIndex(u32, u32); +extern u32 GetTileIndex(u32 tilePos, u32 layer); extern u32 GiveItem(u32, u32); extern bool32 LoadFixedGFX(Entity*, u32); extern void LoadResources(void); @@ -45,6 +45,8 @@ extern void TryLoadPrologueHyruleTown(void); extern void UnloadGFXSlots(Entity*); extern void UnloadOBJPalette(Entity*); extern void UpdateDisplayControls(void); +extern void ClearBgAnimations(void); +extern void SetBGDefaults(void); // Unidentified extern void sub_08000148(u32, u32, u32); @@ -90,7 +92,7 @@ extern void sub_08057688(void); extern void sub_080580B0(u32); extern void sub_08058324(u32); extern void sub_08059278(void); -extern void sub_0805B4D0(u32); +extern void LoadStaticBackground(u32); extern void sub_0805BC4C(void); extern void sub_0805EC60(Entity*); extern void InitPlayerMacro(PlayerMacroEntry*); diff --git a/include/game.h b/include/game.h index e3d9922e..0bdc45e2 100644 --- a/include/game.h +++ b/include/game.h @@ -3,6 +3,7 @@ #include "global.h" #include "area.h" +#include "structures.h" /** * Change the light level of the room. @@ -83,7 +84,10 @@ u32 AreaAllowsWarp(void); void sub_08052878(void); #endif -void sub_080526F8(s32 a1); +/** + * Modify the number of keys the player has for the current dungeon. + */ +void ModDungeonKeys(s32 keys); /** * Check if the current dungeon has a map item. @@ -295,4 +299,60 @@ typedef struct { } struct_08127F94; extern struct_08127F94 gUnk_08127F94[]; +typedef struct { + const Font* font; + u16 width; + u16 height; + u16 transitionTimer; + u16 fadeSpeed; +} struct_080FCCB4; + +typedef struct { + u16 itemPrice; + u16 unused; + u16 saleItemConfirmMessageId; + u16 gotItemMessageId; +} struct_080FD964; +extern const struct_080FD964 gUnk_080FD964[]; + +// Defined in gameUtils.c +extern void ResetTmpFlags(void); +extern void UpdateFakeScroll(void); +extern void UpdatePlayerMapCoords(void); +extern void CreateMiscManager(void); +extern void CheckAreaDiscovery(void); +extern void UpdateTimerCallbacks(void); +extern void DecreasePortalTimer(void); +extern bool32 CheckRoomExit(void); +extern bool32 CheckGameOver(void); +extern void InitializePlayer(void); +extern void LoadRoomBgm(void); +extern void sub_0805329C(void); +extern void UpdatePlayerRoomStatus(void); +extern void sub_08054524(void); +extern void sub_08052FF4(u32 area, u32 room); +extern void InitScriptData(void); +extern void LoadItemGfx(void); + +// Defined in playerUtils.c +extern void CloneMapData(void); +extern void InitializeCamera(void); +extern void ForceSetPlayerState(u32); + +extern void sub_080186D4(void); +extern void sub_0806F364(void); +extern void UpdateRoomTracker(void); +extern void GenerateAreaHint(void); +extern void sub_0801AE44(bool32 loadGfx); +extern void sub_080ADE24(void); +extern void CleanUpGFXSlots(void); +void sub_08051F9C(u32 a1, u32 a2, u32 a3, u32 a4); +extern void UpdateBgAnimations(void); +extern void UpdateScroll(void); +extern void sub_08018710(u32); +extern void sub_0806F38C(void); +extern void sub_08052010(void); +void ModArrows(s32); +bool32 ItemIsBottle(u32); +void ModShells(s32); #endif // GAME_H diff --git a/include/global.h b/include/global.h index 08ef97f4..6126b24a 100644 --- a/include/global.h +++ b/include/global.h @@ -4,6 +4,9 @@ /** * @defgroup Tasks Tasks * @defgroup Subtasks Subtasks + * @brief Subtasks override the game task for short periods. + * @defgroup WorldEvents World Events + * @brief Cutscenes that happen after a kinstone fusion. */ /** @@ -18,7 +21,7 @@ * @defgroup NPCs NPCs * @defgroup Items Items * @defgroup Managers Managers - * @brief Entities with a smaller footprint of 0x40 bytes + * @brief Entities with a smaller footprint of 0x40 bytes. */ ///@} @@ -99,6 +102,11 @@ typedef union { } HALF; } Coords; +typedef struct { + s8 x; + s8 y; +} PACKED Coords8; + union SplitWord { s32 WORD; u32 WORD_U; diff --git a/include/hitbox.h b/include/hitbox.h index bf0916f0..b9cb5ec8 100644 --- a/include/hitbox.h +++ b/include/hitbox.h @@ -22,40 +22,36 @@ extern const Hitbox gHitbox_15; extern const Hitbox gHitbox_16; extern const Hitbox gHitbox_17; extern const Hitbox gHitbox_18; -extern const Hitbox gHitbox_19; +extern const Hitbox3D gHitbox_19; extern const Hitbox gHitbox_20; extern const Hitbox gHitbox_21; extern const Hitbox gHitbox_22; extern const Hitbox gHitbox_23; extern const Hitbox gHitbox_24; -extern const Hitbox gHitbox_25; -extern const Hitbox gHitbox_26; +extern const Hitbox3D gHitbox_25; +extern const Hitbox3D gHitbox_26; extern const Hitbox gHitbox_27; -extern const Hitbox gHitbox_28; +extern const Hitbox3D gHitbox_28; extern const Hitbox gHitbox_29; extern const Hitbox gHitbox_30; extern const Hitbox gHitbox_31; extern const Hitbox gHitbox_32; +extern const Hitbox gUnk_080FD178; extern const Hitbox gUnk_080FD190; -extern const Hitbox gUnk_080FD1A8; -extern const Hitbox gUnk_080FD1A8; -extern const Hitbox gUnk_080FD1A8; -extern const Hitbox gUnk_080FD1A8; +extern const Hitbox3D gUnk_080FD1A8; extern const Hitbox gUnk_080FD1B4; extern const Hitbox gUnk_080FD1D4; extern const Hitbox gUnk_080FD1DC; extern const Hitbox gUnk_080FD1E4; -extern const Hitbox gUnk_080FD1E4; extern const Hitbox gUnk_080FD1EC; extern const Hitbox gUnk_080FD1F4; -extern const Hitbox gUnk_080FD1F4; extern const Hitbox gUnk_080FD1FC; extern const Hitbox gUnk_080FD204; extern const Hitbox gUnk_080FD20C; extern const Hitbox gUnk_080FD214; extern const Hitbox gUnk_080FD21C; extern const Hitbox gUnk_080FD224; -extern const Hitbox gUnk_080FD22C; +extern const Hitbox3D gUnk_080FD22C; extern const Hitbox gUnk_080FD238; extern const Hitbox gUnk_080FD240; extern const Hitbox gUnk_080FD248; @@ -64,6 +60,7 @@ extern const Hitbox gUnk_080FD260; extern const Hitbox gUnk_080FD270; extern const Hitbox gUnk_080FD278; extern const Hitbox gUnk_080FD280; +extern const Hitbox gUnk_080FD288; extern const Hitbox gUnk_080FD290; extern const Hitbox gUnk_080FD298; extern const Hitbox gUnk_080FD2A0; @@ -71,21 +68,19 @@ extern const Hitbox gUnk_080FD2A8; extern const Hitbox gUnk_080FD2D0; extern const Hitbox gUnk_080FD2D8; extern const Hitbox gUnk_080FD2E0; +extern const Hitbox gUnk_080FD2E8; extern const Hitbox gUnk_080FD2F0; extern const Hitbox gUnk_080FD308; extern const Hitbox gUnk_080FD310; extern const Hitbox gUnk_080FD320; extern const Hitbox gUnk_080FD328; extern const Hitbox gUnk_080FD330; -extern const Hitbox gUnk_080FD340; -extern const Hitbox gUnk_080FD340; +extern const Hitbox3D gUnk_080FD340; extern const Hitbox gUnk_080FD34C; extern const Hitbox gUnk_080FD354; extern const Hitbox gUnk_080FD35C; -extern const Hitbox gUnk_080FD35C; extern const Hitbox gUnk_080FD364; extern const Hitbox gUnk_080FD36C; -extern const Hitbox gUnk_080FD36C; extern const Hitbox gUnk_080FD374; extern const Hitbox gUnk_080FD37C; extern const Hitbox gUnk_080FD384; @@ -102,13 +97,13 @@ extern const Hitbox gUnk_080FD3DC; extern const Hitbox gUnk_080FD3E4; extern const Hitbox gUnk_080FD3EC; extern const Hitbox gUnk_080FD3F4; -extern const Hitbox gUnk_080FD3FC; +extern const Hitbox3D gUnk_080FD3FC; extern const Hitbox gUnk_080FD408; extern const Hitbox gUnk_080FD41C; extern const Hitbox gUnk_080FD424; extern const Hitbox gUnk_080FD42C; extern const Hitbox gUnk_080FD434; -extern const Hitbox gUnk_080FD43C; +extern const Hitbox3D gUnk_080FD43C; extern const Hitbox gUnk_080FD450; extern const Hitbox gUnk_080FD488; extern const Hitbox gUnk_080FD490; @@ -127,8 +122,7 @@ extern const Hitbox gUnk_080FD510; extern const Hitbox gUnk_080FD518; extern const Hitbox gUnk_080FD520; extern const Hitbox gUnk_080FD530; -extern const Hitbox gUnk_080FD538; -extern const Hitbox gUnk_080FD538; +extern const Hitbox3D gUnk_080FD538; extern const Hitbox gUnk_080FD544; extern const Hitbox gUnk_080FD558; extern const Hitbox gUnk_080FD560; diff --git a/include/itemMetaData.h b/include/itemMetaData.h index fca0ef69..761d5d22 100644 --- a/include/itemMetaData.h +++ b/include/itemMetaData.h @@ -28,7 +28,7 @@ typedef enum { typedef struct ItemMetaData { u8 menuSlot; u8 unk1; - u8 unk2; + u8 unk2; // parameter? number of bombs, type of dungeon item u8 unk3; // flags? bit 0x2 makes pickup cutscene appear every time u8 textId; u8 textCategory; diff --git a/include/kinstone.h b/include/kinstone.h index 663b5347..f8073cf4 100644 --- a/include/kinstone.h +++ b/include/kinstone.h @@ -10,7 +10,7 @@ typedef struct { u8 _0; u8 action; u8 _2; - u8 _3; + u8 kinstoneId; u8 prevUpdatePriority; u8 _5; u16 textIndex; @@ -22,16 +22,17 @@ static_assert(sizeof(FuseInfo) == 0x10); extern FuseInfo gFuseInfo; typedef struct { - u8 unk0; + u8 objPalette; u8 unk1; u8 unk2; - u8 unk3; - u8 evt_type; + u8 subtask; // SUBTASK_WORLDEVENT or 0 + u8 worldEventId; u8 unk5; u8 unk6; - u8 unk7; -} struct_080C9CBC; -extern const struct_080C9CBC gUnk_080C9CBC[]; + u8 unk7; // TODO flag if it shows a map hint? +} KinstoneWorldEvent; +// Indexed by kinstoneId +extern const KinstoneWorldEvent gKinstoneWorldEvents[]; typedef enum { KINSTONE_0, @@ -130,7 +131,7 @@ typedef enum { KINSTONE_5D, KINSTONE_5E, KINSTONE_5F, -} KinstoneFlag; +} KinstoneId; typedef struct { u8 unk0; /**< Bank or 0xfd or 0xfe or 0xff */ @@ -139,4 +140,79 @@ typedef struct { u8 unk3; /**< Offset on the gfx id? */ } struct_gUnk_080B3D20; +enum { + WORLD_EVENT_0, + WORLD_EVENT_1, + WORLD_EVENT_2, + WORLD_EVENT_3, + WORLD_EVENT_4, + WORLD_EVENT_5, + // TODO add all and use them in gKinstoneWorldEvents +} worldEventId; + +enum { + CND_0, + /**< Always false. */ // CND_FALSE + CND_1, // local flag // CND_FLAG + CND_2, // f CND_INVENTORY != 0 + CND_3, // 0x10 CND_INVENTORY == 1 + CND_4, // 0x11 CND_INVENTORY == 2 + CND_5, // SORA_10_H00 + CND_6, // SORA_11_H00 + CND_7, // SORA_12_T00 + CND_8, // SORA_13_H00 + CND_9, // SORA_14_T00 + CND_10, // KS_B15 +} WorldEvent_Condition; + +enum { + WORLD_EVENT_TYPE_0, // Does nothing + WORLD_EVENT_TYPE_1, // LoadRoomEntity after checking GlobalFlag + WORLD_EVENT_TYPE_2, // sub_08018BB4 + WORLD_EVENT_TYPE_3, // LoadRoomEntity after checking InventoryValue + WORLD_EVENT_TYPE_4, // sub_08018A58 + WORLD_EVENT_TYPE_5, // sub_08018B50 + WORLD_EVENT_TYPE_6, // sub_08018AB4 + WORLD_EVENT_TYPE_7, // LoadRoomEntity or sub_080189EC + WORLD_EVENT_TYPE_8, // set a tile type + WORLD_EVENT_TYPE_9, // LoadRoomEntity and set some tile type + WORLD_EVENT_TYPE_BEANSTALK, + WORLD_EVENT_TYPE_11, // LoadRoomEntity and set gRoomVars.field_0x8c + WORLD_EVENT_TYPE_12, + WORLD_EVENT_TYPE_13, + WORLD_EVENT_TYPE_14, + WORLD_EVENT_TYPE_15, // Load different room entity depending on if fused + WORLD_EVENT_TYPE_16, + WORLD_EVENT_TYPE_17, // Set local flag, LoadroomEntityList + WORLD_EVENT_TYPE_18, + WORLD_EVENT_TYPE_19, + WORLD_EVENT_TYPE_20, + WORLD_EVENT_TYPE_21, + WORLD_EVENT_TYPE_22, + WORLD_EVENT_TYPE_23, + WORLD_EVENT_TYPE_24, // LoadRoomEntityList + WORLD_EVENT_TYPE_25, // LoadRoomEntity, set type depending of if kinstone is fused + // The following do nothing. + WORLD_EVENT_TYPE_26, + WORLD_EVENT_TYPE_27, + WORLD_EVENT_TYPE_28 +} WorldEventType; + +typedef struct { + u8 type; + u8 entity_idx; + u8 area; + u8 room; + u16 offsetX; /**< Scroll offset X from the room origin. */ + u16 offsetY; /**< Scroll offset Y from the room origin. */ + u16 x; /**< X position of the actual event. */ + u16 y; /**< Y position of the actual event. */ + u16 _c; // see sub_080A6A80, related to _0 and _2 of gUnk_08127F94 + u16 _e; // see sub_080A6A80, related to _1 and _3 of gUnk_08127F94 + u8 condition; // TODO some sort of flag determining what type the bank&flag are? see sub_0801E8D4 + u8 bank; /**< @see LocalBanks */ + u16 flag; +} WorldEvent; +extern const WorldEvent gWorldEvents[]; + #endif // KINSTONE_H diff --git a/include/menu.h b/include/menu.h index 04501df6..0aab144a 100644 --- a/include/menu.h +++ b/include/menu.h @@ -126,4 +126,6 @@ extern Menu gMenu; #define gFigurineMenu (*(FigurineMenu*)&gMenu) #define gPauseMenu (*(PauseMenu*)&gMenu) +extern u8 gUpdateVisibleTiles; + #endif // MENU_H diff --git a/include/pauseMenu.h b/include/pauseMenu.h new file mode 100644 index 00000000..1197b2f3 --- /dev/null +++ b/include/pauseMenu.h @@ -0,0 +1,43 @@ +#ifndef PAUSEMENU_H +#define PAUSEMENU_H + +#include "subtask.h" + +Subtask PauseMenu_Variant0; +Subtask PauseMenu_Variant1; +Subtask PauseMenu_Variant2; +Subtask PauseMenu_Variant3; +Subtask PauseMenu_Variant4; +Subtask PauseMenu_Variant5; + +Subtask PauseMenu_ItemMenu; +Subtask PauseMenu_ItemMenu_Draw; +Subtask PauseMenu_ItemMenu_Init; +Subtask PauseMenu_ItemMenu_Update; + +Subtask PauseMenu2; + +typedef enum { + PauseMenuScreen_0, + PauseMenuScreen_1, // Items + PauseMenuScreen_2, // Quest Status + PauseMenuScreen_3, + PauseMenuScreen_4, // Map + PauseMenuScreen_5, + PauseMenuScreen_6, // Map Detail + PauseMenuScreen_7, // Kinstone Pieces + PauseMenuScreen_8, // Sword Techniques + PauseMenuScreen_9, + PauseMenuScreen_10, + PauseMenuScreen_11, + PauseMenuScreen_12, + PauseMenuScreen_13, + PauseMenuScreen_14, + PauseMenuScreen_15, + PauseMenuScreen_16, + PauseMenuScreen_17, + PauseMenuScreen_18, + PauseMenuScreen_19, +} PauseMenuScreen; + +#endif // PAUSEMENU_H diff --git a/include/player.h b/include/player.h index 59054cd1..e0cbdcfc 100644 --- a/include/player.h +++ b/include/player.h @@ -398,9 +398,9 @@ typedef struct { extern void (*const gPlayerItemFunctions[])(Entity*); -extern u8 gBombBagSizes[]; -extern u8 gQuiverSizes[]; -extern u16 gWalletSizes[]; +extern const s16 gWalletSizes[]; +extern const u8 gBombBagSizes[]; +extern const u8 gQuiverSizes[]; extern Entity* gPlayerClones[]; extern PlayerState gPlayerState; @@ -541,7 +541,7 @@ extern void sub_08008AC6(Entity*); extern void sub_08008AA0(Entity*); // zelda.c -void SetZeldaFollowTarget(Entity*); +void SetZeldaFollowTarget(Entity* target); #define COPY_FLAG_FROM_TO(base, src, dest) (base) = ((base) & ~(dest)) | (((dest) * ((base) & (src))) / src) diff --git a/include/room.h b/include/room.h index d5cc5c81..0da81c3e 100644 --- a/include/room.h +++ b/include/room.h @@ -25,30 +25,33 @@ enum RoomReloadType { typedef struct { /*0x00*/ u16 reload_flags; - /*0x02*/ u8 unk3; - /*0x03*/ u8 unk4; + /*0x02*/ u8 scrollAction; + /*0x03*/ u8 scrollSubAction; /*0x04*/ u8 area; /*0x05*/ u8 room; /*0x06*/ u16 origin_x; /*0x08*/ u16 origin_y; /*0x0A*/ s16 scroll_x; /*0x0C*/ s16 scroll_y; - /*0x0E*/ u8 unk5; + /*0x0E*/ u8 scrollSpeed; /**< Pixels per frame that the camera can scroll. */ /*0x0F*/ u8 scroll_flags; // 0x2 = ??, 0x4 = camera scrolling /*0x10*/ u8 scroll_direction; /*0x11*/ s8 oam_offset_x; /*0x12*/ s8 oam_offset_y; - /*0x13*/ u8 unk13; + /*0x13*/ u8 unk_13; /*0x14*/ u8 shake_magnitude; - /*0x15*/ u8 unk7; + /*0x15*/ u8 unk_15; /*0x16*/ u16 shake_duration; - /*0x18*/ u16 filler2[3]; + /*0x18*/ u16 unk_18; // progress during transition in same area? + /*0x1A*/ u16 unk_1a; // calculated from unk_18 + /*0x1C*/ u16 unk_1c; // 0, 0xff /*0x1E*/ u16 width; /*0x20*/ u16 height; - /*0x22*/ u16 filler3; + /*0x22*/ u16 unk_22; // so far always 0xffff /*0x24*/ s8 aff_x; /*0x25*/ s8 aff_y; - /*0x26*/ u8 filler26[2]; + /*0x26*/ u8 unk_26; + /*0x27*/ u8 unk_27; /*0x28*/ union SplitWord bg3OffsetX; /*0x2C*/ union SplitWord bg3OffsetY; /*0x30*/ Entity* camera_target; @@ -220,7 +223,7 @@ typedef enum { extern void** gCurrentRoomProperties; -void SetTileType(u32, u32, u32); +void SetTileType(u32 tileType, u32 position, u32 layer); void InitScreenShake(u32 time, u32 magnitude); void CallRoomProp5And7(void); @@ -230,6 +233,7 @@ void* GetCurrentRoomProperty(u32); void LoadRoomTileEntities(); Entity* LoadRoomEntity(const EntityData*); void LoadRoomEntityList(const EntityData* listPtr); +void* GetRoomProperty(u32 area, u32 room, u32 property); bool32 LoadFixedGFX(Entity*, u32); void UnloadGFXSlots(Entity*); diff --git a/include/save.h b/include/save.h index 2a188366..5fe9c04b 100644 --- a/include/save.h +++ b/include/save.h @@ -39,7 +39,7 @@ typedef struct { /*0x003*/ u8 brightness; /**< Brightness. */ /*0x004*/ u8 filler4[0x2]; /*0x006*/ u8 saw_staffroll; - /*0x007*/ u8 unk7; + /*0x007*/ u8 unk7; // TODO rolling barrel state? /*0x008*/ u8 global_progress; /**< @see UpdateGlobalProgress */ /*0x009*/ u8 field_0x9[0x17]; /*0x020*/ u16 field_0x20; @@ -55,19 +55,19 @@ typedef struct { /*0x088*/ PlayerRoomStatus saved_status; /**< Player room status. */ /*0x0A8*/ Stats stats; /**< Player stats. */ /*0x0D0*/ u8 fillerD0[34]; - u8 inventory[36]; + /*0x0F2*/ u8 inventory[36]; /*0x116*/ u8 didAllFusions; - /*0x117*/ u8 unk117; - /*0x118*/ u8 unk118[0x13]; - /*0x12B*/ u8 unk12B[0x16]; - /*0x141*/ u8 unk141[128]; - /*0x1C1*/ u8 unk1C1[128]; - /*0x241*/ u8 unk241[13]; - /*0x24E*/ u8 unk24E[14]; - /*0x25C*/ u8 flags[0x200]; /**< Flags. */ - /*0x45C*/ u8 unk45C[0x10]; - /*0x46C*/ u8 unk46C[0x10]; - /*0x46C*/ u8 unk47C[0x10]; + /*0x117*/ u8 fusedKinstoneCount; + /*0x118*/ u8 unk118[0x13]; // TODO also related to kinstones + /*0x12B*/ u8 unk12B[0x16]; // TODO also related to kinstones + /*0x141*/ u8 unk141[128]; // TODO sub_08064F28 and also the goddesses, indexed by sub_08002632 + /*0x1C1*/ u8 unk1C1[128]; // TODO also related to kinstones, see sub_0801E6C8 0x80 available kinstone fusions? + /*0x241*/ u8 fusedKinstones[13]; /**< Bitfield for fused kinstones. @see CheckKinstoneFused */ + /*0x24E*/ u8 unk24E[14]; // TODO something else with kinstones @see sub_0801E810 + /*0x25C*/ u8 flags[0x200]; /**< Flags. */ + /*0x45C*/ u8 dungeonKeys[0x10]; // TODO Indexed by dungeon id, keys per dungeon + /*0x46C*/ u8 dungeonItems[0x10]; // TODO items in the dungeon. 4: compass, 2: big key, 1: small key + /*0x46C*/ u8 dungeonWarps[0x10]; // TODO indexed by dungeon id, EnableDungeonWarp, IsDungeonWarpActive /*0x48C*/ u32 timers[7]; /*0x4A8*/ u32 demo_timer; /**< Demo timer. */ /*0x4AC*/ u8 filler4ac[0x8]; diff --git a/include/script.h b/include/script.h index a040b755..c6e41f17 100644 --- a/include/script.h +++ b/include/script.h @@ -11,8 +11,10 @@ enum SetMessageValueIndex { SMV_FIELD_0X1C, }; +typedef u16 Script; + typedef struct ScriptExecutionContext { - /*0x00*/ u16* scriptInstructionPointer; + /*0x00*/ Script* scriptInstructionPointer; /*0x04*/ u32 intVariable; /*0x08*/ u32 postScriptActions; /*0x0C*/ u8 unk_0C[0x4]; // unused @@ -47,18 +49,19 @@ extern u32 GetNextScriptCommandWordAfterCommandMetadata(u16*); extern u32 GetNextScriptCommandHalfwordAfterCommandMetadata(u16*); void UnloadCutsceneData(Entity* entity); -void StartPlayerScript(u16*); +void StartPlayerScript(Script* script); void sub_0807DD50(Entity* entity); void sub_0807DD64(Entity* entity); -void sub_0807DD80(Entity* entity, u16* script); +void sub_0807DD80(Entity* entity, Script* script); void sub_0807DEDC(Entity*, ScriptExecutionContext*, u32, u32); -ScriptExecutionContext* StartCutscene(Entity* entity, u16* script); +ScriptExecutionContext* StartCutscene(Entity* entity, Script* script); void ExecuteScriptForEntity(Entity* entity, void (*postScriptCallback)(Entity*, ScriptExecutionContext*)); void HandlePostScriptActions(Entity* entity, ScriptExecutionContext* context); void HandleEntity0x82Actions(Entity* entity); void sub_0807DD94(Entity*, void (*function)(Entity*, ScriptExecutionContext*)); ScriptExecutionContext* CreateScriptExecutionContext(void); -void InitScriptForEntity(Entity* entity, ScriptExecutionContext* context, u16* script); +void InitScriptForEntity(Entity* entity, ScriptExecutionContext* context, Script* script); + #endif // SCRIPT_H diff --git a/include/structures.h b/include/structures.h index d9339a7f..8de98b91 100644 --- a/include/structures.h +++ b/include/structures.h @@ -106,9 +106,9 @@ typedef struct { u8 unk_c; u8 unk_d; u16 rupees; - u8 unk_10; + u8 unk_10; // TODO drawing keys dirty flag or something? u8 unk_11; - u8 unk_12; + u8 dungeonKeys; s8 unk_13; s8 unk_14; u8 unk_15; @@ -200,19 +200,21 @@ typedef struct { } PriorityHandler; extern PriorityHandler gPriorityHandler; -extern struct { +typedef struct { u8 disabled; - u8 unk1; - u8 unk2[0xf]; + u8 screen; + u8 unk2[0xf]; // cursor positions on the different screens u8 unk11; u8 unk12; u8 unk13; - s8 unk14; + s8 screen2; u8 unk15; s8 unk16; u8 unk17; -} gPauseMenuOptions; -static_assert(sizeof(gPauseMenuOptions) == 0x18); +} PauseMenuOptions; + +extern PauseMenuOptions gPauseMenuOptions; +static_assert(sizeof(PauseMenuOptions) == 0x18); typedef struct { u8 unk00 : 1; @@ -268,7 +270,7 @@ typedef struct { typedef struct { /*0x00*/ u8 unk_0; /*0x01*/ u8 unk_1; - /*0x02*/ u8 unk_2; + /*0x02*/ u8 unk_2; // TODO kinstoneId, sub_0801DFB4 /*0x03*/ u8 unk_3; /*0x04*/ u8* unk_4; /*0x08*/ struct_03003DF8 array[0x20]; @@ -345,4 +347,15 @@ typedef struct { static_assert(sizeof(ItemDefinition) == 0xc); +typedef struct { + u8 frame; + u8 frameIndex; +} PACKED FrameStruct; + +typedef struct { + s8 x; + s8 y; + s8 width; + s8 height; +} Rect; #endif // STRUCTURES_H diff --git a/include/subtask.h b/include/subtask.h index 3a2fc5b8..73bf9bb9 100644 --- a/include/subtask.h +++ b/include/subtask.h @@ -2,6 +2,8 @@ #define SUBTASK_H #include "global.h" +#include "game.h" +#include "room.h" /** Subtasks override the game task for short periods */ typedef enum { @@ -44,11 +46,75 @@ extern void sub_080A4D34(void); extern void sub_080A4E90(u8); extern void sub_080A4E84(u8); -extern const struct { +typedef struct { u8 unk0; u8 unk1; // u8 pad[2]; void (*func)(void); -} gUnk_08128A38[]; +} struct_08128A38; +extern const struct_08128A38 gUnk_08128A38[]; + +typedef struct { + u8 item; + u8 unk1; + u8 frameIndex; + u8 unk3; + u8 unk4; + s8 unk5; + u16 textIndex; +} struct_gUnk_08128D70; + +extern const struct_gUnk_08128D70 gUnk_08128D70[]; + +typedef struct { + u8 frameIndex; + u8 unk1; + u8 unk2; + u8 unk3; + u16 unk4; + u16 unk6; +} struct_gUnk_08128F58; + +extern struct_gUnk_08128F58 gUnk_08128F58[]; + +// Functions used in world events. +extern void sub_08055B70(u32 param_1, u32 param_2, u32 param_3, u32 param_4); +extern void sub_0801876C(u32, u32); +extern void sub_080553E0(u32); +extern void sub_08054974(u32, u32); +extern void sub_0804B0E8(u32, u32); + +// Functions used in subtasks. +void sub_080A4DB8(u32); +void sub_080A6290(void); +void sub_080A66D0(); +void sub_080A67C4(u32); +void sub_080A6FB4(u32, u32); +void sub_080A698C(u32 param_1, u32 param_2, u32 param_3, u32 param_4); +u32 sub_080A6F40(); +s32 sub_080A69E0(); +struct_08127F94* sub_080A6A80(u32 param_1, u32 param_2); +void sub_080A6498(void); +void sub_080A71F4(const ScreenTransitionData* exitTransition); +void sub_080A6F6C(u32 textIndexOrPtr); + +typedef struct { + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + s8 unk5; + u8 unk6; + u8 unk7; +} struct_gUnk_08128E94; + +extern const struct_gUnk_08128E94 gUnk_08128E94[]; + +#ifdef EU +#define DRAW_DIRECT_SPRITE_INDEX 0x1fa +#else +#define DRAW_DIRECT_SPRITE_INDEX 0x1fb +#endif #endif // SUBTASK_H diff --git a/include/subtask2.h b/include/subtask2.h new file mode 100644 index 00000000..46ba1e2c --- /dev/null +++ b/include/subtask2.h @@ -0,0 +1,12 @@ +#ifndef SUBTASK2_H +#define SUBTASK2_H + +void PauseMenu_Screen_4(void); +void PauseMenu_Screen_5(void); +void PauseMenu_Screen_6(void); +void PauseMenu_Screen_7(void); +void PauseMenu_Screen_8(void); +void PauseMenu_Screen_9(void); +void PauseMenu_Screen_10(void); + +#endif // SUBTASK2_H diff --git a/linker.ld b/linker.ld index 1f509c68..50a77389 100644 --- a/linker.ld +++ b/linker.ld @@ -73,7 +73,7 @@ SECTIONS { . = 0x00024030; gMessageChoices = .; . = 0x00024048; gUnk_02024048 = .; . = 0x00024050; gRoomMemory = .; - . = 0x00024090; gUnk_02024090 = .; + . = 0x00024090; gPaletteBufferBackup = .; . = 0x00024490; gGFXSlots = .; . = 0x000246B0; gUnk_020246B0 = .; . = 0x00025EB0; gMapBottom = .; @@ -95,6 +95,7 @@ SECTIONS { . = 0x00034CF0; gUnk_02034CF0 = .; . = 0x00034D30; gUnk_02034D30 = .; . = 0x00034DF0; gUnk_02034DF0 = .; + . = 0x00034E4E; gUnk_02034E4E = .; . = 0x0003508E; gUnk_0203508E = .; . = 0x000350E2; gUnk_020350E2 = .; . = 0x000350F0; gUnk_020350F0 = .; @@ -405,9 +406,38 @@ SECTIONS { src/fade.o(.text); src/fileselect.o(.text); src/game.o(.text); + src/subtask/subtaskAuxCutscene.o(.text); + src/gameOverTask.o(.text); + src/gameUtils.o(.text); + src/cutscene.o(.text); + src/itemUtils.o(.text); + src/subtask/subtaskWorldEvent.o(.text); src/playerItem/playerItemLantern.o(.text); - src/subtask.o(.text); - src/sub_08055E08.o(.text); + src/worldEvent/worldEvent4.o(.text); + src/worldEvent/worldEvent3.o(.text); + src/worldEvent/worldEvent19.o(.text); + src/worldEvent/worldEvent1.o(.text); + src/worldEvent/worldEvent17.o(.text); + src/worldEvent/worldEvent16.o(.text); + src/worldEvent/worldEvent13.o(.text); + src/worldEvent/worldEvent14.o(.text); + src/worldEvent/worldEvent5.o(.text); + src/worldEvent/worldEvent6.o(.text); + src/worldEvent/worldEvent8.o(.text); + src/worldEvent/worldEvent11.o(.text); + src/worldEvent/worldEvent10.o(.text); + src/worldEvent/worldEvent21.o(.text); + src/worldEvent/worldEvent15.o(.text); + src/worldEvent/worldEvent23.o(.text); + src/worldEvent/worldEvent12.o(.text); + src/worldEvent/worldEvent20.o(.text); + src/worldEvent/worldEvent2.o(.text); + src/worldEvent/worldEvent9.o(.text); + src/worldEvent/worldEvent25.o(.text); + src/worldEvent/worldEvent7.o(.text); + src/worldEvent/worldEvent24.o(.text); + src/worldEvent/worldEvent0.o(.text); + src/worldEvent/worldEvent22.o(.text); src/main.o(.text); src/message.o(.text); src/manager/lightRayManager.o(.text); @@ -790,10 +820,14 @@ SECTIONS { #endif src/sound.o(.text); src/staffroll.o(.text); - src/menu/kinstone_menu.o(.text); - src/menu/figurine_menu.o(.text); - src/menu/pause_menu.o(.text); - src/subtask2.o(.text); + src/menu/kinstoneMenu.o(.text); + src/menu/figurineMenu.o(.text); + src/menu/pauseMenu.o(.text); + src/subtask/subtaskMapHint.o(.text); + src/menu/pauseMenuScreen6.o(.text); + src/subtask/subtaskLocalMapHint.o(.text); + src/subtask/subtaskFastTravel.o(.text); + src/subtask.o(.text); src/playerItem/playerItemSword.o(.text); src/playerItemUtils.o(.text); src/projectileUtils.o(.text); @@ -862,7 +896,6 @@ SECTIONS { src/kinstone.o(.rodata); src/playerItem/playerItemGustBig.o(.rodata); src/playerItem/playerItemBow.o(.rodata); - data/const/playerItem/playerItemBow.o(.rodata); src/playerItem/playerItemSwordBeam.o(.rodata); data/const/beanstalkSubtask.o(.rodata); src/beanstalkSubtask.o(.rodata); @@ -873,6 +906,7 @@ SECTIONS { src/playerItem/playerItemBottle.o(.rodata); data/const/playerItem/playerItemCellOverwriteSet.o(.rodata); src/playerItem/playerItemCellOverwriteSet.o(.rodata); + data/const/collisionMatrix.o(.rodata); data/const/ui.o(.rodata); src/sineTable.o(.rodata); data/const/common.o(.rodata); @@ -1059,20 +1093,49 @@ SECTIONS { src/enemy/treeItem.o(.rodata); src/enemy/enemy66.o(.rodata); src/enemy.o(.rodata); - data/const/enemyUtils.o(.rodata); - data/const/enterPortalSubtask.o(.rodata); + src/enemyUtils.o(.rodata); + src/enterPortalSubtask.o(.rodata); data/map/entity_headers.o(.rodata); - data/const/fade.o(.rodata); - data/const/fileselect_before.o(.rodata); + src/fade.o(.rodata); src/fileselect.o(.rodata); - data/const/fileselect_after.o(.rodata); src/game.o(.rodata); - data/const/game.o(.rodata); + src/subtask/subtaskAuxCutscene.o(.rodata); + src/gameOverTask.o(.rodata); + src/gameUtils.o(.rodata); + src/cutscene.o(.rodata); + src/data/hitbox.o(.rodata); + src/itemUtils.o(.rodata); + src/subtask/subtaskWorldEvent.o(.rodata); src/itemMetaData.o(.rodata); + data/animations/spriteAnimations322.o(.rodata); + src/gameData.o(.rodata); data/const/game_2.o(.rodata); src/playerItem/playerItemLantern.o(.rodata); - data/const/subtask.o(.rodata); - data/const/sub_08055E08.o(.rodata); + src/worldEvent/worldEvent4.o(.rodata); + src/worldEvent/worldEvent3.o(.rodata); + src/worldEvent/worldEvent19.o(.rodata); + src/worldEvent/worldEvent1.o(.rodata); + src/worldEvent/worldEvent17.o(.rodata); + src/worldEvent/worldEvent16.o(.rodata); + src/worldEvent/worldEvent13.o(.rodata); + src/worldEvent/worldEvent14.o(.rodata); + src/worldEvent/worldEvent5.o(.rodata); + src/worldEvent/worldEvent6.o(.rodata); + src/worldEvent/worldEvent8.o(.rodata); + src/worldEvent/worldEvent11.o(.rodata); + src/worldEvent/worldEvent10.o(.rodata); + src/worldEvent/worldEvent21.o(.rodata); + src/worldEvent/worldEvent15.o(.rodata); + src/worldEvent/worldEvent23.o(.rodata); + src/worldEvent/worldEvent12.o(.rodata); + src/worldEvent/worldEvent20.o(.rodata); + src/worldEvent/worldEvent2.o(.rodata); + src/worldEvent/worldEvent9.o(.rodata); + src/worldEvent/worldEvent25.o(.rodata); + src/worldEvent/worldEvent7.o(.rodata); + src/worldEvent/worldEvent24.o(.rodata); + src/worldEvent/worldEvent0.o(.rodata); + src/worldEvent/worldEvent22.o(.rodata); data/gfx/palette_groups.o(.rodata); data/gfx/gfx_groups.o(.rodata); src/main.o(.rodata); @@ -1121,8 +1184,10 @@ SECTIONS { src/manager/repeatedSoundManager.o(.rodata); src/manager/vaati3StartManager.o(.rodata); src/manager/floatingPlatformManager.o(.rodata); + src/manager/enterRoomTextboxManager.o(.rodata); data/const/manager/enterRoomTextboxManager.o(.rodata); data/const/entity.o(.rodata); + src/entity.o(.rodata); src/code_0805EC04.o(.rodata); data/const/text.o(.rodata); src/debug.o(.rodata); @@ -1130,15 +1195,15 @@ SECTIONS { data/animations/npc/gentari.o(.rodata); src/npc/festari.o(.rodata); data/animations/npc/festari.o(.rodata); - data/const/npc/forestMinish.o(.rodata); + src/npc/forestMinish.o(.rodata); data/animations/npc/forestMinish.o(.rodata); - data/const/npc/postman.o(.rodata); + src/npc/postman.o(.rodata); data/animations/npc/postman.o(.rodata); src/npc/npc5.o(.rodata); data/animations/npc/npc5.o(.rodata); data/const/npc/townsperson.o(.rodata); data/animations/npc/townsperson.o(.rodata); - data/const/npc/kid.o(.rodata); + src/npc/kid.o(.rodata); data/animations/npc/kid.o(.rodata); src/npc/npc9.o(.rodata); data/animations/npc/npc9.o(.rodata); @@ -1158,10 +1223,11 @@ SECTIONS { data/animations/npc/beedle.o(.rodata); src/npc/brocco.o(.rodata); data/animations/npc/brocco.o(.rodata); - data/const/npc/sittingPerson.o(.rodata); + src/npc/sittingPerson.o(.rodata); data/animations/npc/sittingPerson.o(.rodata); src/npc/pina.o(.rodata); data/animations/npc/pina.o(.rodata); + src/npc/guard.o(.rodata); data/const/npc/guard.o(.rodata); src/npc/guardWithSpear.o(.rodata); data/animations/npc/guardWithSpear.o(.rodata); @@ -1170,6 +1236,7 @@ SECTIONS { data/animations/npc/din.o(.rodata); data/animations/npc/nayru.o(.rodata); data/animations/npc/farore.o(.rodata); + src/npc/sturgeon.o(.rodata); data/const/npc/sturgeon.o(.rodata); data/animations/npc/sturgeon.o(.rodata); src/npc/tingleSiblings.o(.rodata); @@ -1210,7 +1277,7 @@ SECTIONS { data/animations/npc/mountainMinish.o(.rodata); src/npc/melari.o(.rodata); data/animations/npc/melari.o(.rodata); - data/const/npc/bladeBrothers.o(.rodata); + src/npc/bladeBrothers.o(.rodata); data/animations/npc/bladeBrothers.o(.rodata); src/npc/cow.o(.rodata); data/animations/npc/cow.o(.rodata); @@ -1218,9 +1285,9 @@ SECTIONS { data/animations/npc/goron.o(.rodata); src/npc/goronMerchant.o(.rodata); data/animations/npc/goronMerchant.o(.rodata); - data/const/npc/gorman.o(.rodata); + src/npc/gorman.o(.rodata); data/animations/npc/gorman.o(.rodata); - data/const/npc/dog.o(.rodata); + src/npc/dog.o(.rodata); data/animations/npc/dog.o(.rodata); src/npc/syrup.o(.rodata); data/animations/npc/syrup.o(.rodata); @@ -1277,7 +1344,6 @@ SECTIONS { src/npc/npc58.o(.rodata); src/npcDefinitions.o(.rodata); src/npcUtils.o(.rodata); - data/const/npcUtils.o(.rodata); src/physics.o(.rodata); src/playerHitbox.o(.rodata); data/gfx/sprite_frames.o(.rodata); @@ -1300,7 +1366,7 @@ SECTIONS { src/item/itemJarEmpty.o(.rodata); data/item.o(.rodata); src/itemDefinitions.o(.rodata); - data/const/playerUtils.o(.rodata); + src/playerUtils.o(.rodata); data/map/room_headers.o(.rodata); src/flags.o(.rodata); src/save.o(.rodata); @@ -1542,20 +1608,25 @@ SECTIONS { src/object/linkAnimation.o(.rodata); src/objectDefinitions.o(.rodata); src/playerItemDefinitions.o(.rodata); - data/const/objectUtils.o(.rodata); - data/const/playerItem/playerItemShield.o(.rodata); + src/objectUtils.o(.rodata); + data/animations/spriteAnimations166.o(.rodata); + src/playerItem/playerItemShield.o(.rodata); src/playerItem/playerItemFireRodProjectile.o(.rodata); #ifdef DEMO_USA src/demo.o(.rodata); #endif src/staffroll.o(.rodata); data/const/staffroll.o(.rodata); - src/menu/kinstone_menu.o(.rodata); - src/menu/figurine_menu.o(.rodata); + src/menu/kinstoneMenu.o(.rodata); + src/menu/figurineMenu.o(.rodata); data/gfx/figurines.o(.rodata); - data/const/figurine_menu.o(.rodata); - src/menu/pause_menu.o(.rodata); - data/const/subtask2.o(.rodata); + src/data/figurineMenuData.o(.rodata); + src/menu/pauseMenu.o(.rodata); + src/subtask/subtaskMapHint.o(.rodata); + src/menu/pauseMenuScreen6.o(.rodata); + src/subtask/subtaskLocalMapHint.o(.rodata); + src/subtask/subtaskFastTravel.o(.rodata); + data/const/subtask.o(.rodata); src/playerItem/playerItemSword.o(.rodata); data/projectile_functions.o(.rodata); src/projectile/darkNutSwordSlash.o(.rodata); @@ -1622,7 +1693,7 @@ SECTIONS { src/playerItem/playerItemGustJar.o(.rodata); data/const/playerItem/playerItemGustJar.o(.rodata); data/gfx/fixed_type_gfx.o(.rodata); - data/const/movement.o(.rodata); + src/data/objPalettes.o(.rodata); src/movement.o(.rodata); src/data/transitions.o(.rodata); src/data/screenTransitions.o(.rodata); diff --git a/src/beanstalkSubtask.c b/src/beanstalkSubtask.c index 19f530be..ceb5a7c3 100644 --- a/src/beanstalkSubtask.c +++ b/src/beanstalkSubtask.c @@ -26,18 +26,9 @@ extern void gMapData; extern u8 gUpdateVisibleTiles; extern u16 gMapDataTopSpecial[]; extern u16 gMapDataBottomSpecial[]; - extern const u8 gGlobalGfxAndPalettes[]; extern const u8 gUnk_081091E4[]; -extern void (*const gUnk_080B4458[])(void); -extern const u16 gUnk_080B44A0[]; -extern const u16 gUnk_080B4410[]; -extern const s16 gUnk_080B4488[]; -extern const s16 gUnk_080B44A8[]; - -extern const struct_080B44D0 gUnk_080B44D0[]; - typedef struct { u16 tileType; u16 kind; @@ -47,6 +38,18 @@ typedef struct { u16 unk_a; } Data; +extern const u16 gUnk_080B4410[]; // TODO figure out structure +extern void (*const gUnk_080B4458[])(void); +extern const s16 gUnk_080B4468[]; // TODO struct xy +extern const s16 gUnk_080B4478[]; // TODO struct xy +extern const s16 gUnk_080B4488[]; +extern const s16 gUnk_080B4490[]; // TODO struct xy +extern const u16 gUnk_080B44A0[]; +extern const s16 gUnk_080B44A8[]; // TODO struct xy +extern const u32 gUnk_080B44B8[]; // TODO actually function pointers? +extern const Data gUnk_080B44C0[]; +extern const Data gUnk_080B44C2[]; + void sub_0801AD6C(const Data*, u32); bool32 sub_0801A4F8(void); bool32 sub_0801AA58(Entity*, u32, u32); @@ -110,31 +113,30 @@ void SetBGDefaults(void) { gMapTop.bgSettings->control = gUnk_080B77C0[1]; } -void sub_080197D4(u32* param_1) { +void sub_080197D4(struct_08109194* param_1) { u32 uVar1; u8* src; void* dest; do { - dest = (void*)param_1[1]; + dest = param_1->dest; if (dest != NULL) { - src = &gMapData + (*param_1 & 0x7fffffff); - if ((param_1[2] & 0x80000000) != 0) { + src = &gMapData + (param_1->src & 0x7fffffff); + if ((param_1->size & 0x80000000) != 0) { if ((u32)dest >> 0x18 == 6) { LZ77UnCompVram(src, dest); } else { LZ77UnCompWram(src, dest); } } else { - MemCopy(src, dest, param_1[2]); + MemCopy(src, dest, param_1->size); } } else { - LoadPaletteGroup((u32) * (u16*)param_1); + LoadPaletteGroup(*(u16*)param_1); sub_080533CC(); } - param_1 += 3; - uVar1 = *(param_1 - 3); - } while ((uVar1 & 0x80000000) != 0); + param_1++; + } while (((param_1 - 1)->src & 0x80000000) != 0); } // Has ifdefs for other variants @@ -483,10 +485,6 @@ u32 sub_0801AC68(u32 position, u32 data) { return data << 2; } -extern const Data gUnk_080B44C0[]; -extern const Data gUnk_080B44C2[]; -extern const u32 gUnk_080B44B8[]; - void sub_0801AC98(void) { u32 position; u32 width; @@ -571,11 +569,11 @@ u32 sub_0801AE34(void) { return gRoomControls.scroll_flags >> 1 & 1; } -void sub_0801AE44(s32 param_1) { +void sub_0801AE44(bool32 loadGfx) { void (*func)(void); gRoomControls.unk_34 = 0; sub_0807BFD0(); - if (param_1 != 0) { + if (loadGfx != 0) { LoadRoomGfx(); } sub_080809D4(); diff --git a/src/color.c b/src/color.c index 01e678e8..17de6630 100644 --- a/src/color.c +++ b/src/color.c @@ -35,7 +35,7 @@ void sub_0801CFD0(u32 index) { p->_0_0 = 4; p->_0_4 = 1; p->_1 = 0x80; - p->_2 = 0xFFFF; + p->objPaletteId = 0xffff; } void sub_0801D000(u32 a1) { @@ -56,58 +56,58 @@ void sub_0801D000(u32 a1) { gUnk_02001A3C._0_0 = 0; gUnk_02001A3C._0_4 = 0; gUnk_02001A3C._1 = 0; - gUnk_02001A3C._2 = 0; + gUnk_02001A3C.objPaletteId = 0; } } } -u32 LoadObjPalette(Entity* entity, u32 a2) { - Palette* puVar1; - int iVar2; +u32 LoadObjPalette(Entity* entity, u32 objPaletteId) { + Palette* palette; + s32 slot; u32 uVar3; u32 uVar4; - iVar2 = FindPalette(a2); - if (iVar2 < 0) { - if (a2 < 0x16) { + slot = FindPalette(objPaletteId); + if (slot < 0) { + if (objPaletteId < 0x16) { uVar3 = 1; } else { - uVar3 = gUnk_08133368[(a2 - 0x16)].BYTES.byte3; + uVar3 = gUnk_08133368[(objPaletteId - 0x16)].BYTES.byte3; uVar3 &= 0xf; } - iVar2 = FindFreeObjPalette(uVar3); - if (iVar2 < 0) { + slot = FindFreeObjPalette(uVar3); + if (slot < 0) { CleanUpObjPalettes(); - iVar2 = FindFreeObjPalette(uVar3); + slot = FindFreeObjPalette(uVar3); } - if (iVar2 >= 0) { - puVar1 = &gPaletteList[iVar2]; - puVar1->_2 = a2; - puVar1->_1 = 0; - puVar1->_0_4 = uVar3; - puVar1->_0_0 = 3; + if (slot >= 0) { + palette = &gPaletteList[slot]; + palette->objPaletteId = objPaletteId; + palette->_1 = 0; + palette->_0_4 = uVar3; + palette->_0_0 = 3; for (uVar3 = uVar3 - 1; uVar3 != 0; uVar3--) { - puVar1++; - puVar1->_2 = 0; - puVar1->_1 = 0; - puVar1->_0_4 = uVar3; - puVar1->_0_0 = 2; + palette++; + palette->objPaletteId = 0; + palette->_1 = 0; + palette->_0_4 = uVar3; + palette->_0_0 = 2; } - LoadObjPaletteAtIndex(a2, iVar2); + LoadObjPaletteAtIndex(objPaletteId, slot); } } - SetEntityObjPalette(entity, iVar2); - return iVar2; + SetEntityObjPalette(entity, slot); + return slot; } -s32 FindPalette(u32 a1) { +s32 FindPalette(u32 objPaletteId) { u32 index; Palette* palette; - if (a1 <= 5) - return a1; + if (objPaletteId <= 5) + return objPaletteId; for (index = 6, palette = gPaletteList; index < ARRAY_COUNT(gPaletteList); index++) { - if (a1 == palette[index]._2) { + if (objPaletteId == palette[index].objPaletteId) { return index; } } @@ -115,37 +115,37 @@ s32 FindPalette(u32 a1) { return -1; } -u32 FindFreeObjPalette(u32 a1) { - u32 uVar1; - u32 uVar2; +u32 FindFreeObjPalette(u32 paletteCount) { + u32 count; + u32 index; u32 tmp; - for (uVar1 = 0, uVar2 = 6; uVar2 < ARRAY_COUNT(gPaletteList); uVar2++) { - switch ((gPaletteList[uVar2]._0_0)) { + for (count = 0, index = 6; index < ARRAY_COUNT(gPaletteList); index++) { + switch ((gPaletteList[index]._0_0)) { case 0: - uVar1 = uVar1 + 1; - if (a1 > uVar1) + count = count + 1; + if (paletteCount > count) continue; - tmp = uVar1 - 1; - return uVar2 - tmp; + tmp = count - 1; + return index - tmp; default: - uVar1 = 0; + count = 0; break; } } - for (uVar1 = 0, uVar2 = 6; uVar2 < ARRAY_COUNT(gPaletteList); uVar2++) { - switch (gPaletteList[uVar2]._0_0) { + for (count = 0, index = 6; index < ARRAY_COUNT(gPaletteList); index++) { + switch (gPaletteList[index]._0_0) { case 0: case 1: - uVar1++; - if (a1 <= uVar1) { - tmp = uVar1 - 1; - return uVar2 - tmp; + count++; + if (paletteCount <= count) { + tmp = count - 1; + return index - tmp; } break; default: - uVar1 = 0; + count = 0; break; } } @@ -154,7 +154,7 @@ u32 FindFreeObjPalette(u32 a1) { NONMATCH("asm/non_matching/color/SetEntityObjPalette.inc", void SetEntityObjPalette(Entity* entity, u32 palette)) { u32 uVar1; - Palette* pPVar1; + Palette* pal; if (palette < 0) { palette = 0; @@ -164,15 +164,15 @@ NONMATCH("asm/non_matching/color/SetEntityObjPalette.inc", void SetEntityObjPale } entity->palette.b.b0 = palette; entity->palette.b.b4 = palette; - pPVar1 = &gPaletteList[palette]; - if ((s8)pPVar1->_0_0 != 4) { - pPVar1->_1++; - uVar1 = pPVar1->_0_4; - pPVar1->_0_0 = 3; + pal = &gPaletteList[palette]; + if ((s8)pal->_0_0 != 4) { + pal->_1++; + uVar1 = pal->_0_4; + pal->_0_0 = 3; while (uVar1 = uVar1 - 1, uVar1 != 0) { - pPVar1 = pPVar1 + 1; - pPVar1->_0_4 = uVar1; - pPVar1->_0_0 = 2; + pal = pal + 1; + pal->_0_4 = uVar1; + pal->_0_0 = 2; } } } @@ -204,7 +204,7 @@ void sub_0801D244(u32 a1) { } } -void sub_0801D28C(Entity* entity, u32 palette) { +void sub_0801D28C(Entity* entity, u32 objPaletteId) { u32 c = entity->spriteAnimation[1]; Palette* list = gPaletteList; Palette* p = &list[c]; @@ -213,31 +213,31 @@ void sub_0801D28C(Entity* entity, u32 palette) { u32 lo = ((u32)((*(u8*)p) << 0x1c)) >> 0x1c; if (lo == 3) { - p->_2 = palette; - LoadObjPaletteAtIndex(palette, c); + p->objPaletteId = objPaletteId; + LoadObjPaletteAtIndex(objPaletteId, c); } } -void ChangeObjPalette(Entity* entity, u32 a2) { +void ChangeObjPalette(Entity* entity, u32 objPaletteId) { UnloadOBJPalette(entity); - LoadObjPalette(entity, a2); + LoadObjPalette(entity, objPaletteId); } -void LoadObjPaletteAtIndex(u32 a1, u32 a2) { +void LoadObjPaletteAtIndex(u32 objPaletteId, u32 a2) { u16* buffer; gUsedPalettes |= 1 << (a2 + 0x10); - if (5 < a1) { - if (a1 == 0x15) { + if (objPaletteId > 5) { + if (objPaletteId == 0x15) { buffer = gPaletteBuffer; MemFill16(buffer[0x3C], buffer + (a2 + 0x10) * 0x10, 0x20); - } else if (a1 < 0x15) { - LoadPalettes((u8*)(gPaletteBuffer + (a1 - 6) * 0x10), a2 + 0x10, 1); + } else if (objPaletteId < 0x15) { + LoadPalettes((u8*)(gPaletteBuffer + (objPaletteId - 6) * 0x10), a2 + 0x10, 1); } else { - u32 tmp1 = gUnk_08133368[(a1 - 0x16)].WORD_U; - u32 tmp2 = (tmp1 >> 0x18) & 0xf; - tmp1 &= 0xffffff; - LoadPalettes(gGlobalGfxAndPalettes + tmp1, a2 + 0x10, tmp2); + u32 offset = gUnk_08133368[(objPaletteId - 0x16)].WORD_U; + u32 numPalettes = (offset >> 0x18) & 0xf; + offset &= 0xffffff; + LoadPalettes(gGlobalGfxAndPalettes + offset, a2 + 0x10, numPalettes); } } } @@ -260,7 +260,7 @@ void CleanUpObjPalettes(void) { gPaletteList[index1]._0_0 = 0; gPaletteList[index1]._0_4 = 0; gPaletteList[index1]._1 = 0; - gPaletteList[index1]._2 = 0; + gPaletteList[index1].objPaletteId = 0; break; } } @@ -337,7 +337,7 @@ void sub_0801D48C(u32 a1, u32 a2) { pPVar1->_0_0 = 0; pPVar1->_0_4 = 0; pPVar1->_1 = 0; - pPVar1->_2 = 0; + pPVar1->objPaletteId = 0; MemCopy(iVar3, iVar4, 0x20); iVar3 += 0x10; pPVar1++; diff --git a/src/common.c b/src/common.c index cffc3e61..cba8e53d 100644 --- a/src/common.c +++ b/src/common.c @@ -79,7 +79,7 @@ extern const DungeonLayout** const gUnk_080C9C50[]; extern u8 gMapDataBottomSpecial[]; u32 sub_0801DF10(const DungeonLayout* lyt); -bool32 sub_0801DF90(TileEntity* tileEntity, u32 bank); +bool32 IsRoomVisited(TileEntity* tileEntity, u32 bank); u32 sub_0801DF60(u32 a1, u8* p); u32 sub_0801DF78(u32 a1, u32 a2); void sub_0801DF28(u32 x, u32 y, s32 color); @@ -437,6 +437,7 @@ void DrawDungeonFeatures(u32 floor, void* data, u32 size) { layout = gUnk_080C9C50[gArea.dungeon_idx][floor]; MemClear(gMapDataBottomSpecial, 0x8000); while (layout->area != 0) { + // ROOM_VISIT_MARKER has to be first TileEntity in the room. tileEntity = (TileEntity*)GetRoomProperty(layout->area, layout->room, 3); bankOffset = sub_0801DF10(layout); features = 0; @@ -446,7 +447,7 @@ void DrawDungeonFeatures(u32 floor, void* data, u32 size) { if (HasDungeonSmallKey()) { features = 2; } - if (sub_0801DF90(tileEntity, bankOffset)) { + if (IsRoomVisited(tileEntity, bankOffset)) { features = 3; } } @@ -514,12 +515,12 @@ u32 sub_0801DF78(u32 a1, u32 a2) { } } -bool32 sub_0801DF90(TileEntity* tileEntity, u32 bank) { +bool32 IsRoomVisited(TileEntity* tileEntity, u32 bank) { if (tileEntity == NULL) return FALSE; for (; tileEntity->type != 0; tileEntity++) { - if (tileEntity->type == 1) + if (tileEntity->type == ROOM_VISIT_MARKER) return CheckLocalFlagByBank(bank, tileEntity->localFlag); } return FALSE; @@ -531,7 +532,7 @@ void sub_0801DFB4(Entity* entity, u32 textIndex, u32 a3, u32 a4) { gFuseInfo._8 = a3; gFuseInfo._a = a4; gFuseInfo.ent = entity; - gFuseInfo._3 = gUnk_03003DF0.unk_2; + gFuseInfo.kinstoneId = gUnk_03003DF0.unk_2; if (entity != NULL) { gFuseInfo.prevUpdatePriority = entity->updatePriority; entity->updatePriority = 2; @@ -738,12 +739,12 @@ void sub_0801E64C(s32 param_1, s32 param_2, s32 param_3, s32 param_4, s32 param_ } } -void sub_0801E6C8(u32 param_1) { +void sub_0801E6C8(u32 kinstoneId) { u32 tmp; u32 index; - if (param_1 - 1 < 100) { + if (kinstoneId - 1 < 100) { for (index = 0; index < 0x80; index++) { - if (param_1 == gSave.unk1C1[index]) { + if (kinstoneId == gSave.unk1C1[index]) { gSave.unk1C1[index] = 0xf1; } } @@ -752,7 +753,7 @@ void sub_0801E6C8(u32 param_1) { gSave.unk1C1[tmp] = 0xf2; } for (index = 0; index < 0x20; index++) { - if (param_1 == gUnk_03003DF0.array[index].unk_3) { + if (kinstoneId == gUnk_03003DF0.array[index].unk_3) { gUnk_03003DF0.array[index].unk_3 = 0xf1; } } @@ -803,18 +804,18 @@ u32 sub_0801E7D0(u32 a1) { return gSave.unk12B[tmp]; } -u32 CheckKinstoneFused(u32 idx) { - if (idx > 100 || idx < 1) { +u32 CheckKinstoneFused(u32 kinstoneId) { + if (kinstoneId > 100 || kinstoneId < 1) { return 0; } - return ReadBit(&gSave.unk241, idx); + return ReadBit(&gSave.fusedKinstones, kinstoneId); } -bool32 sub_0801E810(u32 idx) { - if (idx > 100 || idx < 1) { +bool32 sub_0801E810(u32 kinstoneId) { + if (kinstoneId > 100 || kinstoneId < 1) { return FALSE; } - return ReadBit(&gSave.unk24E, idx); + return ReadBit(&gSave.unk24E, kinstoneId); } ASM_FUNC("asm/non_matching/common/sub_0801E82C.inc", void sub_0801E82C(void)); @@ -829,57 +830,59 @@ s32 sub_0801E8B0(u32 idx) { return -1; } +// Check conditions, something with kinstones void sub_0801E8D4(void) { - u32 i; - for (i = 10; i <= 100; ++i) { - if (CheckKinstoneFused(i) && !sub_0801E810(i)) { - u32 evt_type = gUnk_080C9CBC[i].evt_type; - struct_080FE320* s = &gUnk_080FE320[evt_type]; + u32 kinstoneId; + for (kinstoneId = 10; kinstoneId <= 100; ++kinstoneId) { + if (CheckKinstoneFused(kinstoneId) && !sub_0801E810(kinstoneId)) { + u32 worldEventId = gKinstoneWorldEvents[kinstoneId].worldEventId; + const WorldEvent* s = &gWorldEvents[worldEventId]; #if !defined EU && !defined JP u32 flag = s->flag; #endif u32 tmp; - switch (s->_10) { - case 0: + switch (s->condition) { + case CND_0: tmp = 0; break; - case 1: - tmp = s->_11; + case CND_1: + tmp = s->bank; break; - case 2: + case CND_2: tmp = 0xf; break; - case 3: + case CND_3: tmp = 0x10; break; - case 4: + case CND_4: tmp = 0x11; break; #if !defined EU && !defined JP - case 5: - tmp = 4; - flag = 0x83; + // Special conditions for BEANDEMO_00 to BEANDEMO_04 + case CND_5: + tmp = LOCAL_BANK_3; + flag = SORA_10_H00; break; - case 6: - tmp = 4; - flag = 0x84; + case CND_6: + tmp = LOCAL_BANK_3; + flag = SORA_11_H00; break; - case 7: - tmp = 4; - flag = 0x87; + case CND_7: + tmp = LOCAL_BANK_3; + flag = SORA_12_T00; break; - case 8: - tmp = 4; - flag = 0x88; + case CND_8: + tmp = LOCAL_BANK_3; + flag = SORA_13_H00; break; - case 9: - tmp = 4; - flag = 0x8b; + case CND_9: + tmp = LOCAL_BANK_3; + flag = SORA_14_T00; break; #ifndef DEMO_JP - case 10: - tmp = 5; - flag = 0x88; + case CND_10: + tmp = LOCAL_BANK_4; + flag = KS_B15; break; #endif #endif @@ -889,7 +892,7 @@ void sub_0801E8D4(void) { #else if (sub_0807CB24(tmp, s->flag)) { #endif - WriteBit(&gSave.unk24E, i); + WriteBit(&gSave.unk24E, kinstoneId); } } } @@ -911,7 +914,7 @@ void (*const gUnk_080C9CAC[])(void) = { // TODO merge #ifdef JP -const struct_080C9CBC gUnk_080C9CBC[] = { +const KinstoneWorldEvent gKinstoneWorldEvents[] = { { 15, 44, 45, 8, 0, 0, 0, 0 }, { 4, 8, 1, 0, 0, 1, 2, 0 }, { 4, 9, 1, 0, 0, 2, 2, 0 }, { 4, 10, 1, 0, 0, 3, 2, 0 }, { 4, 10, 1, 0, 0, 3, 2, 0 }, { 4, 9, 1, 0, 0, 2, 2, 0 }, { 4, 13, 2, 0, 0, 6, 2, 0 }, { 4, 14, 2, 0, 0, 7, 2, 0 }, { 4, 15, 2, 0, 0, 8, 2, 0 }, @@ -956,7 +959,7 @@ const struct_080C9CBC gUnk_080C9CBC[] = { #else #ifdef EU -const struct_080C9CBC gUnk_080C9CBC[] = { +const KinstoneWorldEvent gKinstoneWorldEvents[] = { { 15, 44, 45, 8, 0, 0, 0, 0 }, { 4, 8, 1, 0, 0, 1, 2, 0 }, { 4, 9, 1, 0, 0, 2, 2, 0 }, { 4, 10, 1, 0, 0, 3, 2, 0 }, { 4, 10, 1, 0, 0, 3, 2, 0 }, { 4, 9, 1, 0, 0, 2, 2, 0 }, { 4, 13, 2, 0, 0, 6, 2, 0 }, { 4, 14, 2, 0, 0, 7, 2, 0 }, { 4, 15, 2, 0, 0, 8, 2, 0 }, @@ -999,7 +1002,7 @@ const struct_080C9CBC gUnk_080C9CBC[] = { { 2, 43, 7, 8, 0, 18, 0, 0 }, }; #else -const struct_080C9CBC gUnk_080C9CBC[] = { +const KinstoneWorldEvent gKinstoneWorldEvents[] = { { 15, 44, 45, 8, 0, 0, 0, 0 }, { 4, 8, 1, 0, 0, 1, 2, 0 }, { 4, 9, 1, 0, 0, 2, 2, 0 }, { 4, 10, 1, 0, 0, 3, 2, 0 }, { 4, 10, 1, 0, 0, 3, 2, 0 }, { 4, 9, 1, 0, 0, 2, 2, 0 }, { 4, 13, 2, 0, 0, 6, 2, 0 }, { 4, 14, 2, 0, 0, 7, 2, 0 }, { 4, 15, 2, 0, 0, 8, 2, 0 }, @@ -1063,13 +1066,14 @@ const u8 gUnk_080CA11C[] = { 24, 45, 53, 54, 55, 57, 60, 68, 70, 71, 78, 80, 83, 85, 86, 88, 95, 96, 0, 0, }; +// Get a random kinstone u32 sub_0801EA74(void) { s32 r = (s32)Random() % 18; u32 i; for (i = 0; i < 18; ++i) { - u32 n = gUnk_080CA11C[r]; - if (!CheckKinstoneFused(n)) - return n; + u32 kinstoneId = gUnk_080CA11C[r]; + if (!CheckKinstoneFused(kinstoneId)) + return kinstoneId; r = (r + 1) % 18; } return 0xF2; diff --git a/src/cutscene.c b/src/cutscene.c new file mode 100644 index 00000000..93ea6eac --- /dev/null +++ b/src/cutscene.c @@ -0,0 +1,779 @@ +/** + * @file cutscene.c + * + * @brief Cutscenes + */ +#include "cutscene.h" + +#include "enemy.h" +#include "fade.h" +#include "fileselect.h" +#include "functions.h" +#include "game.h" +#include "main.h" +#include "menu.h" +#include "npc.h" +#include "object.h" +#include "screen.h" + +void sub_08051F78(void); +void sub_08051FF0(void); +void sub_08052004(void); + +const EntityData gUnk_080FCB94[] = { + { OBJECT, 15, CHUCHU_BOSS_CUTSCENE, 0, 0, 0x1c8, 0x288, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +void sub_080535AC(void); +void sub_080535F4(void); +void nullsub_481(void); +void sub_08053618(void); +void (*const gUnk_080FCBB4[])(void) = { + sub_080535AC, + sub_080535F4, + nullsub_481, + sub_08053618, +}; + +void CutsceneMain_Init(void) { + gUnk_080FCBB4[gMenu.overlayType](); +} + +void sub_080535AC(void) { + gMenu.overlayType = 1; + gMenu.transitionTimer = 120; + gUI.field_0x6 = 1; + gUpdateVisibleTiles = 1; + gScreen.lcd.displayControl &= 0xfeff; + LoadRoomEntityList(gUnk_080FCB94); + SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 8); +} + +void sub_080535F4(void) { + if (gFadeControl.active == 0) { + ResetSystemPriority(); + gMenu.overlayType = 2; + } +} + +void nullsub_481(void) { +} + +void sub_08053618(void) { + gMenu.transitionTimer--; + if (gMenu.transitionTimer == 0) { + sub_08052004(); + } +} + +void sub_08053634(void) { + gUI.nextToLoad = 3; // Subtask_FadeOut + MessageInitialize(); +} + +void sub_08053648(void) { + Entity* obj = CreateObject(SMOKE, 0, 0); + if (obj != NULL) { + obj->x.HALF.HI = gRoomControls.origin_x + 0x2d0; + obj->y.HALF.HI = gRoomControls.origin_y + 0x148; + } +} + +void sub_0805367C(void) { + gMenu.overlayType++; +} + +void sub_0805368C(void) { + Entity* entity = FindEntityByID(OBJECT, HOUSE_DOOR_INT, 6); + if (entity != NULL) { + DeleteEntity(entity); + SoundReq(SFX_F0); // TODO Door sound during intro + } +} + +void sub_080536A8(void) { + sub_080A71C4(5, 5, FADE_INSTANT, 0x10); +} + +void sub_080536B8(void) { + sub_080A71C4(5, 3, FADE_INSTANT, 4); + SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); +} + +extern Script script_IntroCameraTarget; +extern Script script_ZeldaMoveToLinksHouse; +extern Script script_HouseDoorIntro; +extern Script script_CutsceneOrchestratorIntro2; + +const EntityData gUnk_080FCBC4[] = { + { OBJECT, 79, CUTSCENE_ORCHESTRATOR, 0, 0, 0x230, 0x1a8, (u32)&script_IntroCameraTarget }, + { NPC, 79, ZELDA, 0, 0, 0x230, 0x1a8, (u32)&script_ZeldaMoveToLinksHouse }, + { OBJECT, 79, HOUSE_DOOR_EXT, 3, 3, 0x290, 0x193, (u32)&script_HouseDoorIntro }, + { OBJECT, 79, CUTSCENE_ORCHESTRATOR, 0, 0, 0x2d0, 0x1a8, (u32)&script_CutsceneOrchestratorIntro2 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +extern Script script_CutsceneOrchestratorIntro; +extern Script script_SmithIntro; +extern Script script_ZeldaIntro; +const EntityData gUnk_080FCC14[] = { + { OBJECT, 79, CUTSCENE_ORCHESTRATOR, 0, 0, 0x0, 0x0, (u32)&script_CutsceneOrchestratorIntro }, + { NPC, 79, SMITH, 0, 0, 0xb8, 0x60, (u32)&script_SmithIntro }, + { NPC, 79, ZELDA, 0, 0, 0x8, 0x5e, (u32)&script_ZeldaIntro }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +extern Script script_ZeldaLeaveLinksHouse; +const EntityData gUnk_080FCC54[] = { + { NPC, 79, ZELDA, 0, 0, 0xa0, 0x5d, (u32)&script_ZeldaLeaveLinksHouse }, + { OBJECT, 15, HOUSE_DOOR_INT, 4, 256, 0x78, 0x88, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +const Font gUnk_080FCC84 = { + &gBG1Buffer[0x1cf], BG_TILE_ADDR(0x188), gTextGfxBuffer, 0, 0xf020, 0xf0, 1, 0, 0, 0, 0, 5, 0, 0, 0 +}; +const Font gUnk_080FCC9C = { + &gBG1Buffer[0x96], BG_TILE_ADDR(0x188), gTextGfxBuffer, 0, 0xf020, 0x78, 1, 0, 0, 0, 0, 5, 0, 0, 0 +}; + +const struct_080FCCB4 gUnk_080FCCB4[] = { + { &gUnk_080FCC84, 240, 96, 193, 1 }, { &gUnk_080FCC84, 240, 96, 453, 6 }, { &gUnk_080FCC9C, 120, 160, 363, 4 }, + { &gUnk_080FCC9C, 120, 160, 498, 4 }, { &gUnk_080FCC84, 240, 96, 368, 4 }, { &gUnk_080FCC84, 240, 96, 358, 4 }, +}; + +void sub_08053758(void); +void sub_08053800(void); +void sub_08053894(void); +void sub_08053800(void); +void sub_08053894(void); +void sub_08053800(void); +void sub_08053894(void); +void sub_08053800(void); +void sub_08053894(void); +void sub_08053800(void); +void sub_08053904(void); +void sub_08053974(void); +void nullsub_482(void); +void sub_080539BC(void); +void (*const gUnk_080FCCFC[])(void) = { + sub_08053758, sub_08053800, sub_08053894, sub_08053800, sub_08053894, sub_08053800, sub_08053894, sub_08053800, + sub_08053894, sub_08053800, sub_08053904, sub_08053974, nullsub_482, sub_080539BC, nullsub_482, +}; + +void sub_080536D4(void) { + gUnk_080FCCFC[gMenu.overlayType](); +} + +void sub_0805370C(void); +void (*const gUnk_080FCD38[])(void) = { + sub_0805370C, + nullsub_482, +}; + +void sub_080536F0(void) { + gUnk_080FCD38[gMenu.overlayType](); +} + +void sub_0805370C(void) { + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + sub_08051FF0(); + LoadRoomEntityList((EntityData*)gUnk_080FCC54); + SetFade(FADE_INSTANT, 0x10); +} + +void sub_08053758(void); +void sub_08053800(void); +void sub_08053894(void); +void sub_08053800(void); +void sub_08053894(void); +void sub_08053800(void); +void sub_08053894(void); +void sub_08053800(void); +void sub_08053894(void); +void sub_08053800(void); +void sub_08053894(void); +void sub_08053800(void); +void sub_08053894(void); +void sub_080539F4(void); +void sub_08053A1C(void); +void sub_08053A5C(void); +void sub_08053A90(void); +void (*const gUnk_080FCD40[])(void) = { + sub_08053758, sub_08053800, sub_08053894, sub_08053800, sub_08053894, sub_08053800, + sub_08053894, sub_08053800, sub_08053894, sub_08053800, sub_08053894, sub_08053800, + sub_08053894, sub_080539F4, sub_08053A1C, sub_08053A5C, sub_08053A90, +}; + +void sub_0805373C(void) { + gUnk_080FCD40[gMenu.overlayType](); +} + +void sub_08053758(void) { + gMenu.overlayType = 1; + gMenu.transitionTimer = 120; + gMenu.field_0xa = 0x1e; + *((u8*)&gMenu + 0x10) = 0; // TODO + gUI.field_0x6 = 1; + gMapBottom.bgSettings = NULL; + gMapTop.bgSettings = NULL; + gRoomControls.camera_target = NULL; + gRoomControls.scroll_y = 0; + gRoomControls.scroll_x = 0; + ClearBgAnimations(); + DispReset(0); + gScreen.lcd.displayControl = 0x2640; + gScreen.controls.layerFXControl = 0x2244; + gScreen.controls.alphaBlend = 0x1000; + gScreen.controls.windowInsideControl = 0x1f; + gScreen.controls.windowOutsideControl = 0x3f; + gScreen.controls.window0HorizontalDimensions = 0xf0; + gScreen.controls.window0VerticalDimensions = 0x60; + gScreen.bg1.control = 0x1c4e; + gScreen.bg2.control = 0x1dc1; + SoundReq(BGM_STORY); + ResetSystemPriority(); + SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); +} + +void sub_08053800(void) { + u32 index; + const struct_080FCCB4* ptr; + if (gFadeControl.active == 0) { + index = gGenericMenu.unk10.a[0]; + ptr = &gUnk_080FCCB4[index]; + gGenericMenu.base.transitionTimer = ptr->transitionTimer; + gGenericMenu.base.field_0xa = 0x1e; + gGenericMenu.unk10.a[0]++; + gGenericMenu.base.overlayType++; + gGenericMenu.base.storyPanelIndex = 0; + LoadPaletteGroup(index + 0x8a); + LoadGfxGroup(index + 0x3a); + MemClear(&gBG1Buffer, 0x800); + ShowTextBox(TEXT_INDEX(TEXT_PICORI, 1) + index, ptr->font); + gScreen.bg1.updated = 1; + gScreen.controls.alphaBlend = 0x10; + gScreen.controls.window0HorizontalDimensions = ptr->width; + gScreen.controls.window0VerticalDimensions = ptr->height; + SetFade(FADE_INSTANT, ptr->fadeSpeed); + } +} + +void sub_08053894(void) { + u32 tmp; + if (gFadeControl.active == 0) { + gMenu.transitionTimer--; + if (gMenu.field_0xa != 0) { + gMenu.field_0xa--; + } else { + if (((gRoomTransition.frameCount & 1) == 0) && (gMenu.storyPanelIndex < 0x10)) { + tmp = ++gMenu.storyPanelIndex << 0x18; + gScreen.controls.alphaBlend = (tmp >> 0x10) | (0x10 - ((tmp) >> 0x19)); + } + } + if (gMenu.transitionTimer == 0) { + gMenu.overlayType++; + SetFade(FADE_IN_OUT | FADE_INSTANT, 8); + } + } +} + +void sub_08053904(void) { + u32 tmp; + if (gFadeControl.active == 0) { + gMenu.transitionTimer--; + if (gMenu.field_0xa != 0) { + gMenu.field_0xa--; + } else { + if (((gRoomTransition.frameCount & 1) == 0) && (gMenu.storyPanelIndex < 0x10)) { + tmp = ++gMenu.storyPanelIndex << 0x18; + gScreen.controls.alphaBlend = (tmp >> 0x10) | (0x10 - (tmp >> 0x19)); + } + } + if (gMenu.transitionTimer == 0) { + gMenu.overlayType++; + SetFade(FADE_IN_OUT | FADE_INSTANT, 1); + } + } +} + +void sub_08053974(void) { + if (gFadeControl.active == 0) { + InitFade(); + DispReset(1); + SetBGDefaults(); + sub_08051F78(); + LoadRoomEntityList(gUnk_080FCBC4); + SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); + gMenu.overlayType++; + } +} + +void nullsub_482(void) { +} + +void sub_080539BC(void) { + SetBGDefaults(); + DeleteAllEntities(); + sub_08051F9C(0x22, 0x11, 0, 0); + sub_0804B0B0(0x22, 0x11); + LoadRoomEntityList(gUnk_080FCC14); + gMenu.overlayType++; +} + +void sub_080539F4(void) { + if (gFadeControl.active == 0) { + DispReset(1); + gMenu.overlayType++; + gMenu.transitionTimer = 60; + } +} + +void sub_08053A1C(void) { + gMenu.transitionTimer--; + if (gMenu.transitionTimer == 0) { + gMenu.overlayType++; + gMenu.transitionTimer = 8; + MessageFromTarget(TEXT_INDEX(TEXT_PICORI, 0x07)); + gMessage.textWindowPosX = 1; + gMessage.textWindowPosY = 8; + SetFade(FADE_INSTANT, 8); + } +} + +void sub_08053A5C(void) { + if (((gMessage.doTextBox & 0x7f) == 0) && --gMenu.transitionTimer == 0) { + gMenu.overlayType++; + SetFade(FADE_IN_OUT | FADE_INSTANT, 8); + } +} + +void sub_08053A90(void) { + if (gFadeControl.active == 0) { + gUI.nextToLoad = 3; // Subtask_FadeOut + SetBGDefaults(); + } +} + +extern Script script_CutsceneOrchestratorMinishVaati; +extern Script script_MinishEzlo; +extern Script script_CutsceneMiscObjectMinishCap; +extern Script script_Vaati; + +const EntityData gUnk_080FCD84[] = { + { OBJECT, 79, CUTSCENE_ORCHESTRATOR, 0, 0, 0x0, 0x0, (u32)&script_CutsceneOrchestratorMinishVaati }, + { NPC, 79, MINISH_EZLO, 0, 0, 0x78, 0xd8, (u32)&script_MinishEzlo }, + { OBJECT, 79, CUTSCENE_MISC_OBJECT, 1, 0, 0x78, 0x58, (u32)&script_CutsceneMiscObjectMinishCap }, + { NPC, 79, VAATI, 1, 0, 0x78, 0x68, (u32)&script_Vaati }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +void sub_08053ACC(void); +void sub_08053B00(void); +void sub_08053B10(void); +void (*const gUnk_080FCDD4[])(void) = { + sub_08053ACC, + sub_08053B00, + sub_08053B10, +}; + +void sub_08053AB0(void) { + gUnk_080FCDD4[gMenu.overlayType](); +} + +void sub_08053ACC(void) { + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + sub_08051FF0(); + LoadRoomEntityList(gUnk_080FCD84); + SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); +} + +void sub_08053B00(void) { + gMenu.overlayType++; +} + +void sub_08053B10(void) { + if (CheckRoomFlag(1)) { + gMenu.menuType++; + DispReset(1); + SetFade(FADE_INSTANT, 0x100); + } +} + +void sub_08053B3C(void) { + sub_080A71C4(5, 4, FADE_IN_OUT | FADE_INSTANT, 0x100); + SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); +} + +extern Script script_CutsceneOrchestratorTakeoverCutscene; +extern Script script_KingDaltusTakeover; +extern Script script_VaatiTakeover; +extern Script script_ZeldaStoneTakeover; +const EntityData gUnk_080FCDE0[] = { + { OBJECT, 79, CUTSCENE_ORCHESTRATOR, 0, 0, 0x0, 0x0, (u32)&script_CutsceneOrchestratorTakeoverCutscene }, + { NPC, 79, KING_DALTUS, 0, 0, 0x88, 0x58, (u32)&script_KingDaltusTakeover }, + { NPC, 79, VAATI, 1, 0, 0x88, 0xe0, (u32)&script_VaatiTakeover }, + { NPC, 79, ZELDA, 0, 0, 0xb8, 0x58, (u32)&script_ZeldaStoneTakeover }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +extern Script script_MinisterPothoTakeover; +extern Script script_GuardTakeover; +extern Script script_GuardTakeover; +const EntityData gUnk_080FCE30[] = { + { NPC, 79, MINISTER_POTHO, 0, 0, 0x68, 0x58, (u32)&script_MinisterPothoTakeover }, + { NPC, 79, GUARD_1, 0, 0, 0x78, 0xe8, (u32)&script_GuardTakeover }, + { NPC, 79, GUARD_1, 1, 0, 0x78, 0x108, (u32)&script_GuardTakeover }, + { NPC, 79, GUARD_1, 2, 0, 0x78, 0x128, (u32)&script_GuardTakeover }, + { NPC, 79, GUARD_1, 3, 0, 0x98, 0xe8, (u32)&script_GuardTakeover }, + { NPC, 79, GUARD_1, 4, 0, 0x98, 0x108, (u32)&script_GuardTakeover }, + { NPC, 79, GUARD_1, 5, 0, 0x98, 0x128, (u32)&script_GuardTakeover }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +void sub_08053B74(void); +void sub_08053BAC(void); +void sub_08053BBC(void); +void (*const gUnk_080FCEB0[])(void) = { + sub_08053B74, + sub_08053BAC, + sub_08053BBC, +}; + +void sub_08053B58(void) { + gUnk_080FCEB0[gMenu.overlayType](); +} + +void sub_08053B74(void) { + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + LoadRoomEntityList(gUnk_080FCDE0); + ResetSystemPriority(); + ResetEntityPriority(); + SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); +} + +void sub_08053BAC(void) { + gMenu.overlayType++; +} + +void sub_08053BBC(void) { + if (CheckRoomFlag(0)) { + gMenu.menuType++; + DispReset(1); + SetFade(FADE_INSTANT, 0x100); + } +} + +void sub_08053BE8(void) { + sub_080A71C4(5, 2, FADE_IN_OUT | FADE_INSTANT, 0x100); + SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); +} + +extern Script script_ZeldaStoneInDHC; +extern Script script_ZeldaStoneDHC; +const EntityData gUnk_080FCEBC[] = { + { NPC, 79, ZELDA, 0, 0, 0x78, 0x68, (u32)&script_ZeldaStoneInDHC }, + { NPC, 79, VAATI, 1, 0, 0x78, 0x98, (u32)&script_ZeldaStoneDHC }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +void sub_08053C20(void); +void nullsub_483(void); +void sub_08053C60(void); +void (*const gUnk_080FCEEC[])(void) = { + sub_08053C20, + nullsub_483, + sub_08053C60, +}; + +void sub_08053C04(void) { + gUnk_080FCEEC[gMenu.overlayType](); +} + +void sub_08053C20(void) { + gMenu.overlayType = 1; + gMenu.transitionTimer = 120; // Go to game over after 2 minutes. + gUpdateVisibleTiles = 1; + sub_08051FF0(); + LoadStaticBackground(4); + LoadRoomEntityList(gUnk_080FCEBC); + SetFade(FADE_INSTANT, 0x10); + SoundReq(BGM_FIGHT_THEME2); +} + +void nullsub_483(void) { +} + +void sub_08053C60(void) { + SetFade(FADE_IN_OUT | FADE_INSTANT, 2); + SoundReq(SFX_SUMMON); + SoundReq(SONG_STOP_BGM); + SetTask(TASK_GAMEOVER); +} + +void sub_08053C84(void) { + gMenu.overlayType = 2; +} +void sub_08053CAC(void); +void sub_08053CAC(void); +void sub_08053E58(void); +void (*const gUnk_080FCEF8[])(void) = { + sub_08053CAC, + sub_08053CAC, + sub_08053E58, +}; + +void CutsceneMain_Exit(void) { + gUnk_080FCEF8[gMenu.field_0x3](); +} + +const EntityData gUnk_080FCF24[]; +const EntityData gUnk_080FCF44[]; +const EntityData gUnk_080FCF64[]; +const EntityData gUnk_080FCF84[]; + +const struct_080FCF04 gUnk_080FCF04[] = { + { gUnk_080FCF24, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_STAIRS_2F, 0, 0 }, + { gUnk_080FCF44, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_STAIRS_1F, 0, 0 }, + { gUnk_080FCF64, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_2F, 0, 0 }, + { gUnk_080FCF84, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_1F, 0, 0 }, +}; + +const EntityData gUnk_080FCF24[] = { + { OBJECT, 15, GROUND_ITEM, 83, 512, 0x88, 0x68, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +const EntityData gUnk_080FCF44[] = { + { OBJECT, 15, GROUND_ITEM, 83, 512, 0x68, 0x68, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +const EntityData gUnk_080FCF64[] = { + { OBJECT, 15, GROUND_ITEM, 83, 512, 0x88, 0x68, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +const EntityData gUnk_080FCF84[] = { + { OBJECT, 15, GROUND_ITEM, 83, 512, 0x68, 0x68, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +void sub_08053CC8(void); +void sub_08053D34(void); +void sub_08053D90(void); +void sub_08053DB4(void); +void sub_08053E30(void); +void (*const gUnk_080FCFA4[])(void) = { + sub_08053CC8, sub_08053D34, sub_08053D90, sub_08053DB4, sub_08053E30, +}; + +void sub_08053CAC(void) { + gUnk_080FCFA4[gMenu.overlayType](); +} + +void sub_08053CC8(void) { + const struct_080FCF04* ptr; + ptr = gUnk_080FCF04 + gMenu.field_0x3 * 2; + gMenu.field_0xc = (void*)&ptr[1]; + LoadRoomEntityList(ptr->entityData); + LoadRoomEntityList(GetRoomProperty(ptr->area, ptr->room, 1)); + LoadRoomEntityList(GetRoomProperty(ptr->area, ptr->room, 2)); + gMenu.overlayType = 1; + gScreen.lcd.displayControl &= 0xfeff; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); + if (ptr->room == 0x1d) { // TODO what room is this? + gMenu.field_0xa = 1; + } +} + +void sub_08053D34(void) { + if (gMenu.field_0xa != 0) { + gMenu.field_0xa = 0; + if (CheckLocalFlagByBank(FLAG_BANK_7, 0x3d)) { + SetTileType(0x74, 0xc4, 1); + } + if (CheckLocalFlagByBank(FLAG_BANK_7, 0x3e)) { + SetTileType(0x74, 0xcc, 1); + } + } + if (gFadeControl.active == 0) { + gMenu.transitionTimer = 120; + gMenu.overlayType++; + } +} + +void sub_08053D90(void) { + gMenu.transitionTimer--; + if (gMenu.transitionTimer == 0) { + gMenu.overlayType++; + SetFadeInverted(0x10); + } +} + +void sub_08053DB4(void) { + if (gFadeControl.active == 0) { + struct_080FCF04* ptr = (struct_080FCF04*)gMenu.field_0xc; + sub_08052FF4(gMenu.field_0xc[4], gMenu.field_0xc[5]); + InitializeCamera(); + gUpdateVisibleTiles = 1; + gRoomControls.scroll_x = (s8)ptr->scrollX + gRoomControls.scroll_x; + gRoomControls.scroll_y = (s8)ptr->scrollY + gRoomControls.scroll_y; + LoadRoomEntityList(ptr->entityData); + LoadRoomEntityList((EntityData*)GetRoomProperty(ptr->area, ptr->room, 1)); + LoadRoomEntityList((EntityData*)GetRoomProperty(ptr->area, ptr->room, 2)); + gMenu.transitionTimer = 120; + gMenu.overlayType++; + SetFadeInverted(0x10); + } +} + +void sub_08053E30(void) { + if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} + +const EntityData gUnk_080FCFE8[]; +const EntityData gUnk_080FD008[]; +const EntityData gUnk_080FD028[]; +const EntityData gUnk_080FD048[]; +const EntityData gUnk_080FD078[]; +const EntityData gUnk_080FD098[]; +const EntityData gUnk_080FD0C8[]; +const EntityData gUnk_080FD0E8[]; +const struct_080FCFB8 gUnk_080FCFB8[] = { + { gUnk_080FCFE8, gUnk_080FD008, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_DARKNUT, 16, 16 }, + { gUnk_080FD028, gUnk_080FD048, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_DARKNUTS, 16, 16 }, + { gUnk_080FD078, gUnk_080FD098, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_DARKNUTS, 16, 16 }, + { gUnk_080FD0C8, gUnk_080FD0E8, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_DARKNUT, 16, 16 }, +}; + +const EntityData gUnk_080FCFE8[] = { + { OBJECT, 15, BOSS_DOOR, 8, 0, 0x88, 0x28, 65535 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +const EntityData gUnk_080FD008[] = { + { ENEMY, 47, DARK_NUT, 2, 0, 0x88, 0x68, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +const EntityData gUnk_080FD028[] = { + { OBJECT, 15, BOSS_DOOR, 8, 0, 0x88, 0x28, 65535 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +const EntityData gUnk_080FD048[] = { + { ENEMY, 47, DARK_NUT, 1, 0, 0x70, 0x68, 0 }, + { ENEMY, 47, DARK_NUT, 0, 0, 0xa0, 0x68, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +const EntityData gUnk_080FD078[] = { + { OBJECT, 15, BOSS_DOOR, 10, 0, 0x88, 0xa8, 65535 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +const EntityData gUnk_080FD098[] = { + { ENEMY, 47, DARK_NUT, 0, 0, 0x70, 0x68, 0 }, + { ENEMY, 47, DARK_NUT, 1, 0, 0xa0, 0x68, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +const EntityData gUnk_080FD0C8[] = { + { OBJECT, 15, BOSS_DOOR, 10, 0, 0x88, 0xa8, 65535 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +const EntityData gUnk_080FD0E8[] = { + { ENEMY, 47, DARK_NUT, 2, 0, 0x88, 0x68, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +void sub_08053E74(void); +void sub_08053EC4(void); +void sub_08053EFC(void); +void sub_08053F20(void); +void sub_08053EC4(void); +void sub_08053EFC(void); +void sub_08053F20(void); +void sub_08053EC4(void); +void sub_08053EFC(void); +void sub_08053F20(void); +void sub_08053EC4(void); +void sub_08053F88(void); +void (*const gUnk_080FD108[])(void) = { + sub_08053E74, sub_08053EC4, sub_08053EFC, sub_08053F20, sub_08053EC4, sub_08053EFC, + sub_08053F20, sub_08053EC4, sub_08053EFC, sub_08053F20, sub_08053EC4, sub_08053F88, +}; + +void sub_08053E58(void) { + gUnk_080FD108[gMenu.overlayType](); +} + +void sub_08053E74(void) { + const struct_080FCFB8* ptr = gUnk_080FCFB8; + gMenu.field_0xc = (u8*)ptr; + LoadRoomEntityList(ptr->entityData1); + gMenu.transitionTimer = 120; + gMenu.field_0xa = 0x3c; + gMenu.overlayType++; + gScreen.lcd.displayControl &= 0xfeff; + gUpdateVisibleTiles = 1; + SetMinPriority(1); + SetFade(FADE_INSTANT, 8); +} + +void sub_08053EC4(void) { + EntityData** data; + if ((gFadeControl.active == 0) && (--gMenu.field_0xa == 0)) { + data = (EntityData**)(gMenu.field_0xc + 4); // TODO entityData2 of struct_080FCFB8 + gMenu.field_0xc += 0xc; + LoadRoomEntityList(*data); + gMenu.overlayType++; + } +} + +void sub_08053EFC(void) { + if (--gMenu.transitionTimer == 0) { + gMenu.overlayType++; + SetFadeInverted(8); + } +} + +void sub_08053F20(void) { + struct_080FCFB8* ptr; + if (gFadeControl.active == 0) { + DeleteAllEntities(); + ptr = (struct_080FCFB8*)gMenu.field_0xc; + sub_08052FF4(ptr->area, ptr->room); + InitializeCamera(); + gUpdateVisibleTiles = 1; + gRoomControls.scroll_x = (s8)ptr->scrollX + gRoomControls.scroll_x; + gRoomControls.scroll_y = (s8)ptr->scrollY + gRoomControls.scroll_y; + LoadRoomEntityList((ptr)->entityData1); + gMenu.transitionTimer = 120; + gMenu.field_0xa = 0x3c; + gMenu.overlayType++; + SetFadeInverted(8); + } +} + +void sub_08053F88(void) { + if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) { + gMenu.menuType++; + ResetEntityPriority(); + } +} + +void sub_080536D4(void); +void sub_08053B58(void); +void sub_0805373C(void); +void sub_08053AB0(void); +void sub_080536F0(void); +void sub_08053C04(void); +void (*const gUnk_080FD138[])(void) = { + sub_080536D4, sub_08053B58, sub_0805373C, sub_08053AB0, sub_080536F0, sub_08053C04, +}; + +void CutsceneMain_Update(void) { + gUnk_080FD138[gMenu.field_0x3](); +} diff --git a/src/data/figurineMenuData.c b/src/data/figurineMenuData.c new file mode 100644 index 00000000..67b338b0 --- /dev/null +++ b/src/data/figurineMenuData.c @@ -0,0 +1,56 @@ +#include "figurineMenu.h" +#include "pauseMenu.h" +#include "subtask.h" +#include "subtask2.h" + +// This data also belongs in figurine_menu.c, but the data/gfx/figurines.s are inbetween. +// TODO convert them to c code as well. + +// clang-format off + +// Pause menu screens +const struct_08128A38 gUnk_08128A38[] = { + [PauseMenuScreen_0] = { 0, 1, PauseMenu_Variant0 }, + [PauseMenuScreen_1] = { 0, 1, PauseMenu_ItemMenu }, + [PauseMenuScreen_2] = { 1, 2, PauseMenu2 }, + [PauseMenuScreen_3] = { 8, 2, PauseMenu_Variant0 }, + [PauseMenuScreen_4] = { 2, 15, PauseMenu_Screen_4 }, + [PauseMenuScreen_5] = { 3, 15, PauseMenu_Screen_5 }, + [PauseMenuScreen_6] = { 4, 15, PauseMenu_Screen_6 }, + [PauseMenuScreen_7] = { 5, 2, PauseMenu_Screen_7 }, + [PauseMenuScreen_8] = { 6, 2, PauseMenu_Screen_8 }, + [PauseMenuScreen_9] = { 9, 2, PauseMenu_Screen_9 }, + [PauseMenuScreen_10] = { 10, 2, PauseMenu_Screen_10 }, + [PauseMenuScreen_11] = { 10, 1, PauseMenu_Screen_10 }, + [PauseMenuScreen_12] = { 2, 15, PauseMenu_Variant0 }, + [PauseMenuScreen_13] = { 7, 15, PauseMenu_Variant0 }, + [PauseMenuScreen_14] = { 0, 1, PauseMenu_Variant0 }, + [PauseMenuScreen_15] = { 0, 1, PauseMenu_Variant0 }, + [PauseMenuScreen_16] = { 0, 1, PauseMenu_Variant0 }, + [PauseMenuScreen_17] = { 0, 1, PauseMenu_Variant0 }, + [PauseMenuScreen_18] = { 0, 1, PauseMenu_Variant0 }, + [PauseMenuScreen_19] = { 0, 1, PauseMenu_Variant0 }, +}; + + +// TODO extract the bg controls +const struct_08128AD8 gUnk_08128AD8[] = { + { 182, 90, 1024, 7173, 7427 }, + { 183, 91, 1024, 7173, 7427 }, + { 185, 94, 34304, 7171, 7435 }, + { 184, 92, 1536, 7170, 7427 }, + { 185, 129, 1536, 7178, 7427 }, + { 204, 125, 1024, 7171, 7427 }, + { 205, 126, 1536, 7170, 7427 }, + { 185, 93, 34304, 7171, 7435 }, + { 206, 89, 3840, 7170, 7427 }, +#ifdef EU + { 0, 128, 1536, 7170, 7431 }, + { 0, 127, 1536, 7170, 7431 }, +#else + { 207, 128, 1536, 7170, 7431 }, + { 207, 127, 1536, 7170, 7431 }, +#endif +}; + +// clang-format on diff --git a/src/data/hitbox.c b/src/data/hitbox.c new file mode 100644 index 00000000..297e17b4 --- /dev/null +++ b/src/data/hitbox.c @@ -0,0 +1,138 @@ +/** + * @file hitbox.c + * + * @brief Hitboxes + */ +#include "hitbox.h" + +const Hitbox gHitbox_0 = { 0, -3, { 5, 3, 3, 5 }, 6, 6 }; +const Hitbox gHitbox_30 = { 0, 6, { 5, 3, 3, 5 }, 10, 16 }; +const Hitbox gHitbox_31 = { 0, 6, { 5, 3, 3, 5 }, 10, 15 }; +const Hitbox gHitbox_1 = { 0, 0, { 5, 3, 3, 5 }, 6, 6 }; +const Hitbox gHitbox_2 = { 0, -3, { 5, 3, 3, 5 }, 8, 8 }; +const Hitbox gUnk_080FD178 = { 0, 0, { 5, 3, 3, 5 }, 8, 8 }; +const Hitbox gHitbox_3 = { 0, -3, { 5, 3, 3, 5 }, 12, 12 }; +const Hitbox gHitbox_4 = { 0, 0, { 9, 6, 6, 9 }, 10, 10 }; +const Hitbox gUnk_080FD190 = { 0, 0, { 12, 8, 8, 12 }, 14, 14 }; +const Hitbox gHitbox_5 = { 0, -1, { 6, 3, 3, 6 }, 6, 5 }; +const Hitbox gHitbox_6 = { 0, 0, { 4, 2, 2, 4 }, 2, 2 }; +const Hitbox3D gUnk_080FD1A8 = { 0, -3, { 6, 3, 3, 6 }, 2, 2, 64, { 0, 0, 0 } }; +const Hitbox gUnk_080FD1B4 = { 0, -4, { 8, 5, 6, 7 }, 8, 10 }; +const Hitbox unused1 = { 0, -3, { 0, 0, 0, 0 }, 0, 0 }; +const Hitbox gHitbox_7 = { 0, 0, { 2, 0, 0, 2 }, 2, 2 }; +const Hitbox gHitbox_8 = { 0, 1, { 5, 2, 3, 4 }, 4, 4 }; +const Hitbox gUnk_080FD1D4 = { 0, -3, { 0, 0, 0, 0 }, 10, 8 }; +const Hitbox gUnk_080FD1DC = { 0, 0, { 6, 4, 4, 6 }, 6, 6 }; +const Hitbox gUnk_080FD1E4 = { 0, 0, { 0, 0, 0, 0 }, 4, 4 }; +const Hitbox gUnk_080FD1EC = { 0, 0, { 0, 0, 0, 0 }, 2, 2 }; +const Hitbox gUnk_080FD1F4 = { 0, -1, { 6, 4, 4, 6 }, 4, 4 }; +const Hitbox gUnk_080FD1FC = { 0, 0, { 6, 4, 4, 6 }, 6, 6 }; +const Hitbox gUnk_080FD204 = { 0, 0, { 0, 0, 0, 0 }, 5, 5 }; +const Hitbox gUnk_080FD20C = { 0, 0, { 0, 0, 0, 0 }, 4, 4 }; +const Hitbox gUnk_080FD214 = { 0, 0, { 0, 0, 0, 0 }, 2, 2 }; +const Hitbox gUnk_080FD21C = { 0, 0, { 6, 4, 4, 6 }, 6, 6 }; +const Hitbox gUnk_080FD224 = { 0, -2, { 0, 0, 0, 0 }, 5, 3 }; +const Hitbox3D gUnk_080FD22C = { 0, 0, { 5, 3, 3, 5 }, 6, 6, 12, { 0, 0, 0 } }; +const Hitbox gUnk_080FD238 = { 0, 4, { 25, 8, 8, 12 }, 26, 8 }; +const Hitbox gUnk_080FD240 = { 0, 12, { 28, 14, 14, 16 }, 24, 24 }; +const Hitbox gUnk_080FD248 = { 0, 0, { 28, 14, 14, 16 }, 16, 16 }; +const Hitbox gHitbox_9 = { 0, -4, { 5, 3, 3, 5 }, 6, 6 }; +const Hitbox gUnk_080FD258 = { 0, -6, { 9, 6, 5, 10 }, 7, 8 }; +const Hitbox gUnk_080FD260 = { 0, -3, { 5, 3, 3, 4 }, 3, 3 }; +const Hitbox gHitbox_10 = { 0, -3, { 0, 0, 0, 0 }, 2, 3 }; +const Hitbox gUnk_080FD270 = { 0, 0, { 4, 4, 4, 4 }, 2, 6 }; +const Hitbox gUnk_080FD278 = { 0, 0, { 4, 4, 4, 4 }, 6, 2 }; +const Hitbox gUnk_080FD280 = { 0, -2, { 0, 0, 0, 0 }, 12, 14 }; +const Hitbox gUnk_080FD288 = { 0, -3, { 14, 12, 10, 12 }, 12, 10 }; +const Hitbox gUnk_080FD290 = { 0, 0, { 5, 3, 3, 5 }, 6, 6 }; +const Hitbox gUnk_080FD298 = { 0, 0, { 0, 0, 0, 0 }, 4, 4 }; +const Hitbox gUnk_080FD2A0 = { 0, 0, { 0, 0, 0, 0 }, 2, 2 }; +const Hitbox gUnk_080FD2A8 = { 0, -6, { 34, 24, 28, 32 }, 26, 21 }; +const Hitbox gHitbox_11 = { 0, -4, { 0, 0, 0, 0 }, 7, 4 }; +const Hitbox gHitbox_12 = { 0, -6, { 0, 0, 0, 0 }, 7, 4 }; +const Hitbox gHitbox_13 = { 0, 0, { 9, 4, 4, 9 }, 4, 4 }; +const Hitbox gHitbox_14 = { 0, -3, { 6, 4, 4, 6 }, 5, 5 }; +const Hitbox gUnk_080FD2D0 = { 0, -8, { 5, 3, 3, 5 }, 18, 16 }; +const Hitbox gUnk_080FD2D8 = { 0, -14, { 5, 3, 3, 5 }, 4, 4 }; +const Hitbox gUnk_080FD2E0 = { 0, 0, { 5, 3, 3, 5 }, 12, 12 }; +const Hitbox gUnk_080FD2E8 = { 0, 0, { 5, 3, 3, 5 }, 32, 32 }; +const Hitbox gUnk_080FD2F0 = { 0, 0, { 6, 4, 4, 6 }, 6, 6 }; +const Hitbox gHitbox_15 = { 0, 0, { 6, 4, 4, 6 }, 9, 9 }; +const Hitbox gHitbox_16 = { 0, -7, { 0, 0, 0, 0 }, 8, 7 }; +const Hitbox gUnk_080FD308 = { 0, -12, { 16, 8, 8, 16 }, 8, 8 }; +const Hitbox gUnk_080FD310 = { 0, -2, { 5, 3, 3, 5 }, 9, 9 }; +const Hitbox gHitbox_17 = { 0, 1, { 8, 6, 6, 8 }, 6, 6 }; +const Hitbox gUnk_080FD320 = { 0, 0, { 5, 3, 3, 5 }, 8, 12 }; +const Hitbox gUnk_080FD328 = { 0, 0, { 5, 3, 3, 5 }, 6, 12 }; +const Hitbox gUnk_080FD330 = { 0, -6, { 5, 3, 3, 5 }, 6, 6 }; +const Hitbox gHitbox_18 = { 0, -4, { 6, 3, 3, 6 }, 6, 6 }; +const Hitbox3D gUnk_080FD340 = { 0, 0, { 6, 3, 3, 6 }, 3, 3, 16, { 0, 0, 0 } }; +const Hitbox gUnk_080FD34C = { 0, 0, { 4, 2, 2, 4 }, 4, 4 }; +const Hitbox gUnk_080FD354 = { 0, -2, { 0, 0, 0, 0 }, 32, 10 }; +const Hitbox gUnk_080FD35C = { 11, 2, { 0, 0, 0, 0 }, 9, 8 }; +const Hitbox gUnk_080FD364 = { 12, 6, { 0, 0, 0, 0 }, 9, 8 }; +const Hitbox gUnk_080FD36C = { -11, 2, { 0, 0, 0, 0 }, 9, 8 }; +const Hitbox gUnk_080FD374 = { -12, 6, { 0, 0, 0, 0 }, 9, 8 }; +const Hitbox gUnk_080FD37C = { -2, -6, { 0, 0, 0, 0 }, 4, 5 }; +const Hitbox gUnk_080FD384 = { 2, -6, { 0, 0, 0, 0 }, 4, 5 }; +const Hitbox gUnk_080FD38C = { 0, 0, { 0, 0, 0, 0 }, 16, 12 }; +const Hitbox gUnk_080FD394 = { 31, 2, { 0, 0, 0, 0 }, 9, 8 }; +const Hitbox gUnk_080FD39C = { 8, 12, { 0, 0, 0, 0 }, 10, 10 }; +const Hitbox gUnk_080FD3A4 = { 0, 12, { 0, 0, 0, 0 }, 6, 18 }; +const Hitbox gUnk_080FD3AC = { -18, 10, { 0, 0, 0, 0 }, 12, 12 }; +const Hitbox gUnk_080FD3B4 = { -31, 2, { 0, 0, 0, 0 }, 9, 8 }; +const Hitbox gUnk_080FD3BC = { -8, 12, { 0, 0, 0, 0 }, 10, 10 }; +const Hitbox gUnk_080FD3C4 = { 18, 10, { 0, 0, 0, 0 }, 12, 12 }; +const Hitbox gUnk_080FD3CC = { 0, 0, { 72, 60, 60, 72 }, 40, 40 }; +const Hitbox unused2 = { 0, 0, { 52, 44, 44, 52 }, 40, 40 }; +const Hitbox gUnk_080FD3DC = { 0, 0, { 8, 8, 8, 8 }, 16, 16 }; +const Hitbox gUnk_080FD3E4 = { 0, 0, { 8, 8, 8, 8 }, 16, 16 }; +const Hitbox gUnk_080FD3EC = { 0, 0, { 8, 8, 8, 8 }, 16, 16 }; +const Hitbox gUnk_080FD3F4 = { 0, 0, { 8, 5, 5, 8 }, 16, 16 }; +const Hitbox3D gUnk_080FD3FC = { 0, -3, { 5, 3, 3, 5 }, 6, 6, 16, { 0, 0, 0 } }; +const Hitbox gUnk_080FD408 = { 0, 0, { 9, 4, 4, 9 }, 4, 4 }; +const Hitbox3D gHitbox_19 = { 0, -3, { 5, 3, 3, 5 }, 6, 6, 12, { 0, 0, 0 } }; +const Hitbox gUnk_080FD41C = { 0, 0, { 0, 0, 0, 0 }, 6, 6 }; +const Hitbox gUnk_080FD424 = { -3, 0, { 0, 0, 0, 0 }, 5, 6 }; +const Hitbox gUnk_080FD42C = { 0, -1, { 0, 0, 0, 0 }, 6, 6 }; +const Hitbox gUnk_080FD434 = { 3, 0, { 0, 0, 0, 0 }, 5, 6 }; +const Hitbox3D gUnk_080FD43C = { -16, 12, { 0, 0, 0, 0 }, 8, 4, 24, { 0, 0, 0 } }; +const Hitbox gHitbox_20 = { 0, 0, { 0, 0, 0, 0 }, 4, 4 }; +const Hitbox gUnk_080FD450 = { 0, -3, { 0, 0, 0, 0 }, 4, 4 }; +const Hitbox gHitbox_21 = { 0, 0, { 0, 0, 0, 0 }, 1, 1 }; +const Hitbox gHitbox_22 = { 0, 0, { 0, 0, 0, 0 }, 2, 2 }; +const Hitbox gHitbox_23 = { 0, -3, { 4, 3, 3, 4 }, 4, 4 }; +const Hitbox gHitbox_32 = { 0, -5, { 9, 6, 6, 9 }, 10, 10 }; +const Hitbox unused3 = { 0, -4, { 5, 3, 3, 5 }, 5, 5 }; +const Hitbox gHitbox_24 = { 0, -3, { 5, 3, 3, 5 }, 3, 3 }; +const Hitbox gUnk_080FD488 = { 0, -3, { 6, 3, 3, 4 }, 4, 3 }; +const Hitbox gUnk_080FD490 = { 0, -3, { 3, 2, 2, 3 }, 2, 2 }; +const Hitbox3D gHitbox_25 = { 0, -6, { 5, 3, 3, 5 }, 6, 6, 16, { 0, 0, 0 } }; +const Hitbox3D gHitbox_26 = { 0, -5, { 4, 2, 2, 4 }, 4, 4, 16, { 0, 0, 0 } }; +const Hitbox unused4 = { 0, -7, { 8, 6, 6, 8 }, 6, 6 }; +const Hitbox gUnk_080FD4B8 = { 0, 0, { 0, 0, 0, 0 }, 3, 8 }; +const Hitbox gUnk_080FD4C0 = { 0, 0, { 0, 0, 0, 0 }, 3, 16 }; +const Hitbox gUnk_080FD4C8 = { 0, 0, { 0, 0, 0, 0 }, 3, 24 }; +const Hitbox gUnk_080FD4D0 = { 0, 0, { 0, 0, 0, 0 }, 3, 32 }; +const Hitbox gUnk_080FD4D8 = { 0, 0, { 0, 0, 0, 0 }, 3, 40 }; +const Hitbox gUnk_080FD4E0 = { 0, 0, { 0, 0, 0, 0 }, 3, 48 }; +const Hitbox gUnk_080FD4E8 = { 0, 0, { 0, 0, 0, 0 }, 3, 56 }; +const Hitbox gUnk_080FD4F0 = { 0, 0, { 0, 0, 0, 0 }, 16, 3 }; +const Hitbox gUnk_080FD4F8 = { 0, 0, { 0, 0, 0, 0 }, 24, 3 }; +const Hitbox gUnk_080FD500 = { 0, 0, { 0, 0, 0, 0 }, 32, 3 }; +const Hitbox gUnk_080FD508 = { 0, 0, { 0, 0, 0, 0 }, 40, 3 }; +const Hitbox gUnk_080FD510 = { 0, 0, { 0, 0, 0, 0 }, 48, 3 }; +const Hitbox gUnk_080FD518 = { 0, 0, { 0, 0, 0, 0 }, 56, 3 }; +const Hitbox gUnk_080FD520 = { 0, 0, { 0, 0, 0, 0 }, 64, 3 }; +const Hitbox gHitbox_27 = { 0, 0, { 3, 2, 2, 3 }, 1, 1 }; +const Hitbox gUnk_080FD530 = { 0, 9, { 10, 8, 8, 10 }, 12, 12 }; +const Hitbox3D gUnk_080FD538 = { 0, -4, { 28, 23, 23, 28 }, 6, 6, 10, { 0, 0, 0 } }; +const Hitbox gUnk_080FD544 = { 0, -20, { 36, 24, 28, 32 }, 16, 16 }; +const Hitbox3D gHitbox_28 = { 0, 0, { 0, 0, 0, 0 }, 16, 16, 14, { 0, 0, 0 } }; +const Hitbox gUnk_080FD558 = { 0, 0, { 5, 3, 3, 5 }, 4, 4 }; +const Hitbox gUnk_080FD560 = { 0, 0, { 0, 0, 0, 0 }, 1, 1 }; +const Hitbox gHitbox_29 = { 0, -4, { 7, 5, 5, 7 }, 7, 7 }; +const Hitbox gUnk_080FD570 = { 0, -4, { 0, 0, 0, 0 }, 8, 6 }; +const Hitbox gUnk_080FD578 = { 0, -4, { 0, 0, 0, 0 }, 12, 6 }; +const Hitbox gUnk_080FD580 = { 0, -3, { 8, 5, 5, 8 }, 10, 10 }; +const Hitbox gUnk_080FD588 = { 0, -7, { 5, 3, 3, 5 }, 6, 6 }; diff --git a/src/data/objPalettes.c b/src/data/objPalettes.c new file mode 100644 index 00000000..a39037ce --- /dev/null +++ b/src/data/objPalettes.c @@ -0,0 +1,132 @@ +#include "global.h" +#include "assets/gfx_offsets.h" + +const u32 gUnk_08133368[] = { + offset_gPalette_14 | 1 << 0x18, offset_gPalette_15 | 1 << 0x18, offset_gPalette_16 | 1 << 0x18, + offset_gPalette_17 | 1 << 0x18, offset_gPalette_22 | 1 << 0x18, offset_gPalette_23 | 1 << 0x18, + offset_gPalette_102 | 1 << 0x18, offset_gPalette_321 | 1 << 0x18, offset_gPalette_100 | 1 << 0x18, + offset_gPalette_101 | 1 << 0x18, offset_gPalette_103 | 1 << 0x18, offset_gPalette_118 | 1 << 0x18, + offset_gPalette_105 | 1 << 0x18, offset_gPalette_104 | 1 << 0x18, offset_gPalette_106 | 1 << 0x18, + offset_gPalette_89 | 1 << 0x18, offset_gPalette_90 | 1 << 0x18, offset_gPalette_91 | 1 << 0x18, + offset_gPalette_107 | 1 << 0x18, offset_gPalette_109 | 1 << 0x18, offset_gPalette_94 | 1 << 0x18, + offset_gPalette_47 | 1 << 0x18, offset_gPalette_79 | 1 << 0x18, offset_gPalette_80 | 1 << 0x18, + offset_gPalette_24 | 1 << 0x18, offset_gPalette_679 | 1 << 0x18, offset_gPalette_205 | 1 << 0x18, + offset_gPalette_206 | 1 << 0x18, offset_gPalette_207 | 1 << 0x18, offset_gPalette_239 | 1 << 0x18, + offset_gPalette_231 | 1 << 0x18, offset_gPalette_133 | 1 << 0x18, offset_gPalette_134 | 1 << 0x18, + offset_gPalette_129 | 1 << 0x18, offset_gPalette_135 | 1 << 0x18, offset_gPalette_136 | 1 << 0x18, + offset_gPalette_137 | 1 << 0x18, offset_gPalette_138 | 1 << 0x18, offset_gPalette_139 | 1 << 0x18, + offset_gPalette_140 | 1 << 0x18, offset_gPalette_130 | 1 << 0x18, offset_gPalette_131 | 1 << 0x18, + offset_gPalette_132 | 1 << 0x18, offset_gPalette_141 | 1 << 0x18, offset_gPalette_142 | 1 << 0x18, + offset_gPalette_144 | 1 << 0x18, offset_gPalette_145 | 1 << 0x18, offset_gPalette_146 | 1 << 0x18, + offset_gPalette_143 | 1 << 0x18, offset_gPalette_147 | 1 << 0x18, offset_gPalette_148 | 1 << 0x18, + offset_gPalette_149 | 1 << 0x18, offset_gPalette_150 | 1 << 0x18, offset_gPalette_151 | 1 << 0x18, + offset_gPalette_152 | 1 << 0x18, offset_gPalette_153 | 1 << 0x18, offset_gPalette_154 | 1 << 0x18, + offset_gPalette_155 | 1 << 0x18, offset_gPalette_128 | 1 << 0x18, offset_gPalette_156 | 1 << 0x18, + offset_gPalette_168 | 1 << 0x18, offset_gPalette_169 | 1 << 0x18, offset_gPalette_170 | 1 << 0x18, + offset_gPalette_248 | 1 << 0x18, offset_gPalette_249 | 1 << 0x18, offset_gPalette_250 | 1 << 0x18, + offset_gPalette_251 | 1 << 0x18, offset_gPalette_252 | 1 << 0x18, offset_gPalette_253 | 1 << 0x18, + offset_gPalette_254 | 1 << 0x18, offset_gPalette_255 | 1 << 0x18, offset_gPalette_256 | 1 << 0x18, + offset_gPalette_257 | 1 << 0x18, offset_gPalette_258 | 1 << 0x18, offset_gPalette_259 | 1 << 0x18, + offset_gPalette_260 | 1 << 0x18, offset_gPalette_261 | 1 << 0x18, offset_gPalette_262 | 1 << 0x18, + offset_gPalette_263 | 1 << 0x18, offset_gPalette_264 | 1 << 0x18, offset_gPalette_265 | 1 << 0x18, + offset_gPalette_266 | 1 << 0x18, offset_gPalette_267 | 1 << 0x18, offset_gPalette_268 | 1 << 0x18, + offset_gPalette_269 | 1 << 0x18, offset_gPalette_270 | 1 << 0x18, offset_gPalette_271 | 1 << 0x18, + offset_gPalette_3773 | 1 << 0x18, offset_gPalette_92 | 1 << 0x18, offset_gPalette_85 | 1 << 0x18, + offset_gPalette_86 | 1 << 0x18, offset_gPalette_87 | 1 << 0x18, offset_gPalette_3774 | 1 << 0x18, + offset_gPalette_123 | 1 << 0x18, offset_gPalette_2212 | 1 << 0x18, offset_gPalette_2213 | 1 << 0x18, + offset_gPalette_124 | 1 << 0x18, offset_gPalette_42 | 1 << 0x18, offset_gPalette_235 | 1 << 0x18, + offset_gPalette_236 | 1 << 0x18, offset_gPalette_237 | 1 << 0x18, offset_gPalette_238 | 1 << 0x18, + offset_gPalette_108 | 1 << 0x18, offset_gPalette_93 | 1 << 0x18, offset_gPalette_680 | 1 << 0x18, + offset_gPalette_43 | 1 << 0x18, offset_gPalette_44 | 1 << 0x18, offset_gPalette_45 | 1 << 0x18, + offset_gPalette_46 | 1 << 0x18, offset_gPalette_125 | 1 << 0x18, offset_gPalette_284 | 1 << 0x18, + offset_gPalette_283 | 1 << 0x18, offset_gPalette_285 | 1 << 0x18, offset_gPalette_286 | 1 << 0x18, + offset_gPalette_287 | 1 << 0x18, offset_gPalette_288 | 1 << 0x18, offset_gPalette_289 | 1 << 0x18, + offset_gPalette_290 | 1 << 0x18, offset_gPalette_291 | 1 << 0x18, offset_gPalette_292 | 1 << 0x18, + offset_gPalette_293 | 1 << 0x18, offset_gPalette_294 | 1 << 0x18, offset_gPalette_295 | 1 << 0x18, + offset_gPalette_296 | 1 << 0x18, offset_gPalette_297 | 1 << 0x18, offset_gPalette_2214 | 1 << 0x18, + offset_gPalette_224 | 1 << 0x18, offset_gPalette_225 | 1 << 0x18, offset_gPalette_226 | 1 << 0x18, + offset_gPalette_227 | 1 << 0x18, offset_gPalette_228 | 1 << 0x18, offset_gPalette_229 | 1 << 0x18, + offset_gPalette_1261 | 1 << 0x18, offset_gPalette_318 | 1 << 0x18, offset_gPalette_319 | 1 << 0x18, + offset_gPalette_320 | 1 << 0x18, offset_gPalette_2140 | 1 << 0x18, offset_gPalette_2141 | 1 << 0x18, + offset_gPalette_2142 | 1 << 0x18, offset_gPalette_2159 | 1 << 0x18, offset_gPalette_2160 | 1 << 0x18, + offset_gPalette_2161 | 1 << 0x18, offset_gPalette_2178 | 1 << 0x18, offset_gPalette_2179 | 1 << 0x18, + offset_gPalette_2180 | 1 << 0x18, offset_gPalette_2197 | 1 << 0x18, offset_gPalette_2198 | 1 << 0x18, + offset_gPalette_2199 | 1 << 0x18, offset_gPalette_95 | 1 << 0x18, offset_gPalette_18 | 1 << 0x18, + offset_gPalette_19 | 1 << 0x18, offset_gPalette_20 | 1 << 0x18, offset_gPalette_21 | 1 << 0x18, + offset_gPalette_96 | 1 << 0x18, offset_gPalette_97 | 1 << 0x18, offset_gPalette_98 | 1 << 0x18, + offset_gPalette_99 | 1 << 0x18, offset_gPalette_110 | 1 << 0x18, offset_gPalette_208 | 2 << 0x18, + offset_gPalette_210 | 2 << 0x18, offset_gPalette_233 | 1 << 0x18, offset_gPalette_157 | 1 << 0x18, + offset_gPalette_158 | 1 << 0x18, offset_gPalette_159 | 1 << 0x18, offset_gPalette_160 | 1 << 0x18, + offset_gPalette_161 | 1 << 0x18, offset_gPalette_162 | 1 << 0x18, offset_gPalette_163 | 1 << 0x18, + offset_gPalette_164 | 1 << 0x18, offset_gPalette_165 | 1 << 0x18, offset_gPalette_166 | 1 << 0x18, + offset_gPalette_167 | 1 << 0x18, offset_gPalette_171 | 1 << 0x18, offset_gPalette_172 | 1 << 0x18, + offset_gPalette_173 | 1 << 0x18, offset_gPalette_234 | 1 << 0x18, offset_gPalette_111 | 1 << 0x18, + offset_gPalette_113 | 1 << 0x18, offset_gPalette_114 | 1 << 0x18, offset_gPalette_48 | 1 << 0x18, + offset_gPalette_49 | 1 << 0x18, offset_gPalette_50 | 1 << 0x18, offset_gPalette_51 | 1 << 0x18, + offset_gPalette_52 | 1 << 0x18, offset_gPalette_53 | 1 << 0x18, offset_gPalette_54 | 1 << 0x18, + offset_gPalette_322 | 1 << 0x18, offset_gPalette_299 | 1 << 0x18, offset_gPalette_300 | 1 << 0x18, + offset_gPalette_298 | 1 << 0x18, offset_gPalette_301 | 1 << 0x18, offset_gPalette_303 | 1 << 0x18, + offset_gPalette_304 | 1 << 0x18, offset_gPalette_305 | 1 << 0x18, offset_gPalette_306 | 1 << 0x18, + offset_gPalette_307 | 1 << 0x18, offset_gPalette_55 | 1 << 0x18, offset_gPalette_57 | 1 << 0x18, + offset_gPalette_58 | 1 << 0x18, offset_gPalette_59 | 1 << 0x18, offset_gPalette_60 | 1 << 0x18, + offset_gPalette_61 | 1 << 0x18, offset_gPalette_62 | 1 << 0x18, offset_gPalette_63 | 1 << 0x18, + offset_gPalette_64 | 1 << 0x18, offset_gPalette_65 | 1 << 0x18, offset_gPalette_66 | 1 << 0x18, + offset_gPalette_67 | 1 << 0x18, offset_gPalette_68 | 1 << 0x18, offset_gPalette_69 | 1 << 0x18, + offset_gPalette_70 | 1 << 0x18, offset_gPalette_174 | 1 << 0x18, offset_gPalette_212 | 1 << 0x18, + offset_gPalette_213 | 1 << 0x18, offset_gPalette_214 | 1 << 0x18, offset_gPalette_215 | 1 << 0x18, + offset_gPalette_216 | 1 << 0x18, offset_gPalette_72 | 1 << 0x18, offset_gPalette_78 | 1 << 0x18, + offset_gPalette_73 | 1 << 0x18, offset_gPalette_74 | 1 << 0x18, offset_gPalette_75 | 1 << 0x18, + offset_gPalette_76 | 1 << 0x18, offset_gPalette_77 | 1 << 0x18, offset_gPalette_175 | 1 << 0x18, + offset_gPalette_176 | 1 << 0x18, offset_gPalette_177 | 1 << 0x18, offset_gPalette_178 | 1 << 0x18, + offset_gPalette_179 | 1 << 0x18, offset_gPalette_180 | 1 << 0x18, offset_gPalette_181 | 1 << 0x18, + offset_gPalette_182 | 1 << 0x18, offset_gPalette_183 | 1 << 0x18, offset_gPalette_184 | 1 << 0x18, + offset_gPalette_185 | 1 << 0x18, offset_gPalette_186 | 1 << 0x18, offset_gPalette_187 | 1 << 0x18, + offset_gPalette_188 | 1 << 0x18, offset_gPalette_189 | 1 << 0x18, offset_gPalette_190 | 1 << 0x18, + offset_gPalette_191 | 1 << 0x18, offset_gPalette_192 | 1 << 0x18, offset_gPalette_193 | 1 << 0x18, + offset_gPalette_194 | 1 << 0x18, offset_gPalette_195 | 1 << 0x18, offset_gPalette_196 | 1 << 0x18, + offset_gPalette_197 | 1 << 0x18, offset_gPalette_198 | 1 << 0x18, offset_gPalette_199 | 1 << 0x18, + offset_gPalette_200 | 1 << 0x18, offset_gPalette_201 | 1 << 0x18, offset_gPalette_202 | 1 << 0x18, + offset_gPalette_308 | 1 << 0x18, offset_gPalette_309 | 1 << 0x18, offset_gPalette_310 | 1 << 0x18, + offset_gPalette_311 | 1 << 0x18, offset_gPalette_312 | 1 << 0x18, offset_gPalette_313 | 1 << 0x18, + offset_gPalette_282 | 1 << 0x18, offset_gPalette_217 | 1 << 0x18, offset_gPalette_204 | 1 << 0x18, + offset_gPalette_218 | 2 << 0x18, offset_gPalette_220 | 1 << 0x18, offset_gPalette_221 | 1 << 0x18, + offset_gPalette_222 | 1 << 0x18, offset_gPalette_127 | 1 << 0x18, offset_gPalette_115 | 1 << 0x18, + offset_gPalette_302 | 1 << 0x18, offset_gPalette_274 | 1 << 0x18, offset_gPalette_275 | 1 << 0x18, + offset_gPalette_276 | 1 << 0x18, offset_gPalette_277 | 1 << 0x18, offset_gPalette_278 | 1 << 0x18, + offset_gPalette_279 | 1 << 0x18, offset_gPalette_329 | 1 << 0x18, offset_gPalette_331 | 1 << 0x18, + offset_gPalette_332 | 1 << 0x18, offset_gPalette_116 | 1 << 0x18, offset_gPalette_334 | 1 << 0x18, + offset_gPalette_344 | 1 << 0x18, offset_gPalette_345 | 1 << 0x18, offset_gPalette_346 | 1 << 0x18, + offset_gPalette_347 | 1 << 0x18, offset_gPalette_348 | 1 << 0x18, offset_gPalette_349 | 1 << 0x18, + offset_gPalette_350 | 1 << 0x18, offset_gPalette_71 | 1 << 0x18, offset_gPalette_56 | 1 << 0x18, + offset_gPalette_328 | 1 << 0x18, offset_gPalette_232 | 1 << 0x18, offset_gPalette_25 | 1 << 0x18, + offset_gPalette_26 | 1 << 0x18, offset_gPalette_117 | 1 << 0x18, offset_gPalette_27 | 1 << 0x18, + offset_gPalette_28 | 1 << 0x18, offset_gPalette_29 | 1 << 0x18, offset_gPalette_30 | 1 << 0x18, + offset_gPalette_31 | 1 << 0x18, offset_gPalette_32 | 1 << 0x18, offset_gPalette_280 | 1 << 0x18, + offset_gPalette_281 | 1 << 0x18, offset_gPalette_333 | 1 << 0x18, offset_gPalette_314 | 1 << 0x18, + offset_gPalette_315 | 1 << 0x18, offset_gPalette_316 | 1 << 0x18, offset_gPalette_317 | 1 << 0x18, + offset_gPalette_330 | 1 << 0x18, offset_gPalette_335 | 1 << 0x18, offset_gPalette_336 | 1 << 0x18, + offset_gPalette_337 | 1 << 0x18, offset_gPalette_338 | 1 << 0x18, offset_gPalette_339 | 1 << 0x18, + offset_gPalette_340 | 1 << 0x18, offset_gPalette_341 | 1 << 0x18, offset_gPalette_342 | 1 << 0x18, + offset_gPalette_343 | 1 << 0x18, offset_gPalette_82 | 1 << 0x18, offset_gPalette_223 | 1 << 0x18, + offset_gPalette_240 | 1 << 0x18, offset_gPalette_241 | 1 << 0x18, offset_gPalette_242 | 1 << 0x18, + offset_gPalette_243 | 1 << 0x18, offset_gPalette_244 | 1 << 0x18, offset_gPalette_245 | 1 << 0x18, + offset_gPalette_246 | 1 << 0x18, offset_gPalette_247 | 1 << 0x18, offset_gPalette_272 | 1 << 0x18, + offset_gPalette_273 | 1 << 0x18, offset_gPalette_352 | 1 << 0x18, offset_gPalette_353 | 1 << 0x18, + offset_gPalette_351 | 1 << 0x18, offset_gPalette_126 | 1 << 0x18, offset_gPalette_327 | 1 << 0x18, + offset_gPalette_203 | 1 << 0x18, offset_gPalette_3430 | 1 << 0x18, offset_gPalette_3431 | 1 << 0x18, + offset_gPalette_3432 | 2 << 0x18, offset_gPalette_3434 | 1 << 0x18, offset_gPalette_3435 | 1 << 0x18, + offset_gPalette_3436 | 1 << 0x18, offset_gPalette_9 | 1 << 0x18, offset_gPalette_33 | 1 << 0x18, + offset_gPalette_34 | 1 << 0x18, offset_gPalette_35 | 1 << 0x18, offset_gPalette_36 | 1 << 0x18, + offset_gPalette_37 | 1 << 0x18, offset_gPalette_38 | 1 << 0x18, offset_gPalette_39 | 1 << 0x18, + offset_gPalette_40 | 1 << 0x18, offset_gPalette_41 | 1 << 0x18, offset_gPalette_83 | 1 << 0x18, + offset_gPalette_119 | 1 << 0x18, offset_gPalette_120 | 1 << 0x18, offset_gPalette_121 | 1 << 0x18, + offset_gPalette_81 | 1 << 0x18, offset_gPalette_84 | 1 << 0x18, offset_gPalette_88 | 1 << 0x18, + offset_gPalette_230 | 1 << 0x18, +#ifdef EU + offset_gPalette_2257 | 1 << 0x18, offset_gPalette_2258 | 1 << 0x18, +#else + offset_gPalette_2259 | 1 << 0x18, offset_gPalette_2260 | 1 << 0x18, +#endif + offset_gPalette_10 | 1 << 0x18, offset_gPalette_112 | 1 << 0x18, offset_gPalette_122 | 1 << 0x18, + offset_gPalette_13 | 1 << 0x18, +}; diff --git a/src/demo.c b/src/demo.c index 2c481990..36bde8b3 100644 --- a/src/demo.c +++ b/src/demo.c @@ -194,19 +194,19 @@ void sub_080A3198(u32 param_1, u32 param_2) { { gUnk_0203510E, BG_TILE_ADDR(0x1a0), gTextGfxBuffer, 0, 0x80, 0xd0, 1, 0, 0, 1, 9, 0, 0, 1, 1 }, }; static const u16 gUnk_08127CC8[4] = { - 0x71c, - 0x720, - 0x721, + TEXT_INDEX(TEXT_WINDCRESTS, 0x1c), + TEXT_INDEX(TEXT_WINDCRESTS, 0x20), + TEXT_INDEX(TEXT_WINDCRESTS, 0x21), 0x0, }; - u16 r4 = gUnk_08127CC8[param_1]; + u16 textIndex = gUnk_08127CC8[param_1]; - if (gChooseFileState.unk_0x12 != r4) { - gChooseFileState.unk_0x12 = r4; + if (gChooseFileState.unk_0x12 != textIndex) { + gChooseFileState.unk_0x12 = textIndex; MemClear(gUnk_08127C98[0].dest - 0xf, 0x180); - if (r4 != 0) { - sub_0805F46C(r4, gUnk_08127C98); + if (textIndex != 0) { + ShowTextBox(textIndex, gUnk_08127C98); } gScreen.bg0.updated = 1; diff --git a/src/enemy.c b/src/enemy.c index 60a0653c..01120f92 100644 --- a/src/enemy.c +++ b/src/enemy.c @@ -114,7 +114,7 @@ const EnemyDefinition gEnemyDefinitions[] = { { 145, 2, { &gHitbox_13 }, 483, { 0, 1, 1, 1 }, 255, 256, 102, 139 }, // TODO sprite index too high #endif MULTI_FORM(gEnemyDefinition_30), - { 236, 1, { &gHitbox_19 }, SPRITE_CROW, { 1, 0, 1, 1 }, 2, 320, 41, 15 }, + { 236, 1, { (Hitbox*)&gHitbox_19 }, SPRITE_CROW, { 1, 0, 1, 1 }, 2, 320, 41, 15 }, MULTI_FORM(gEnemyDefinition_32), { 253, 112, { &gHitbox_0 }, SPRITE_BOMBAROSSA, { 1, 1, 1, 1 }, 255, 256, 1, 139 }, MULTI_FORM(gEnemyDefinition_34), @@ -134,7 +134,7 @@ const EnemyDefinition gEnemyDefinitions[] = { MULTI_FORM(gEnemyDefinition_42), { 366, 0, { &gHitbox_18 }, SPRITE_FLYINGSKULL, { 0, 1, 1, 0 }, 255, 640, 110, 132 }, MULTI_FORM(gEnemyDefinition_44), - { 236, 0, { &gHitbox_19 }, SPRITE_CROW, { 1, 0, 1, 1 }, 4, 320, 87, 15 }, + { 236, 0, { (Hitbox*)&gHitbox_19 }, SPRITE_CROW, { 1, 0, 1, 1 }, 4, 320, 87, 15 }, MULTI_FORM(gEnemyDefinition_46), { 16400, 299, { &gHitbox_0 }, SPRITE_LAKITU, { 0, 1, 0, 1 }, 6, 128, 67, 143 }, { 16400, 0, { &gHitbox_0 }, SPRITE_LAKITUCLOUDPROJECTILE, { 1, 1, 1, 2 }, 255, 0, 166, 143 }, @@ -157,15 +157,15 @@ const EnemyDefinition gEnemyDefinitions[] = { MULTI_FORM(gEnemyDefinition_0), MULTI_FORM(gEnemyDefinition_56), MULTI_FORM(gEnemyDefinition_57), - { 444, 0, { &gHitbox_25 }, SPRITE_FIREBALLGUY, { 1, 1, 1, 1 }, 4, 64, 25, 139 }, - { 444, 0, { &gHitbox_26 }, SPRITE_FIREBALLGUY, { 1, 1, 1, 0 }, 1, 64, 25, 139 }, + { 444, 0, { (Hitbox*)&gHitbox_25 }, SPRITE_FIREBALLGUY, { 1, 1, 1, 1 }, 4, 64, 25, 139 }, + { 444, 0, { (Hitbox*)&gHitbox_26 }, SPRITE_FIREBALLGUY, { 1, 1, 1, 0 }, 1, 64, 25, 139 }, MULTI_FORM(gEnemyDefinition_5A), { 114, 110, { &gHitbox_0 }, SPRITE_BUSINESSSCRUB, { 0, 0, 1, 1 }, 255, 0, 1, 139 }, { 0, 0, { &gHitbox_0 }, SPRITE_0, { 0, 0, 0, 1 }, 24, 256, 0, 139 }, - { 16448, 338, { &gHitbox_28 }, SPRITE_GYORGMALE, { 0, 0, 1, 1 }, 12, 256, 27, 139 }, + { 16448, 338, { (Hitbox*)&gHitbox_28 }, SPRITE_GYORGMALE, { 0, 0, 1, 1 }, 12, 256, 27, 139 }, { 485, 352, { &gHitbox_0 }, SPRITE_CURTAIN, { 0, 1, 1, 1 }, 255, 256, 154, 139 }, - { 418, 320, { &gHitbox_20 }, SPRITE_WRATHEYE, { 1, 0, 1, 0 }, 255, 256, 57, 139 }, - { 498, 0, { &gHitbox_20 }, SPRITE_GYORGCHILD, { 0, 0, 1, 1 }, 3, 256, 32, 15 }, + { 418, 320, { (Hitbox*)&gHitbox_20 }, SPRITE_WRATHEYE, { 1, 0, 1, 0 }, 255, 256, 57, 139 }, + { 498, 0, { (Hitbox*)&gHitbox_20 }, SPRITE_GYORGCHILD, { 0, 0, 1, 1 }, 3, 256, 32, 15 }, #ifdef EU { 499, 377, { &gHitbox_22 }, SPRITE_GYORGFEMALEEYE, { 0, 0, 1, 1 }, 255, 256, 30, 139 }, #else @@ -173,7 +173,7 @@ const EnemyDefinition gEnemyDefinitions[] = { #endif { 500, 376, { &gHitbox_0 }, SPRITE_ENEMY62, { 0, 0, 1, 1 }, 255, 256, 30, 139 }, { 504, 372, { &gHitbox_0 }, SPRITE_GYORGFEMALEMOUTH, { 0, 0, 1, 1 }, 255, 256, 136, 139 }, - { 16448, 338, { &gHitbox_28 }, SPRITE_GYORGMALE, { 0, 0, 1, 1 }, 36, 256, 0, 139 }, + { 16448, 338, { (Hitbox*)&gHitbox_28 }, SPRITE_GYORGMALE, { 0, 0, 1, 1 }, 36, 256, 0, 139 }, { 0, 0, { &gHitbox_0 }, SPRITE_0, { 0, 0, 0, 1 }, 255, 256, 0, 139 }, }; @@ -228,9 +228,9 @@ const EnemyDefinition gEnemyDefinition_10[] = { { 32, 0, &gUnk_080FD21C, SPRITE_SLUGGULA_2, { 0, 0, 1, 0 }, 3, 0, 0, 139 }, }; const EnemyDefinition gEnemyDefinition_11[] = { - { 34, 38, &gUnk_080FD22C, SPRITE_PESTO, { 3, 1, 1, 1 }, 4, 64, 119, 15 }, - { 34, 39, &gUnk_080FD22C, SPRITE_PESTO, { 3, 1, 1, 1 }, 4, 64, 119, 15 }, - { 34, 37, &gUnk_080FD22C, SPRITE_PESTO, { 3, 1, 1, 1 }, 4, 64, 119, 15 }, + { 34, 38, (const Hitbox*)&gUnk_080FD22C, SPRITE_PESTO, { 3, 1, 1, 1 }, 4, 64, 119, 15 }, + { 34, 39, (const Hitbox*)&gUnk_080FD22C, SPRITE_PESTO, { 3, 1, 1, 1 }, 4, 64, 119, 15 }, + { 34, 37, (const Hitbox*)&gUnk_080FD22C, SPRITE_PESTO, { 3, 1, 1, 1 }, 4, 64, 119, 15 }, }; const EnemyDefinition gEnemyDefinition_12[] = { { 35, 40, &gHitbox_0, SPRITE_PUFFSTOOL, { 1, 1, 1, 0 }, 1, 64, 130, 15 }, @@ -370,11 +370,11 @@ const EnemyDefinition gEnemyDefinition_51[] = { { 417, 320, &gHitbox_0, SPRITE_VAATIWRATH_2, { 0, 0, 1, 1 }, 255, 256, 0, 139 }, }; const EnemyDefinition gEnemyDefinition_52[] = { - { 16400, 320, &gUnk_080FD538, SPRITE_VAATIARM, { 1, 0, 1, 1 }, 255, 256, 57, 139 }, - { 419, 320, &gUnk_080FD538, SPRITE_VAATIARM_1, { 0, 0, 1, 1 }, 255, 256, 57, 139 }, - { 419, 320, &gUnk_080FD538, SPRITE_VAATIARM_1, { 1, 0, 1, 1 }, 255, 256, 57, 139 }, - { 419, 320, &gUnk_080FD538, SPRITE_VAATIARM_1, { 1, 0, 1, 1 }, 255, 256, 57, 139 }, - { 419, 320, &gUnk_080FD538, SPRITE_VAATIARM_1, { 1, 0, 1, 1 }, 255, 256, 57, 139 }, + { 16400, 320, (Hitbox*)&gUnk_080FD538, SPRITE_VAATIARM, { 1, 0, 1, 1 }, 255, 256, 57, 139 }, + { 419, 320, (Hitbox*)&gUnk_080FD538, SPRITE_VAATIARM_1, { 0, 0, 1, 1 }, 255, 256, 57, 139 }, + { 419, 320, (Hitbox*)&gUnk_080FD538, SPRITE_VAATIARM_1, { 1, 0, 1, 1 }, 255, 256, 57, 139 }, + { 419, 320, (Hitbox*)&gUnk_080FD538, SPRITE_VAATIARM_1, { 1, 0, 1, 1 }, 255, 256, 57, 139 }, + { 419, 320, (Hitbox*)&gUnk_080FD538, SPRITE_VAATIARM_1, { 1, 0, 1, 1 }, 255, 256, 57, 139 }, }; const EnemyDefinition gEnemyDefinition_56[] = { { 422, 113, &gUnk_080FD488, SPRITE_SLIME, { 3, 1, 1, 1 }, 2, 64, 25, 139 }, diff --git a/src/enemy/chuchuBoss.c b/src/enemy/chuchuBoss.c index 2726a05c..af373d39 100644 --- a/src/enemy/chuchuBoss.c +++ b/src/enemy/chuchuBoss.c @@ -559,7 +559,7 @@ void sub_080262A8(ChuchuBossEntity* this) { this->unk_84->unk_03 = 3; gPlayerEntity.animationState = 0; gRoomControls.camera_target = super; - gRoomControls.unk5 = 1; + gRoomControls.scrollSpeed = 1; SetTile(0x4022, 0x2c8, 1); } } @@ -583,7 +583,7 @@ void sub_08026358(ChuchuBossEntity* this) { this->unk_84->unk_03++; gPlayerEntity.animationState = 0; gRoomControls.camera_target = super; - gRoomControls.unk5 = 1; + gRoomControls.scrollSpeed = 1; } else if (bVar1 < 0x61) { if (bVar1 < 0x5c) { gPlayerEntity.animationState = 4; @@ -661,7 +661,7 @@ void sub_0802650C(ChuchuBossEntity* this) { void sub_0802653C(ChuchuBossEntity* this) { if (gRoomControls.reload_flags == 0) { - gRoomControls.unk5 = 4; + gRoomControls.scrollSpeed = 4; sub_08027B98(this, 0x90, 0xb0, 4, 0xff); sub_08027548(this, 0); InitAnimationForceUpdate(super->child, 0); diff --git a/src/enemy/octorokBoss.c b/src/enemy/octorokBoss.c index 2e3283e0..8b248fa4 100644 --- a/src/enemy/octorokBoss.c +++ b/src/enemy/octorokBoss.c @@ -361,7 +361,7 @@ void OctorokBoss_Intro_SubAction2(OctorokBossEntity* this) { this->timer = 60; gPlayerEntity.spriteSettings.draw |= 1; gRoomControls.camera_target = &gPlayerEntity; - gRoomControls.unk5 = 1; + gRoomControls.scrollSpeed = 1; } } @@ -397,7 +397,7 @@ void OctorokBoss_Intro_SubAction5(OctorokBossEntity* this) { // Play boss theme, enable control and switch to main action super->action = ACTION1; super->subAction = 0; - gRoomControls.unk5 = gPlayerEntity.animationState; + gRoomControls.scrollSpeed = gPlayerEntity.animationState; OctorokBoss_SetAttackTimer(this); gPauseMenuOptions.disabled = 0; SoundReq(BGM_BOSS_THEME); diff --git a/src/enemyUtils.c b/src/enemyUtils.c index 46b9c17c..d484865a 100644 --- a/src/enemyUtils.c +++ b/src/enemyUtils.c @@ -1,11 +1,13 @@ #define NENT_DEPRECATED -#include "entity.h" +#include "enemyUtils.h" + #include "definitions.h" +#include "entity.h" #include "functions.h" #include "object.h" -#include "save.h" -#include "projectile.h" #include "object/deathFx.h" +#include "projectile.h" +#include "save.h" extern void sub_08049CF4(Entity*); @@ -13,8 +15,24 @@ extern EnemyDefinition gEnemyDefinitions[]; const EnemyDefinition* GetEnemyDefinition(Entity* entity); bool32 LoadEnemySprite(Entity* entity, const EnemyDefinition* definition); -extern const u16 gUnk_080D3E74[]; -extern const u8 gUnk_080D3D94[]; + +const struct_080D3D94 gUnk_080D3D94[] = { + { 8, 8 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, + { 64, 64 }, { 64, 64 }, { 64, 64 }, { 4, 4 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 16, 16 }, + { 64, 64 }, { 64, 64 }, { 12, 12 }, { 16, 16 }, { 8, 8 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, + { 10, 10 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 15, 9 }, + { 12, 12 }, { 16, 16 }, { 24, 24 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, + { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 60, 60 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, + { 24, 24 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, + { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, + { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, + { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 8, 8 }, { 8, 8 }, { 8, 8 }, { 16, 16 }, { 16, 16 }, + { 16, 16 }, { 8, 8 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, + { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, + { 64, 64 }, { 64, 64 }, { 64, 64 }, { 64, 64 }, +}; + +const u16 gUnk_080D3E74[] = { 2373, 1105, 2324, 21568, 4177, 16656, 1365, 21760, 8209, 0, 20480, 5, 0, 0 }; const EnemyDefinition* GetEnemyDefinition(Entity* entity) { const EnemyDefinition* definition = &gEnemyDefinitions[entity->id]; @@ -96,23 +114,23 @@ bool32 LoadEnemySprite(Entity* entity, const EnemyDefinition* definition) { void sub_0804A720(GenericEntity* this) { int iVar2; - const u8* pbVar3; + const struct_080D3D94* pbVar3; GenericEntityData* ptr; if ((this->field_0x6c.HALF.HI & 4) != 0) { return; } - pbVar3 = &gUnk_080D3D94[super->id * 2]; + pbVar3 = &gUnk_080D3D94[super->id]; ptr = (GenericEntityData*)&this->field_0x68; if (ptr->field_0x7c.BYTES.byte2 == 0) { - this->field_0x6e.HALF.LO = pbVar3[0]; + this->field_0x6e.HALF.LO = pbVar3->unk_0; } else { this->field_0x6e.HALF.LO = ptr->field_0x7c.BYTES.byte2; } if (ptr->field_0x7c.BYTES.byte3 == 0) { - this->field_0x6e.HALF.HI = pbVar3[1]; + this->field_0x6e.HALF.HI = pbVar3->unk_1; } else { this->field_0x6e.HALF.HI = ptr->field_0x7c.BYTES.byte3; } diff --git a/src/enterPortalSubtask.c b/src/enterPortalSubtask.c index 84091a0c..379ee2e7 100644 --- a/src/enterPortalSubtask.c +++ b/src/enterPortalSubtask.c @@ -1,31 +1,121 @@ -#include "global.h" -#include "entity.h" +/** + * @file enterPortalSubtask.c + * @ingroup Subtasks + * + * @brief Enter Portal Subtask + */ +#include "enterPortalSubtask.h" + #include "area.h" -#include "main.h" #include "common.h" -#include "screen.h" -#include "object.h" +#include "entity.h" +#include "fileselect.h" #include "functions.h" #include "game.h" -#include "fileselect.h" +#include "main.h" +#include "object.h" +#include "screen.h" +#include "subtask.h" extern void ClearArmosData(void); extern void sub_080300C4(void); -extern u16 gUnk_020178E0[]; extern u8 gUnk_02017700[]; -extern void (*const gUnk_080D4120[])(void); -extern void (*const gUnk_080D412C[])(void); -extern const u16 gUnk_080D4140[]; -extern const u8 gUnk_080D4138[]; -extern const EntityData* gUnk_080D4110[]; - bool32 sub_0804AD18(void); void sub_0804AD6C(RoomControls*); -void sub_080A71F4(const ScreenTransitionData*); bool32 sub_0804ACA8(void); +// Entities spawned inside the portal transition cutscene. +const EntityData gUnk_080D3E90[] = { + { OBJECT, 15, PORTAL_FALLING_PLAYER, 0, 0, 132, 156, 0 }, + { OBJECT, 15, PORTAL_MUSHROOM_STALKS, 0, 6, 120, 208, 0 }, + { OBJECT, 15, PORTAL_MUSHROOM_STALKS, 1, 1, 132, 160, 0 }, + { OBJECT, 15, PORTAL_MUSHROOM_STALKS, 2, 2, 96, 192, 0 }, + { OBJECT, 15, PORTAL_MUSHROOM_STALKS, 3, 3, 128, 208, 0 }, + { OBJECT, 15, PORTAL_MUSHROOM_STALKS, 5, 0, 120, 104, 0 }, + { OBJECT, 15, PORTAL_MUSHROOM_STALKS, 6, 1, 216, 200, 0 }, + { OBJECT, 15, PORTAL_MUSHROOM_STALKS, 7, 2, 120, 292, 0 }, + { OBJECT, 15, PORTAL_MUSHROOM_STALKS, 8, 3, 17, 200, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0 }, +}; +const EntityData gUnk_080D3F30[] = { + { OBJECT, 15, PORTAL_FALLING_PLAYER, 0, 0, 132, 156, 0 }, // + { OBJECT, 15, MACRO_CRYSTAL, 0, 6, 120, 200, 0 }, + { OBJECT, 15, MACRO_CRYSTAL, 1, 3, 132, 160, 0 }, + { OBJECT, 15, MACRO_CRYSTAL, 2, 2, 96, 192, 0 }, + { OBJECT, 15, MACRO_CRYSTAL, 3, 1, 128, 208, 0 }, + { OBJECT, 15, MACRO_CRYSTAL, 5, 0, 120, 104, 0 }, + { OBJECT, 15, MACRO_CRYSTAL, 6, 1, 216, 200, 0 }, + { OBJECT, 15, MACRO_CRYSTAL, 7, 2, 120, 292, 0 }, + { OBJECT, 15, MACRO_CRYSTAL, 8, 3, 17, 200, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0 }, +}; +const EntityData gUnk_080D3FD0[] = { + { OBJECT, 15, PORTAL_FALLING_PLAYER, 0, 0, 132, 156, 0 }, + { OBJECT, 15, MACRO_LEAF, 0, 6, 120, 208, 0 }, + { OBJECT, 15, MACRO_LEAF, 1, 1, 132, 160, 0 }, + { OBJECT, 15, MACRO_LEAF, 2, 2, 96, 192, 0 }, + { OBJECT, 15, MACRO_LEAF, 3, 3, 128, 208, 0 }, + { OBJECT, 15, MACRO_LEAF, 5, 0, 120, 104, 0 }, + { OBJECT, 15, MACRO_LEAF, 6, 1, 216, 200, 0 }, + { OBJECT, 15, MACRO_LEAF, 7, 2, 120, 300, 0 }, + { OBJECT, 15, MACRO_LEAF, 8, 3, 17, 200, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0 }, +}; +const EntityData gUnk_080D4070[] = { + { OBJECT, 15, PORTAL_FALLING_PLAYER, 0, 0, 132, 156, 0 }, + { OBJECT, 15, MACRO_LEAF, 9, 6, 120, 208, 0 }, + { OBJECT, 15, MACRO_LEAF, 10, 1, 132, 160, 0 }, + { OBJECT, 15, MACRO_LEAF, 11, 2, 96, 192, 0 }, + { OBJECT, 15, MACRO_LEAF, 12, 3, 128, 208, 0 }, + { OBJECT, 15, MACRO_LEAF, 14, 0, 120, 104, 0 }, + { OBJECT, 15, MACRO_LEAF, 15, 1, 216, 200, 0 }, + { OBJECT, 15, MACRO_LEAF, 16, 2, 120, 300, 0 }, + { OBJECT, 15, MACRO_LEAF, 17, 3, 17, 200, 0 }, + { 0xff, 0, 0, 0, 0, 0, 0, 0 }, +}; + +const EntityData* const gUnk_080D4110[] = { + gUnk_080D3E90, + gUnk_080D3F30, + gUnk_080D3FD0, + gUnk_080D4070, +}; + +void sub_0804AAD4(void); +void sub_0804AB04(void); +void sub_0804AB24(void); +void Subtask_PortalCutscene_0(void); +void Subtask_PortalCutscene_1(void); +void Subtask_PortalCutscene_2(void); + +void (*const gUnk_080D4120[])(void) = { + sub_0804AAD4, + sub_0804AB04, + sub_0804AB24, +}; +void (*const Subtask_PortalCutscene_Functions[])(void) = { + Subtask_PortalCutscene_0, + Subtask_PortalCutscene_1, + Subtask_PortalCutscene_2, +}; + +const struct_080D4138 gUnk_080D4138[] = { + { 95, 39 }, + { 96, 40 }, + { 97, 41 }, + { 98, 42 }, +}; + +// x, y values. But they cannot be put in a struct matching? +const s16 gUnk_080D4140[] = { + 0, -22, // + 22, 0, // + 0, 22, // + -22, 0, +}; + bool32 CheckInitPortal(void) { if (gArea.portal_in_use) { gMain.substate = GAMEMAIN_MINISHPORTAL; @@ -73,10 +163,10 @@ void sub_0804AB24(void) { } void Subtask_PortalCutscene(void) { - gUnk_080D412C[gArea.filler3[0]](); + Subtask_PortalCutscene_Functions[gArea.filler3[0]](); } -void sub_0804AB70(void) { - const u8* ptr; +void Subtask_PortalCutscene_0(void) { + const struct_080D4138* ptr; RoomControls* controls; u32 portalId; @@ -92,19 +182,19 @@ void sub_0804AB70(void) { if ((portalId == 2) && (gUI.roomControls.area != 2)) { portalId = 3; } - ptr = &gUnk_080D4138[portalId * 2]; - LoadPaletteGroup(ptr[0]); - LoadGfxGroup(ptr[1]); + ptr = &gUnk_080D4138[portalId]; + LoadPaletteGroup(ptr->paletteGroup); + LoadGfxGroup(ptr->gfxGroup); MemCopy(&gUnk_02017700, gUnk_02017700 + 0x240, 0x20); gUsedPalettes |= 0x200000; EraseAllEntities(); - LoadRoomEntityList((EntityData*)gUnk_080D4110[portalId]); + LoadRoomEntityList(gUnk_080D4110[portalId]); ResetSystemPriority(); gArea.filler3[0]++; SetFade(FADE_INSTANT, 8); } -void sub_0804AC1C(void) { +void Subtask_PortalCutscene_1(void) { s32 tmp; UpdateEntities(); @@ -139,7 +229,7 @@ bool32 sub_0804ACA8(void) { } } -void sub_0804ACC8(void) { +void Subtask_PortalCutscene_2(void) { if (gFadeControl.active == 0) { SetGlobalFlag(gArea.portal_type + ENTRANCE_0); sub_0804AD6C(&gUI.roomControls); @@ -192,3 +282,5 @@ void sub_0804AD6C(RoomControls* controls) { ClearArmosData(); sub_080300C4(); } + +// TODO end of portal cutscene subtask? diff --git a/src/entity.c b/src/entity.c index 5972636e..18f11f75 100644 --- a/src/entity.c +++ b/src/entity.c @@ -6,8 +6,6 @@ #include "npc.h" #include "manager/diggingCaveEntranceManager.h" -extern u8 gUnk_081091F8[]; -extern u8 gUnk_081091EE[]; extern u8 gUpdateVisibleTiles; extern Manager gUnk_02033290; void UpdatePlayerInput(void); @@ -36,6 +34,11 @@ typedef struct { } UpdateContext; extern UpdateContext gUpdateContext; +// List by entity kind. +const u8 gUnk_081091E4[] = { + 8, 1, 8, 4, 5, 8, 6, 7, 2, 6, +}; + void sub_0805E248(void) { s32 v0; @@ -64,9 +67,16 @@ void sub_0805E248(void) { gUpdateVisibleTiles = 0; } +const u8 gUnk_081091EE[] = { + 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, +}; +const u8 gUnk_081091F8[] = { + 0, 3, 0, 3, 3, 0, 3, 3, 3, 3, +}; + void SetDefaultPriorityForKind(Entity* e) { u8 r3 = gRoomTransition.entity_update_type; - u8* array = gUnk_081091F8; + const u8* array = gUnk_081091F8; if (r3 != 2) { array = gUnk_081091EE; diff --git a/src/fade.c b/src/fade.c index 62bd7708..f5b0cfa7 100644 --- a/src/fade.c +++ b/src/fade.c @@ -172,12 +172,17 @@ static u32 sub_080501C0(FadeControl* ctl) { return !!((s16)ctl->sustain ^ (s16)ctl->progress); } +const u16 gMosaicSizes[] = { + 0, 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0x7777, + 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0xcccc, 0xdddd, 0xeeee, 0xffff, +}; + static u32 sub_08050230(FadeControl* ctl) { u32 type = ctl->type; u32 idx = ((s16)ctl->progress >> 4) & 0xF; if (type & 1) idx = 0xF - idx; - gScreen.controls.mosaicSize = gUnk_080FC3C4[idx]; + gScreen.controls.mosaicSize = gMosaicSizes[idx]; if (ctl->progress != 0) return 1; diff --git a/src/fileselect.c b/src/fileselect.c index c3c1ba98..04bbfb89 100644 --- a/src/fileselect.c +++ b/src/fileselect.c @@ -4,12 +4,14 @@ * * @brief File select task */ +#include "fileselect.h" #include "common.h" -#include "fileselect.h" +#include "figurineMenu.h" #include "functions.h" #include "game.h" #include "item.h" +#include "kinstone.h" #include "main.h" #include "menu.h" #include "message.h" @@ -44,6 +46,190 @@ typedef enum { RESULT_ASCII = 1, } CharResult; +const struct_080FC3E4 gUnk_080FC3E4[] = { + { 0, 0, 128, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 0, 1 }, +#ifdef EU + { 0, 0, 0, 1 }, +#else + { 0, 0, 2, 1 }, +#endif + { 0, 0, 0, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 0, 1 }, + { 0, KINSTONE_2C, UNK_6_10, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 4, 1 }, + { 0, 0, 7, 1 }, + { 0, 0, 3, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 4, 1 }, +#ifdef EU + { 0, 0, 2, 1 }, +#else + { 0, 0, 3, 1 }, +#endif + { 0, 0, 0, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 0, 1 }, +#if defined(EU) || defined(JP) + { 0, 0x12, UNK_6_40, 1 }, +#else + { 0, 5, UNK_6_20, 1 }, +#endif + { 0, 0, 0, 1 }, + { FLAG_BANK_4, YAMADOUKUTU_0E_SENNIN, UNK_6_40, 1 }, + { 0, 0, 3, 1 }, + { 0, 0, 5, 1 }, + { 0, 0, 5, 1 }, + { 0, 0, 3, 1 }, + { 0, 0, 1, 1 }, + { 0, 0, 3, 1 }, + { 0, 0, 5, 1 }, + { 0, 0, 3, 1 }, + { 0, 0, 2, 1 }, + { 0, 0, 2, 1 }, + { 0, 0, 2, 1 }, + { 0, 0, UNK_6_20, 1 }, + { 0, KINSTONE_30, UNK_6_10, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 0, 1 }, + { 0, 0, 4, 1 }, + { 0, 0, 4, 1 }, + { 0, 0, 3, 1 }, + { 0, 0, 3, 1 }, + { FLAG_BANK_4, GORON_DOUKUTU_APPEAR, UNK_6_40, 1 }, + { 0, 0, 3, 1 }, + { 0, 0, 3, 0 }, + { 0, 0, 4, 0 }, + { 0, 0, 7, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 2, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 4, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 4, 0 }, + { 0, 0, 3, 0 }, + { 0, 0, 3, 0 }, + { 0, 0, 6, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 7, 0 }, +#ifdef EU + { 0, 0, 0, 0 }, +#else + { 0, 0, 2, 0 }, +#endif + { 0, KINSTONE_33, UNK_6_10, 1 }, + { 0, 1, UNK_6_20, 0 }, + { 0, 0, 0, 2 }, + { 0, 0, 4, 2 }, + { 0, 0, 4, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 3, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 3, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 5, 2 }, + { 0, 0, 7, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 3, 2 }, + { 0, 0, 3, 3 }, + { 0, 0, 7, 3 }, + { 0, 0, 0, 2 }, +#ifdef EU + { 0, 0, 3, 2 }, + { 0, 0, 6, 2 }, +#else + { 0, 0, 6, 2 }, + { 0, 0, 3, 2 }, +#endif + { 0, 0, 5, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 4, 2 }, + { 0, 0, 3, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 7, 2 }, + { 0, 0, 3, 2 }, + { 0, 0, 3, 2 }, + { 0, 0, 3, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 7, 3 }, + { 0, 0, 0, 2 }, + { 0, 0, 2, 2 }, + { 0, 0, 2, 2 }, + { 0, 0, 6, 2 }, + { 0, 0, 4, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 3, 2 }, + { 0, 0, 7, 2 }, + { 0, 0, 7, 2 }, + { 0, 0, 6, 2 }, + { 0, 0, 0, 2 }, + { 0, 2, UNK_6_20, 3 }, + { 0, 3, UNK_6_20, 3 }, + { 0, 4, UNK_6_20, 3 }, + { 0, 0, 2, 2 }, + { 0, 0, 6, 2 }, + { 0, 0, 3, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 0, 2 }, + { 0, 0, 3, 2 }, + { 0, 0, 0, 3 }, + { 0, 0, 1, 2 }, + { 0, 0, 4, 3 }, + { 0, 0, 7, 3 }, + { 0, 0, 6, 1 }, + { 0, 0, 0, 3 }, + { 0, 0, 1, 3 }, + { 0, 0, 3, 3 }, + { FLAG_BANK_8, LV4_10_BOSSDIE, UNK_6_8, 3 }, + { 0, 0, 9, 0 }, + { 0, 0, 9, 1 }, + { 0, 0, 9, 3 }, + { 0, 0, 9, 3 }, + { 0, 0, 9, 3 }, + { 0, 0, 9, 3 }, + { 0, 0xffff, 0, 1 }, + { 0, 0xffff, 0, 1 }, + { 0, 0xffff, 0, 1 }, +}; + +extern u16 gUnk_02034E4E[]; +const Font gUnk_080FC844 = { + gUnk_02034E4E, BG_TILE_ADDR(0x198), gTextGfxBuffer, 0, 96, 224, 1, 1, 0, 1, 3, 0, 0, 1, 0 +}; + +const u16 gUnk_080FC85C[][3] = { + { 0, 3, SFX_MENU_ERROR }, + { 0, 4, SFX_MENU_ERROR }, + { 1, 5, 0 }, + { 0, 6, SFX_MENU_ERROR }, + { 1, 7, 0 }, + { 1, 8, 0 }, + { 0, 9, SFX_MENU_ERROR }, + { 1, 10, 0 }, + { 1, 11, 0 }, + { 0, 12, SFX_MENU_ERROR }, + { 1, 13, 0 }, + { 0, 14, 0 }, +}; + static void HandleFileScreenEnter(void); static void HandleFileScreenActive(void); static void HandleFileScreenExit(void); @@ -101,9 +287,9 @@ extern void (*const gUnk_080FC960[])(void); extern void (*const gUnk_080FC9B0[])(void); extern void (*const gUnk_080FC9BC[])(void); extern void (*const gUnk_080FC9C8[])(void); -extern u8 gUnk_080FC970[]; -extern u8 gUnk_080FC980[]; -extern u8 gUnk_080FC9A0[]; +extern const u8 gUnk_080FC970[]; +extern const u8 gUnk_080FC980[]; +extern const u8 gUnk_080FC9A0[]; static void ResetEmptyOrDeletedSaveFile(u32); static void sub_0805066C(void); @@ -111,6 +297,10 @@ static void HideButtonR(void); static void ShowButtonR(void); void sub_08051458(void); +void sub_08050888(void); +void sub_080508E4(void); +void sub_08050910(void); + void CreateDialogBox(u32 arg0, u32 arg1) { u32 sfx; Font var0; @@ -119,7 +309,7 @@ void CreateDialogBox(u32 arg0, u32 arg1) { MemCopy(&gUnk_080FC844, &var0, sizeof(gUnk_080FC844)); sub_08056FEC(arg1, gUnk_020227E8); var0.gfx_src |= gUnk_080FC85C[arg0][0] << 0xC; - sub_0805F46C(gUnk_080FC85C[arg0][1], &var0); + ShowTextBox(gUnk_080FC85C[arg0][1], &var0); sfx = gUnk_080FC85C[arg0][2]; if (sfx) { SoundReq(sfx); @@ -375,6 +565,12 @@ void sub_08050848(void) { SetMenuType(1); } +void (*const gUnk_080FC908[])(void) = { + sub_08050888, + sub_080508E4, + sub_08050910, +}; + void sub_0805086C(void) { gUnk_080FC908[gChooseFileState.subState](); } @@ -550,6 +746,9 @@ typedef struct { extern const u16 gUnk_080FC914[]; +const u16 gUnk_080FC914[] = { 0xf251, 0xf251, 0xf251, 0xf251, 0xf251, 0xf251, 0xf251, 0xf251, 0xf251, 0xf251, + 0xf24d, 0xf24d, 0xf24d, 0xf24d, 0xf24d, 0xf24d, 0xf24d, 0xf24d, 0xf24d, 0xf24d }; + // Handles drawing of hearts NONMATCH("asm/non_matching/save/sub_08050B3C.inc", void sub_08050B3C(u16* arg0)) { unk_08050B3C sp; @@ -620,6 +819,14 @@ NONMATCH("asm/non_matching/save/sub_08050B3C.inc", void sub_08050B3C(u16* arg0)) } END_NONMATCH +void sub_08050C54(void); +void sub_08050D68(void); + +void (*const gUnk_080FC93C[])() = { + sub_08050C54, + sub_08050D68, +}; + void HandleFileView(void) { gUnk_080FC93C[gMenu.menuType](); sub_08050A64(gMapDataBottomSpecial.unk6); @@ -687,6 +894,15 @@ void sub_08050D68(void) { } } +void sub_08050DB8(void); +void sub_08050DE4(void); +void sub_08050E88(void); +void (*const gUnk_080FC944[])(void) = { + sub_08050DB8, + sub_08050DE4, + sub_08050E88, +}; + void HandleFileLanguageSelect(void) { gUnk_080FC944[gMenu.menuType](); } @@ -748,6 +964,17 @@ void sub_08050E88(void) { SetFileSelectState(0); } +void sub_08050EB8(void); +void sub_08050EF4(void); +void sub_08050FFC(void); +void sub_0805103C(void); +void (*const gUnk_080FC950[])(void) = { + sub_08050EB8, + sub_08050EF4, + sub_08050FFC, + sub_0805103C, +}; + void HandleFileOptions(void) { gUnk_080FC950[gMenu.menuType](); } @@ -863,6 +1090,17 @@ void sub_0805103C(void) { } } +void sub_08051090(void); +void sub_080610B8(void); +void sub_0805138C(void); +void sub_0805144C(void); +void (*const gUnk_080FC960[])(void) = { + sub_08051090, + sub_080610B8, + sub_0805138C, + sub_0805144C, +}; + void HandleFileNew(void) { gUnk_080FC960[gMenu.menuType](); } @@ -877,13 +1115,23 @@ void sub_08051090(void) { SetMenuType(1); } +const u8 gUnk_080FC970[] = { + 1, 2, 3, 5, 8, 0, 0, 0, 1, 2, 5, 8, 0, 0, 0, 0, +}; +const u8 gUnk_080FC980[] = { + 0, 0, 0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 0, 0, 0, +}; +const u8 gUnk_080FC9A0[] = { + 1, 3, 6, 8, 11, 0, 0, 0, 1, 4, 7, 11, 11, 0, 0, 0, +}; + void sub_080610B8(void) { u8 uVar7; s32 uVar6; s32 tmp4; - u8* puVar3; - u8* puVar4; - u8* puVar5; + const u8* puVar3; + const u8* puVar4; + const u8* puVar5; s32 iVar4; u8 bVar2; u32 tmp1; @@ -1060,6 +1308,15 @@ void sub_08051358(void) { } } +void sub_080513A8(void); +void sub_080513C0(void); +void sub_0805141C(void); +void (*const gUnk_080FC9B0[])(void) = { + sub_080513A8, + sub_080513C0, + sub_0805141C, +}; + void sub_0805138C(void) { gUnk_080FC9B0[gMenu.overlayType](); } @@ -1209,12 +1466,21 @@ void sub_08051574(u32 sfx) { sub_0805070C(); } +void sub_080515C8(void); +void sub_080515D4(void); +void sub_080516E0(void); +void (*const gUnk_080FC9BC[])(void) = { + sub_080515C8, + sub_080515D4, + sub_080516E0, +}; + void HandleFileDelete(void) { gUnk_080FC9BC[gMenu.menuType](); sub_08050A64(gMapDataBottomSpecial.unk6); } -void sub_080515c8(void) { +void sub_080515C8(void) { SetMenuType(1); } @@ -1264,6 +1530,17 @@ void sub_080516E0(void) { } } +void sub_08051738(void); +void sub_080517EC(void); +void sub_08051874(void); +void sub_080518E4(void); +void (*const gUnk_080FC9C8[])(void) = { + sub_08051738, + sub_080517EC, + sub_08051874, + sub_080518E4, +}; + void HandleFileCopy(void) { gUnk_080FC9C8[gMenu.menuType](); sub_08050A64(gMapDataBottomSpecial.unk6); diff --git a/src/game.c b/src/game.c index 91bbdb24..206b9ef2 100644 --- a/src/game.c +++ b/src/game.c @@ -18,23 +18,24 @@ #include "functions.h" #include "item.h" #include "itemMetaData.h" +#include "itemMetaData.h" +#include "kinstone.h" #include "main.h" +#include "manager/diggingCaveEntranceManager.h" #include "menu.h" #include "message.h" +#include "npc.h" #include "object.h" #include "player.h" +#include "player.h" #include "room.h" +#include "roomid.h" #include "save.h" #include "screen.h" #include "sound.h" #include "subtask.h" -#include "itemMetaData.h" -#include "player.h" #include "transitions.h" -#include "roomid.h" #include "ui.h" -#include "kinstone.h" -#include "manager/diggingCaveEntranceManager.h" // Game task @@ -55,40 +56,8 @@ static GameMainState GameMain_BarrelUpdate; /*static GameMainState 00000000;*/ GameMainState GameMain_Subtask; -// Cutscene subtask - -typedef void(AuxCutsceneState)(void); -typedef void(CutsceneMainState)(void); - -static AuxCutsceneState AuxCutscene_Init; -static AuxCutsceneState AuxCutscene_Main; -static AuxCutsceneState AuxCutscene_Exit; - -CutsceneMainState CutsceneMain_Init; -CutsceneMainState CutsceneMain_Update; -CutsceneMainState CutsceneMain_Exit; - -// Game Over task - -typedef void(GameOverState)(void); - -static GameOverState GameOver_Init; -static GameOverState GameOver_FadeIn; -static GameOverState GameOver_TextMove; -static GameOverState GameOver_Update; -static GameOverState GameOver_Exit; - extern u8 gUpdateVisibleTiles; -extern u16 gUnk_020178E0[]; -extern u8 gUnk_02024090[]; -extern const u16 gUnk_080FD5A8[]; - -extern void** gAreaTilesets[]; -extern void** gAreaRoomMaps[]; -extern void* gAreaMetatiles[]; -extern void** gAreaTable[]; - extern void FinalizeSave(void); extern void ClearArmosData(void); extern void ClearRoomMemory(void); @@ -110,150 +79,13 @@ extern void LoadRoomGfx(void); extern void RecycleEntities(void); extern void sub_0804AF90(void); extern void CallRoomProp6(void); -extern void UpdateScroll(void); -extern void UpdateBgAnimations(void); -extern void CleanUpGFXSlots(void); -extern void sub_080ADE24(void); -extern void sub_0801AE44(u32); -extern void GenerateAreaHint(void); -extern void ForceSetPlayerState(u32); -extern void UpdateRoomTracker(void); -extern void InitScriptData(void); -extern void sub_08054524(void); -extern void sub_080186D4(void); -extern void sub_0806F364(void); -extern void sub_08052FF4(u32 area, u32 room); -extern void CloneMapData(void); -extern void InitializeCamera(void); -extern void SetBGDefaults(void); -extern void LoadItemGfx(void); -static void LoadRoomBgm(void); -static void sub_08052010(void); -static void ResetTmpFlags(void); -static void InitializeEntities(void); -static void CheckAreaDiscovery(void); -static void CreateMiscManager(void); static void UpdateWindcrests(void); -static void UpdateFakeScroll(void); -static void UpdatePlayerMapCoords(void); -static void sub_08052C3C(void); -static void UpdateTimerCallbacks(void); +static void InitializeEntities(void); static void sub_08051D98(void); static void sub_08051DCC(void); -static bool32 CheckGameOver(void); -static bool32 CheckRoomExit(void); -static void UpdatePlayerRoomStatus(void); -static void sub_0805329C(void); -static void InitializePlayer(void); -/* static */ void sub_08051F9C(u32 a1, u32 a2, u32 a3, u32 a4); -static void DrawGameOverText(void); -static u32 StairsAreValid(void); -static void ClearFlagArray(const u16*); -static void DummyHandler(u32* a1); -static void sub_08053434(u32* a1); -static void sub_080534E4(u32* a1); -static void InitAllRoomResInfo(void); -static void InitRoomResInfo(RoomResInfo* info, RoomHeader* hdr, u32 area, u32 room); -static void sub_080532E4(void); -static void ResetTimerFlags(void); -bool32 ItemIsBottle(u32); -void ModArrows(s32); -void ModShells(s32); -typedef struct { - u8 dest_off[8]; - u8 _8; - u8 right_align; - u16 _a; -} PopupOption; - -typedef struct { - u8 area; - RoomID room : 8; - u8 _2; - u8 _3; - u16 x; - u16 y; -} CutsceneData; -static const CutsceneData sCutsceneData[]; - -extern u8 gUnk_0200AF14; -extern u8 gUnk_080FE1C6[]; -extern void (*const gUnk_080FE2AC[])(void); - -extern u8 gUnk_080FE1DD[]; - -extern void (*const gUnk_080FE2A0[])(void); - -extern void (*const gUnk_080FCBB4[])(void); - -extern const EntityData gUnk_080FCB94[]; - -void sub_08052004(void); - -extern void (*const gUnk_080FCCFC[])(void); - -extern void (*const gUnk_080FCD38[])(void); - -extern const EntityData gUnk_080FCC54[]; - -void sub_08051FF0(void); - -extern void (*const gUnk_080FCD40[])(void); - -extern const EntityData gUnk_080FCBC4[]; -void sub_08051F78(void); - -extern const EntityData gUnk_080FCC14[]; - -extern void DeleteAllEntities(void); - -extern void (*const gUnk_080FCDD4[])(void); - -extern const EntityData gUnk_080FCD84[]; - -extern void (*const gUnk_080FCEB0[])(void); - -extern const EntityData gUnk_080FCDE0[]; - -extern void (*const gUnk_080FCEEC[])(void); - -extern const EntityData gUnk_080FCEBC[]; - -extern void (*const gUnk_080FCEF8[])(void); - -extern void (*const gUnk_080FCFA4[])(void); - -extern void* GetRoomProperty(u32, u32, u32); - -extern void (*const gUnk_080FD108[])(void); - -extern const EntityData* gUnk_080FCFB8[]; - -extern void (*const gUnk_080FD138[])(void); - -extern const u16 gUnk_080FD964[]; -extern const u8 gUnk_080FCF04[]; - -extern void ClearBgAnimations(void); - -void sub_08054974(s32, s32); -void sub_080548E8(void); - -extern void sub_0806F38C(void); - -extern void sub_08018710(u32); - -typedef struct { - Font* font; - u16 width; - u16 height; - u16 transitionTimer; - u16 fadeSpeed; -} struct_080FCCB4; - -extern struct_080FCCB4 gUnk_080FCCB4[]; +void sub_08054974(u32 worldEventId, bool32 param_2); void GameTask(void) { static GameState* const sStates[] = { @@ -430,7 +262,7 @@ static void GameMain_Update(void) { UpdateScroll(); UpdateBgAnimations(); UpdateScrollVram(); - sub_08052C3C(); + DecreasePortalTimer(); DrawUI(); UpdateManagers(); DrawUIElements(); @@ -500,6 +332,8 @@ static void GameTask_Exit(void) { #endif } +// TODO End of GameTask? + static void InitializeEntities(void) { sub_08052EA0(); sub_0804AF90(); @@ -572,2311 +406,3 @@ static void UpdateWindcrests(void) { } } } - -void Subtask_AuxCutscene(void) { - static AuxCutsceneState* const sStates[] = { - AuxCutscene_Init, - AuxCutscene_Main, - AuxCutscene_Exit, - }; - - sStates[gMenu.menuType](); -} - -static void AuxCutscene_Init(void) { - const CutsceneData* p = &sCutsceneData[gUI.field_0x3]; - gRoomControls.area = p->area; - gRoomControls.room = p->room; - LoadGfxGroups(); - gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.area); - SetCurrentRoomPropertyList(p->area, p->room); - LoadAuxiliaryRoom(p->area, p->room); - gRoomControls.scroll_x = gRoomControls.origin_x + p->x; - gRoomControls.scroll_y = gRoomControls.origin_y + p->y; - gMenu.field_0x0 = p->_2; - gMenu.field_0x3 = p->_3 & 0xf; - gMenu.field_0xc = (void*)p; - gMenu.menuType++; - gMenu.overlayType = 0; - gMenu.transitionTimer = 300; - AuxCutscene_Main(); // init -} - -static void AuxCutscene_Main(void) { - static CutsceneMainState* const sStates[] = { - CutsceneMain_Init, - CutsceneMain_Update, - CutsceneMain_Exit, - }; - - sStates[gMenu.field_0x0](); - FlushSprites(); - UpdateEntities(); - DrawEntities(); - CopyOAM(); - UpdateScroll(); - UpdateBgAnimations(); - UpdateManagers(); - UpdateScrollVram(); -} - -static const CutsceneData sCutsceneData[] = { - { AREA_MINISH_WOODS, 0, 0, 0, 336, 528 }, - { AREA_HYRULE_FIELD, 1, 1, 0, 472, 312 }, - { AREA_HYRULE_CASTLE, 2, 1, 1, 16, 16 }, - { AREA_SANCTUARY, 2, 1, 2, 0, 0 }, - { AREA_EZLO_CUTSCENE, 0, 1, 3, 0, 0 }, - { AREA_HOUSE_INTERIORS_2, 16, 1, 4, 0, 0 }, - { AREA_DARK_HYRULE_CASTLE_OUTSIDE, 0, 1, 5, 0, 40 }, - { AREA_FORTRESS_OF_WINDS, 28, 2, 0, 0, 0 }, - { AREA_FORTRESS_OF_WINDS, 29, 2, 1, 0, 0 }, - { AREA_DARK_HYRULE_CASTLE, 14, 2, 2, 16, 16 }, -}; - -static void AuxCutscene_Exit(void) { - u32 flag = sCutsceneData[gUI.field_0x3]._3; - if (flag & 0xF0) { - MenuFadeIn(2, flag >> 4); - } else { - gUI.nextToLoad = 3; - SetFadeInverted(0x10); - MessageInitialize(); - } -} - -void sub_08051F78(void) { - u32 idx = gUI.field_0x3; - const CutsceneData* p = &sCutsceneData[idx]; - sub_08051F9C(p->area, p->room, p->x, p->y); -} - -void sub_08051F9C(u32 a1, u32 a2, u32 a3, u32 a4) { - u32 tmp = gScreen.lcd.displayControl & (DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); - sub_08052FF4(a1, a2); - gRoomControls.scroll_x = gRoomControls.origin_x + a3; - gRoomControls.scroll_y = gRoomControls.origin_y + a4; - InitializeCamera(); - gUpdateVisibleTiles = 1; - gUsedPalettes = 0; - gScreen.lcd.displayControl |= tmp; -} - -void sub_08051FF0(void) { - sub_0804B0B0(gMenu.field_0xc[0], gMenu.field_0xc[1]); -} - -void sub_08052004(void) { - gMenu.menuType = 2; -} - -static void sub_08052010(void) { - InitSoundPlayingInfo(); - MessageInitialize(); - DispReset(1); - MemClear(gBG1Buffer, sizeof(gBG1Buffer)); - MemClear(gBG2Buffer, sizeof(gBG2Buffer)); - sub_080A4D34(); - LoadPaletteGroup(0xA); - SetColor(0, 0); - LoadGfxGroup(4); - MemClear((void*)0x06000000, 0x20); - MemClear(&gGenericMenu, sizeof(gGenericMenu)); - gScreen.lcd.displayControl |= DISPCNT_OBJ_ON; - gScreen.bg1.control = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(28) | BGCNT_CHARBASE(0); - gScreen.bg2.control = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(29) | BGCNT_CHARBASE(1); - gScreen.bg1.updated = 1; - gScreen.bg2.updated = 1; -} - -void GameOverTask(void) { - static GameOverState* const sStates[] = { - GameOver_Init, GameOver_FadeIn, GameOver_TextMove, GameOver_Update, GameOver_Exit, - }; - - sStates[gMain.state](); - if (gMain.state != GAMETASK_TRANSITION) { - FlushSprites(); - DrawGameOverText(); - CopyOAM(); - } -} - -static void switch_state(u32 idx) { - gMain.state = idx; - SetMenuType(0); -} - -static void GameOver_Init(void) { - if (gFadeControl.active) - return; - sub_08052010(); - gGenericMenu.unk10.a[0] = 80; - gMenu.transitionTimer = 60; - gSave.stats.health = 24; - gMain.field_0x5 = 60; - SoundReq(BGM_GAMEOVER); - SetFadeInverted(4); - gFadeControl.mask = 0xFFFF0001; - switch_state(GAMETASK_INIT); -} - -static void GameOver_FadeIn(void) { - if (gFadeControl.active) - return; - - if (gMain.field_0x5 == 0) { - if (gGenericMenu.unk10.a[0] >= 38) { - gGenericMenu.unk10.a[0]--; - } else { - gMenu.transitionTimer--; - if (gMenu.transitionTimer == 0) { - switch_state(GAMETASK_MAIN); -#if defined(DEMO_USA) || defined(DEMO_JP) - SoundReq(SONG_VOL_FADE_OUT); - SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 4); -#else - SetPopupState(0, 0); - gScreen.lcd.displayControl |= DISPCNT_BG1_ON | DISPCNT_BG2_ON; - gFadeControl.mask = 0x0000ffff; - SetFade(FADE_INSTANT, 16); -#endif - } - } - } else { - gMain.field_0x5--; - } -} - -static void GameOver_TextMove(void) { -#if defined(DEMO_USA) || defined(DEMO_JP) - if (gFadeControl.active == 0) { - DoSoftReset(); - } -} -#else - s32 temp3; - u32 temp2; - - if (gFadeControl.active) - return; - - switch (gMenu.menuType) { - case 0: - gMenu.transitionTimer = 30; - gMenu.field_0x3 = 0; - SetMenuType(1); - SetPopupState(0, 0); - gFadeControl.mask = 0xffffffff; - return; - case 1: - if (gMenu.transitionTimer == 0) { - u32 temp = gMenu.field_0x3; - switch (gInput.newKeys) { - case DPAD_UP: - temp = 0; - break; - case DPAD_DOWN: - temp = 1; - break; - case A_BUTTON: - if (gMenu.field_0x3 != 0) { - temp2 = 4; - } else { - CreateDialogBox(8, 0); - temp2 = 2; - } - gMenu.transitionTimer = 60; - SetMenuType(temp2); - SoundReq(SFX_TEXTBOX_SELECT); - break; - } - if (gMenu.field_0x3 != temp) { - gMenu.field_0x3 = temp; - SetPopupState(0, temp); - SoundReq(SFX_TEXTBOX_CHOICE); - } - return; - } - gMenu.transitionTimer--; - return; - case 2: - temp3 = HandleSave(0); - gMenu.field_0x0 = temp3; - switch (temp3) { - case 1: - SetMenuType(4); - break; - case -1: - gMenu.transitionTimer = 60; - CreateDialogBox(9, 0); - SetMenuType(3); - break; - } - return; - case 3: - if (gMenu.transitionTimer != 0) { - gMenu.transitionTimer--; - } else if (gInput.newKeys & (A_BUTTON | B_BUTTON | START_BUTTON)) { - SetMenuType(0); - } - return; - case 4: - default: - gScreen.lcd.displayControl &= ~DISPCNT_BG1_ON; - sub_08050384(); - switch_state(GAMETASK_EXIT); - return; - } -} -#endif - -static void GameOver_Update(void) { - switch (gMenu.menuType) { - case 0x0: - gMenu.transitionTimer = 30; - gMenu.field_0x3 = 0; - SetMenuType(1); - SetPopupState(1, 0); - return; - case 0x1: - gScreen.lcd.displayControl |= DISPCNT_BG1_ON; - if (gMenu.transitionTimer != 0) { - gMenu.transitionTimer--; - return; - } else { - u32 temp = gMenu.field_0x3; - switch (gInput.newKeys) { - case DPAD_UP: - temp = 0; - break; - case DPAD_DOWN: - temp = 1; - break; - case A_BUTTON: - SetMenuType(2); - SoundReq(SFX_TEXTBOX_SELECT); - if (temp == 0) { - SetFade(FADE_IN_OUT | FADE_INSTANT, 8); - } else { - SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 8); - } - break; - } - if (gMenu.field_0x3 != temp) { - gMenu.field_0x3 = temp; - SetPopupState(1, temp); - SoundReq(SFX_TEXTBOX_CHOICE); - } - } - return; - case 0x2: - default: - if (gFadeControl.active == 0) { - if (gMenu.field_0x3 == 0) { - SetTask(TASK_GAME); - } else { - DoSoftReset(); - } - } - return; - } -} - -// Unused, since task is set above -// if we got here, it would be a softlock -static void GameOver_Exit(void) { -} - -static void DrawGameOverText(void) { - static const u8 sOffsets[] = { - 48, 68, 88, 108, 137, 156, 174, 192, - }; - - u32 i; - - gOamCmd._4 = 0; - gOamCmd._6 = 0; - gOamCmd._8 = 0x8600; - gOamCmd.y = gGenericMenu.unk10.a[0]; - for (i = 0; i < 8; ++i) { - gOamCmd.x = sOffsets[i]; -#ifdef EU - DrawDirect(0x1fc, i); -#else - DrawDirect(0x1fd, i); -#endif - } -} - -void SetPopupState(u32 type, u32 choice_idx) { - static const Font sDefaultFont = { - .dest = gBG1Buffer, - .gfx_dest = (u16*)0x06006000, - .buffer_loc = gTextGfxBuffer, - ._c = 0, - .gfx_src = 0xD300, - .width = 0xE0, - .right_align = 0, - .sm_border = 0, - .unused = 0, - .draw_border = 0, - .border_type = 0, - .fill_type = 6, - .charColor = 4, - ._16 = 1, - .stylized = 0, - }; - static const PopupOption sPopupOptions[] = { - { { 11, 11, 11, 10, 11, 10, 10, 0 }, 8, 0, 16 }, - { { 10, 11, 11, 9, 11, 9, 9, 0 }, 8, 0, 17 }, - { { 15, 15, 15, 15, 15, 15, 15, 0 }, 5, 1, 13 }, - }; - - Font font; - const PopupOption* opt; - u32 fakematch; - - MemClear(gBG1Buffer, sizeof gBG1Buffer); - gUnk_020227E8[0]._0.WORD = 0xf; - gUnk_020227E8[1]._0.WORD = 0xf; - gUnk_020227E8[2]._0.WORD = 0xf; - gUnk_020227E8[3]._0.WORD = 0xf; - *(&gUnk_020227E8[choice_idx]._0.BYTES.byte0 + 1) = fakematch = 1; - - MemCopy(&sDefaultFont, &font, sizeof font); - opt = &sPopupOptions[type]; - font.dest = sDefaultFont.dest + (opt->dest_off[gSaveHeader->language] + opt->_8 * 32); - font.right_align = opt->right_align; - sub_0805F46C(opt->_a, &font); - gScreen.bg1.updated = fakematch; -} - -static void InitializePlayer(void) { - static const u8 sPlayerSpawnStates[] = { - [PL_SPAWN_DEFAULT] = PLAYER_INIT, - [PL_SPAWN_MINISH] = PLAYER_MINISH, - [PL_SPAWN_DROP] = PLAYER_INIT, - [PL_SPAWN_WALKING] = PLAYER_ROOMTRANSITION, - [PL_SPAWN_STEP_IN] = PLAYER_ROOM_EXIT, - [PL_SPAWN_SLEEPING] = PLAYER_SLEEP, - [PL_SPAWN_DROP_MINISH] = PLAYER_MINISH, - [PL_SPAWN_STAIRS_ASCEND] = PLAYER_USEENTRANCE, - [PL_SPAWN_STAIRS_DESCEND] = PLAYER_USEENTRANCE, - [PL_SPAWN_9] = PLAYER_MINISH, - [PL_SPAWN_PARACHUTE_FORWARD] = PLAYER_WARP, - [PL_SPAWN_PARACHUTE_UP] = PLAYER_WARP, - [PL_SPAWN_FAST_TRAVEL] = PLAYER_WARP, - }; - - Entity* pl; - - sub_080784C8(); - MemClear(&gActiveItems, sizeof(gActiveItems)); - MemClear(&gPlayerState, sizeof(gPlayerState)); - MemFill32(0xffffffff, &gPlayerState.path_memory, sizeof(gPlayerState.path_memory)); - MemClear(&gPlayerEntity, sizeof(gPlayerEntity)); - - pl = &gPlayerEntity; - - gRoomControls.camera_target = pl; - gPlayerState.queued_action = sPlayerSpawnStates[gRoomTransition.player_status.spawn_type]; - if (!CheckGlobalFlag(EZERO_1ST)) { - gPlayerState.flags |= PL_NO_CAP; - } - switch (gRoomTransition.player_status.spawn_type) { - case PL_SPAWN_DROP: - case PL_SPAWN_DROP_MINISH: - pl->z.HALF.HI = -0xc0; - break; - case PL_SPAWN_STEP_IN: - gPlayerState.field_0x38 = 16; - pl->direction = Direction8FromAnimationState(gRoomTransition.player_status.start_anim); - case PL_SPAWN_WALKING: - pl->speed = 224; - break; - case PL_SPAWN_STAIRS_ASCEND: - case PL_SPAWN_STAIRS_DESCEND: - gPlayerState.field_0x38 = 1; - gPlayerState.field_0x39 = gRoomTransition.player_status.spawn_type; - break; - case PL_SPAWN_PARACHUTE_FORWARD: - gPlayerState.field_0x38 = 1; - break; - case PL_SPAWN_PARACHUTE_UP: - gPlayerState.field_0x38 = 3; - break; - case PL_SPAWN_FAST_TRAVEL: - gPlayerState.field_0x38 = 4; - } - - pl->kind = PLAYER; - pl->flags |= ENT_COLLIDE | ENT_PERSIST; - pl->spritePriority.b0 = 4; - pl->health = gSave.stats.health; - pl->x.HALF.HI = gRoomTransition.player_status.start_pos_x; - pl->y.HALF.HI = gRoomTransition.player_status.start_pos_y; - pl->animationState = gRoomTransition.player_status.start_anim; - pl->collisionLayer = gRoomTransition.player_status.layer; - UpdateSpriteForCollisionLayer(pl); - AppendEntityToList(pl, 1); - RegisterPlayerHitbox(); -} - -bool32 AreaIsOverworld(void) { -#ifdef EU - return gArea.areaMetadata == 0x01; -#else - return gArea.areaMetadata == 0x81; -#endif -} - -bool32 CheckAreaOverworld(u32 area) { -#if EU - return gAreaMetadata[area].flags == 0x01; -#else - return gAreaMetadata[area].flags == 0x81; -#endif -} - -#ifndef EU -bool32 AreaAllowsWarp(void) { - return (gArea.areaMetadata >> 7) & 1; -} -#endif - -bool32 AreaIsDungeon(void) { - return (gArea.areaMetadata >> 2) & 1; -} - -bool32 AreaHasEnemies(void) { - return (gArea.areaMetadata >> 4) & 1; -} - -bool32 AreaHasNoEnemies(void) { - return (gArea.areaMetadata >> 6) & 1; -} - -bool32 AreaHasMap(void) { - return (gArea.areaMetadata >> 3) & 1; -} - -s32 ModHealth(s32 delta) { - s32 newHealth; - Stats* stats = &gSave.stats; - - newHealth = stats->health + delta; - if (newHealth < 0) { - newHealth = 0; - } - if (stats->maxHealth < newHealth) { - newHealth = (u32)stats->maxHealth; - } - stats->health = newHealth; - gPlayerEntity.health = newHealth; - return newHealth; -} - -void ModRupees(s32 delta) { - s32 newRupeeCount; - Stats* s = &gSave.stats; - - newRupeeCount = s->rupees + delta; - if (newRupeeCount < 0) { - newRupeeCount = 0; - } else { - if (newRupeeCount > gWalletSizes[s->walletType * 2]) { - newRupeeCount = gWalletSizes[s->walletType * 2]; - } - } - s->rupees = newRupeeCount; -} - -void sub_080526F8(s32 a1) { - if (AreaHasKeys()) { - u8* p = &gSave.unk45C[gArea.dungeon_idx]; - if (*p + a1 < 0) - *p = 0; - else - *p += a1; - } -} - -bool32 AreaHasKeys(void) { - return (gArea.areaMetadata >> 1) & 1; -} - -bool32 HasDungeonMap(void) { - u32 tmp; - - if (AreaHasKeys()) - tmp = gSave.unk45C[gArea.dungeon_idx]; - return tmp ? 1 : 0; -} - -bool32 HasDungeonCompass(void) { - u32 tmp; - - if (AreaHasKeys()) - tmp = gSave.unk46C[gArea.dungeon_idx] & 4; - return tmp ? 1 : 0; -} - -bool32 HasDungeonBigKey(void) { - if (!AreaHasKeys()) - return 0; - return (gSave.unk46C[gArea.dungeon_idx] >> 1) & 1; -} - -bool32 HasDungeonSmallKey(void) { - u32 tmp; - - if (!AreaHasKeys()) - return 0; - return gSave.unk46C[gArea.dungeon_idx] & 1; -} - -void RestoreGameTask(u32 a1) { - LoadGfxGroups(); -#ifndef EU - CleanUpGFXSlots(); -#endif - sub_080ADE24(); - InitUI(TRUE); - sub_0801AE44(a1); - MemCopy(gUnk_02024090, gPaletteBuffer, 1024); - gUsedPalettes = 0xffffffff; -} - -static void LoadRoomBgm(void) { - gArea.queued_bgm = gAreaMetadata[gRoomControls.area]._3; - if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START)) { - gArea.queued_bgm = BGM_FIGHT_THEME2; - } -} - -#ifndef EU -void sub_08052878(void) { - gArea.bgm = gArea.queued_bgm; - SoundReq(SONG_STOP_ALL); -} - -static void sub_0805289C(void) { - gArea.queued_bgm = gArea.bgm; -} -#endif - -static bool32 CheckGameOver(void) { - if (gRoomTransition.field_0x4[1]) { - InitFade(); - gMain.state = GAMETASK_EXIT; - gMain.substate = GAMEMAIN_INITROOM; - SetFade(FADE_IN_OUT | FADE_INSTANT, 8); - SoundReq(SONG_STOP_BGM); - return TRUE; - } - return FALSE; -} - -void RoomExitCallback(void) { - if (gArea.transitionManager != NULL && gArea.onExit != NULL) - gArea.onExit(gArea.transitionManager); -} - -static bool32 CheckRoomExit(void) { - if (gRoomTransition.transitioningOut && gSave.stats.health != 0 && gPlayerState.framestate != PL_STATE_DIE) { - if (StairsAreValid()) { - gRoomTransition.transitioningOut = 0; - return FALSE; - } - - switch (gRoomTransition.type) { - case TRANSITION_CUT: - SetFade(FADE_IN_OUT | FADE_INSTANT | FADE_MOSAIC, 8); - break; - case TRANSITION_CUT_FAST: - SetFade(FADE_IN_OUT | FADE_INSTANT | FADE_MOSAIC, 3); - break; - case TRANSITION_FADE_WHITE_SLOW: - SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 4); - break; - case TRANSITION_FADE_BLACK_SLOW: - SetFade(FADE_IN_OUT | FADE_INSTANT, 4); - break; - case TRANSITION_FADE_BLACK: - SetFade(FADE_IN_OUT | FADE_INSTANT, 16); - break; - case TRANSITION_FADE_BLACK_FAST: - SetFade(FADE_IN_OUT | FADE_INSTANT, 256); - break; - case TRANSITION_7: - case TRANSITION_FADE_WHITE_FAST: - SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 256); - break; - default: - SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 16); - break; - } - RoomExitCallback(); - gMain.substate = GAMEMAIN_CHANGEAREA; - *(&gMain.pauseInterval + 1) = 1; - return TRUE; - } - return FALSE; -} - -static u32 StairsAreValid(void) { - static const u16 sStairTypes[] = { 0x91, PL_SPAWN_STAIRS_ASCEND, 0x92, PL_SPAWN_STAIRS_DESCEND, - 0x93, PL_SPAWN_STAIRS_ASCEND, 0x94, PL_SPAWN_STAIRS_DESCEND, - 0x95, PL_SPAWN_STAIRS_ASCEND, 0x96, PL_SPAWN_STAIRS_DESCEND, - 0x97, PL_SPAWN_STAIRS_ASCEND, 0x98, PL_SPAWN_STAIRS_DESCEND, - 0 }; - - const u16* i; - u32 tgt = gRoomTransition.stairs_idx; - - for (i = sStairTypes; i[0] != 0; i += 2) { - if (tgt == i[0]) { - gPlayerState.queued_action = PLAYER_USEENTRANCE; - gPlayerState.field_0x38 = 0; - gPlayerState.field_0x39 = i[1]; - if (!gRoomTransition.player_status.spawn_type) - gRoomTransition.player_status.spawn_type = i[1]; - return 1; - } - } - return 0; -} - -void InitParachuteRoom(void) { - gRoomTransition.transitioningOut = 1; - gRoomTransition.player_status.start_pos_x = (gPlayerEntity.x.HALF.HI - gRoomControls.origin_x) & 0x3F8; - gRoomTransition.player_status.start_pos_y = (gPlayerEntity.y.HALF.HI - gRoomControls.origin_y) & 0x3F8; - gRoomTransition.player_status.start_anim = 4; - gRoomTransition.player_status.spawn_type = PL_SPAWN_PARACHUTE_FORWARD; - gRoomTransition.player_status.area_next = gRoomControls.area; - gRoomTransition.player_status.room_next = gRoomControls.room - 1; -} - -static void InitRoomTransition(void) { - switch (gRoomTransition.type) { - case TRANSITION_CUT: - SetFade(FADE_INSTANT | FADE_MOSAIC, 8); - break; - case TRANSITION_CUT_FAST: - SetFade(FADE_INSTANT | FADE_MOSAIC, 3); - break; - case TRANSITION_FADE_WHITE_SLOW: - SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 4); - break; - case TRANSITION_3: - break; - case TRANSITION_FADE_BLACK_FAST: - SetFade(FADE_IN_OUT | FADE_INSTANT, 256); - break; - case TRANSITION_7: - SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 256); - break; - case TRANSITION_FADE_BLACK: - SetFade(FADE_INSTANT, 16); - break; - case TRANSITION_FADE_WHITE_FAST: - SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 8); - break; - default: - SetFadeInverted(16); - break; - } -} - -bool32 CanDispEzloMessage(void) { - s32 tmp = PL_STATE_WALK; - - if (!(gInput.heldKeys & SELECT_BUTTON) || gPlayerState.controlMode != CONTROL_ENABLED || - gPauseMenuOptions.disabled || gUnk_0200AF00.unk_1) - return FALSE; - - if ((gPlayerState.flags & (PL_NO_CAP | PL_CAPTURED | PL_DISABLE_ITEMS)) || (gPlayerState.framestate_last > tmp) || - gPlayerState.item || gPlayerEntity.field_0x7a.HWORD) - return FALSE; - - if ((gPlayerEntity.z.HALF.HI & 0x8000) && !gPlayerState.field_0xa) - return FALSE; - - GenerateAreaHint(); - ForceSetPlayerState(PL_STATE_TALKEZLO); - SetPlayerEventPriority(); - return TRUE; -} - -void DisplayEzloMessage(void) { - u32 height; - u32 idx; -#if defined(JP) || defined(EU) - idx = 0x10; -#else - idx = 0x11; -#endif - - if (gRoomTransition.player_status.field_0x24[idx] == 0) { - height = gPlayerEntity.y.HALF.HI - gRoomControls.scroll_y > 96 ? 1 : 13; - } else { - height = gRoomTransition.player_status.field_0x24[idx]; - } - MessageAtHeight(gRoomTransition.hint_idx, height); -} - -#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) -static void CreateMiscManager(void) { - Entity* e = NULL; - - if (gRoomTransition.player_status.field_0x24[13]) - return; - gRoomTransition.player_status.field_0x24[13] = 1; -#ifndef DEMO_JP - gRoomTransition.player_status.field_0x24[10] = gArea.locationIndex; -#endif - e = (Entity*)GetEmptyManager(); - if (e == NULL) - return; - e->kind = MANAGER; - e->id = MISC_MANAGER; - e->type = 15; - AppendEntityToList(e, 0); -} -#endif - -static void sub_08052C3C(void) { - if (gArea.portal_mode == 0) - gArea.portal_timer = 0; - if (gArea.portal_timer) { - gArea.portal_timer--; - gArea.portal_mode = 0; - } -} - -static void UpdatePlayerMapCoords(void) { - if (!AreaHasNoEnemies()) { - if (AreaIsOverworld()) { - gRoomTransition.player_status.overworld_map_x = gPlayerEntity.x.HALF_U.HI; - gRoomTransition.player_status.overworld_map_y = gPlayerEntity.y.HALF_U.HI; - } else if (AreaIsDungeon()) { - gRoomTransition.player_status.dungeon_map_x = gPlayerEntity.x.HALF.HI; - gRoomTransition.player_status.dungeon_map_y = gPlayerEntity.y.HALF.HI; - } - } -} - -void SetWorldMapPos(u32 area, u32 room, u32 x, u32 y) { - RoomHeader* hdr = gAreaRoomHeaders[area] + room; - gRoomTransition.player_status.overworld_map_x = hdr->map_x + x; - gRoomTransition.player_status.overworld_map_y = hdr->map_y + y; -} - -void SetDungeonMapPos(u32 area, u32 room, u32 x, u32 y) { - RoomHeader* hdr = gAreaRoomHeaders[area] + room; - gRoomTransition.player_status.dungeon_map_x = hdr->map_x + x; - gRoomTransition.player_status.dungeon_map_y = hdr->map_y + y; -} - -void InitRoom(void) { - AreaHeader* a_hdr = NULL; - - MemClear(&gArea, sizeof gArea); - a_hdr = &gAreaMetadata[gRoomControls.area]; - gArea.areaMetadata = a_hdr->flags; - gArea.locationIndex = a_hdr->location; - gArea.dungeon_idx = a_hdr->location - 23; - gArea.localFlagOffset = gLocalFlagBanks[a_hdr->flag_bank]; - gArea.flag_bank = a_hdr->flag_bank; - gArea.portal_timer = 180; - gArea.lightLevel = 256; - InitRoomTransition(); - InitAllRoomResInfo(); -} - -u32 GetFlagBankOffset(u32 idx) { - AreaHeader* a_hdr = &gAreaMetadata[idx]; - return gLocalFlagBanks[a_hdr->flag_bank]; -} - -void RegisterTransitionManager(void* mgr, void (*onEnter)(), void (*onExit)()) { - if (gMain.substate != GAMEMAIN_SUBTASK) { - gArea.transitionManager = mgr; - gArea.onEnter = onEnter; - gArea.onExit = onExit; - } -} - -static void InitAllRoomResInfo(void) { - RoomHeader* r_hdr = gAreaRoomHeaders[gRoomControls.area]; - RoomResInfo* info = gArea.roomResInfos; - u32 i; - for (i = 0; i < MAX_ROOMS && *(u16*)r_hdr != 0xFFFF; i++, r_hdr++) { - if (r_hdr->tileset_id != 0xFFFF) - InitRoomResInfo(info, r_hdr, gRoomControls.area, i); - info++; - } - gArea.pCurrentRoomInfo = GetCurrentRoomInfo(); -} - -static void InitRoomResInfo(RoomResInfo* info, RoomHeader* r_hdr, u32 area, u32 room) { - info->map_x = r_hdr->map_x; - info->map_y = r_hdr->map_y; - info->pixel_width = r_hdr->pixel_width; - info->pixel_height = r_hdr->pixel_height; - info->tileset = *(gAreaTilesets[area] + r_hdr->tileset_id); - info->map = *(gAreaRoomMaps[area] + room); - info->metatiles = gAreaMetatiles[area]; - info->bg_anim = (void*)gUnk_080B755C[area]; - info->exits = gExitLists[area][room]; - if (gAreaTable[area] != NULL) { - info->properties = *(gAreaTable[area] + room); - } -} - -RoomResInfo* GetCurrentRoomInfo(void) { - return &gArea.roomResInfos[gRoomControls.room]; -} - -void sub_08052EA0(void) { - MemClear(&gRoomVars, sizeof gRoomVars); - gRoomVars.unk_10[0] = -1; - gRoomVars.unk_10[1] = gRoomVars.unk_10[0]; - gRoomVars.unk_10[2] = gRoomVars.unk_10[0]; - gRoomVars.unk_10[3] = gRoomVars.unk_10[0]; - gRoomVars.lightLevel = 256; - gArea.locationIndex = gAreaMetadata[gRoomControls.area].location; - UpdateRoomTracker(); - InitScriptData(); - sub_08054524(); - sub_080186D4(); - sub_0806F364(); - UpdateGlobalProgress(); -} - -static u32 sub_08052EF4(s32 idx) { - AreaHeader* a_hdr = NULL; - u32 i = idx < 0 ? gRoomControls.area : idx; - a_hdr = &gAreaMetadata[i]; - return gLocalFlagBanks[a_hdr->flag_bank]; -} - -/** - * @brief If enabled, this type of transition does not change the room - * and keeps all entities. - */ -static void UpdateFakeScroll(void) { - u32 x, y; - LinkedList* ll; - Entity* e; - - if (gArea.unk_0c_0 == 0 || !gRoomVars.field_0x0) - return; - - y = 0; - x = 0; - - // WTF? - switch (gRoomControls.scroll_direction) { - case 0: - y = gArea.pCurrentRoomInfo->pixel_height; - case 1: - y = gArea.pCurrentRoomInfo->pixel_height; - case 2: - y = gArea.pCurrentRoomInfo->pixel_height; - case 3: - x = gArea.pCurrentRoomInfo->pixel_width; - } - - gArea.pCurrentRoomInfo->map_x += x; - gArea.pCurrentRoomInfo->map_y += y; - gRoomControls.origin_x += x; - gRoomControls.origin_y += y; - gRoomControls.scroll_x += x; - gRoomControls.scroll_y += y; - - ll = gEntityLists; - do { - for (e = ll->first; e != (Entity*)ll; e = e->next) { - if (e->kind != MANAGER) { - e->x.HALF.HI += x; - e->y.HALF.HI += y; - } - } - } while (++ll < gEntityLists + 9); -} - -void LoadAuxiliaryRoom(u32 area, u32 room) { - sub_08052FF4(area, room); - gRoomControls.camera_target = NULL; - CloneMapData(); - InitializeCamera(); -} - -void sub_08052FF4(u32 area, u32 room) { - RoomHeader* r_hdr = NULL; - - ClearTilemaps(); - SetBGDefaults(); - gRoomControls.area = area; - gRoomControls.room = room; - gScreen.lcd.displayControl = 0x1740; - MemClear(&gArea.currentRoomInfo, sizeof gArea.currentRoomInfo); - gArea.pCurrentRoomInfo = &gArea.currentRoomInfo; - r_hdr = gAreaRoomHeaders[area] + room; - gArea.currentRoomInfo.map_x = r_hdr->map_x; - gArea.currentRoomInfo.map_y = r_hdr->map_y; - gArea.currentRoomInfo.pixel_width = r_hdr->pixel_width; - gArea.currentRoomInfo.pixel_height = r_hdr->pixel_height; - gArea.currentRoomInfo.tileset = *(gAreaTilesets[area] + r_hdr->tileset_id); - gArea.currentRoomInfo.map = *(gAreaRoomMaps[area] + room); - gArea.currentRoomInfo.metatiles = gAreaMetatiles[area]; - gArea.currentRoomInfo.bg_anim = (void*)gUnk_080B755C[area]; -} - -void ChangeLightLevel(s32 lightLevel) { - lightLevel += gRoomVars.lightLevel; - if (lightLevel < 0) - lightLevel = 0; - if (lightLevel > 256) - lightLevel = 256; - gRoomVars.lightLevel = lightLevel; -} - -static void sub_080530B0(void) { - static const u16 sMinecartData[] = { 0x189, 0x0, 0x102, 0x4, 0x1af, 0x0, 0x204, 0x0, - 0x1cf, 0x0, 0x10, 0x4, 0x0, 0x0, 0x0, 0x0 }; - - MemCopy(sMinecartData, gRoomTransition.minecart_data, sizeof sMinecartData); -} - -void UpdateGlobalProgress(void) { - u8 pcnt = 1; - if (CheckLocalFlagByBank(FLAG_BANK_3, SEIIKI_STAINED_GLASS)) { - pcnt = 9; - } else if (CheckGlobalFlag(LV5_CLEAR)) { - pcnt = 8; - } else if (CheckLocalFlagByBank(FLAG_BANK_3, OUBO_KAKERA)) { - pcnt = 7; - } else if (CheckGlobalFlag(LV4_CLEAR)) { - pcnt = 6; - } else if (CheckGlobalFlag(LV3_CLEAR)) { - pcnt = 5; - } else if (CheckLocalFlagByBank(FLAG_BANK_1, SOUGEN_08_TORITSUKI)) { - pcnt = 4; - } else if (CheckGlobalFlag(LV1_CLEAR)) { - pcnt = 2; - } - gSave.global_progress = pcnt; -} - -static u32 sub_08053144(void) { - u32 ret; - - if (CheckGlobalFlag(ENDING)) - return 0; - ret = 0; - if (gArea.locationIndex != 0) - ret = !!(gRoomTransition.player_status.field_0x24[10] ^ gArea.locationIndex); - return ret; -} - -static void CheckAreaDiscovery(void) { - if (!sub_08053144()) - return; - - gRoomTransition.player_status.field_0x24[10] = gArea.locationIndex; - - if (!CheckGlobalFlag(TABIDACHI)) - return; - - if (!CheckGlobalFlag(ENDING)) { - Entity* e = (Entity*)GetEmptyManager(); - if (e != NULL) { - e->kind = MANAGER; - e->id = ENTER_ROOM_TEXTBOX_MANAGER; - AppendEntityToList(e, 8); - if (!gRoomVars.field_0x0 && !ReadBit(gSave.areaVisitFlags, gArea.locationIndex)) { - e->type2 = 1; - SetPlayerControl(3); - SetInitializationPriority(); - } - } - } - WriteBit(gSave.areaVisitFlags, gArea.locationIndex); -} - -static void UpdatePlayerRoomStatus(void) { - gPlayerState.startPosX = gPlayerEntity.x.HALF.HI; - gPlayerState.startPosY = gPlayerEntity.y.HALF.HI; - if (sub_08053144()) { - MemCopy(&gRoomTransition.player_status, &gSave.saved_status, sizeof gRoomTransition.player_status); - if (AreaIsDungeon()) { - gRoomTransition.player_status.dungeon_area = gRoomControls.area; - gRoomTransition.player_status.dungeon_room = gRoomControls.room; - gRoomTransition.player_status.dungeon_x = gPlayerEntity.x.HALF.HI; - gRoomTransition.player_status.dungeon_y = gPlayerEntity.y.HALF.HI; - } - } -} - -void sub_08053250(void) { - gRoomTransition.player_status.spawn_type = PL_SPAWN_DEFAULT; - gRoomTransition.player_status.start_pos_x = gPlayerEntity.x.HALF.HI - gRoomControls.origin_x; - gRoomTransition.player_status.start_pos_y = gPlayerEntity.y.HALF.HI - gRoomControls.origin_y; - gRoomTransition.player_status.start_anim = gPlayerEntity.animationState; - gRoomTransition.player_status.layer = gPlayerEntity.collisionLayer; - gRoomTransition.player_status.area_next = gRoomControls.area; - gRoomTransition.player_status.room_next = gRoomControls.room; - MemCopy(&gRoomTransition.player_status, &gSave.saved_status, sizeof gRoomTransition.player_status); -} - -static void sub_0805329C(void) { - if (sub_08053144()) { - switch (gRoomControls.area) { - case AREA_DEEPWOOD_SHRINE: - gSave.unk7 = 0; - break; - case AREA_CAVE_OF_FLAMES: - sub_080530B0(); - break; - case AREA_OUTER_FORTRESS_OF_WINDS: - sub_080532E4(); - break; - default: - ResetTimerFlags(); - break; - } - } -} - -static void sub_080532E4(void) { - s32 x, y; - - RoomHeader* r_hdr = gAreaRoomHeaders[AREA_FORTRESS_OF_WINDS] + 33; - - gRoomTransition.player_status.dungeon_area = AREA_FORTRESS_OF_WINDS; - gRoomTransition.player_status.dungeon_room = 33; - - gRoomTransition.player_status.dungeon_x = r_hdr->map_x + r_hdr->pixel_width / 2; - gRoomTransition.player_status.dungeon_map_x = gRoomTransition.player_status.dungeon_x; - gRoomTransition.player_status.dungeon_y = r_hdr->map_y + r_hdr->pixel_height + 0xa0; - gRoomTransition.player_status.dungeon_map_y = gRoomTransition.player_status.dungeon_y; -} - -void LoadGfxGroups(void) { - MemClear(&gBG0Buffer, sizeof gBG0Buffer); - MemClear(&gBG1Buffer, sizeof gBG1Buffer); - MemClear(&gBG2Buffer, sizeof gBG2Buffer); - MemClear(&gBG3Buffer, sizeof gBG3Buffer); - LoadGfxGroup(16); - LoadGfxGroup(23); - if (gRoomControls.area == AREA_CASTOR_WILDS) - LoadGfxGroup(26); - LoadItemGfx(); - LoadPaletteGroup(11); - LoadPaletteGroup(12); - SetColor(0, 0); -} - -void LoadItemGfx(void) { - LoadGfxGroup(GetInventoryValue(ITEM_REMOTE_BOMBS) ? 24 : 25); - if (GetInventoryValue(ITEM_LIGHT_ARROW)) - LoadGfxGroup(29); - LoadGfxGroup(GetInventoryValue(ITEM_MAGIC_BOOMERANG) ? 28 : 27); -} - -void sub_080533CC(void) { - u16* p1 = gUnk_020178E0; - u16* p2 = gUnk_020178E0 - 0x100; - *p2++ = *p1++; - *p2++ = *p1++; - *p2++ = *p1++; - *p2++ = *p1++; - *p2++ = *p1++; - gUsedPalettes |= 8; -} - -static void UpdateTimerCallbacks(void) { - static void (*const sHandlers[])(u32*) = { - sub_08053434, DummyHandler, sub_080534E4, DummyHandler, DummyHandler, DummyHandler, DummyHandler, DummyHandler, - }; - - u32* p; - u32 i; - - p = gSave.timers; - for (i = 0; i < 8; i++, p++) { - (sHandlers[i])(p); - } -} - -static void DummyHandler(u32* a1) { -} - -static void sub_08053434(u32* a1) { - if (gArea.locationIndex == 29 && *a1) { - if (!--*a1) { - ResetTimerFlags(); - MenuFadeIn(5, 6); - } - } -} - -static void ResetTimerFlags(void) { - static const u16 sClearFlags[] = { FLAG_BANK_10, LV6_GUFUU1_GISHIKI, FLAG_BANK_10, LV6_GUFUU1_DEMO, - FLAG_BANK_10, LV6_ZELDA_DISCURSE, FLAG_BANK_10, LV6_00_ESCAPE, - FLAG_BANK_10, LV6_GUFUU2_DEAD, FLAG_BANK_G, ENDING, - FLAG_BANK_10, LV6_KANE_START, FLAG_BANK_10, LV6_KANE_1ST, - FLAG_BANK_10, LV6_KANE_2ND, FLAG_BANK_10, LV6_SOTO_ENDING, - 0xFFFF }; - - gSave.timers[0] = 0; - if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_ZELDA_DISCURSE)) - ClearGlobalFlag(ZELDA_CHASE); - ClearFlagArray(sClearFlags); -} - -void StartDarkNutTimer(void) { - gSave.timers[0] = 10800; -} - -void sub_080534AC(void) { - if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START)) { - ClearLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START); - gSave.timers[0] = 0; - SoundReq(SONG_STOP_BGM); - } -} - -static void sub_080534E4(u32* a1) { - if (gRoomControls.area != AREA_VEIL_FALLS_TOP) { - if (*a1) - --*a1; - } -} - -void InitBiggoronTimer(void) { - gSave.timers[2] = 36000; -} - -static void ResetTmpFlags(void) { - static const u16 sClearFlags[] = { FLAG_BANK_2, BILL00_SHICHOU_00, FLAG_BANK_2, BILL0A_YADO_TAKARA_00, - FLAG_BANK_2, BILL0C_SCHOOLR_00, FLAG_BANK_1, MACHI00_00, - FLAG_BANK_1, MACHI00_02, FLAG_BANK_2, MHOUSE06_00, - FLAG_BANK_2, MHOUSE14_00, FLAG_BANK_2, MHOUSE2_00_02, - FLAG_BANK_2, MHOUSE2_01_T0, FLAG_BANK_2, MHOUSE2_02_KAME, - FLAG_BANK_2, SHOP00_ITEM_01, FLAG_BANK_2, SHOP01_CAFE_01, - 0xFFFF }; - - ResetTimerFlags(); - ClearFlagArray(sClearFlags); - - if (!CheckGlobalFlag(WATERBEAN_PUT)) - ClearGlobalFlag(WATERBEAN_OUT); - if (!GetInventoryValue(ITEM_EARTH_ELEMENT)) - ClearGlobalFlag(LV1_CLEAR); - if (!GetInventoryValue(ITEM_FIRE_ELEMENT)) - ClearGlobalFlag(LV2_CLEAR); - if (!GetInventoryValue(ITEM_WATER_ELEMENT)) - ClearGlobalFlag(LV4_CLEAR); -} - -static void ClearFlagArray(const u16* p) { - const u16* i; - - for (i = p; i[0] != 0xFFFF; i += 2) - ClearLocalFlagByBank(i[0], i[1]); -} - -void CutsceneMain_Init(void) { - gUnk_080FCBB4[gMenu.overlayType](); -} - -void sub_080535AC(void) { - gMenu.overlayType = 1; - gMenu.transitionTimer = 120; - gUI.field_0x6 = 1; - gUpdateVisibleTiles = 1; - gScreen.lcd.displayControl &= 0xfeff; - LoadRoomEntityList((EntityData*)gUnk_080FCB94); - SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 8); -} - -void sub_080535F4(void) { - if (gFadeControl.active == 0) { - ResetSystemPriority(); - gMenu.overlayType = 2; - } -} - -void nullsub_481(void) { -} - -void sub_08053618(void) { - gMenu.transitionTimer--; - if (gMenu.transitionTimer == 0) { - sub_08052004(); - } -} - -void sub_08053634(void) { - gUI.nextToLoad = 3; - MessageInitialize(); -} - -void sub_08053648(void) { - Entity* obj = CreateObject(SMOKE, 0, 0); - if (obj != NULL) { - obj->x.HALF.HI = gRoomControls.origin_x + 0x2d0; - obj->y.HALF.HI = gRoomControls.origin_y + 0x148; - } -} - -void sub_0805367C(void) { - gMenu.overlayType++; -} - -void sub_0805368C(void) { - Entity* entity = FindEntityByID(OBJECT, HOUSE_DOOR_INT, 6); - if (entity != NULL) { - DeleteEntity(entity); - SoundReq(SFX_F0); - } -} - -void sub_080536A8(void) { - sub_080A71C4(5, 5, FADE_INSTANT, 0x10); -} - -void sub_080536B8(void) { - sub_080A71C4(5, 3, FADE_INSTANT, 4); - SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); -} - -void sub_080536D4(void) { - gUnk_080FCCFC[gMenu.overlayType](); -} - -void sub_080536F0(void) { - gUnk_080FCD38[gMenu.overlayType](); -} - -void sub_0805370C(void) { - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - sub_08051FF0(); - LoadRoomEntityList((EntityData*)gUnk_080FCC54); - SetFade(FADE_INSTANT, 0x10); -} - -void sub_0805373C(void) { - gUnk_080FCD40[gMenu.overlayType](); -} - -void sub_08053758(void) { - gMenu.overlayType = 1; - gMenu.transitionTimer = 120; - gMenu.field_0xa = 0x1e; - *((u8*)&gMenu + 0x10) = 0; // TODO - gUI.field_0x6 = 1; - gMapBottom.bgSettings = NULL; - gMapTop.bgSettings = NULL; - gRoomControls.camera_target = NULL; - gRoomControls.scroll_y = 0; - gRoomControls.scroll_x = 0; - ClearBgAnimations(); - DispReset(0); - gScreen.lcd.displayControl = 0x2640; - gScreen.controls.layerFXControl = 0x2244; - gScreen.controls.alphaBlend = 0x1000; - gScreen.controls.windowInsideControl = 0x1f; - gScreen.controls.windowOutsideControl = 0x3f; - gScreen.controls.window0HorizontalDimensions = 0xf0; - gScreen.controls.window0VerticalDimensions = 0x60; - gScreen.bg1.control = 0x1c4e; - gScreen.bg2.control = 0x1dc1; - SoundReq(BGM_STORY); - ResetSystemPriority(); - SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); -} - -void sub_08053800(void) { - u32 index; - struct_080FCCB4* ptr; - if (gFadeControl.active == 0) { - index = gGenericMenu.unk10.a[0]; - ptr = &gUnk_080FCCB4[index]; - gGenericMenu.base.transitionTimer = ptr->transitionTimer; - gGenericMenu.base.field_0xa = 0x1e; - gGenericMenu.unk10.a[0]++; - gGenericMenu.base.overlayType++; - gGenericMenu.base.storyPanelIndex = 0; - LoadPaletteGroup(index + 0x8a); - LoadGfxGroup(index + 0x3a); - MemClear(&gBG1Buffer, 0x800); - sub_0805F46C(index + 0xf01, ptr->font); - gScreen.bg1.updated = 1; - gScreen.controls.alphaBlend = 0x10; - gScreen.controls.window0HorizontalDimensions = ptr->width; - gScreen.controls.window0VerticalDimensions = ptr->height; - SetFade(FADE_INSTANT, ptr->fadeSpeed); - } -} - -void sub_08053894(void) { - u32 tmp; - if (gFadeControl.active == 0) { - gMenu.transitionTimer--; - if (gMenu.field_0xa != 0) { - gMenu.field_0xa--; - } else { - if (((gRoomTransition.frameCount & 1) == 0) && (gMenu.storyPanelIndex < 0x10)) { - tmp = ++gMenu.storyPanelIndex << 0x18; - gScreen.controls.alphaBlend = (tmp >> 0x10) | (0x10 - ((tmp) >> 0x19)); - } - } - if (gMenu.transitionTimer == 0) { - gMenu.overlayType++; - SetFade(FADE_IN_OUT | FADE_INSTANT, 8); - } - } -} - -void sub_08053904(void) { - u32 tmp; - if (gFadeControl.active == 0) { - gMenu.transitionTimer--; - if (gMenu.field_0xa != 0) { - gMenu.field_0xa--; - } else { - if (((gRoomTransition.frameCount & 1) == 0) && (gMenu.storyPanelIndex < 0x10)) { - tmp = ++gMenu.storyPanelIndex << 0x18; - gScreen.controls.alphaBlend = (tmp >> 0x10) | (0x10 - (tmp >> 0x19)); - } - } - if (gMenu.transitionTimer == 0) { - gMenu.overlayType++; - SetFade(FADE_IN_OUT | FADE_INSTANT, 1); - } - } -} - -void sub_08053974(void) { - if (gFadeControl.active == 0) { - InitFade(); - DispReset(1); - SetBGDefaults(); - sub_08051F78(); - LoadRoomEntityList((EntityData*)&gUnk_080FCBC4); - SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); - gMenu.overlayType++; - } -} - -void nullsub_482(void) { -} - -void sub_080539BC(void) { - SetBGDefaults(); - DeleteAllEntities(); - sub_08051F9C(0x22, 0x11, 0, 0); - sub_0804B0B0(0x22, 0x11); - LoadRoomEntityList((EntityData*)&gUnk_080FCC14); - gMenu.overlayType++; -} - -void sub_080539F4(void) { - if (gFadeControl.active == 0) { - DispReset(1); - gMenu.overlayType++; - gMenu.transitionTimer = 60; - } -} - -void sub_08053A1C(void) { - gMenu.transitionTimer--; - if (gMenu.transitionTimer == 0) { - gMenu.overlayType++; - gMenu.transitionTimer = 8; - MessageFromTarget(TEXT_INDEX(TEXT_PICORI, 0x07)); - gMessage.textWindowPosX = 1; - gMessage.textWindowPosY = 8; - SetFade(FADE_INSTANT, 8); - } -} - -void sub_08053A5C(void) { - if (((gMessage.doTextBox & 0x7f) == 0) && --gMenu.transitionTimer == 0) { - gMenu.overlayType++; - SetFade(FADE_IN_OUT | FADE_INSTANT, 8); - } -} - -void sub_08053A90(void) { - if (gFadeControl.active == 0) { - gUI.nextToLoad = 3; - SetBGDefaults(); - } -} - -void sub_08053AB0(void) { - gUnk_080FCDD4[gMenu.overlayType](); -} - -void sub_08053ACC(void) { - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - sub_08051FF0(); - LoadRoomEntityList((EntityData*)&gUnk_080FCD84); - SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); -} - -void sub_08053B00(void) { - gMenu.overlayType++; -} - -void sub_08053B10(void) { - if (CheckRoomFlag(1)) { - gMenu.menuType++; - DispReset(1); - SetFade(FADE_INSTANT, 0x100); - } -} - -void sub_08053B3C(void) { - sub_080A71C4(5, 4, FADE_IN_OUT | FADE_INSTANT, 0x100); - SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); -} - -void sub_08053B58(void) { - gUnk_080FCEB0[gMenu.overlayType](); -} - -void sub_08053B74(void) { - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - LoadRoomEntityList((EntityData*)&gUnk_080FCDE0); - ResetSystemPriority(); - ResetEntityPriority(); - SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); -} - -void sub_08053BAC(void) { - gMenu.overlayType++; -} - -void sub_08053BBC(void) { - if (CheckRoomFlag(0)) { - gMenu.menuType++; - DispReset(1); - SetFade(FADE_INSTANT, 0x100); - } -} - -void sub_08053BE8(void) { - sub_080A71C4(5, 2, FADE_IN_OUT | FADE_INSTANT, 0x100); - SetFade(FADE_IN_OUT | FADE_INSTANT, 0x100); -} - -void sub_08053C04(void) { - gUnk_080FCEEC[gMenu.overlayType](); -} - -void sub_08053C20(void) { - gMenu.overlayType = 1; - gMenu.transitionTimer = 120; - gUpdateVisibleTiles = 1; - sub_08051FF0(); - sub_0805B4D0(4); - LoadRoomEntityList((EntityData*)&gUnk_080FCEBC); - SetFade(FADE_INSTANT, 0x10); - SoundReq(BGM_FIGHT_THEME2); -} - -void nullsub_483(void) { -} - -void sub_08053C60(void) { - SetFade(FADE_IN_OUT | FADE_INSTANT, 2); - SoundReq(SFX_SUMMON); - SoundReq(SONG_STOP_BGM); - SetTask(3); -} - -void sub_08053C84(void) { - gMenu.overlayType = 2; -} - -void CutsceneMain_Exit(void) { - gUnk_080FCEF8[gMenu.field_0x3](); -} - -void sub_08053CAC(void) { - gUnk_080FCFA4[gMenu.overlayType](); -} - -void sub_08053CC8(void) { - const u8* ptr; - ptr = gUnk_080FCF04 + gMenu.field_0x3 * 0x10; - gMenu.field_0xc = (void*)&ptr[8]; - LoadRoomEntityList(*(EntityData**)(&ptr[0])); - LoadRoomEntityList(GetRoomProperty(ptr[4], ptr[5], 1)); - LoadRoomEntityList(GetRoomProperty(ptr[4], ptr[5], 2)); - gMenu.overlayType = 1; - gScreen.lcd.displayControl &= 0xfeff; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); - if (ptr[5] == 0x1d) { - gMenu.field_0xa = 1; - } -} - -void sub_08053D34(void) { - if (gMenu.field_0xa != 0) { - gMenu.field_0xa = 0; - if (CheckLocalFlagByBank(FLAG_BANK_7, 0x3d)) { - SetTileType(0x74, 0xc4, 1); - } - if (CheckLocalFlagByBank(FLAG_BANK_7, 0x3e)) { - SetTileType(0x74, 0xcc, 1); - } - } - if (gFadeControl.active == 0) { - gMenu.transitionTimer = 120; - gMenu.overlayType++; - } -} - -void sub_08053D90(void) { - gMenu.transitionTimer--; - if (gMenu.transitionTimer == 0) { - gMenu.overlayType++; - SetFadeInverted(0x10); - } -} - -void sub_08053DB4(void) { - if (gFadeControl.active == 0) { - u8* ptr = gMenu.field_0xc; - sub_08052FF4(gMenu.field_0xc[4], gMenu.field_0xc[5]); - InitializeCamera(); - gUpdateVisibleTiles = 1; - gRoomControls.scroll_x = (s8)ptr[6] + gRoomControls.scroll_x; - gRoomControls.scroll_y = (s8)ptr[7] + gRoomControls.scroll_y; - LoadRoomEntityList(*(EntityData**)ptr); - LoadRoomEntityList((EntityData*)GetRoomProperty(ptr[4], ptr[5], 1)); - LoadRoomEntityList((EntityData*)GetRoomProperty(ptr[4], ptr[5], 2)); - gMenu.transitionTimer = 120; - gMenu.overlayType++; - SetFadeInverted(0x10); - } -} - -void sub_08053E30(void) { - if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_08053E58(void) { - gUnk_080FD108[gMenu.overlayType](); -} - -void sub_08053E74(void) { - const EntityData** ptr = gUnk_080FCFB8; - gMenu.field_0xc = (u8*)ptr; - LoadRoomEntityList((EntityData*)ptr[0]); - gMenu.transitionTimer = 120; - gMenu.field_0xa = 0x3c; - gMenu.overlayType++; - gScreen.lcd.displayControl &= 0xfeff; - gUpdateVisibleTiles = 1; - SetMinPriority(1); - SetFade(FADE_INSTANT, 8); -} - -void sub_08053EC4(void) { - EntityData** data; - if ((gFadeControl.active == 0) && (--gMenu.field_0xa == 0)) { - data = (EntityData**)(gMenu.field_0xc + 4); - gMenu.field_0xc += 0xc; - LoadRoomEntityList(*data); - gMenu.overlayType++; - } -} - -void sub_08053EFC(void) { - if (--gMenu.transitionTimer == 0) { - gMenu.overlayType++; - SetFadeInverted(8); - } -} - -void sub_08053F20(void) { - u8* ptr; - if (gFadeControl.active == 0) { - DeleteAllEntities(); - ptr = gMenu.field_0xc; - sub_08052FF4(gMenu.field_0xc[8], gMenu.field_0xc[9]); - InitializeCamera(); - gUpdateVisibleTiles = 1; - gRoomControls.scroll_x = (s8)ptr[10] + gRoomControls.scroll_x; - gRoomControls.scroll_y = (s8)ptr[0xb] + gRoomControls.scroll_y; - LoadRoomEntityList(*(EntityData**)ptr); - gMenu.transitionTimer = 120; - gMenu.field_0xa = 0x3c; - gMenu.overlayType++; - SetFadeInverted(8); - } -} - -void sub_08053F88(void) { - if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) { - gMenu.menuType++; - ResetEntityPriority(); - } -} - -void CutsceneMain_Update(void) { - gUnk_080FD138[gMenu.field_0x3](); -} - -u32 GetSaleItemConfirmMessageID(u32 item) { - const u16* ptr = &gUnk_080FD964[item * 4]; - return ptr[2]; -} - -s32 GetItemPrice(u32 item) { - const u16* ptr = &gUnk_080FD964[item * 4]; - return ptr[0]; -} - -u32 GiveItem(Item item, u32 param_2) { - u32 uVar4; - u32 result; - u32 uVar9; - const ItemMetaData* metaData; - - uVar4 = GetInventoryValue(item); - metaData = &gItemMetaData[item]; - - if (uVar4 == 0) { - result = *(u16*)&metaData->textId; - } else { - result = *(u16*)&metaData->unk6; - } - if (!ItemIsBottle(item)) { - PutItemOnSlot(item); - if (uVar4 == 0) { - SetInventoryValue(item, 1); - } - } - switch (metaData->unk1) { - case 0: - default: - break; - case 1: - ModHealth(metaData->unk2); - SoundReq(SFX_HEART_GET); - break; - case 2: - ModRupees((u32)gUnk_080FD5A8[metaData->unk2]); - SoundReq(SFX_RUPEE_GET); - break; - case 3: - uVar9 = 0; - while (TRUE) { - if (3 < uVar9) { - return result; - } - if (GetInventoryValue(ITEM_BOTTLE1 + uVar9) == 0) - break; - uVar9++; - } - item = ITEM_BOTTLE1 + uVar9; - if (gSave.stats.bottles[uVar9] == 0) { - gSave.stats.bottles[uVar9] = 0x20; - } - SetInventoryValue(item, 1); - PutItemOnSlot(item); - break; - case 4: - uVar9 = 0; - while (gSave.stats.bottles[uVar9] != 0x20) { - uVar9++; - if (3 < uVar9) { - return result; - } - } - if (3 < uVar9) { - break; - } - gSave.stats.bottles[uVar9] = (u8)item; - SetInventoryValue(item, 1); - SoundReq(SFX_ITEM_GET); - break; - case 5: - sub_080526F8(1); - SoundReq(SFX_103); - break; - case 6: - gSave.unk46C[gArea.dungeon_idx] |= metaData->unk2; - break; - case 0xd: - sub_0801E738(0x72); - break; - case 0x12: - if (item == ITEM_BOOMERANG) { - SetInventoryValue(ITEM_MAGIC_BOOMERANG, 0); - } else { - SetInventoryValue(ITEM_BOOMERANG, 0); - } - case 0x11: - LoadItemGfx(); - break; - case 7: - if (item == ITEM_BOMBS) { - SetInventoryValue(ITEM_REMOTE_BOMBS, 0); - } else { - SetInventoryValue(ITEM_BOMBS, 0); - } - ModBombs(99); - LoadItemGfx(); - break; - case 8: - if (uVar4 == 0) { - SetInventoryValue(ITEM_BOMBS, 1); - PutItemOnSlot(7); - } else { - gSave.stats.bombBagType++; - if (3 < gSave.stats.bombBagType) { - gSave.stats.bombBagType = 3; - } - } - ModBombs(99); - break; - case 9: - ModBombs(metaData->unk2); - SoundReq(SFX_103); - break; - case 0xb: - if (GetInventoryValue(ITEM_LARGE_QUIVER) == 0) { - SetInventoryValue(ITEM_LARGE_QUIVER, 1); - } - ModArrows(99); - LoadItemGfx(); - break; - case 0xa: - gSave.stats.quiverType++; - if (3 < gSave.stats.quiverType) { - gSave.stats.quiverType = 3; - } - ModArrows(99); - break; - case 0xc: - ModArrows(metaData->unk2); - SoundReq(SFX_103); - break; - case 0x0e: - SetInventoryValue(ITEM_SHELLS, 1); - ModShells(param_2); - SoundReq(SFX_103); - break; - case 0x0f: - sub_0801E738(param_2); - break; - case 0x10: - gSave.stats.walletType++; - if (gSave.stats.walletType < 4) { - break; - } - gSave.stats.walletType = 3; - break; - } - return result; -} - -// TODO Adapt ItemMetaData struct -void sub_08054288(s32 param_1) { - const ItemMetaData* ptr1 = gItemMetaData; - u16* ptr = (u16*)&((ptr1)[param_1]); - MessageFromTarget(ptr[3]); -} - -u32 getItemMetaDataGetTextIndex(s32 itemIndex) { - const ItemMetaData* ptr1 = gItemMetaData; - u16* ptr = (u16*)&((ptr1)[itemIndex]); - return ptr[2]; -} - -u32 sub_080542AC(u32 param_1) { - const ItemMetaData* ptr1 = gItemMetaData; - u8* ptr = (u8*)&((ptr1)[param_1]); - return ptr[3] & 1; -} - -void ModShells(s32 shells) { - if (shells == 0) { - shells = 1; - } - shells += gSave.stats.shells; - if (shells < 0) { - shells = 0; - } else if (999 < shells) { - shells = 999; - } - gSave.stats.shells = shells; -} - -void ModBombs(s32 bombs) { - s32 bombCount = bombs; - s32 bagSize; - bombCount += gSave.stats.bombCount; - bagSize = gBombBagSizes[gSave.stats.bombBagType]; - if (bombCount < 0) { - bombCount = 0; - } else if (bagSize < bombCount) { - bombCount = bagSize; - } - gSave.stats.bombCount = bombCount; -} - -void ModArrows(s32 arrows) { - s32 quiverSize; - s32 arrowCount = arrows; - arrowCount += gSave.stats.arrowCount; - quiverSize = gQuiverSizes[gSave.stats.quiverType]; - if (arrowCount < 0) { - arrowCount = 0; - } else if (quiverSize < arrowCount) { - arrowCount = quiverSize; - } - gSave.stats.arrowCount = arrowCount; -} - -/** - * @brief Returns the slot the item is equipped in. - * - * 0: A - * 1: B - * 2: Not equipped - */ -EquipSlot IsItemEquipped(u32 itemId) { - EquipSlot equipSlot; - - if (itemId == gSave.stats.itemButtons[SLOT_A]) { - equipSlot = EQUIP_SLOT_A; - } else if (itemId == gSave.stats.itemButtons[SLOT_B]) { - equipSlot = EQUIP_SLOT_B; - } else { - equipSlot = EQUIP_SLOT_NONE; - } - return equipSlot; -} - -void PutItemOnSlot(u32 itemId) { - EquipSlot equipSlot; - u32 itemId2 = itemId; - if (itemId2 < 0x47) { - SetInventoryValue(0, 1); - } - if (itemId2 - 1 < 0x1f) { - equipSlot = EQUIP_SLOT_NONE; - if (gSave.stats.itemButtons[SLOT_A] == ITEM_NONE) { - equipSlot = EQUIP_SLOT_A; - } else if (gSave.stats.itemButtons[SLOT_B] == ITEM_NONE) { - equipSlot = EQUIP_SLOT_B; - } - if (equipSlot == EQUIP_SLOT_NONE) { - u32 temp = gItemMetaData[itemId2].menuSlot; - if (temp == gItemMetaData[gSave.stats.itemButtons[SLOT_A]].menuSlot) { - equipSlot = EQUIP_SLOT_A; - } else { - if (temp == gItemMetaData[gSave.stats.itemButtons[SLOT_B]].menuSlot) { - equipSlot = EQUIP_SLOT_B; - } - } - if (equipSlot == EQUIP_SLOT_NONE) { - return; - } - } - ForceEquipItem(itemId2, equipSlot); - } -} - -void ForceEquipItem(u32 itemId, u32 equipSlot) { - u32 otherItem; - u32 otherItemSlot; - u32 replacedItem; - - if ((itemId - 1 < 0x1f) && (equipSlot < EQUIP_SLOT_NONE)) { - otherItemSlot = equipSlot == EQUIP_SLOT_A; - replacedItem = gSave.stats.itemButtons[equipSlot]; - otherItem = gSave.stats.itemButtons[otherItemSlot]; - if (gItemMetaData[otherItem].menuSlot == gItemMetaData[itemId].menuSlot) { - otherItem = replacedItem; - } - gSave.stats.itemButtons[equipSlot] = itemId; - gSave.stats.itemButtons[otherItemSlot] = otherItem; - gUnk_0200AF00.unk_13 = 0x7f; - gUnk_0200AF00.unk_14 = 0x7f; - } -} - -u32 SetBottleContents(u32 itemId, u32 bottleIndex) { - if (bottleIndex > 3) { - bottleIndex = 0; - for (bottleIndex = 0; gSave.stats.bottles[bottleIndex] != ITEM_BOTTLE_EMPTY;) { - if (++bottleIndex > 3) { - return bottleIndex; - } - } - if (bottleIndex > 3) { - return bottleIndex; - } - } - gSave.stats.bottles[bottleIndex] = itemId; - return bottleIndex; -} - -bool32 ItemIsSword(u32 item) { - switch (item) { - case ITEM_SMITH_SWORD: - case ITEM_GREEN_SWORD: - case ITEM_RED_SWORD: - case ITEM_BLUE_SWORD: - case ITEM_FOURSWORD: - return TRUE; - default: - return FALSE; - } -} - -bool32 ItemIsShield(u32 id) { - switch (id) { - case ITEM_SHIELD: - case ITEM_MIRROR_SHIELD: - return TRUE; - default: - return FALSE; - } -} - -bool32 ItemIsBottle(u32 id) { - switch (id) { - case ITEM_BOTTLE1: - case ITEM_BOTTLE2: - case ITEM_BOTTLE3: - case ITEM_BOTTLE4: - return TRUE; - default: - return FALSE; - } -} - -u32 GetBottleContaining(u32 id) { - if (id == gSave.stats.bottles[0]) { - return 1; - } else if (id == gSave.stats.bottles[1]) { - return 2; - } else if (id == gSave.stats.bottles[2]) { - return 3; - } else if (id == gSave.stats.bottles[3]) { - return 4; - } else { - return 0; - } -} - -void sub_08054524(void) { - u32 bVar1; - - bVar1 = gArea.locationIndex; - if (gArea.locationIndex == 0) { - bVar1 = gRoomTransition.player_status.field_0x24[0xa]; - } - if (bVar1 > 0x16) { - bVar1 = 0; - } - - bVar1 = gUnk_080FE1C6[bVar1]; - MemCopy(&gAreaDroptables[bVar1], &gRoomVars.currentAreaDroptable, sizeof(Droptable)); -} - -void DisableRandomDrops(void) { - gRoomVars.randomDropsDisabled = TRUE; -} - -void EnableRandomDrops(void) { - gRoomVars.randomDropsDisabled = FALSE; -} - -extern void sub_08000F14(s16*, const s16*, const s16*, const s16*); -extern u32 sub_08000F2C(s16*, const s16*, const s16*, const s16*); -u32 CreateItemDrop(Entity* arg0, u32 itemId, u32 itemParameter); -u32 CreateRandomItemDrop(Entity* arg0, u32 arg1) { - extern const u8 gUnk_080FE1B4[] /* = { - ITEM_NONE, ITEM_RUPEE1, ITEM_RUPEE5, ITEM_RUPEE20, ITEM_HEART, ITEM_FAIRY, - ITEM_BOMBS5, ITEM_ARROWS5, ITEM_SHELLS, ITEM_KINSTONE_GREEN, ITEM_KINSTONE_BLUE, ITEM_KINSTONE_RED, - ITEM_ENEMY_BEETLE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, - }*/; - - int r0, r1, rand, summOdds, item; - u32 r3; - const Droptable *ptr2, *ptr3, *ptr4; - Droptable droptable; - r3 = arg1; - if (gRoomVars.randomDropsDisabled != TRUE) { - ptr2 = &gDroptableModifiers[DROPTABLE_NONE]; - ptr4 = NULL; - switch (r3) { - case 1 ... 12: - ptr4 = &gEnemyDroptables[r3]; - break; -#ifndef EU - case 24: - case 25: - r0 = gRoomVars.unk2; - ptr4 = &gUnk_0800191C[0]; - if (r0) { - ptr4++; - } - break; -#endif - case 16 ... 23: -#ifdef EU - case 24: -#endif - ptr2 = &gObjectDroptables[r3 - 16]; - case 15: - ptr4 = &gRoomVars.currentAreaDroptable; - break; - case 0: - default: - break; - } - if (ptr4 != 0) { - if ((r1 = gSave.stats.picolyteType) == 0) { - // nop - ptr3 = &gDroptableModifiers[DROPTABLE_NONE]; - } else { -#ifdef EU - ptr3 = &gEnemyDroptables[r1 + 9]; -#else - ptr3 = &gEnemyDroptables[r1 + 6]; -#endif - } - // vector addition, s0 = ptr4 + ptr2 + ptr3 - sub_08000F14(droptable.a, ptr4->a, ptr2->a, ptr3->a); - if (gSave.stats.health <= 8) { - droptable.s.hearts += 5; - } - if (gSave.stats.bombCount == 0) { - droptable.s.bombs += 3; - } - if (gSave.stats.arrowCount == 0) { - droptable.s.arrows += 3; - } - if (gSave.stats.rupees <= 10) { - droptable.s.rupee5++; - } - ptr2 = &gDroptableModifiers[DROPTABLE_NONE]; - r0 = gSave.stats.hasAllFigurines; - ptr3 = &gDroptableModifiers[DROPTABLE_NONE]; - // don't drop shells anymore - if (r0 != 0) { - ptr2 = &gDroptableModifiers[DROPTABLE_NO_SHELLS]; - } - // don't drop kinstones anymore - if (gSave.didAllFusions != 0) { - ptr3 = &gDroptableModifiers[DROPTABLE_NO_KINSTONES]; - } - // vector addition, s0 = s0 + ptr2 + ptr3 - // resulting values are clamped to be >= 0 - // returns sum over s0 - summOdds = sub_08000F2C(droptable.a, droptable.a, ptr2->a, ptr3->a); - rand = Random(); - item = (rand >> 0x18); - item &= 0xF; - rand = rand % summOdds; - { - u32 r3; - for (r3 = 0, r1 = 0; r3 < 0x10; r3++, item = (item + 1) & 0xF) { - if ((r1 += droptable.a[item]) > rand) { - break; - } - } - } - r1 = gUnk_080FE1B4[item]; - if (r1 != ITEM_NONE) { - return CreateItemDrop(arg0, r1, 0); - } - } - } - return ITEM_NONE; -} - -u32 CreateItemDrop(Entity* arg0, u32 itemId, u32 itemParameter) { - u32 adjustedParam = itemParameter; - Entity* itemEntity; - - switch (itemId) { - case ITEM_ENEMY_BEETLE: - if (!GetInventoryValue(ITEM_SMITH_SWORD)) { - return ITEM_NONE; - } - break; - case ITEM_BOMBS5: - if (!GetInventoryValue(ITEM_BOMBBAG)) { - return ITEM_NONE; - } - break; - case ITEM_ARROWS5: - if (!GetInventoryValue(ITEM_BOW)) { - return ITEM_NONE; - } - break; - case ITEM_SHELLS: { - if (!GetInventoryValue(ITEM_EARTH_ELEMENT)) { - return ITEM_NONE; - } - if (itemParameter == 0) { - adjustedParam = 1; - } - break; - } - case ITEM_KINSTONE: - case ITEM_KINSTONE_GREEN ... ITEM_KINSTONE_RED: { - u32 rand; - - if (GetInventoryValue(ITEM_KINSTONE_BAG) == 0) { - return ITEM_NONE; - } - if (3 < gRoomVars.filler1[0]) { - return ITEM_NONE; - } - - if (itemId != ITEM_KINSTONE) { - adjustedParam = itemId - ITEM_KINSTONE_GREEN; - rand = (Random() & 0x3f); - adjustedParam = gUnk_080FE1DD[(rand + adjustedParam * 0x40)]; - if (adjustedParam == 0) { - itemId = ITEM_NONE; - } else { - itemId = ITEM_KINSTONE; - } - } - break; - } - } - if (itemId != ITEM_NONE) { - if (itemId != ITEM_ENEMY_BEETLE) { - itemEntity = CreateObject(GROUND_ITEM, itemId, adjustedParam); - if (itemEntity != NULL) { - if (arg0 == &gPlayerEntity) { - itemEntity->timer = 1; - } else { - itemEntity->timer = 0; - } - if (arg0->kind == OBJECT) { - if (arg0->id == 99) { - arg0->child = itemEntity; - } else if (arg0->id == 0x1e) { - itemEntity->direction = arg0->animationState << 3 | 0x80; - itemEntity->speed = 0xc0; - itemEntity->zVelocity = Q_16_16(1.5); - } - } - CopyPosition(arg0, itemEntity); - } - } else { - itemEntity = CreateEnemy(BEETLE, 0); - if (itemEntity != NULL) { - itemEntity->x.HALF.HI = arg0->x.HALF.HI; - itemEntity->y.HALF.HI = arg0->y.HALF.HI; - itemEntity->collisionLayer = arg0->collisionLayer; - UpdateSpriteForCollisionLayer(itemEntity); - } - } - } - return itemId; -} - -void Subtask_WorldEvent(void) { -#if !(defined(DEMO_USA) || defined(DEMO_JP)) - gUnk_080FE2A0[gMenu.menuType](); -#endif -} - -void sub_0805488C(void) { - const struct_080FE320* ptr = &gUnk_080FE320[gUI.field_0x3]; - gMenu.field_0x0 = ptr->evt_type; - gMenu.field_0x3 = ptr->entity_idx; - gMenu.field_0x4 = gUI.field_0x3; - gMenu.field_0xc = (u8*)ptr; - gMenu.menuType++; - gMenu.overlayType = 0; - gMenu.transitionTimer = 300; - DispReset(0); - sub_08054974(gUI.field_0x3, 1); - sub_0806F364(); - ClearRoomFlag(0xff); - sub_080548E8(); -} - -void sub_080548E8(void) { - gUnk_080FE2AC[gMenu.field_0x0](); - FlushSprites(); - UpdateEntities(); - DrawEntities(); - CopyOAM(); - UpdateScroll(); - UpdateBgAnimations(); - UpdateScrollVram(); -} - -void sub_08054920(void) { - MessageInitialize(); - sub_0806F38C(); - if (gUnk_080C9CBC[gFuseInfo._3].unk7 != 0) { - MenuFadeIn(10, gUI.field_0x3); - } else { - gUI.nextToLoad = 3; - SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 0x10); - } -} - -void sub_08054968(void) { - gMenu.menuType = 2; -} - -void sub_08054974(s32 param_1, s32 param_2) { - struct_080FE320* ptr = &gUnk_080FE320[param_1]; - SetCurrentRoomPropertyList(ptr->area, ptr->room); - gRoomControls.area = ptr->area; - gRoomControls.room = ptr->room; - LoadGfxGroups(); - gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.area); - if (param_2 != 0) { - LoadAuxiliaryRoom(ptr->area, ptr->room); - } else { - sub_08052FF4(ptr->area, ptr->room); - InitializeCamera(); - gUpdateVisibleTiles = 1; - } - gScreen.lcd.displayControl &= 0x1fff; - gRoomControls.scroll_x = gRoomControls.origin_x + ptr->_4; - gRoomControls.scroll_y = gRoomControls.origin_y + ptr->_6; - if (ptr->area == AREA_HYRULE_TOWN) { - TryLoadPrologueHyruleTown(); - } - sub_08018710(gUI.field_0x3); -} - -void sub_08054A14(s32 param_1) { - struct_080FE320* ptr = &gUnk_080FE320[param_1]; - if (ptr->_11 < 0xe) { - SetLocalFlagByBank(gLocalFlagBanks[ptr->_11], ptr->flag); - } -} diff --git a/src/gameData.c b/src/gameData.c new file mode 100644 index 00000000..26462587 --- /dev/null +++ b/src/gameData.c @@ -0,0 +1,503 @@ +// TODO belongs to game.c, but spriteAnimations332.s is before. +// maybe also signals code that no longer belongs to game.c? +#include "common.h" +#include "flags.h" +#include "game.h" +#include "item.h" +#include "kinstone.h" +#include "room.h" + +// extern const u8 gUnk_080FE1B4[]; +// const u8 gUnk_080FE1B4[] = {0, 84, 85, 86, 95, 96, 93, 94, 63, 252, 253, 254, 255, 0, 0, 0,0,}; +const u8 gUnk_080FE1B4[] = { + ITEM_NONE, ITEM_RUPEE1, ITEM_RUPEE5, ITEM_RUPEE20, ITEM_HEART, ITEM_FAIRY, + ITEM_BOMBS5, ITEM_ARROWS5, ITEM_SHELLS, ITEM_KINSTONE_GREEN, ITEM_KINSTONE_BLUE, ITEM_KINSTONE_RED, + ITEM_ENEMY_BEETLE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, +}; +const u8 gUnk_080FE1C6[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 9, 10, 10, 11, 12, 13, 14, 15, 8, 15, 1, 8, +}; +const u8 gUnk_080FE1DD[] = { + 110, 111, 112, 112, 110, 111, 111, 112, 110, 110, 112, 111, 112, 111, 110, 110, 110, 111, 112, 112, 110, 111, + 111, 112, 110, 110, 112, 111, 112, 111, 110, 111, 110, 111, 112, 112, 110, 111, 111, 112, 110, 110, 112, 111, + 112, 111, 110, 112, 110, 111, 112, 112, 110, 111, 111, 112, 110, 110, 112, 111, 112, 111, 110, 0, 113, 114, + 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, + 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, + 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 113, 114, 115, 116, 117, 117, + 115, 116, 116, 117, 115, 115, 117, 116, 117, 116, 115, 115, 115, 116, 117, 117, 115, 116, 116, 117, 115, 115, + 117, 116, 117, 116, 115, 116, 115, 116, 117, 117, 115, 116, 116, 117, 115, 115, 117, 116, 117, 116, 115, 117, + 115, 116, 117, 117, 115, 116, 116, 117, 115, 115, 117, 116, 117, 116, 115, 0, 0, 0, 0, +}; + +void Subtask_WorldEvent_Init(void); +void Subtask_WorldEvent_Update(void); +void Subtask_WorldEvent_End(void); +void (*const gUnk_080FE2A0[])(void) = { + Subtask_WorldEvent_Init, + Subtask_WorldEvent_Update, + Subtask_WorldEvent_End, +}; +void WorldEvent_0(void); +void WorldEvent_1(void); +void WorldEvent_2(void); +void WorldEvent_3(void); +void WorldEvent_4(void); +void WorldEvent_5(void); +void WorldEvent_6(void); +void WorldEvent_7(void); +void WorldEvent_8(void); +void WorldEvent_9(void); +void WorldEvent_Beanstalk(void); +void WorldEvent_11(void); +void WorldEvent_12(void); +void WorldEvent_13(void); +void WorldEvent_14(void); +void WorldEvent_15(void); +void WorldEvent_16(void); +void WorldEvent_17(void); +void WorldEvent_17(void); +void WorldEvent_19(void); +void WorldEvent_20(void); +void WorldEvent_21(void); +void WorldEvent_22(void); +void WorldEvent_23(void); +void WorldEvent_24(void); +void WorldEvent_25(void); + +void (*const gWorldEventFunctions[])(void) = { + WorldEvent_0, WorldEvent_1, WorldEvent_2, WorldEvent_3, WorldEvent_4, WorldEvent_5, + WorldEvent_6, WorldEvent_7, WorldEvent_8, WorldEvent_9, WorldEvent_Beanstalk, WorldEvent_11, + WorldEvent_12, WorldEvent_13, WorldEvent_14, WorldEvent_15, WorldEvent_16, WorldEvent_17, + WorldEvent_17, WorldEvent_19, WorldEvent_20, WorldEvent_21, WorldEvent_22, WorldEvent_23, + WorldEvent_24, WorldEvent_25, WorldEvent_0, WorldEvent_0, WorldEvent_0, +}; + +// Indexed by worldEventId of gKinstoneWorldEvents +const WorldEvent gWorldEvents[] = { + { WORLD_EVENT_TYPE_0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_1, 0, AREA_RUINS, ROOM_RUINS_BELOW_FORTRESS_ENTRANCE, 128, 112, 248, 216, 728, 3112, CND_1, + LOCAL_BANK_0, OUGONTEKI_A }, + { WORLD_EVENT_TYPE_1, 1, AREA_MT_CRENEL, ROOM_MT_CRENEL_CENTER, 384, 192, 504, 280, 488, 1112, CND_1, LOCAL_BANK_0, + OUGONTEKI_B }, + { WORLD_EVENT_TYPE_1, 2, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 480, 80, 600, 168, 600, 1848, CND_1, + LOCAL_BANK_0, OUGONTEKI_C }, + { WORLD_EVENT_TYPE_1, 3, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_NORTH, 0, 352, 120, 440, 2616, 2600, + CND_1, LOCAL_BANK_0, OUGONTEKI_D }, + { WORLD_EVENT_TYPE_1, 4, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 768, 160, 936, 248, 2424, 440, CND_1, + LOCAL_BANK_0, OUGONTEKI_E }, + { WORLD_EVENT_TYPE_1, 5, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 224, 144, 344, 232, 2840, 472, CND_1, LOCAL_BANK_0, + OUGONTEKI_F }, + { WORLD_EVENT_TYPE_1, 6, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE, 96, 368, 216, 456, 600, 680, + CND_1, LOCAL_BANK_0, OUGONTEKI_G }, + { WORLD_EVENT_TYPE_1, 7, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 192, 96, 328, 184, 3304, 2344, CND_1, + LOCAL_BANK_0, OUGONTEKI_H }, + { WORLD_EVENT_TYPE_1, 8, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_CENTER, 176, 0, 312, 88, 1320, 2888, + CND_1, LOCAL_BANK_0, OUGONTEKI_I }, + { WORLD_EVENT_TYPE_2, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_NORTH, 80, 288, 200, 376, 2696, 2536, + CND_1, LOCAL_BANK_1, KAKERA_TAKARA_A }, + { WORLD_EVENT_TYPE_2, 0, AREA_CRENEL_MINISH_PATHS, ROOM_CRENEL_MINISH_PATHS_RAIN, 272, 16, 392, 88, 744, 152, CND_1, + LOCAL_BANK_3, KAKERA_TAKARA_B }, + { WORLD_EVENT_TYPE_2, 0, AREA_CRENEL_MINISH_PATHS, ROOM_CRENEL_MINISH_PATHS_SPRING_WATER, 0, 48, 168, 136, 872, + 1432, CND_1, LOCAL_BANK_3, KAKERA_TAKARA_C }, + { WORLD_EVENT_TYPE_2, 0, AREA_MINISH_PATHS, ROOM_MINISH_PATHS_SCHOOLYARD, 0, 240, 120, 328, 2408, 1608, CND_1, + LOCAL_BANK_3, KAKERA_TAKARA_D }, + { WORLD_EVENT_TYPE_2, 0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 0, 112, 104, 200, 3080, 2360, CND_1, + LOCAL_BANK_1, KAKERA_TAKARA_E }, + { WORLD_EVENT_TYPE_2, 0, AREA_MINISH_PATHS, ROOM_MINISH_PATHS_LON_LON_RANCH, 0, 288, 120, 376, 2968, 1544, CND_1, + LOCAL_BANK_3, KAKERA_TAKARA_F }, + { WORLD_EVENT_TYPE_2, 0, AREA_MINISH_PATHS, ROOM_MINISH_PATHS_MINISH_VILLAGE, 0, 416, 104, 504, 3448, 3064, CND_1, + LOCAL_BANK_3, KAKERA_TAKARA_G }, + { WORLD_EVENT_TYPE_2, 0, AREA_CRENEL_MINISH_PATHS, ROOM_CRENEL_MINISH_PATHS_MELARI, 208, 16, 344, 104, 616, 504, + CND_1, LOCAL_BANK_3, KAKERA_TAKARA_H }, + { WORLD_EVENT_TYPE_2, 0, AREA_MINISH_PATHS, ROOM_MINISH_PATHS_LAKE_HYLIA, 0, 640, 104, 760, 3896, 2024, CND_1, + LOCAL_BANK_3, KAKERA_TAKARA_I }, + { WORLD_EVENT_TYPE_2, 0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 0, 576, 88, 664, 3064, 2824, CND_1, + LOCAL_BANK_1, KAKERA_TAKARA_J }, + { WORLD_EVENT_TYPE_2, 0, AREA_RUINS, ROOM_RUINS_FORTRESS_ENTRANCE, 288, 80, 488, 168, 968, 2808, CND_1, + LOCAL_BANK_1, KAKERA_TAKARA_K }, + { WORLD_EVENT_TYPE_2, 0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 768, 496, 904, 584, 3880, 2744, CND_1, + LOCAL_BANK_1, KAKERA_TAKARA_L }, + { WORLD_EVENT_TYPE_2, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS, 240, 0, 392, 56, 1400, 1256, CND_1, + LOCAL_BANK_1, KAKERA_TAKARA_M }, + { WORLD_EVENT_TYPE_2, 0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 544, 640, 664, 728, 3640, 2888, CND_1, + LOCAL_BANK_1, KAKERA_TAKARA_N }, + { WORLD_EVENT_TYPE_2, 0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 48, 320, 200, 360, 3176, 2520, CND_1, + LOCAL_BANK_1, KAKERA_TAKARA_O }, + { WORLD_EVENT_TYPE_2, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD, 656, 272, 776, 360, 2264, 2840, + CND_1, LOCAL_BANK_1, KAKERA_TAKARA_P }, + { WORLD_EVENT_TYPE_2, 0, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 0, 0, 56, 88, 1064, 280, CND_1, LOCAL_BANK_1, + KAKERA_TAKARA_Q }, + { WORLD_EVENT_TYPE_2, 0, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 240, 0, 424, 88, 1432, 280, CND_1, LOCAL_BANK_1, + KAKERA_TAKARA_R }, + { WORLD_EVENT_TYPE_2, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS, 144, 352, 280, 440, 1288, 1640, + CND_1, LOCAL_BANK_1, KAKERA_TAKARA_S }, + { WORLD_EVENT_TYPE_2, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 0, 0, 104, 72, 1592, 792, CND_1, + LOCAL_BANK_1, KAKERA_TAKARA_T }, + { WORLD_EVENT_TYPE_2, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH, 48, 0, 168, 40, 2664, 1240, CND_1, + LOCAL_BANK_1, KAKERA_TAKARA_U }, + { WORLD_EVENT_TYPE_2, 0, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 240, 96, 360, 184, 2856, 376, CND_1, LOCAL_BANK_1, + KAKERA_TAKARA_V }, + { WORLD_EVENT_TYPE_2, 0, AREA_MT_CRENEL, ROOM_MT_CRENEL_WALL_CLIMB, 48, 288, 184, 376, 184, 600, CND_1, + LOCAL_BANK_1, KAKERA_TAKARA_W }, + { WORLD_EVENT_TYPE_2, 0, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 0, 0, 120, 88, 120, 1288, CND_1, LOCAL_BANK_1, + KAKERA_TAKARA_X }, + { WORLD_EVENT_TYPE_2, 0, AREA_RUINS, ROOM_RUINS_LADDER_TO_TEKTITES, 0, 0, 136, 88, 376, 3096, CND_1, LOCAL_BANK_1, + KAKERA_TAKARA_Y }, + { WORLD_EVENT_TYPE_0, 0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 0, 0, 0, 0, 0, 0, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_3, 0, AREA_RUINS, ROOM_RUINS_ENTRANCE, 0, 48, 40, 136, 40, 2776, CND_2, 0, + ITEM_ARROW_BUTTERFLY }, + { WORLD_EVENT_TYPE_3, 1, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 304, 448, 424, 520, 424, 2200, CND_2, 0, + ITEM_DIG_BUTTERFLY }, + { WORLD_EVENT_TYPE_3, 2, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 0, 136, 56, 216, 1064, 408, CND_2, 0, + ITEM_SWIM_BUTTERFLY }, +#if defined(EU) || defined(JP) || defined(DEMO_JP) + { WORLD_EVENT_TYPE_4, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS, 112, 160, 264, 264, 1272, 1432, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_4, 0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 352, 400, 488, 520, 3704, 1688, CND_0, 0, 0 }, +#ifdef DEMO_JP + { WORLD_EVENT_TYPE_4, 0, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 160, 576, 232, 664, 2728, 824, CND_1, LOCAL_BANK_3, + MOGURA_41_T3 }, // same as USA +#else + { WORLD_EVENT_TYPE_4, 0, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 160, 576, 232, 664, 2728, 824, CND_0, 0, 0 }, +#endif + { WORLD_EVENT_TYPE_5, 132, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 656, 0, 776, 72, 2264, 264, CND_0, 0, 0 }, +#ifdef DEMO_JP + { WORLD_EVENT_TYPE_5, 1, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH, 384, 440, 504, 520, 3000, 1720, CND_1, + LOCAL_BANK_4, 0x4c }, // TODO differs from USA +#else + { WORLD_EVENT_TYPE_5, 1, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH, 384, 440, 504, 520, 3000, 1720, CND_0, + 0, 0 }, +#endif + { WORLD_EVENT_TYPE_5, 2, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD, 0, 200, 88, 280, 1576, 2760, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_5, 3, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS, 0, 600, 56, 680, 1064, 1880, CND_0, + 0, 0 }, + { WORLD_EVENT_TYPE_5, 128, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 128, 0, 232, 72, 1720, 264, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_6, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH, 112, 224, 216, 296, 1240, 2488, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_6, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH, 56, 32, 168, 88, 1192, 2280, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_6, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH, 240, 448, 392, 552, 1416, 2744, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_6, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH, 0, 464, 24, 568, 1048, 2760, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_7, 128, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 448, 224, 576, 296, 2072, 1016, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_7, 128, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 304, 304, 432, 392, 1928, 1112, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_7, 128, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 328, 224, 432, 296, 1928, 1016, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_7, 128, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 448, 328, 576, 392, 2072, 1112, + CND_0, 0, 0 }, +#ifdef DEMO_JP + { WORLD_EVENT_TYPE_7, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH, 40, 408, 160, 488, 1160, 2648, + CND_1, LOCAL_BANK_2, URO_19_H0 }, // same as USA +#else + { WORLD_EVENT_TYPE_7, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH, 40, 408, 160, 488, 1160, 2648, + CND_0, 0, 0 }, +#endif + { WORLD_EVENT_TYPE_7, 1, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 408, 376, 528, 456, 3496, 2600, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_7, 2, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 632, 232, 752, 312, 2248, 1032, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_7, 3, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD, 768, 472, 928, 552, 2424, 3032, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_8, 0, AREA_RUINS, ROOM_RUINS_TEKTITES, 0, 0, 200, 88, 440, 2936, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_8, 0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 496, 848, 536, 968, 3512, 3128, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_8, 0, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 0, 16, 24, 88, 24, 1768, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_8, 0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 48, 424, 152, 520, 3368, 1720, CND_0, 0, 0 }, + +#ifdef DEMO_JP + // mostly same as USA + { WORLD_EVENT_TYPE_9, 0, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 0, 0, 56, 40, 2552, 232, CND_1, LOCAL_BANK_4, + SUIGEN_DOUKUTU_09_H00 }, + { WORLD_EVENT_TYPE_9, 1, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 112, 304, 240, 392, 1736, 1912, CND_0, 0, + 0 }, // same as EU + { WORLD_EVENT_TYPE_25, 0, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 768, 0, 920, 56, 920, 1752, CND_2, 0, + ITEM_SKILL_FAST_SPIN }, + { WORLD_EVENT_TYPE_25, 1, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 80, 400, 200, 488, 1688, 1208, + CND_2, 0, ITEM_SKILL_LONG_SPIN }, + { WORLD_EVENT_TYPE_25, 2, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 128, 752, 248, 840, 2744, 1032, CND_2, 0, + ITEM_SKILL_FAST_SPLIT }, + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 0, 0, 152, 40, 152, 40, CND_5, LOCAL_BANK_1, + BEANDEMO_00 }, // uses different flags due to CND_5 + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_BEANSTALK, 432, 0, 552, 88, 3528, 1096, CND_6, + LOCAL_BANK_1, BEANDEMO_01 }, // uses different flags due to CND_6 + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_RUINS, ROOM_RUINS_BEANSTALK, 0, 0, 72, 72, 312, 2712, CND_7, LOCAL_BANK_1, + BEANDEMO_02 }, // uses different flags due to CND_7 + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_CENTER, 0, 0, 72, 56, 2568, + 2760, CND_8, LOCAL_BANK_1, BEANDEMO_03 }, // uses different flags due to CND_8 + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_SOUTH, 0, 0, 56, 56, 1064, 3016, + CND_9, LOCAL_BANK_1, BEANDEMO_04 }, // uses different flags due to CND_9 +#else + { WORLD_EVENT_TYPE_9, 0, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 0, 0, 56, 40, 2552, 232, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_9, 1, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 112, 304, 240, 392, 1736, 1912, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_25, 0, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 768, 0, 920, 56, 920, 1752, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_25, 1, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 80, 400, 200, 488, 1688, 1208, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_25, 2, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 128, 752, 248, 840, 2744, 1032, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 0, 0, 152, 40, 152, 40, CND_0, LOCAL_BANK_1, + BEANDEMO_00 }, // uses different flags due to CND_5 + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_BEANSTALK, 432, 0, 552, 88, 3528, 1096, CND_0, + LOCAL_BANK_1, BEANDEMO_01 }, // uses different flags due to CND_6 + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_RUINS, ROOM_RUINS_BEANSTALK, 0, 0, 72, 72, 312, 2712, CND_0, LOCAL_BANK_1, + BEANDEMO_02 }, // uses different flags due to CND_7 + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_CENTER, 0, 0, 72, 56, 2568, + 2760, CND_0, LOCAL_BANK_1, BEANDEMO_03 }, // uses different flags due to CND_8 + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_SOUTH, 0, 0, 56, 56, 1064, 3016, + CND_0, LOCAL_BANK_1, BEANDEMO_04 }, // uses different flags due to CND_9 +#endif + { WORLD_EVENT_TYPE_11, 0, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 0, 48, 88, 152, 88, 1832, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_11, 1, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 0, 160, 40, 232, 40, 1912, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_11, 2, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 96, 664, 200, 776, 200, 2456, CND_0, 0, 0 }, +#ifdef DEMO_JP + // same as USA + { WORLD_EVENT_TYPE_12, 0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 624, 784, 760, 952, 2184, 2360, CND_1, + LOCAL_BANK_2, 208 }, // TODO + { WORLD_EVENT_TYPE_13, 0, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_CARPENTER, 0, 32, 120, 112, 1560, 1944, + CND_1, LOCAL_BANK_2, 207 }, // TODO +#else + { WORLD_EVENT_TYPE_12, 0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 624, 784, 760, 952, 2184, 2360, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_13, 0, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_CARPENTER, 0, 32, 120, 112, 1560, 1944, + CND_0, 0, 0 }, +#endif + { WORLD_EVENT_TYPE_14, 0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 768, 736, 904, 824, 2392, 2344, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_15, 0, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 240, 96, 392, 136, 1400, 360, CND_0, + LOCAL_BANK_1, HAKA_BOSEKI_00 }, // uses different flags due to CND_10 + { WORLD_EVENT_TYPE_16, 0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 768, 160, 736, 232, 2040, 2040, CND_0, 0, 0 }, + + { WORLD_EVENT_TYPE_17, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH, 0, 800, 136, 856, 2624, 2056, CND_0, + 0, 0 }, + { WORLD_EVENT_TYPE_18, 1, AREA_GORON_CAVE, ROOM_GORON_CAVE_MAIN, 0, 464, 120, 440, 2632, 2056, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_18, 2, AREA_GORON_CAVE, ROOM_GORON_CAVE_MAIN, 0, 288, 120, 280, 2632, 2056, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_18, 3, AREA_GORON_CAVE, ROOM_GORON_CAVE_MAIN, 0, 288, 120, 280, 2632, 2056, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_18, 4, AREA_GORON_CAVE, ROOM_GORON_CAVE_MAIN, 0, 144, 120, 136, 2632, 2056, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_18, 5, AREA_GORON_CAVE, ROOM_GORON_CAVE_MAIN, 0, 144, 120, 136, 2632, 2056, CND_0, 0, 0 }, +#else + { WORLD_EVENT_TYPE_4, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS, 112, 160, 264, 264, 1272, 1432, + CND_1, LOCAL_BANK_4, KS_B01 }, + { WORLD_EVENT_TYPE_4, 0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 352, 400, 488, 520, 3704, 1688, CND_1, LOCAL_BANK_3, + MOGURA_01_T0 }, + { WORLD_EVENT_TYPE_4, 0, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 160, 576, 232, 664, 2728, 824, CND_1, LOCAL_BANK_3, + MOGURA_41_T3 }, + { WORLD_EVENT_TYPE_5, 132, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 656, 0, 776, 72, 2264, 264, CND_1, + LOCAL_BANK_3, IZUMIGARE_00_H00 }, + { WORLD_EVENT_TYPE_5, 1, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH, 384, 440, 504, 520, 3000, 1720, CND_1, + LOCAL_BANK_4, SOUGEN_DOUKUTU_0F_T00 }, + { WORLD_EVENT_TYPE_5, 2, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD, 0, 200, 88, 280, 1576, 2760, + CND_1, LOCAL_BANK_4, KS_C37 }, + { WORLD_EVENT_TYPE_5, 3, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS, 0, 600, 56, 680, 1064, 1880, CND_1, + LOCAL_BANK_4, KS_C12 }, + { WORLD_EVENT_TYPE_5, 128, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 128, 0, 232, 72, 1720, 264, CND_1, + LOCAL_BANK_3, KS_C02 }, + { WORLD_EVENT_TYPE_6, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH, 112, 224, 216, 296, 1240, 2488, + CND_1, LOCAL_BANK_1, SOUGEN_08_T00 }, + { WORLD_EVENT_TYPE_6, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH, 56, 32, 168, 88, 1192, 2280, + CND_1, LOCAL_BANK_1, KS_C21 }, + { WORLD_EVENT_TYPE_6, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH, 240, 448, 392, 552, 1416, 2744, + CND_1, LOCAL_BANK_1, KS_C25 }, + { WORLD_EVENT_TYPE_6, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH, 0, 464, 24, 568, 1048, 2760, + CND_1, LOCAL_BANK_2, MHOUSE08_00 }, + { WORLD_EVENT_TYPE_7, 128, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 448, 224, 576, 296, 2072, 1016, + CND_1, LOCAL_BANK_4, SOUGEN_DOUKUTU_00_T1 }, + { WORLD_EVENT_TYPE_7, 128, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 304, 304, 432, 392, 1928, 1112, + CND_1, LOCAL_BANK_4, SOUGEN_DOUKUTU_00_T2 }, + { WORLD_EVENT_TYPE_7, 128, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 328, 224, 432, 296, 1928, 1016, + CND_1, LOCAL_BANK_4, SOUGEN_DOUKUTU_00_T0 }, + { WORLD_EVENT_TYPE_7, 128, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 448, 328, 576, 392, 2072, 1112, + CND_1, LOCAL_BANK_4, SOUGEN_DOUKUTU_00_T3 }, + { WORLD_EVENT_TYPE_7, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH, 40, 408, 160, 488, 1160, 2648, + CND_1, LOCAL_BANK_2, URO_19_H0 }, + { WORLD_EVENT_TYPE_7, 1, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 408, 376, 528, 456, 3496, 2600, CND_1, + LOCAL_BANK_4, KS_B06 }, + { WORLD_EVENT_TYPE_7, 2, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 632, 232, 752, 312, 2248, 1032, + CND_1, LOCAL_BANK_4, KS_B12 }, + { WORLD_EVENT_TYPE_7, 3, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD, 768, 472, 928, 552, 2424, 3032, + CND_1, LOCAL_BANK_2, URO_12_H0 }, + { WORLD_EVENT_TYPE_8, 0, AREA_RUINS, ROOM_RUINS_TEKTITES, 0, 0, 200, 88, 440, 2936, CND_1, LOCAL_BANK_2, + KOBITOANA_0C_T0 }, + { WORLD_EVENT_TYPE_8, 0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 496, 848, 536, 968, 3512, 3128, CND_1, + LOCAL_BANK_2, KOBITOANA_08_T0 }, + { WORLD_EVENT_TYPE_8, 0, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 0, 16, 24, 88, 24, 1768, CND_1, LOCAL_BANK_2, + KOBITOANA_0D_T0 }, + { WORLD_EVENT_TYPE_8, 0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 48, 424, 152, 520, 3368, 1720, CND_1, LOCAL_BANK_2, + KS_A09 }, + { WORLD_EVENT_TYPE_9, 0, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 0, 0, 56, 40, 2552, 232, CND_1, LOCAL_BANK_4, + SUIGEN_DOUKUTU_09_H00 }, + { WORLD_EVENT_TYPE_9, 1, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 112, 304, 240, 392, 1736, 1912, CND_1, + LOCAL_BANK_4, SOUGEN_DOUKUTU_0B_T0 }, + { WORLD_EVENT_TYPE_25, 0, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 768, 0, 920, 56, 920, 1752, CND_2, 0, + ITEM_SKILL_FAST_SPIN }, + { WORLD_EVENT_TYPE_25, 1, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD, 80, 400, 200, 488, 1688, 1208, + CND_2, 0, ITEM_SKILL_LONG_SPIN }, + { WORLD_EVENT_TYPE_25, 2, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 128, 752, 248, 840, 2744, 1032, CND_2, 0, + ITEM_SKILL_FAST_SPLIT }, + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 0, 0, 152, 40, 152, 40, CND_5, LOCAL_BANK_1, + BEANDEMO_00 }, // uses different flags due to CND_5 + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_BEANSTALK, 432, 0, 552, 88, 3528, 1096, CND_6, + LOCAL_BANK_1, BEANDEMO_01 }, // uses different flags due to CND_6 + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_RUINS, ROOM_RUINS_BEANSTALK, 0, 0, 72, 72, 312, 2712, CND_7, LOCAL_BANK_1, + BEANDEMO_02 }, // uses different flags due to CND_7 + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLLS_CENTER, 0, 0, 72, 56, 2568, + 2760, CND_8, LOCAL_BANK_1, BEANDEMO_03 }, // uses different flags due to CND_8 + { WORLD_EVENT_TYPE_BEANSTALK, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_SOUTH, 0, 0, 56, 56, 1064, 3016, + CND_9, LOCAL_BANK_1, BEANDEMO_04 }, // uses different flags due to CND_9 + { WORLD_EVENT_TYPE_11, 0, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 0, 48, 88, 152, 88, 1832, CND_1, LOCAL_BANK_2, + KOBITOANA_09_T0 }, + { WORLD_EVENT_TYPE_11, 1, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 0, 160, 40, 232, 40, 1912, CND_1, LOCAL_BANK_2, + KOBITOANA_0A_T0 }, + { WORLD_EVENT_TYPE_11, 2, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 96, 664, 200, 776, 200, 2456, CND_1, + LOCAL_BANK_2, KOBITOANA_0B_T0 }, + { WORLD_EVENT_TYPE_12, 0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 624, 784, 760, 952, 2184, 2360, CND_1, + LOCAL_BANK_2, KS_A18 }, + { WORLD_EVENT_TYPE_13, 0, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_CARPENTER, 0, 32, 120, 112, 1560, 1944, + CND_1, LOCAL_BANK_2, KS_A02 }, + { WORLD_EVENT_TYPE_14, 0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 768, 736, 904, 824, 2392, 2344, CND_1, + LOCAL_BANK_2, KS_B07 }, + { WORLD_EVENT_TYPE_15, 0, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 240, 96, 392, 136, 1400, 360, CND_10, + LOCAL_BANK_1, HAKA_BOSEKI_00 }, // uses different flags due to CND_10 + { WORLD_EVENT_TYPE_16, 0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 768, 160, 736, 232, 2040, 2040, CND_1, + LOCAL_BANK_1, KS_B18 }, + { WORLD_EVENT_TYPE_17, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH, 0, 800, 136, 856, 2624, 2056, CND_1, + LOCAL_BANK_4, GORON_DOUKUTU_01_T0 }, + { WORLD_EVENT_TYPE_18, 1, AREA_GORON_CAVE, ROOM_GORON_CAVE_MAIN, 0, 464, 120, 440, 2632, 2056, CND_1, LOCAL_BANK_4, + GORON_DOUKUTU_01_T0 }, + { WORLD_EVENT_TYPE_18, 2, AREA_GORON_CAVE, ROOM_GORON_CAVE_MAIN, 0, 288, 120, 280, 2632, 2056, CND_1, LOCAL_BANK_4, + GORON_DOUKUTU_01_T0 }, + { WORLD_EVENT_TYPE_18, 3, AREA_GORON_CAVE, ROOM_GORON_CAVE_MAIN, 0, 288, 120, 280, 2632, 2056, CND_1, LOCAL_BANK_4, + GORON_DOUKUTU_01_T0 }, + { WORLD_EVENT_TYPE_18, 4, AREA_GORON_CAVE, ROOM_GORON_CAVE_MAIN, 0, 144, 120, 136, 2632, 2056, CND_1, LOCAL_BANK_4, + GORON_DOUKUTU_01_T0 }, + { WORLD_EVENT_TYPE_18, 5, AREA_GORON_CAVE, ROOM_GORON_CAVE_MAIN, 0, 144, 120, 136, 2632, 2056, CND_1, LOCAL_BANK_4, + GORON_DOUKUTU_01_T0 }, +#endif + { WORLD_EVENT_TYPE_19, 0, AREA_VEIL_FALLS_TOP, ROOM_VEIL_FALLS_TOP_0, 192, 0, 320, 104, 0, 0, CND_0, 0, 0 }, +#if defined(EU) || defined(JP) || defined(DEMO_JP) + { WORLD_EVENT_TYPE_20, 0, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_WITCH_HUT, 0, 0, 120, 56, 3656, 2248, CND_0, 0, + 0 }, + { WORLD_EVENT_TYPE_21, 0, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BORLOV_ENTRANCE, 0, 0, 120, 72, 2152, 2152, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_22, 0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_POST_OFFICE, 0, 0, 72, 56, 1560, 1704, + CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_23, 0, AREA_MINISH_HOUSE_INTERIORS, ROOM_MINISH_HOUSE_INTERIORS_MINISH_WOODS_BOMB, 0, 0, 120, 88, + 3288, 2952, CND_0, 0, 0 }, +#ifdef DEMO_JP + { WORLD_EVENT_TYPE_24, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD, 464, 176, 584, 264, 2072, 2744, + CND_1, LOCAL_BANK_1, 252 }, // TODO +#else + { WORLD_EVENT_TYPE_24, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD, 464, 176, 584, 264, 2072, 2744, + CND_0, 0, 0 }, +#endif +#else + { WORLD_EVENT_TYPE_20, 0, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_WITCH_HUT, 0, 0, 120, 56, 3656, 2248, CND_2, 0, + ITEM_BOTTLE_RED_POTION }, + { WORLD_EVENT_TYPE_21, 0, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BORLOV_ENTRANCE, 0, 0, 120, 72, 2152, 2152, + CND_1, LOCAL_BANK_2, KS_B16 }, + { WORLD_EVENT_TYPE_22, 0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_POST_OFFICE, 0, 0, 72, 56, 1560, 1704, + CND_1, LOCAL_BANK_2, BILL01_TESSIN_8 }, + { WORLD_EVENT_TYPE_23, 0, AREA_MINISH_HOUSE_INTERIORS, ROOM_MINISH_HOUSE_INTERIORS_MINISH_WOODS_BOMB, 0, 0, 120, 88, + 3288, 2952, CND_1, LOCAL_BANK_2, KHOUSE26_REMOCON }, + { WORLD_EVENT_TYPE_24, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD, 464, 176, 584, 264, 2072, 2744, + CND_1, LOCAL_BANK_1, KS_A06 }, +#endif + { WORLD_EVENT_TYPE_0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CND_0, 0, 0 }, + { WORLD_EVENT_TYPE_0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CND_0, 0, 0 }, +}; + +// kinstone data + +// const TileEntity gUnk_080FEAC8[] = { +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 180, 30, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 166, 92, 113, 0x0, 0, 0 }, +// { SMALL_CHEST, 167, 92, 114, 0x0, 0, 0 }, +// { SMALL_CHEST, 168, 92, 110, 0x0, 0, 0 }, +// { SMALL_CHEST, 181, 92, 114, 0x0, 0, 0 }, +// { SMALL_CHEST, 169, 92, 112, 0x0, 0, 0 }, +// { SMALL_CHEST, 170, 89, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 171, 63, 200, 0x0, 0, 0 }, +// { SMALL_CHEST, 172, 92, 113, 0x0, 0, 0 }, +// { SMALL_CHEST, 182, 92, 114, 0x0, 0, 0 }, +// { SMALL_CHEST, 183, 101, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 184, 92, 110, 0x0, 0, 0 }, +// { SMALL_CHEST, 185, 92, 111, 0x0, 0, 0 }, +// { SMALL_CHEST, 186, 92, 112, 0x0, 0, 0 }, +// { SMALL_CHEST, 187, 89, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 188, 63, 200, 0x0, 0, 0 }, +// { SMALL_CHEST, 189, 92, 112, 0x0, 0, 0 }, +// { SMALL_CHEST, 190, 92, 111, 0x0, 0, 0 }, +// { SMALL_CHEST, 191, 92, 110, 0x0, 0, 0 }, +// { SMALL_CHEST, 192, 63, 200, 0x0, 0, 0 }, +// { SMALL_CHEST, 193, 89, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 194, 92, 114, 0x0, 0, 0 }, +// { SMALL_CHEST, 195, 92, 113, 0x0, 0, 0 }, +// { SMALL_CHEST, 196, 89, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 197, 63, 200, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// }; + +// const TileEntity gUnk_080FEAC8[] = { +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 3,178, 30, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 166, 92, 113, 0x0, 0, 0 }, +// { SMALL_CHEST, 167, 92, 114, 0x0, 0, 0 }, +// { SMALL_CHEST, 168, 92, 110, 0x0, 0, 0 }, +// { SMALL_CHEST, 179, 92, 114, 0x0, 0, 0 }, +// { SMALL_CHEST, 169, 92, 112, 0x0, 0, 0 }, +// { SMALL_CHEST, 170, 89, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 171, 63, 200, 0x0, 0, 0 }, +// { SMALL_CHEST, 172, 92, 113, 0x0, 0, 0 }, +// { SMALL_CHEST, 251, 92, 114, 0x0, 0, 0 }, +// { SMALL_CHEST, 180, 101, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 181, 92, 110, 0x0, 0, 0 }, +// { SMALL_CHEST, 182, 92, 111, 0x0, 0, 0 }, +// { SMALL_CHEST, 183, 92, 112, 0x0, 0, 0 }, +// { SMALL_CHEST, 184, 89, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 185, 63, 200, 0x0, 0, 0 }, +// { SMALL_CHEST, 186, 92, 112, 0x0, 0, 0 }, +// { SMALL_CHEST, 187, 92, 111, 0x0, 0, 0 }, +// { SMALL_CHEST, 188, 92, 110, 0x0, 0, 0 }, +// { SMALL_CHEST, 189, 63, 200, 0x0, 0, 0 }, +// { SMALL_CHEST, 190, 89, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 191, 92, 114, 0x0, 0, 0 }, +// { SMALL_CHEST, 192, 92, 113, 0x0, 0, 0 }, +// { SMALL_CHEST, 193, 89, 0, 0x0, 0, 0 }, +// { SMALL_CHEST, 194, 63, 200, 0x0, 0, 0 }, +// { NONE, 0, 0, 0, 0x0, 0, 0 }, +// }; +extern TileEntity gUnk_080FEAC8[]; // TODO differs jp, demo_jp, eu +extern EntityData gUnk_080FEBE8[]; +extern EntityData gUnk_080FEC28[]; +extern EntityData gUnk_080FECC8[]; +extern const EntityData gUnk_080FED18[]; +extern EntityData gUnk_080FED58[]; +// TODO need to find out what gRoomVars.field_0x8c[ptr->entity_idx] is. +extern const void* gUnk_080FED98[]; +// gUnk_080FEDA4 +// gUnk_080FEDDA +// gUnk_080FEDF8 +extern const EntityData gUnk_080FEE18[]; +extern const EntityData gUnk_080FEE38[]; +extern const EntityData gUnk_080FEE48[]; +extern const EntityData gUnk_080FEE58[]; // TODO differs jp, demo_jp, eu +extern EntityData gUnk_080FEE78[]; diff --git a/src/gameOverTask.c b/src/gameOverTask.c new file mode 100644 index 00000000..c56f86b3 --- /dev/null +++ b/src/gameOverTask.c @@ -0,0 +1,240 @@ +/** + * @file gameOverTask.c + * @ingroup Tasks + * + * @brief Game Over Task + */ +#include "common.h" +#include "fade.h" +#include "fileselect.h" +#include "functions.h" +#include "game.h" +#include "main.h" +#include "menu.h" +#include "save.h" +#include "sound.h" +#include "subtask.h" + +typedef void(GameOverState)(void); + +static GameOverState GameOver_Init; +static GameOverState GameOver_FadeIn; +static GameOverState GameOver_TextMove; +static GameOverState GameOver_Update; +static GameOverState GameOver_Exit; + +void DrawGameOverText(void); + +void GameOverTask(void) { + static GameOverState* const sStates[] = { + GameOver_Init, GameOver_FadeIn, GameOver_TextMove, GameOver_Update, GameOver_Exit, + }; + + sStates[gMain.state](); + if (gMain.state != GAMETASK_TRANSITION) { + FlushSprites(); + DrawGameOverText(); + CopyOAM(); + } +} +void switch_state(u32 idx) { + gMain.state = idx; + SetMenuType(0); +} +void GameOver_Init(void) { + if (gFadeControl.active) + return; + sub_08052010(); + gGenericMenu.unk10.a[0] = 80; + gMenu.transitionTimer = 60; + gSave.stats.health = 24; + gMain.field_0x5 = 60; + SoundReq(BGM_GAMEOVER); + SetFadeInverted(4); + gFadeControl.mask = 0xFFFF0001; + switch_state(GAMETASK_INIT); +} +void GameOver_FadeIn(void) { + if (gFadeControl.active) + return; + + if (gMain.field_0x5 == 0) { + if (gGenericMenu.unk10.a[0] >= 38) { + gGenericMenu.unk10.a[0]--; + } else { + gMenu.transitionTimer--; + if (gMenu.transitionTimer == 0) { + switch_state(GAMETASK_MAIN); +#if defined(DEMO_USA) || defined(DEMO_JP) + SoundReq(SONG_VOL_FADE_OUT); + SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 4); +#else + SetPopupState(0, 0); + gScreen.lcd.displayControl |= DISPCNT_BG1_ON | DISPCNT_BG2_ON; + gFadeControl.mask = 0x0000ffff; + SetFade(FADE_INSTANT, 16); +#endif + } + } + } else { + gMain.field_0x5--; + } +} +void GameOver_TextMove(void) { +#if defined(DEMO_USA) || defined(DEMO_JP) + if (gFadeControl.active == 0) { + DoSoftReset(); + } +#else + s32 temp3; + u32 temp2; + + if (gFadeControl.active) + return; + + switch (gMenu.menuType) { + case 0: + gMenu.transitionTimer = 30; + gMenu.field_0x3 = 0; + SetMenuType(1); + SetPopupState(0, 0); + gFadeControl.mask = 0xffffffff; + return; + case 1: + if (gMenu.transitionTimer == 0) { + u32 temp = gMenu.field_0x3; + switch (gInput.newKeys) { + case DPAD_UP: + temp = 0; + break; + case DPAD_DOWN: + temp = 1; + break; + case A_BUTTON: + if (gMenu.field_0x3 != 0) { + temp2 = 4; + } else { + CreateDialogBox(8, 0); + temp2 = 2; + } + gMenu.transitionTimer = 60; + SetMenuType(temp2); + SoundReq(SFX_TEXTBOX_SELECT); + break; + } + if (gMenu.field_0x3 != temp) { + gMenu.field_0x3 = temp; + SetPopupState(0, temp); + SoundReq(SFX_TEXTBOX_CHOICE); + } + return; + } + gMenu.transitionTimer--; + return; + case 2: + temp3 = HandleSave(0); + gMenu.field_0x0 = temp3; + switch (temp3) { + case 1: + SetMenuType(4); + break; + case -1: + gMenu.transitionTimer = 60; + CreateDialogBox(9, 0); + SetMenuType(3); + break; + } + return; + case 3: + if (gMenu.transitionTimer != 0) { + gMenu.transitionTimer--; + } else if (gInput.newKeys & (A_BUTTON | B_BUTTON | START_BUTTON)) { + SetMenuType(0); + } + return; + case 4: + default: + gScreen.lcd.displayControl &= ~DISPCNT_BG1_ON; + sub_08050384(); + switch_state(GAMETASK_EXIT); + return; + } +#endif +} +void GameOver_Update(void) { + switch (gMenu.menuType) { + case 0: + gMenu.transitionTimer = 30; + gMenu.field_0x3 = 0; + SetMenuType(1); + SetPopupState(1, 0); + return; + case 1: + gScreen.lcd.displayControl |= DISPCNT_BG1_ON; + if (gMenu.transitionTimer != 0) { + gMenu.transitionTimer--; + return; + } else { + u32 temp = gMenu.field_0x3; + switch (gInput.newKeys) { + case DPAD_UP: + temp = 0; + break; + case DPAD_DOWN: + temp = 1; + break; + case A_BUTTON: + SetMenuType(2); + SoundReq(SFX_TEXTBOX_SELECT); + if (temp == 0) { + SetFade(FADE_IN_OUT | FADE_INSTANT, 8); + } else { + SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 8); + } + break; + } + if (gMenu.field_0x3 != temp) { + gMenu.field_0x3 = temp; + SetPopupState(1, temp); + SoundReq(SFX_TEXTBOX_CHOICE); + } + } + return; + case 2: + default: + if (gFadeControl.active == 0) { + if (gMenu.field_0x3 == 0) { + SetTask(TASK_GAME); + } else { + DoSoftReset(); + } + } + return; + } +} + +// Unused, since task is set above +// if we got here, it would be a softlock +void GameOver_Exit(void) { +} + +void DrawGameOverText(void) { + static const u8 sOffsets[] = { + 48, 68, 88, 108, 137, 156, 174, 192, + }; + + u32 i; + + gOamCmd._4 = 0; + gOamCmd._6 = 0; + gOamCmd._8 = 0x8600; + gOamCmd.y = gGenericMenu.unk10.a[0]; + for (i = 0; i < 8; ++i) { + gOamCmd.x = sOffsets[i]; +#ifdef EU + DrawDirect(0x1fc, i); +#else + DrawDirect(0x1fd, i); +#endif + } +} diff --git a/src/gameUtils.c b/src/gameUtils.c new file mode 100644 index 00000000..dbc22f8b --- /dev/null +++ b/src/gameUtils.c @@ -0,0 +1,945 @@ +/** + * @file gameUtils.c + * + * @brief Game Utils + */ +#include "backgroundAnimations.h" +#include "enemy.h" +#include "entity.h" +#include "fade.h" +#include "fileselect.h" +#include "functions.h" +#include "game.h" +#include "item.h" +#include "itemMetaData.h" +#include "main.h" +#include "menu.h" +#include "npc.h" +#include "object.h" +#include "save.h" +#include "screen.h" +#include "script.h" +#include "sound.h" +#include "ui.h" + +u32 StairsAreValid(void); +void ClearFlagArray(const u16*); +void DummyHandler(u32* a1); +void sub_08053434(u32* a1); +void sub_080534E4(u32* a1); +void InitAllRoomResInfo(void); +void InitRoomResInfo(RoomResInfo* info, RoomHeader* hdr, u32 area, u32 room); +void sub_080532E4(void); +void ResetTimerFlags(void); + +extern void** gAreaTilesets[]; +extern void** gAreaRoomMaps[]; +extern void* gAreaMetatiles[]; +extern void** gAreaTable[]; + +typedef struct { + u8 dest_off[8]; + u8 _8; + u8 right_align; + u16 _a; +} PopupOption; + +extern u8 gUnk_0200AF14; + +void SetPopupState(u32 type, u32 choice_idx) { + static const Font sDefaultFont = { + .dest = gBG1Buffer, + .gfx_dest = (u16*)0x06006000, + .buffer_loc = gTextGfxBuffer, + ._c = 0, + .gfx_src = 0xD300, + .width = 0xE0, + .right_align = 0, + .sm_border = 0, + .unused = 0, + .draw_border = 0, + .border_type = 0, + .fill_type = 6, + .charColor = 4, + ._16 = 1, + .stylized = 0, + }; + static const PopupOption sPopupOptions[] = { + { { 11, 11, 11, 10, 11, 10, 10, 0 }, 8, 0, 16 }, + { { 10, 11, 11, 9, 11, 9, 9, 0 }, 8, 0, 17 }, + { { 15, 15, 15, 15, 15, 15, 15, 0 }, 5, 1, 13 }, + }; + + Font font; + const PopupOption* opt; + u32 fakematch; + + MemClear(gBG1Buffer, sizeof gBG1Buffer); + gUnk_020227E8[0]._0.WORD = 0xf; + gUnk_020227E8[1]._0.WORD = 0xf; + gUnk_020227E8[2]._0.WORD = 0xf; + gUnk_020227E8[3]._0.WORD = 0xf; + *(&gUnk_020227E8[choice_idx]._0.BYTES.byte0 + 1) = fakematch = 1; + + MemCopy(&sDefaultFont, &font, sizeof font); + opt = &sPopupOptions[type]; + font.dest = sDefaultFont.dest + (opt->dest_off[gSaveHeader->language] + opt->_8 * 32); + font.right_align = opt->right_align; + ShowTextBox(opt->_a, &font); + gScreen.bg1.updated = fakematch; +} + +void InitializePlayer(void) { + static const u8 sPlayerSpawnStates[] = { + [PL_SPAWN_DEFAULT] = PLAYER_INIT, + [PL_SPAWN_MINISH] = PLAYER_MINISH, + [PL_SPAWN_DROP] = PLAYER_INIT, + [PL_SPAWN_WALKING] = PLAYER_ROOMTRANSITION, + [PL_SPAWN_STEP_IN] = PLAYER_ROOM_EXIT, + [PL_SPAWN_SLEEPING] = PLAYER_SLEEP, + [PL_SPAWN_DROP_MINISH] = PLAYER_MINISH, + [PL_SPAWN_STAIRS_ASCEND] = PLAYER_USEENTRANCE, + [PL_SPAWN_STAIRS_DESCEND] = PLAYER_USEENTRANCE, + [PL_SPAWN_9] = PLAYER_MINISH, + [PL_SPAWN_PARACHUTE_FORWARD] = PLAYER_WARP, + [PL_SPAWN_PARACHUTE_UP] = PLAYER_WARP, + [PL_SPAWN_FAST_TRAVEL] = PLAYER_WARP, + }; + + Entity* pl; + + sub_080784C8(); + MemClear(&gActiveItems, sizeof(gActiveItems)); + MemClear(&gPlayerState, sizeof(gPlayerState)); + MemFill32(0xffffffff, &gPlayerState.path_memory, sizeof(gPlayerState.path_memory)); + MemClear(&gPlayerEntity, sizeof(gPlayerEntity)); + + pl = &gPlayerEntity; + + gRoomControls.camera_target = pl; + gPlayerState.queued_action = sPlayerSpawnStates[gRoomTransition.player_status.spawn_type]; + if (!CheckGlobalFlag(EZERO_1ST)) { + gPlayerState.flags |= PL_NO_CAP; + } + switch (gRoomTransition.player_status.spawn_type) { + case PL_SPAWN_DROP: + case PL_SPAWN_DROP_MINISH: + pl->z.HALF.HI = -0xc0; + break; + case PL_SPAWN_STEP_IN: + gPlayerState.field_0x38 = 16; + pl->direction = Direction8FromAnimationState(gRoomTransition.player_status.start_anim); + case PL_SPAWN_WALKING: + pl->speed = 224; + break; + case PL_SPAWN_STAIRS_ASCEND: + case PL_SPAWN_STAIRS_DESCEND: + gPlayerState.field_0x38 = 1; + gPlayerState.field_0x39 = gRoomTransition.player_status.spawn_type; + break; + case PL_SPAWN_PARACHUTE_FORWARD: + gPlayerState.field_0x38 = 1; + break; + case PL_SPAWN_PARACHUTE_UP: + gPlayerState.field_0x38 = 3; + break; + case PL_SPAWN_FAST_TRAVEL: + gPlayerState.field_0x38 = 4; + } + + pl->kind = PLAYER; + pl->flags |= ENT_COLLIDE | ENT_PERSIST; + pl->spritePriority.b0 = 4; + pl->health = gSave.stats.health; + pl->x.HALF.HI = gRoomTransition.player_status.start_pos_x; + pl->y.HALF.HI = gRoomTransition.player_status.start_pos_y; + pl->animationState = gRoomTransition.player_status.start_anim; + pl->collisionLayer = gRoomTransition.player_status.layer; + UpdateSpriteForCollisionLayer(pl); + AppendEntityToList(pl, 1); + RegisterPlayerHitbox(); +} + +bool32 AreaIsOverworld(void) { +#ifdef EU + return gArea.areaMetadata == 0x01; +#else + return gArea.areaMetadata == 0x81; +#endif +} + +bool32 CheckAreaOverworld(u32 area) { +#if EU + return gAreaMetadata[area].flags == 0x01; +#else + return gAreaMetadata[area].flags == 0x81; +#endif +} + +#ifndef EU +bool32 AreaAllowsWarp(void) { + return (gArea.areaMetadata >> 7) & 1; +} +#endif + +bool32 AreaIsDungeon(void) { + return (gArea.areaMetadata >> 2) & 1; +} + +bool32 AreaHasEnemies(void) { + return (gArea.areaMetadata >> 4) & 1; +} + +bool32 AreaHasNoEnemies(void) { + return (gArea.areaMetadata >> 6) & 1; +} + +bool32 AreaHasMap(void) { + return (gArea.areaMetadata >> 3) & 1; +} + +s32 ModHealth(s32 delta) { + s32 newHealth; + Stats* stats = &gSave.stats; + + newHealth = stats->health + delta; + if (newHealth < 0) { + newHealth = 0; + } + if (stats->maxHealth < newHealth) { + newHealth = (u32)stats->maxHealth; + } + stats->health = newHealth; + gPlayerEntity.health = newHealth; + return newHealth; +} + +void ModRupees(s32 delta) { + s32 newRupeeCount; + Stats* s = &gSave.stats; + + newRupeeCount = s->rupees + delta; + if (newRupeeCount < 0) { + newRupeeCount = 0; + } else { + if (newRupeeCount > (u16)gWalletSizes[s->walletType * 2]) { + newRupeeCount = (u16)gWalletSizes[s->walletType * 2]; + } + } + s->rupees = newRupeeCount; +} + +void ModDungeonKeys(s32 keys) { + if (AreaHasKeys()) { + u8* p = &gSave.dungeonKeys[gArea.dungeon_idx]; + if (*p + keys < 0) + *p = 0; + else + *p += keys; + } +} + +bool32 AreaHasKeys(void) { + return (gArea.areaMetadata >> 1) & 1; +} + +bool32 HasDungeonMap(void) { + u32 tmp; + + if (AreaHasKeys()) + tmp = gSave.dungeonKeys[gArea.dungeon_idx]; + return tmp ? 1 : 0; +} + +bool32 HasDungeonCompass(void) { + u32 tmp; + + if (AreaHasKeys()) + tmp = gSave.dungeonItems[gArea.dungeon_idx] & 4; + return tmp ? 1 : 0; +} + +bool32 HasDungeonBigKey(void) { + if (!AreaHasKeys()) + return 0; + return (gSave.dungeonItems[gArea.dungeon_idx] >> 1) & 1; +} + +bool32 HasDungeonSmallKey(void) { + u32 tmp; + + if (!AreaHasKeys()) + return 0; + return gSave.dungeonItems[gArea.dungeon_idx] & 1; +} + +extern u8 gPaletteBufferBackup[]; +void RestoreGameTask(u32 a1) { + LoadGfxGroups(); +#ifndef EU + CleanUpGFXSlots(); +#endif + sub_080ADE24(); + InitUI(TRUE); + sub_0801AE44(a1); + MemCopy(gPaletteBufferBackup, gPaletteBuffer, 1024); + gUsedPalettes = 0xffffffff; +} + +void LoadRoomBgm(void) { + gArea.queued_bgm = gAreaMetadata[gRoomControls.area]._3; + if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START)) { + gArea.queued_bgm = BGM_FIGHT_THEME2; + } +} + +#ifndef EU +void sub_08052878(void) { + gArea.bgm = gArea.queued_bgm; + SoundReq(SONG_STOP_ALL); +} + +void sub_0805289C(void) { + gArea.queued_bgm = gArea.bgm; +} +#endif + +bool32 CheckGameOver(void) { + if (gRoomTransition.field_0x4[1]) { + InitFade(); + gMain.state = GAMETASK_EXIT; + gMain.substate = GAMEMAIN_INITROOM; + SetFade(FADE_IN_OUT | FADE_INSTANT, 8); + SoundReq(SONG_STOP_BGM); + return TRUE; + } + return FALSE; +} + +void RoomExitCallback(void) { + if (gArea.transitionManager != NULL && gArea.onExit != NULL) + gArea.onExit(gArea.transitionManager); +} + +bool32 CheckRoomExit(void) { + if (gRoomTransition.transitioningOut && gSave.stats.health != 0 && gPlayerState.framestate != PL_STATE_DIE) { + if (StairsAreValid()) { + gRoomTransition.transitioningOut = 0; + return FALSE; + } + + switch (gRoomTransition.type) { + case TRANSITION_CUT: + SetFade(FADE_IN_OUT | FADE_INSTANT | FADE_MOSAIC, 8); + break; + case TRANSITION_CUT_FAST: + SetFade(FADE_IN_OUT | FADE_INSTANT | FADE_MOSAIC, 3); + break; + case TRANSITION_FADE_WHITE_SLOW: + SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 4); + break; + case TRANSITION_FADE_BLACK_SLOW: + SetFade(FADE_IN_OUT | FADE_INSTANT, 4); + break; + case TRANSITION_FADE_BLACK: + SetFade(FADE_IN_OUT | FADE_INSTANT, 16); + break; + case TRANSITION_FADE_BLACK_FAST: + SetFade(FADE_IN_OUT | FADE_INSTANT, 256); + break; + case TRANSITION_7: + case TRANSITION_FADE_WHITE_FAST: + SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 256); + break; + default: + SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 16); + break; + } + RoomExitCallback(); + gMain.substate = GAMEMAIN_CHANGEAREA; + *(&gMain.pauseInterval + 1) = 1; + return TRUE; + } + return FALSE; +} + +u32 StairsAreValid(void) { + static const u16 sStairTypes[] = { 0x91, PL_SPAWN_STAIRS_ASCEND, 0x92, PL_SPAWN_STAIRS_DESCEND, + 0x93, PL_SPAWN_STAIRS_ASCEND, 0x94, PL_SPAWN_STAIRS_DESCEND, + 0x95, PL_SPAWN_STAIRS_ASCEND, 0x96, PL_SPAWN_STAIRS_DESCEND, + 0x97, PL_SPAWN_STAIRS_ASCEND, 0x98, PL_SPAWN_STAIRS_DESCEND, + 0 }; + + const u16* i; + u32 tgt = gRoomTransition.stairs_idx; + + for (i = sStairTypes; i[0] != 0; i += 2) { + if (tgt == i[0]) { + gPlayerState.queued_action = PLAYER_USEENTRANCE; + gPlayerState.field_0x38 = 0; + gPlayerState.field_0x39 = i[1]; + if (!gRoomTransition.player_status.spawn_type) + gRoomTransition.player_status.spawn_type = i[1]; + return 1; + } + } + return 0; +} + +void InitParachuteRoom(void) { + gRoomTransition.transitioningOut = 1; + gRoomTransition.player_status.start_pos_x = (gPlayerEntity.x.HALF.HI - gRoomControls.origin_x) & 0x3F8; + gRoomTransition.player_status.start_pos_y = (gPlayerEntity.y.HALF.HI - gRoomControls.origin_y) & 0x3F8; + gRoomTransition.player_status.start_anim = 4; + gRoomTransition.player_status.spawn_type = PL_SPAWN_PARACHUTE_FORWARD; + gRoomTransition.player_status.area_next = gRoomControls.area; + gRoomTransition.player_status.room_next = gRoomControls.room - 1; +} + +void InitRoomTransition(void) { + switch (gRoomTransition.type) { + case TRANSITION_CUT: + SetFade(FADE_INSTANT | FADE_MOSAIC, 8); + break; + case TRANSITION_CUT_FAST: + SetFade(FADE_INSTANT | FADE_MOSAIC, 3); + break; + case TRANSITION_FADE_WHITE_SLOW: + SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 4); + break; + case TRANSITION_3: + break; + case TRANSITION_FADE_BLACK_FAST: + SetFade(FADE_IN_OUT | FADE_INSTANT, 256); + break; + case TRANSITION_7: + SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 256); + break; + case TRANSITION_FADE_BLACK: + SetFade(FADE_INSTANT, 16); + break; + case TRANSITION_FADE_WHITE_FAST: + SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 8); + break; + default: + SetFadeInverted(16); + break; + } +} + +bool32 CanDispEzloMessage(void) { + s32 tmp = PL_STATE_WALK; + + if (!(gInput.heldKeys & SELECT_BUTTON) || gPlayerState.controlMode != CONTROL_ENABLED || + gPauseMenuOptions.disabled || gUnk_0200AF00.unk_1) + return FALSE; + + if ((gPlayerState.flags & (PL_NO_CAP | PL_CAPTURED | PL_DISABLE_ITEMS)) || (gPlayerState.framestate_last > tmp) || + gPlayerState.item || gPlayerEntity.field_0x7a.HWORD) + return FALSE; + + if ((gPlayerEntity.z.HALF.HI & 0x8000) && !gPlayerState.field_0xa) + return FALSE; + + GenerateAreaHint(); + ForceSetPlayerState(PL_STATE_TALKEZLO); + SetPlayerEventPriority(); + return TRUE; +} + +void DisplayEzloMessage(void) { + u32 height; + u32 idx; +#if defined(JP) || defined(EU) + idx = 0x10; +#else + idx = 0x11; +#endif + + if (gRoomTransition.player_status.field_0x24[idx] == 0) { + height = gPlayerEntity.y.HALF.HI - gRoomControls.scroll_y > 96 ? 1 : 13; + } else { + height = gRoomTransition.player_status.field_0x24[idx]; + } + MessageAtHeight(gRoomTransition.hint_idx, height); +} + +#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) +void CreateMiscManager(void) { + Entity* e = NULL; + + if (gRoomTransition.player_status.field_0x24[13]) + return; + gRoomTransition.player_status.field_0x24[13] = 1; +#ifndef DEMO_JP + gRoomTransition.player_status.field_0x24[10] = gArea.locationIndex; +#endif + e = (Entity*)GetEmptyManager(); + if (e == NULL) + return; + e->kind = MANAGER; + e->id = MISC_MANAGER; + e->type = 15; + AppendEntityToList(e, 0); +} +#endif + +void DecreasePortalTimer(void) { + if (gArea.portal_mode == 0) + gArea.portal_timer = 0; + if (gArea.portal_timer) { + gArea.portal_timer--; + gArea.portal_mode = 0; + } +} + +void UpdatePlayerMapCoords(void) { + if (!AreaHasNoEnemies()) { + if (AreaIsOverworld()) { + gRoomTransition.player_status.overworld_map_x = gPlayerEntity.x.HALF_U.HI; + gRoomTransition.player_status.overworld_map_y = gPlayerEntity.y.HALF_U.HI; + } else if (AreaIsDungeon()) { + gRoomTransition.player_status.dungeon_map_x = gPlayerEntity.x.HALF.HI; + gRoomTransition.player_status.dungeon_map_y = gPlayerEntity.y.HALF.HI; + } + } +} + +void SetWorldMapPos(u32 area, u32 room, u32 x, u32 y) { + RoomHeader* hdr = gAreaRoomHeaders[area] + room; + gRoomTransition.player_status.overworld_map_x = hdr->map_x + x; + gRoomTransition.player_status.overworld_map_y = hdr->map_y + y; +} + +void SetDungeonMapPos(u32 area, u32 room, u32 x, u32 y) { + RoomHeader* hdr = gAreaRoomHeaders[area] + room; + gRoomTransition.player_status.dungeon_map_x = hdr->map_x + x; + gRoomTransition.player_status.dungeon_map_y = hdr->map_y + y; +} + +void InitRoom(void) { + AreaHeader* a_hdr = NULL; + + MemClear(&gArea, sizeof gArea); + a_hdr = &gAreaMetadata[gRoomControls.area]; + gArea.areaMetadata = a_hdr->flags; + gArea.locationIndex = a_hdr->location; + gArea.dungeon_idx = a_hdr->location - 23; + gArea.localFlagOffset = gLocalFlagBanks[a_hdr->flag_bank]; + gArea.flag_bank = a_hdr->flag_bank; + gArea.portal_timer = 180; + gArea.lightLevel = 256; + InitRoomTransition(); + InitAllRoomResInfo(); +} + +u32 GetFlagBankOffset(u32 idx) { + AreaHeader* a_hdr = &gAreaMetadata[idx]; + return gLocalFlagBanks[a_hdr->flag_bank]; +} + +void RegisterTransitionManager(void* mgr, void (*onEnter)(), void (*onExit)()) { + if (gMain.substate != GAMEMAIN_SUBTASK) { + gArea.transitionManager = mgr; + gArea.onEnter = onEnter; + gArea.onExit = onExit; + } +} + +void InitAllRoomResInfo(void) { + RoomHeader* r_hdr = gAreaRoomHeaders[gRoomControls.area]; + RoomResInfo* info = gArea.roomResInfos; + u32 i; + for (i = 0; i < MAX_ROOMS && *(u16*)r_hdr != 0xFFFF; i++, r_hdr++) { + if (r_hdr->tileset_id != 0xFFFF) + InitRoomResInfo(info, r_hdr, gRoomControls.area, i); + info++; + } + gArea.pCurrentRoomInfo = GetCurrentRoomInfo(); +} + +void InitRoomResInfo(RoomResInfo* info, RoomHeader* r_hdr, u32 area, u32 room) { + info->map_x = r_hdr->map_x; + info->map_y = r_hdr->map_y; + info->pixel_width = r_hdr->pixel_width; + info->pixel_height = r_hdr->pixel_height; + info->tileset = *(gAreaTilesets[area] + r_hdr->tileset_id); + info->map = *(gAreaRoomMaps[area] + room); + info->metatiles = gAreaMetatiles[area]; + info->bg_anim = (void*)gUnk_080B755C[area]; + info->exits = gExitLists[area][room]; + if (gAreaTable[area] != NULL) { + info->properties = *(gAreaTable[area] + room); + } +} + +RoomResInfo* GetCurrentRoomInfo(void) { + return &gArea.roomResInfos[gRoomControls.room]; +} + +void sub_08052EA0(void) { + MemClear(&gRoomVars, sizeof gRoomVars); + gRoomVars.unk_10[0] = -1; + gRoomVars.unk_10[1] = gRoomVars.unk_10[0]; + gRoomVars.unk_10[2] = gRoomVars.unk_10[0]; + gRoomVars.unk_10[3] = gRoomVars.unk_10[0]; + gRoomVars.lightLevel = 256; + gArea.locationIndex = gAreaMetadata[gRoomControls.area].location; + UpdateRoomTracker(); + InitScriptData(); + sub_08054524(); + sub_080186D4(); + sub_0806F364(); + UpdateGlobalProgress(); +} + +u32 sub_08052EF4(s32 idx) { + AreaHeader* a_hdr = NULL; + u32 i = idx < 0 ? gRoomControls.area : idx; + a_hdr = &gAreaMetadata[i]; + return gLocalFlagBanks[a_hdr->flag_bank]; +} + +/** + * @brief If enabled, this type of transition does not change the room + * and keeps all entities. + */ +void UpdateFakeScroll(void) { + u32 x, y; + LinkedList* ll; + Entity* e; + + if (gArea.unk_0c_0 == 0 || !gRoomVars.field_0x0) + return; + + y = 0; + x = 0; + + // WTF? + switch (gRoomControls.scroll_direction) { + case 0: + y = gArea.pCurrentRoomInfo->pixel_height; + case 1: + y = gArea.pCurrentRoomInfo->pixel_height; + case 2: + y = gArea.pCurrentRoomInfo->pixel_height; + case 3: + x = gArea.pCurrentRoomInfo->pixel_width; + } + + gArea.pCurrentRoomInfo->map_x += x; + gArea.pCurrentRoomInfo->map_y += y; + gRoomControls.origin_x += x; + gRoomControls.origin_y += y; + gRoomControls.scroll_x += x; + gRoomControls.scroll_y += y; + + ll = gEntityLists; + do { + for (e = ll->first; e != (Entity*)ll; e = e->next) { + if (e->kind != MANAGER) { + e->x.HALF.HI += x; + e->y.HALF.HI += y; + } + } + } while (++ll < gEntityLists + 9); +} + +void LoadAuxiliaryRoom(u32 area, u32 room) { + sub_08052FF4(area, room); + gRoomControls.camera_target = NULL; + CloneMapData(); + InitializeCamera(); +} + +void sub_08052FF4(u32 area, u32 room) { + RoomHeader* r_hdr = NULL; + + ClearTilemaps(); + SetBGDefaults(); + gRoomControls.area = area; + gRoomControls.room = room; + gScreen.lcd.displayControl = 0x1740; + MemClear(&gArea.currentRoomInfo, sizeof gArea.currentRoomInfo); + gArea.pCurrentRoomInfo = &gArea.currentRoomInfo; + r_hdr = gAreaRoomHeaders[area] + room; + gArea.currentRoomInfo.map_x = r_hdr->map_x; + gArea.currentRoomInfo.map_y = r_hdr->map_y; + gArea.currentRoomInfo.pixel_width = r_hdr->pixel_width; + gArea.currentRoomInfo.pixel_height = r_hdr->pixel_height; + gArea.currentRoomInfo.tileset = *(gAreaTilesets[area] + r_hdr->tileset_id); + gArea.currentRoomInfo.map = *(gAreaRoomMaps[area] + room); + gArea.currentRoomInfo.metatiles = gAreaMetatiles[area]; + gArea.currentRoomInfo.bg_anim = (void*)gUnk_080B755C[area]; +} + +void ChangeLightLevel(s32 lightLevel) { + lightLevel += gRoomVars.lightLevel; + if (lightLevel < 0) + lightLevel = 0; + if (lightLevel > 256) + lightLevel = 256; + gRoomVars.lightLevel = lightLevel; +} + +void sub_080530B0(void) { + static const u16 sMinecartData[] = { 0x189, 0x0, 0x102, 0x4, 0x1af, 0x0, 0x204, 0x0, + 0x1cf, 0x0, 0x10, 0x4, 0x0, 0x0, 0x0, 0x0 }; + + MemCopy(sMinecartData, gRoomTransition.minecart_data, sizeof sMinecartData); +} + +void UpdateGlobalProgress(void) { + u8 pcnt = 1; + if (CheckLocalFlagByBank(FLAG_BANK_3, SEIIKI_STAINED_GLASS)) { + pcnt = 9; + } else if (CheckGlobalFlag(LV5_CLEAR)) { + pcnt = 8; + } else if (CheckLocalFlagByBank(FLAG_BANK_3, OUBO_KAKERA)) { + pcnt = 7; + } else if (CheckGlobalFlag(LV4_CLEAR)) { + pcnt = 6; + } else if (CheckGlobalFlag(LV3_CLEAR)) { + pcnt = 5; + } else if (CheckLocalFlagByBank(FLAG_BANK_1, SOUGEN_08_TORITSUKI)) { + pcnt = 4; + } else if (CheckGlobalFlag(LV1_CLEAR)) { + pcnt = 2; + } + gSave.global_progress = pcnt; +} + +u32 sub_08053144(void) { + u32 ret; + + if (CheckGlobalFlag(ENDING)) + return 0; + ret = 0; + if (gArea.locationIndex != 0) + ret = !!(gRoomTransition.player_status.field_0x24[10] ^ gArea.locationIndex); + return ret; +} + +void CheckAreaDiscovery(void) { + if (!sub_08053144()) + return; + + gRoomTransition.player_status.field_0x24[10] = gArea.locationIndex; + + if (!CheckGlobalFlag(TABIDACHI)) + return; + + if (!CheckGlobalFlag(ENDING)) { + Entity* e = (Entity*)GetEmptyManager(); + if (e != NULL) { + e->kind = MANAGER; + e->id = ENTER_ROOM_TEXTBOX_MANAGER; + AppendEntityToList(e, 8); + if (!gRoomVars.field_0x0 && !ReadBit(gSave.areaVisitFlags, gArea.locationIndex)) { + e->type2 = 1; + SetPlayerControl(3); + SetInitializationPriority(); + } + } + } + WriteBit(gSave.areaVisitFlags, gArea.locationIndex); +} + +void UpdatePlayerRoomStatus(void) { + gPlayerState.startPosX = gPlayerEntity.x.HALF.HI; + gPlayerState.startPosY = gPlayerEntity.y.HALF.HI; + if (sub_08053144()) { + MemCopy(&gRoomTransition.player_status, &gSave.saved_status, sizeof gRoomTransition.player_status); + if (AreaIsDungeon()) { + gRoomTransition.player_status.dungeon_area = gRoomControls.area; + gRoomTransition.player_status.dungeon_room = gRoomControls.room; + gRoomTransition.player_status.dungeon_x = gPlayerEntity.x.HALF.HI; + gRoomTransition.player_status.dungeon_y = gPlayerEntity.y.HALF.HI; + } + } +} + +void sub_08053250(void) { + gRoomTransition.player_status.spawn_type = PL_SPAWN_DEFAULT; + gRoomTransition.player_status.start_pos_x = gPlayerEntity.x.HALF.HI - gRoomControls.origin_x; + gRoomTransition.player_status.start_pos_y = gPlayerEntity.y.HALF.HI - gRoomControls.origin_y; + gRoomTransition.player_status.start_anim = gPlayerEntity.animationState; + gRoomTransition.player_status.layer = gPlayerEntity.collisionLayer; + gRoomTransition.player_status.area_next = gRoomControls.area; + gRoomTransition.player_status.room_next = gRoomControls.room; + MemCopy(&gRoomTransition.player_status, &gSave.saved_status, sizeof gRoomTransition.player_status); +} + +void sub_0805329C(void) { + if (sub_08053144()) { + switch (gRoomControls.area) { + case AREA_DEEPWOOD_SHRINE: + gSave.unk7 = 0; + break; + case AREA_CAVE_OF_FLAMES: + sub_080530B0(); + break; + case AREA_OUTER_FORTRESS_OF_WINDS: + sub_080532E4(); + break; + default: + ResetTimerFlags(); + break; + } + } +} + +void sub_080532E4(void) { + s32 x, y; + + RoomHeader* r_hdr = gAreaRoomHeaders[AREA_FORTRESS_OF_WINDS] + 33; + + gRoomTransition.player_status.dungeon_area = AREA_FORTRESS_OF_WINDS; + gRoomTransition.player_status.dungeon_room = 33; + + gRoomTransition.player_status.dungeon_x = r_hdr->map_x + r_hdr->pixel_width / 2; + gRoomTransition.player_status.dungeon_map_x = gRoomTransition.player_status.dungeon_x; + gRoomTransition.player_status.dungeon_y = r_hdr->map_y + r_hdr->pixel_height + 0xa0; + gRoomTransition.player_status.dungeon_map_y = gRoomTransition.player_status.dungeon_y; +} + +void LoadGfxGroups(void) { + MemClear(&gBG0Buffer, sizeof gBG0Buffer); + MemClear(&gBG1Buffer, sizeof gBG1Buffer); + MemClear(&gBG2Buffer, sizeof gBG2Buffer); + MemClear(&gBG3Buffer, sizeof gBG3Buffer); + LoadGfxGroup(16); + LoadGfxGroup(23); + if (gRoomControls.area == AREA_CASTOR_WILDS) + LoadGfxGroup(26); + LoadItemGfx(); + LoadPaletteGroup(11); + LoadPaletteGroup(12); + SetColor(0, 0); +} + +void LoadItemGfx(void) { + LoadGfxGroup(GetInventoryValue(ITEM_REMOTE_BOMBS) ? 24 : 25); + if (GetInventoryValue(ITEM_LIGHT_ARROW)) + LoadGfxGroup(29); + LoadGfxGroup(GetInventoryValue(ITEM_MAGIC_BOOMERANG) ? 28 : 27); +} + +extern u16 gUnk_020178E0[]; +void sub_080533CC(void) { + u16* p1 = gUnk_020178E0; + u16* p2 = gUnk_020178E0 - 0x100; + *p2++ = *p1++; + *p2++ = *p1++; + *p2++ = *p1++; + *p2++ = *p1++; + *p2++ = *p1++; + gUsedPalettes |= 8; +} + +void UpdateTimerCallbacks(void) { + static void (*const sHandlers[])(u32*) = { + sub_08053434, DummyHandler, sub_080534E4, DummyHandler, DummyHandler, DummyHandler, DummyHandler, DummyHandler, + }; + + u32* p; + u32 i; + + p = gSave.timers; + for (i = 0; i < 8; i++, p++) { + (sHandlers[i])(p); + } +} + +void DummyHandler(u32* a1) { +} + +void sub_08053434(u32* a1) { + if (gArea.locationIndex == 29 && *a1) { + if (!--*a1) { + ResetTimerFlags(); + MenuFadeIn(5, 6); + } + } +} + +void ResetTimerFlags(void) { + static const u16 sClearFlags[] = { + FLAG_BANK_10, LV6_GUFUU1_GISHIKI, // + FLAG_BANK_10, LV6_GUFUU1_DEMO, // + FLAG_BANK_10, LV6_ZELDA_DISCURSE, // + FLAG_BANK_10, LV6_00_ESCAPE, // + FLAG_BANK_10, LV6_GUFUU2_DEAD, // + FLAG_BANK_G, ENDING, // + FLAG_BANK_10, LV6_KANE_START, // + FLAG_BANK_10, LV6_KANE_1ST, // + FLAG_BANK_10, LV6_KANE_2ND, // + FLAG_BANK_10, LV6_SOTO_ENDING, // + 0xFFFF, + }; + + gSave.timers[0] = 0; + if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_ZELDA_DISCURSE)) + ClearGlobalFlag(ZELDA_CHASE); + ClearFlagArray(sClearFlags); +} + +void StartDarkNutTimer(void) { + gSave.timers[0] = 10800; +} + +void sub_080534AC(void) { + if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START)) { + ClearLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START); + gSave.timers[0] = 0; + SoundReq(SONG_STOP_BGM); + } +} + +void sub_080534E4(u32* a1) { + if (gRoomControls.area != AREA_VEIL_FALLS_TOP) { + if (*a1) + --*a1; + } +} + +void InitBiggoronTimer(void) { + gSave.timers[2] = 36000; +} + +void ResetTmpFlags(void) { + static const u16 sClearFlags[] = { + FLAG_BANK_2, BILL00_SHICHOU_00, // + FLAG_BANK_2, BILL0A_YADO_TAKARA_00, // + FLAG_BANK_2, BILL0C_SCHOOLR_00, // + FLAG_BANK_1, MACHI00_00, // + FLAG_BANK_1, MACHI00_02, // + FLAG_BANK_2, MHOUSE06_00, // + FLAG_BANK_2, MHOUSE14_00, // + FLAG_BANK_2, MHOUSE2_00_02, // + FLAG_BANK_2, MHOUSE2_01_T0, // + FLAG_BANK_2, MHOUSE2_02_KAME, // + FLAG_BANK_2, SHOP00_ITEM_01, // + FLAG_BANK_2, SHOP01_CAFE_01, // + 0xFFFF, + }; + + ResetTimerFlags(); + ClearFlagArray(sClearFlags); + + if (!CheckGlobalFlag(WATERBEAN_PUT)) + ClearGlobalFlag(WATERBEAN_OUT); + if (!GetInventoryValue(ITEM_EARTH_ELEMENT)) + ClearGlobalFlag(LV1_CLEAR); + if (!GetInventoryValue(ITEM_FIRE_ELEMENT)) + ClearGlobalFlag(LV2_CLEAR); + if (!GetInventoryValue(ITEM_WATER_ELEMENT)) + ClearGlobalFlag(LV4_CLEAR); +} + +void ClearFlagArray(const u16* p) { + const u16* i; + + for (i = p; i[0] != 0xFFFF; i += 2) + ClearLocalFlagByBank(i[0], i[1]); +} diff --git a/src/itemMetaData.c b/src/itemMetaData.c index ec3e1fe8..0a0d7af7 100644 --- a/src/itemMetaData.c +++ b/src/itemMetaData.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "game.h" #include "itemMetaData.h" #include "item.h" #include "message.h" @@ -123,3 +123,143 @@ const ItemMetaData gItemMetaData[] = { [ITEM_SKILL_FAST_SPLIT] = { 0x63u, 0u, 0u, 0x2u, 0x74u, TEXT_ITEM_GET, 0x74u, 0x5u }, [ITEM_SKILL_LONG_SPIN] = { 0x63u, 0u, 0u, 0x2u, 0x75u, TEXT_ITEM_GET, 0x75u, 0x5u }, }; + +// TODO Shop price and item get message +const struct_080FD964 gUnk_080FD964[] = { + [ITEM_NONE] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x1) }, + [ITEM_SMITH_SWORD] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x1) }, + [ITEM_GREEN_SWORD] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x2) }, + [ITEM_RED_SWORD] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x3) }, + [ITEM_BLUE_SWORD] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x4) }, + [ITEM_UNUSED_SWORD] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x5) }, + [ITEM_FOURSWORD] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x6) }, + [ITEM_BOMBS] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x1c) }, + [ITEM_REMOTE_BOMBS] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x8) }, + [ITEM_BOW] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x9) }, + [ITEM_LIGHT_ARROW] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0xa) }, + [ITEM_BOOMERANG] = { 300, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x24), TEXT_INDEX(TEXT_ITEM_GET, 0xb) }, + [ITEM_MAGIC_BOOMERANG] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0xc) }, + [ITEM_SHIELD] = { 40, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x02), TEXT_INDEX(TEXT_ITEM_GET, 0x1d) }, + [ITEM_MIRROR_SHIELD] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0xe) }, + [ITEM_LANTERN_OFF] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0xf) }, + [ITEM_LANTERN_ON] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x10) }, + [ITEM_GUST_JAR] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x11) }, + [ITEM_PACCI_CANE] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x12) }, + [ITEM_MOLE_MITTS] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x13) }, + [ITEM_ROCS_CAPE] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x14) }, + [ITEM_PEGASUS_BOOTS] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x15) }, + [ITEM_FIRE_ROD] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x16) }, + [ITEM_OCARINA] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x17) }, + [ITEM_ORB_GREEN] = { 0, 0, 0x0, 0x0 }, + [ITEM_ORB_BLUE] = { 0, 0, 0x0, 0x0 }, + [ITEM_ORB_RED] = { 0, 0, 0x0, 0x0 }, + [ITEM_TRY_PICKUP_OBJECT] = { 0, 0, 0x0, 0x0 }, + [ITEM_BOTTLE1] = { 100, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x20) }, + [ITEM_BOTTLE2] = { 100, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x06), TEXT_INDEX(TEXT_ITEM_GET, 0x20) }, + [ITEM_BOTTLE3] = { 100, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x20) }, + [ITEM_BOTTLE4] = { 100, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x20) }, + [ITEM_BOTTLE_EMPTY] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x20) }, + [ITEM_BOTTLE_BUTTER] = { 120, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x21) }, + [ITEM_BOTTLE_MILK] = { 100, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x22) }, + [ITEM_BOTTLE_HALF_MILK] = { 60, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x23) }, + [ITEM_BOTTLE_RED_POTION] = { 150, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x24) }, + [ITEM_BOTTLE_BLUE_POTION] = { 60, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x25) }, + [ITEM_BOTTLE_WATER] = { 1, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x26) }, + [ITEM_BOTTLE_MINERAL_WATER] = { 5, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x27) }, + [ITEM_BOTTLE_FAIRY] = { 7, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x28) }, +#ifdef EU + [ITEM_BOTTLE_PICOLYTE_RED] = { 100, 0, TEXT_INDEX(TEXT_PICOLYTE, 0x01), TEXT_INDEX(TEXT_ITEM_GET, 0x29) }, + [ITEM_BOTTLE_PICOLYTE_ORANGE] = { 300, 0, TEXT_INDEX(TEXT_PICOLYTE, 0x06), TEXT_INDEX(TEXT_ITEM_GET, 0x2a) }, + [ITEM_BOTTLE_PICOLYTE_YELLOW] = { 200, 0, TEXT_INDEX(TEXT_PICOLYTE, 0x04), TEXT_INDEX(TEXT_ITEM_GET, 0x2b) }, + [ITEM_BOTTLE_PICOLYTE_GREEN] = { 100, 0, TEXT_INDEX(TEXT_PICOLYTE, 0x03), TEXT_INDEX(TEXT_ITEM_GET, 0x2c) }, + [ITEM_BOTTLE_PICOLYTE_BLUE] = { 200, 0, TEXT_INDEX(TEXT_PICOLYTE, 0x05), TEXT_INDEX(TEXT_ITEM_GET, 0x2d) }, + [ITEM_BOTTLE_PICOLYTE_WHITE] = { 100, 0, TEXT_INDEX(TEXT_PICOLYTE, 0x02), TEXT_INDEX(TEXT_ITEM_GET, 0x2e) }, +#else + [ITEM_BOTTLE_PICOLYTE_RED] = { 200, 0, TEXT_INDEX(TEXT_PICOLYTE, 0x01), TEXT_INDEX(TEXT_ITEM_GET, 0x29) }, + [ITEM_BOTTLE_PICOLYTE_ORANGE] = { 200, 0, TEXT_INDEX(TEXT_PICOLYTE, 0x06), TEXT_INDEX(TEXT_ITEM_GET, 0x2a) }, + [ITEM_BOTTLE_PICOLYTE_YELLOW] = { 200, 0, TEXT_INDEX(TEXT_PICOLYTE, 0x04), TEXT_INDEX(TEXT_ITEM_GET, 0x2b) }, + [ITEM_BOTTLE_PICOLYTE_GREEN] = { 200, 0, TEXT_INDEX(TEXT_PICOLYTE, 0x03), TEXT_INDEX(TEXT_ITEM_GET, 0x2c) }, + [ITEM_BOTTLE_PICOLYTE_BLUE] = { 200, 0, TEXT_INDEX(TEXT_PICOLYTE, 0x05), TEXT_INDEX(TEXT_ITEM_GET, 0x2d) }, + [ITEM_BOTTLE_PICOLYTE_WHITE] = { 200, 0, TEXT_INDEX(TEXT_PICOLYTE, 0x02), TEXT_INDEX(TEXT_ITEM_GET, 0x2e) }, +#endif + [BOTTLE_CHARM_NAYRU] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x2f) }, + [BOTTLE_CHARM_FARORE] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x30) }, + [BOTTLE_CHARM_DIN] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x31) }, + [ITEM_32] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x32) }, + [ITEM_33] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x33) }, + [ITEM_QST_SWORD] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x34) }, + [ITEM_QST_BROKEN_SWORD] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x35) }, + [ITEM_QST_DOGFOOD] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x36) }, + [ITEM_QST_LONLON_KEY] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x37) }, + [ITEM_QST_MUSHROOM] = { 60, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x38) }, + [ITEM_QST_BOOK1] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x39) }, + [ITEM_QST_BOOK2] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x3a) }, + [ITEM_QST_BOOK3] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x3b) }, + [ITEM_QST_GRAVEYARD_KEY] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x3d) }, + [ITEM_QST_TINGLE_TROPHY] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x95) }, + [ITEM_QST_CARLOV_MEDAL] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x96) }, + [ITEM_SHELLS] = { 15, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x05), TEXT_INDEX(TEXT_ITEM_GET, 0x77) }, + [ITEM_EARTH_ELEMENT] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x40) }, + [ITEM_FIRE_ELEMENT] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x41) }, + [ITEM_WATER_ELEMENT] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x42) }, + [ITEM_WIND_ELEMENT] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x43) }, + [ITEM_GRIP_RING] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x44) }, + [ITEM_POWER_BRACELETS] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x45) }, + [ITEM_FLIPPERS] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x46) }, + [ITEM_MAP] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x47) }, + [ITEM_SKILL_SPIN_ATTACK] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x48) }, + [ITEM_SKILL_ROLL_ATTACK] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x49) }, + [ITEM_SKILL_DASH_ATTACK] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x4a) }, + [ITEM_SKILL_ROCK_BREAKER] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x4b) }, + [ITEM_SKILL_SWORD_BEAM] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x4c) }, + [ITEM_SKILL_GREAT_SPIN] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x4d) }, + [ITEM_SKILL_DOWN_THRUST] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x4e) }, + [ITEM_SKILL_PERIL_BEAM] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x4f) }, + [ITEM_DUNGEON_MAP] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x50) }, + [ITEM_COMPASS] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x51) }, + [ITEM_BIG_KEY] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x52) }, + [ITEM_SMALL_KEY] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x53) }, + [ITEM_RUPEE1] = { 1, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x54) }, + [ITEM_RUPEE5] = { 5, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x55) }, + [ITEM_RUPEE20] = { 20, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x56) }, + [ITEM_RUPEE50] = { 50, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x57) }, + [ITEM_RUPEE100] = { 100, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x58) }, + [ITEM_RUPEE200] = { 200, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x59) }, + [ITEM_5A] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x5a) }, + [ITEM_JABBERNUT] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x5b) }, + [ITEM_KINSTONE] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x5c) }, + [ITEM_BOMBS5] = { 15, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x5d) }, + [ITEM_ARROWS5] = { 15, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x5e) }, + [ITEM_HEART] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x5f) }, + [ITEM_FAIRY] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x60) }, +#ifdef EU + [ITEM_SHELLS30] = { 300, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x05), TEXT_INDEX(TEXT_ITEM_GET, 0x76) }, +#else + [ITEM_SHELLS30] = { 200, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x05), TEXT_INDEX(TEXT_ITEM_GET, 0x76) }, +#endif + [ITEM_HEART_CONTAINER] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x62) }, + [ITEM_HEART_PIECE] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x18) }, + [ITEM_WALLET] = { 80, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x04), TEXT_INDEX(TEXT_ITEM_GET, 0x64) }, +#ifdef EU + [ITEM_BOMBBAG] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x07) }, +#else + [ITEM_BOMBBAG] = { 600, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x25), TEXT_INDEX(TEXT_ITEM_GET, 0x63) }, +#endif + [ITEM_LARGE_QUIVER] = { 600, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x07), TEXT_INDEX(TEXT_ITEM_GET, 0x66) }, + [ITEM_KINSTONE_BAG] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x67) }, + [ITEM_BRIOCHE] = { 20, 0, TEXT_INDEX(TEXT_BAKERY, 0x01), TEXT_INDEX(TEXT_ITEM_GET, 0x68) }, + [ITEM_CROISSANT] = { 30, 0, TEXT_INDEX(TEXT_BAKERY, 0x0a), TEXT_INDEX(TEXT_ITEM_GET, 0x69) }, + [ITEM_PIE] = { 40, 0, TEXT_INDEX(TEXT_BAKERY, 0x0b), TEXT_INDEX(TEXT_ITEM_GET, 0x6a) }, + [ITEM_CAKE] = { 60, 0, TEXT_INDEX(TEXT_BAKERY, 0x0c), TEXT_INDEX(TEXT_ITEM_GET, 0x6b) }, + [ITEM_BOMBS10] = { 30, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x03), TEXT_INDEX(TEXT_ITEM_GET, 0x91) }, + [ITEM_BOMBS30] = { 80, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x09), TEXT_INDEX(TEXT_ITEM_GET, 0x92) }, + [ITEM_ARROWS10] = { 20, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x08), TEXT_INDEX(TEXT_ITEM_GET, 0x93) }, + [ITEM_ARROWS30] = { 50, 0, TEXT_INDEX(TEXT_STOCKWELL, 0x0a), TEXT_INDEX(TEXT_ITEM_GET, 0x94) }, + [ITEM_ARROW_BUTTERFLY] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x70) }, + [ITEM_DIG_BUTTERFLY] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x71) }, + [ITEM_SWIM_BUTTERFLY] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x72) }, + [ITEM_SKILL_FAST_SPIN] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x73) }, + [ITEM_SKILL_FAST_SPLIT] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x74) }, + [ITEM_SKILL_LONG_SPIN] = { 0, 0, 0x0, TEXT_INDEX(TEXT_ITEM_GET, 0x75) }, + +}; diff --git a/src/itemUtils.c b/src/itemUtils.c new file mode 100644 index 00000000..36ed6bbf --- /dev/null +++ b/src/itemUtils.c @@ -0,0 +1,591 @@ +/** + * @file itemUtils.c + * + * @brief Item Utils + */ +#include "item.h" +#include "game.h" +#include "itemMetaData.h" +#include "sound.h" +#include "save.h" +#include "object.h" +#include "enemy.h" +#include "message.h" + +const s16 gWalletSizes[] = { 100, -4000, 300, -3996, 500, -3992, 999, -3988 }; +const u8 gBombBagSizes[] = { + 10, + 30, + 50, + 99, +}; +const u8 gQuiverSizes[] = { + 30, + 50, + 70, + 99, +}; +const u16 gUnk_080FD5A8[] = { 1, 5, 20, 50, 100, 200 }; + +u32 GetSaleItemConfirmMessageID(u32 item) { + const struct_080FD964* ptr = &gUnk_080FD964[item]; + return ptr->saleItemConfirmMessageId; +} + +s32 GetItemPrice(u32 item) { + const struct_080FD964* ptr = &gUnk_080FD964[item]; + return ptr->itemPrice; +} + +u32 GiveItem(Item item, u32 param_2) { + u32 uVar4; + u32 result; + u32 uVar9; + const ItemMetaData* metaData; + + uVar4 = GetInventoryValue(item); + metaData = &gItemMetaData[item]; + + if (uVar4 == 0) { + result = *(u16*)&metaData->textId; + } else { + result = *(u16*)&metaData->unk6; + } + if (!ItemIsBottle(item)) { + PutItemOnSlot(item); + if (uVar4 == 0) { + SetInventoryValue(item, 1); + } + } + switch (metaData->unk1) { + case 0: + default: + break; + case 1: + ModHealth(metaData->unk2); + SoundReq(SFX_HEART_GET); + break; + case 2: + ModRupees((u32)gUnk_080FD5A8[metaData->unk2]); + SoundReq(SFX_RUPEE_GET); + break; + case 3: + uVar9 = 0; + while (TRUE) { + if (3 < uVar9) { + return result; + } + if (GetInventoryValue(ITEM_BOTTLE1 + uVar9) == 0) + break; + uVar9++; + } + item = ITEM_BOTTLE1 + uVar9; + if (gSave.stats.bottles[uVar9] == 0) { + gSave.stats.bottles[uVar9] = 0x20; + } + SetInventoryValue(item, 1); + PutItemOnSlot(item); + break; + case 4: + uVar9 = 0; + while (gSave.stats.bottles[uVar9] != 0x20) { + uVar9++; + if (3 < uVar9) { + return result; + } + } + if (3 < uVar9) { + break; + } + gSave.stats.bottles[uVar9] = (u8)item; + SetInventoryValue(item, 1); + SoundReq(SFX_ITEM_GET); + break; + case 5: + ModDungeonKeys(1); + SoundReq(SFX_103); + break; + case 6: // TODO dungeon item? + gSave.dungeonItems[gArea.dungeon_idx] |= metaData->unk2; + break; + case 0xd: + sub_0801E738(0x72); + break; + case 0x12: + if (item == ITEM_BOOMERANG) { + SetInventoryValue(ITEM_MAGIC_BOOMERANG, 0); + } else { + SetInventoryValue(ITEM_BOOMERANG, 0); + } + case 0x11: + LoadItemGfx(); + break; + case 7: + if (item == ITEM_BOMBS) { + SetInventoryValue(ITEM_REMOTE_BOMBS, 0); + } else { + SetInventoryValue(ITEM_BOMBS, 0); + } + ModBombs(99); + LoadItemGfx(); + break; + case 8: + if (uVar4 == 0) { + SetInventoryValue(ITEM_BOMBS, 1); + PutItemOnSlot(7); + } else { + gSave.stats.bombBagType++; + if (3 < gSave.stats.bombBagType) { + gSave.stats.bombBagType = 3; + } + } + ModBombs(99); + break; + case 9: + ModBombs(metaData->unk2); + SoundReq(SFX_103); + break; + case 0xb: + if (GetInventoryValue(ITEM_LARGE_QUIVER) == 0) { + SetInventoryValue(ITEM_LARGE_QUIVER, 1); + } + ModArrows(99); + LoadItemGfx(); + break; + case 0xa: + gSave.stats.quiverType++; + if (3 < gSave.stats.quiverType) { + gSave.stats.quiverType = 3; + } + ModArrows(99); + break; + case 0xc: + ModArrows(metaData->unk2); + SoundReq(SFX_103); + break; + case 0x0e: + SetInventoryValue(ITEM_SHELLS, 1); + ModShells(param_2); + SoundReq(SFX_103); + break; + case 0x0f: + sub_0801E738(param_2); + break; + case 0x10: + gSave.stats.walletType++; + if (gSave.stats.walletType < 4) { + break; + } + gSave.stats.walletType = 3; + break; + } + return result; +} + +// TODO Adapt ItemMetaData struct +void sub_08054288(s32 param_1) { + const ItemMetaData* ptr1 = gItemMetaData; + u16* ptr = (u16*)&((ptr1)[param_1]); + MessageFromTarget(ptr[3]); +} + +u32 getItemMetaDataGetTextIndex(s32 itemIndex) { + const ItemMetaData* ptr1 = gItemMetaData; + u16* ptr = (u16*)&((ptr1)[itemIndex]); + return ptr[2]; +} + +u32 sub_080542AC(u32 param_1) { + const ItemMetaData* ptr1 = gItemMetaData; + u8* ptr = (u8*)&((ptr1)[param_1]); + return ptr[3] & 1; +} + +void ModShells(s32 shells) { + if (shells == 0) { + shells = 1; + } + shells += gSave.stats.shells; + if (shells < 0) { + shells = 0; + } else if (999 < shells) { + shells = 999; + } + gSave.stats.shells = shells; +} + +void ModBombs(s32 bombs) { + s32 bombCount = bombs; + s32 bagSize; + bombCount += gSave.stats.bombCount; + bagSize = gBombBagSizes[gSave.stats.bombBagType]; + if (bombCount < 0) { + bombCount = 0; + } else if (bagSize < bombCount) { + bombCount = bagSize; + } + gSave.stats.bombCount = bombCount; +} + +void ModArrows(s32 arrows) { + s32 quiverSize; + s32 arrowCount = arrows; + arrowCount += gSave.stats.arrowCount; + quiverSize = gQuiverSizes[gSave.stats.quiverType]; + if (arrowCount < 0) { + arrowCount = 0; + } else if (quiverSize < arrowCount) { + arrowCount = quiverSize; + } + gSave.stats.arrowCount = arrowCount; +} + +/** + * @brief Returns the slot the item is equipped in. + * + * 0: A + * 1: B + * 2: Not equipped + */ +EquipSlot IsItemEquipped(u32 itemId) { + EquipSlot equipSlot; + + if (itemId == gSave.stats.itemButtons[SLOT_A]) { + equipSlot = EQUIP_SLOT_A; + } else if (itemId == gSave.stats.itemButtons[SLOT_B]) { + equipSlot = EQUIP_SLOT_B; + } else { + equipSlot = EQUIP_SLOT_NONE; + } + return equipSlot; +} + +void PutItemOnSlot(u32 itemId) { + EquipSlot equipSlot; + u32 itemId2 = itemId; + if (itemId2 < 0x47) { + SetInventoryValue(0, 1); + } + if (itemId2 - 1 < 0x1f) { + equipSlot = EQUIP_SLOT_NONE; + if (gSave.stats.itemButtons[SLOT_A] == ITEM_NONE) { + equipSlot = EQUIP_SLOT_A; + } else if (gSave.stats.itemButtons[SLOT_B] == ITEM_NONE) { + equipSlot = EQUIP_SLOT_B; + } + if (equipSlot == EQUIP_SLOT_NONE) { + u32 temp = gItemMetaData[itemId2].menuSlot; + if (temp == gItemMetaData[gSave.stats.itemButtons[SLOT_A]].menuSlot) { + equipSlot = EQUIP_SLOT_A; + } else { + if (temp == gItemMetaData[gSave.stats.itemButtons[SLOT_B]].menuSlot) { + equipSlot = EQUIP_SLOT_B; + } + } + if (equipSlot == EQUIP_SLOT_NONE) { + return; + } + } + ForceEquipItem(itemId2, equipSlot); + } +} + +void ForceEquipItem(u32 itemId, u32 equipSlot) { + u32 otherItem; + u32 otherItemSlot; + u32 replacedItem; + + if ((itemId - 1 < 0x1f) && (equipSlot < EQUIP_SLOT_NONE)) { + otherItemSlot = equipSlot == EQUIP_SLOT_A; + replacedItem = gSave.stats.itemButtons[equipSlot]; + otherItem = gSave.stats.itemButtons[otherItemSlot]; + if (gItemMetaData[otherItem].menuSlot == gItemMetaData[itemId].menuSlot) { + otherItem = replacedItem; + } + gSave.stats.itemButtons[equipSlot] = itemId; + gSave.stats.itemButtons[otherItemSlot] = otherItem; + gUnk_0200AF00.unk_13 = 0x7f; + gUnk_0200AF00.unk_14 = 0x7f; + } +} + +u32 SetBottleContents(u32 itemId, u32 bottleIndex) { + if (bottleIndex > 3) { + bottleIndex = 0; + for (bottleIndex = 0; gSave.stats.bottles[bottleIndex] != ITEM_BOTTLE_EMPTY;) { + if (++bottleIndex > 3) { + return bottleIndex; + } + } + if (bottleIndex > 3) { + return bottleIndex; + } + } + gSave.stats.bottles[bottleIndex] = itemId; + return bottleIndex; +} + +bool32 ItemIsSword(u32 item) { + switch (item) { + case ITEM_SMITH_SWORD: + case ITEM_GREEN_SWORD: + case ITEM_RED_SWORD: + case ITEM_BLUE_SWORD: + case ITEM_FOURSWORD: + return TRUE; + default: + return FALSE; + } +} + +bool32 ItemIsShield(u32 id) { + switch (id) { + case ITEM_SHIELD: + case ITEM_MIRROR_SHIELD: + return TRUE; + default: + return FALSE; + } +} + +bool32 ItemIsBottle(u32 id) { + switch (id) { + case ITEM_BOTTLE1: + case ITEM_BOTTLE2: + case ITEM_BOTTLE3: + case ITEM_BOTTLE4: + return TRUE; + default: + return FALSE; + } +} + +u32 GetBottleContaining(u32 id) { + if (id == gSave.stats.bottles[0]) { + return 1; + } else if (id == gSave.stats.bottles[1]) { + return 2; + } else if (id == gSave.stats.bottles[2]) { + return 3; + } else if (id == gSave.stats.bottles[3]) { + return 4; + } else { + return 0; + } +} + +extern u8 gUnk_080FE1C6[]; +void sub_08054524(void) { + u32 bVar1; + + bVar1 = gArea.locationIndex; + if (gArea.locationIndex == 0) { + bVar1 = gRoomTransition.player_status.field_0x24[0xa]; + } + if (bVar1 > 0x16) { + bVar1 = 0; + } + + bVar1 = gUnk_080FE1C6[bVar1]; + MemCopy(&gAreaDroptables[bVar1], &gRoomVars.currentAreaDroptable, sizeof(Droptable)); +} + +void DisableRandomDrops(void) { + gRoomVars.randomDropsDisabled = TRUE; +} + +void EnableRandomDrops(void) { + gRoomVars.randomDropsDisabled = FALSE; +} + +extern void sub_08000F14(s16*, const s16*, const s16*, const s16*); +extern u32 sub_08000F2C(s16*, const s16*, const s16*, const s16*); +u32 CreateItemDrop(Entity* arg0, u32 itemId, u32 itemParameter); +u32 CreateRandomItemDrop(Entity* arg0, u32 arg1) { + extern const u8 gUnk_080FE1B4[] /* = { + ITEM_NONE, ITEM_RUPEE1, ITEM_RUPEE5, ITEM_RUPEE20, ITEM_HEART, ITEM_FAIRY, + ITEM_BOMBS5, ITEM_ARROWS5, ITEM_SHELLS, ITEM_KINSTONE_GREEN, ITEM_KINSTONE_BLUE, ITEM_KINSTONE_RED, + ITEM_ENEMY_BEETLE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, ITEM_NONE, + }*/; + + int r0, r1, rand, summOdds, item; + u32 r3; + const Droptable *ptr2, *ptr3, *ptr4; + Droptable droptable; + r3 = arg1; + if (gRoomVars.randomDropsDisabled != TRUE) { + ptr2 = &gDroptableModifiers[DROPTABLE_NONE]; + ptr4 = NULL; + switch (r3) { + case 1 ... 12: + ptr4 = &gEnemyDroptables[r3]; + break; +#ifndef EU + case 24: + case 25: + r0 = gRoomVars.unk2; + ptr4 = &gUnk_0800191C[0]; + if (r0) { + ptr4++; + } + break; +#endif + case 16 ... 23: +#ifdef EU + case 24: +#endif + ptr2 = &gObjectDroptables[r3 - 16]; + case 15: + ptr4 = &gRoomVars.currentAreaDroptable; + break; + case 0: + default: + break; + } + if (ptr4 != 0) { + if ((r1 = gSave.stats.picolyteType) == 0) { + // nop + ptr3 = &gDroptableModifiers[DROPTABLE_NONE]; + } else { +#ifdef EU + ptr3 = &gEnemyDroptables[r1 + 9]; +#else + ptr3 = &gEnemyDroptables[r1 + 6]; +#endif + } + // vector addition, s0 = ptr4 + ptr2 + ptr3 + sub_08000F14(droptable.a, ptr4->a, ptr2->a, ptr3->a); + if (gSave.stats.health <= 8) { + droptable.s.hearts += 5; + } + if (gSave.stats.bombCount == 0) { + droptable.s.bombs += 3; + } + if (gSave.stats.arrowCount == 0) { + droptable.s.arrows += 3; + } + if (gSave.stats.rupees <= 10) { + droptable.s.rupee5++; + } + ptr2 = &gDroptableModifiers[DROPTABLE_NONE]; + r0 = gSave.stats.hasAllFigurines; + ptr3 = &gDroptableModifiers[DROPTABLE_NONE]; + // don't drop shells anymore + if (r0 != 0) { + ptr2 = &gDroptableModifiers[DROPTABLE_NO_SHELLS]; + } + // don't drop kinstones anymore + if (gSave.didAllFusions != 0) { + ptr3 = &gDroptableModifiers[DROPTABLE_NO_KINSTONES]; + } + // vector addition, s0 = s0 + ptr2 + ptr3 + // resulting values are clamped to be >= 0 + // returns sum over s0 + summOdds = sub_08000F2C(droptable.a, droptable.a, ptr2->a, ptr3->a); + rand = Random(); + item = (rand >> 0x18); + item &= 0xF; + rand = rand % summOdds; + { + u32 r3; + for (r3 = 0, r1 = 0; r3 < 0x10; r3++, item = (item + 1) & 0xF) { + if ((r1 += droptable.a[item]) > rand) { + break; + } + } + } + r1 = gUnk_080FE1B4[item]; + if (r1 != ITEM_NONE) { + return CreateItemDrop(arg0, r1, 0); + } + } + } + return ITEM_NONE; +} + +extern u8 gUnk_080FE1DD[]; +u32 CreateItemDrop(Entity* arg0, u32 itemId, u32 itemParameter) { + u32 adjustedParam = itemParameter; + Entity* itemEntity; + + switch (itemId) { + case ITEM_ENEMY_BEETLE: + if (!GetInventoryValue(ITEM_SMITH_SWORD)) { + return ITEM_NONE; + } + break; + case ITEM_BOMBS5: + if (!GetInventoryValue(ITEM_BOMBBAG)) { + return ITEM_NONE; + } + break; + case ITEM_ARROWS5: + if (!GetInventoryValue(ITEM_BOW)) { + return ITEM_NONE; + } + break; + case ITEM_SHELLS: { + if (!GetInventoryValue(ITEM_EARTH_ELEMENT)) { + return ITEM_NONE; + } + if (itemParameter == 0) { + adjustedParam = 1; + } + break; + } + case ITEM_KINSTONE: + case ITEM_KINSTONE_GREEN ... ITEM_KINSTONE_RED: { + u32 rand; + + if (GetInventoryValue(ITEM_KINSTONE_BAG) == 0) { + return ITEM_NONE; + } + if (3 < gRoomVars.filler1[0]) { + return ITEM_NONE; + } + + if (itemId != ITEM_KINSTONE) { + adjustedParam = itemId - ITEM_KINSTONE_GREEN; + rand = (Random() & 0x3f); + adjustedParam = gUnk_080FE1DD[(rand + adjustedParam * 0x40)]; + if (adjustedParam == 0) { + itemId = ITEM_NONE; + } else { + itemId = ITEM_KINSTONE; + } + } + break; + } + } + if (itemId != ITEM_NONE) { + if (itemId != ITEM_ENEMY_BEETLE) { + itemEntity = CreateObject(GROUND_ITEM, itemId, adjustedParam); + if (itemEntity != NULL) { + if (arg0 == &gPlayerEntity) { + itemEntity->timer = 1; + } else { + itemEntity->timer = 0; + } + if (arg0->kind == OBJECT) { + if (arg0->id == 99) { + arg0->child = itemEntity; + } else if (arg0->id == 0x1e) { + itemEntity->direction = arg0->animationState << 3 | 0x80; + itemEntity->speed = 0xc0; + itemEntity->zVelocity = Q_16_16(1.5); + } + } + CopyPosition(arg0, itemEntity); + } + } else { + itemEntity = CreateEnemy(BEETLE, 0); + if (itemEntity != NULL) { + itemEntity->x.HALF.HI = arg0->x.HALF.HI; + itemEntity->y.HALF.HI = arg0->y.HALF.HI; + itemEntity->collisionLayer = arg0->collisionLayer; + UpdateSpriteForCollisionLayer(itemEntity); + } + } + } + return itemId; +} diff --git a/src/kinstone.c b/src/kinstone.c index 043f6623..1be80aa3 100644 --- a/src/kinstone.c +++ b/src/kinstone.c @@ -25,12 +25,12 @@ extern const EntityData gUnk_080FEE58[]; extern const void* gUnk_080FED98[]; void sub_08018AB4(int); -void sub_08018BB4(int); -void sub_08018A58(int); -void sub_08018B50(int); -void sub_080189EC(int); -void sub_0801876C(int, int); -void sub_08018738(u32, int); +void sub_08018BB4(u32 worldEventId); +void sub_08018A58(u32 worldEventId); +void sub_08018B50(u32 worldEventId); +void sub_080189EC(u32 worldEventId); +void sub_0801876C(u32 worldEventId, bool32 isKinstoneFused); +void sub_08018738(u32 kinstoneId, u32 worldEventId); void ShuffleEzloHints(int count, u16* basePtr); void sub_08018500(); bool32 sub_080185B4(const struct_gUnk_080B3D20* param_1); @@ -239,60 +239,60 @@ void sub_080186D4(void) { } void sub_080186EC(u32 param_1) { - const struct_080C9CBC* psVar1; + const KinstoneWorldEvent* psVar1; u32 i; - for (i = 0, psVar1 = gUnk_080C9CBC; i <= 100; psVar1++, i++) { - if (psVar1->unk3 == 8) { - sub_08018738(i, psVar1->evt_type); + for (i = 0, psVar1 = gKinstoneWorldEvents; i <= 100; psVar1++, i++) { + if (psVar1->subtask == SUBTASK_WORLDEVENT) { + sub_08018738(i, psVar1->worldEventId); } } } -void sub_08018710(u32 param_1) { - const struct_080C9CBC* psVar1; +void sub_08018710(u32 previousworldEventId) { + const KinstoneWorldEvent* psVar1; u32 i; - for (i = 0, psVar1 = gUnk_080C9CBC; i <= 100; psVar1++, i++) { - if (psVar1->unk3 == 8 && param_1 != psVar1->evt_type) { - sub_08018738(i, psVar1->evt_type); + for (i = 0, psVar1 = gKinstoneWorldEvents; i <= 100; psVar1++, i++) { + if (psVar1->subtask == SUBTASK_WORLDEVENT && previousworldEventId != psVar1->worldEventId) { + sub_08018738(i, psVar1->worldEventId); } } } -void sub_08018738(u32 param_1, int param_2) { - struct_080FE320* ptr = &gUnk_080FE320[param_2]; +void sub_08018738(u32 kinstoneId, u32 worldEventId) { + const WorldEvent* ptr = &gWorldEvents[worldEventId]; if (ptr->area == gRoomControls.area && ptr->room == gRoomControls.room) { - sub_0801876C(param_2, CheckKinstoneFused(param_1)); + sub_0801876C(worldEventId, CheckKinstoneFused(kinstoneId)); } } -void sub_0801876C(int param_1, int param_2) { +void sub_0801876C(u32 worldEventId, bool32 isKinstoneFused) { Entity* roomEnt; Entity* ent; u32 uVar3; u32 tmp; u8* puVar4; u32 uVar5; - struct_080FE320* ptr; + const WorldEvent* ptr; - ptr = &gUnk_080FE320[param_1]; - switch (ptr->evt_type) { - case 6: - if (param_2 == 0) { + ptr = &gWorldEvents[worldEventId]; + switch (ptr->type) { + case WORLD_EVENT_TYPE_6: + if (isKinstoneFused == 0) { sub_08018AB4((ptr->x >> 4 & 0x3f) | (ptr->y >> 4 & 0x3f) << 6); } break; - case 0: + case WORLD_EVENT_TYPE_0: break; - case 2: - if (param_2 != 0) { - sub_08018BB4(param_1); + case WORLD_EVENT_TYPE_2: + if (isKinstoneFused != 0) { + sub_08018BB4(worldEventId); } break; - case 1: - if (param_2 == 0) { + case WORLD_EVENT_TYPE_1: + if (isKinstoneFused == 0) { return; } if (CheckGlobalFlag(ptr->flag)) { @@ -300,8 +300,8 @@ void sub_0801876C(int param_1, int param_2) { } LoadRoomEntity(gUnk_080FEC28 + ptr->entity_idx); break; - case 3: - if (param_2 == 0) { + case WORLD_EVENT_TYPE_3: + if (isKinstoneFused == 0) { return; } if (GetInventoryValue(ptr->flag)) { @@ -309,47 +309,47 @@ void sub_0801876C(int param_1, int param_2) { } LoadRoomEntity(gUnk_080FEBE8 + ptr->entity_idx); break; - case 4: - if (param_2 == 0) { - sub_08018A58(param_1); + case WORLD_EVENT_TYPE_4: + if (isKinstoneFused == 0) { + sub_08018A58(worldEventId); } break; - case 5: - if (param_2 != 0) { - sub_08018B50(param_1); + case WORLD_EVENT_TYPE_5: + if (isKinstoneFused != 0) { + sub_08018B50(worldEventId); } break; - case 7: - if (param_2 != 0) { + case WORLD_EVENT_TYPE_7: + if (isKinstoneFused != 0) { return; } if (ptr->entity_idx != 0x80) { LoadRoomEntity(gUnk_080FECC8 + ptr->entity_idx); } else { - sub_080189EC(param_1); + sub_080189EC(worldEventId); } break; - case 0x19: + case WORLD_EVENT_TYPE_25: roomEnt = LoadRoomEntity(&gUnk_080FED18[ptr->entity_idx]); if (roomEnt != 0) { - roomEnt->type = param_2 ? 2 : 0; + roomEnt->type = isKinstoneFused ? 2 : 0; } break; - case 8: - if (param_2 == 0) { + case WORLD_EVENT_TYPE_8: + if (isKinstoneFused == 0) { return; } SetTileType(0x168, (ptr->x >> 4 & 0x3f) | (ptr->y >> 4 & 0x3f) << 6, 1); break; - case 0xb: - if (param_2 != 0) { + case WORLD_EVENT_TYPE_11: + if (isKinstoneFused != 0) { LoadRoomEntity(&gUnk_080FED58[ptr->entity_idx]); gRoomVars.field_0x8c[ptr->entity_idx] = (void*)gUnk_080FED98[ptr->entity_idx]; } break; - case 9: - if (param_2 == 0) { + case WORLD_EVENT_TYPE_9: + if (isKinstoneFused == 0) { return; } ent = LoadRoomEntity(&gUnk_080FEE78[ptr->entity_idx]); @@ -366,38 +366,38 @@ void sub_0801876C(int param_1, int param_2) { SetTileType(uVar3, uVar5, 1); } break; - case 0x18: - if (param_2 != 0) { + case WORLD_EVENT_TYPE_24: + if (isKinstoneFused != 0) { LoadRoomEntityList(gUnk_080FEE18); } break; - case 0xf: - if (param_2 != 0) { + case WORLD_EVENT_TYPE_15: + if (isKinstoneFused != 0) { LoadRoomEntity(gUnk_080FEE58); } else { LoadRoomEntity(gUnk_080FEE48); } break; - case 0x11: - if (param_2 != 0) { + case WORLD_EVENT_TYPE_17: + if (isKinstoneFused != 0) { SetLocalFlagByBank(FLAG_BANK_1, SOUGEN_05_BOMB_00); LoadRoomEntityList(gUnk_080FEE38); } break; - case 0x1a: - case 0x1b: - case 0x1c: + case WORLD_EVENT_TYPE_26: + case WORLD_EVENT_TYPE_27: + case WORLD_EVENT_TYPE_28: break; } } -void sub_080189EC(int param_1) { +void sub_080189EC(u32 worldEventId) { u32 i; int iVar1; int tilePosition; - struct_080FE320* ptr; + const WorldEvent* ptr; - ptr = &gUnk_080FE320[param_1]; + ptr = &gWorldEvents[worldEventId]; tilePosition = (ptr->x >> 4) & 0x3f; tilePosition |= ((ptr->y >> 4) & 0x3f) << 6; @@ -414,14 +414,14 @@ void sub_080189EC(int param_1) { } } -void sub_08018A58(int param_1) { +void sub_08018A58(u32 worldEventId) { u32 i; int iVar2; u32 j; int tilePosition; - struct_080FE320* ptr; + const WorldEvent* ptr; - ptr = &gUnk_080FE320[param_1]; + ptr = &gWorldEvents[worldEventId]; tilePosition = (ptr->x >> 4) & 0x3f; tilePosition |= ((ptr->y >> 4) & 0x3f) << 6; @@ -470,14 +470,14 @@ void sub_08018B10(int param_1) { } } -void sub_08018B50(int param_1) { +void sub_08018B50(u32 worldEventId) { u32 i; int iVar2; u32 j; int tilePosition; - struct_080FE320* ptr; + const WorldEvent* ptr; - ptr = &gUnk_080FE320[param_1]; + ptr = &gWorldEvents[worldEventId]; if ((ptr->entity_idx & 0x80) == 0) { iVar2 = 0x200; } else { @@ -495,14 +495,15 @@ void sub_08018B50(int param_1) { } } -void sub_08018BB4(int param_1) { +// TODO world event that loads tile entity +void sub_08018BB4(u32 worldEventId) { u32 layer; TileEntity tile; - struct_080FE320* ptr; + const WorldEvent* ptr; u32 position; - MemCopy(gUnk_080FEAC8 + param_1, &tile, sizeof(TileEntity)); - ptr = &gUnk_080FE320[param_1]; + MemCopy(gUnk_080FEAC8 + worldEventId, &tile, sizeof(TileEntity)); + ptr = &gWorldEvents[worldEventId]; tile.tilePos = (ptr->x >> 4 & 0x3f) | (((ptr->y) >> 4 & 0x3f) << 6); sub_0804B3C4(&tile); if (CheckLocalFlag(tile.localFlag) == 0) { diff --git a/src/main.c b/src/main.c index 2e4cda6a..87d04e87 100644 --- a/src/main.c +++ b/src/main.c @@ -169,7 +169,7 @@ const SaveHeader sDefaultSettings = { }; // single misplaced ldr -NONMATCH("asm/non_matching/InitSaveHeader.inc", /*static*/ void InitSaveHeader(void)) { +/*static*/ NONMATCH("asm/non_matching/InitSaveHeader.inc", void InitSaveHeader(void)) { u32 b; if (!CheckHeaderValid()) { diff --git a/src/manager/enterRoomTextboxManager.c b/src/manager/enterRoomTextboxManager.c index 0dcf7c9b..59f31e2f 100644 --- a/src/manager/enterRoomTextboxManager.c +++ b/src/manager/enterRoomTextboxManager.c @@ -7,6 +7,7 @@ #include "manager/enterRoomTextboxManager.h" #include "area.h" #include "common.h" +#include "fileselect.h" #include "functions.h" #include "game.h" #include "message.h" @@ -14,18 +15,24 @@ extern u8 gUnk_02034DF0[0x2F2]; -extern const u16 gUnk_08108DE8[]; -extern void (*const EnterRoomTextboxManager_Actions[])(EnterRoomTextboxManager*); -extern const u8 gUnk_08108E30[0x18]; -extern const u8 gUnk_08108E48[0x18]; -extern const u8 gUnk_08108E60[]; +const u16 gUnk_08108DE8[] = { 0, 0x70b, 0x70c, 0x70d, 0x70e, 0x70f, 0x710, 0x711, 0x712, 0x713, 0x714, + 0x715, 0x716, 0x717, 0x718, 0x719, 0x71a, 0x71b, 0x71c, 0x71d, 0x71e, 0x71f, + 0x726, 0x720, 0x720, 0x721, 0x722, 0x723, 0x725, 0x727, 0x724, 0x728 }; +void sub_0805E140(EnterRoomTextboxManager*); +void sub_0805E18C(EnterRoomTextboxManager*); +void (*const EnterRoomTextboxManager_Actions[])(EnterRoomTextboxManager*) = { + sub_0805E140, + sub_0805E18C, +}; -extern void sub_0805F46C(void*, const void*); +extern const Font gUnk_08108E30; +extern const Font gUnk_08108E48; +extern const u8 gUnk_08108E60[]; void sub_0805E140(EnterRoomTextboxManager*); void sub_0805E18C(EnterRoomTextboxManager*); // unused? void sub_0805E1D8(EnterRoomTextboxManager*); -void sub_0805E1F8(u32, u32); +void sub_0805E1F8(u32, bool32); void EnterRoomTextboxManager_Main(EnterRoomTextboxManager* this) { EnterRoomTextboxManager_Actions[super->action](this); @@ -65,21 +72,21 @@ void sub_0805E1D8(EnterRoomTextboxManager* this) { DeleteThisEntity(); } -void sub_0805E1F8(u32 unk0, u32 unk1) { +void sub_0805E1F8(u32 unk0, bool32 isDungeon) { struct { u8 unk_00[4]; u8 unk_04; u8 unk_05; u8 unk_06[3]; } PACKED tmp; - const u8* tmp2; + const Font* font; MemClear(&gUnk_02034DF0, 0x80); MemCopy(gUnk_08108E60, &tmp, sizeof(tmp)); tmp.unk_04 = unk0 >> 8; tmp.unk_05 = unk0; - tmp2 = gUnk_08108E48; - if (!unk1) - tmp2 = gUnk_08108E30; - sub_0805F46C(&tmp, tmp2); + font = &gUnk_08108E48; + if (!isDungeon) + font = &gUnk_08108E30; + ShowTextBox((u32)&tmp, font); gScreen.bg0.updated = 1; } diff --git a/src/manager/staticBackgroundManager.c b/src/manager/staticBackgroundManager.c index f069196c..a8bd1810 100644 --- a/src/manager/staticBackgroundManager.c +++ b/src/manager/staticBackgroundManager.c @@ -63,14 +63,14 @@ void sub_0805B474(StaticBackgroundManager* this) { } void sub_0805B4B4(StaticBackgroundManager* this) { - sub_0805B4D0(super->type); + LoadStaticBackground(super->type); if (super->type == 2) { sub_0806D0F8(); } StaticBackgroundManager_Main(this); } -void sub_0805B4D0(u32 param_1) { +void LoadStaticBackground(u32 param_1) { static const u8 gUnk_08108C5C[] = { 0x14, 0x15, 0x14, 0x2f, 0x4b, 0x4e, 0x4d, 0 }; s32 iVar1; u32 uVar2; diff --git a/src/manager/weatherChangeManager.c b/src/manager/weatherChangeManager.c index b74edcc2..f1988de4 100644 --- a/src/manager/weatherChangeManager.c +++ b/src/manager/weatherChangeManager.c @@ -58,7 +58,7 @@ void sub_080595E4(WeatherChangeManager* this) { gRoomVars.unk_10[0] = 0xFF; sub_08059690(this); sub_080596E0(this); - sub_0805B4D0(0); + LoadStaticBackground(0); } void sub_08059608(WeatherChangeManager* this) { diff --git a/src/menu/figurine_menu.c b/src/menu/figurineMenu.c similarity index 95% rename from src/menu/figurine_menu.c rename to src/menu/figurineMenu.c index 4a558423..2a19f06d 100644 --- a/src/menu/figurine_menu.c +++ b/src/menu/figurineMenu.c @@ -1,23 +1,27 @@ -#include "global.h" +/** + * @file figurineMenu.c + * @ingroup Subtasks + * + * @brief Figurine Menu Subtask + */ +#include "figurineMenu.h" + +#include "common.h" +#include "flags.h" +#include "functions.h" +#include "game.h" #include "main.h" #include "menu.h" -#include "sound.h" -#include "common.h" -#include "screen.h" -#include "save.h" -#include "flags.h" -#include "subtask.h" -#include "object.h" -#include "game.h" -#include "functions.h" #include "message.h" +#include "object.h" +#include "pauseMenu.h" +#include "save.h" +#include "screen.h" +#include "sound.h" +#include "subtask.h" +#include "subtask2.h" #include "ui.h" -extern const struct { - u8 filler[7]; - u8 unk7; -} gUnk_080FC3E4[]; - void sub_080A4DA8(u32); void sub_080A4B44(void); void FigurineMenu_080A4978(void); @@ -47,13 +51,7 @@ const KeyButtonLayout gUnk_0812813C = { }; extern u8 gUnk_020344A0[8]; -typedef struct { - u8 unk0; - u8 unk1; - u16 unk2; - u16 unk4; - u16 unk6; -} struct_08128AD8; + extern const struct_08128AD8 gUnk_08128AD8[]; Subtask FigurineMenu0_Type0; @@ -64,6 +62,7 @@ Subtask FigurineMenu1_Type0; Subtask FigurineMenu1_Type1; Subtask FigurineMenu1_Type2; Subtask FigurineMenu1_Type3; + void Subtask_FigurineMenu(void) { static Subtask* const figurineMenu1_Types[] = { FigurineMenu0_Type0, @@ -135,7 +134,7 @@ void FigurineMenu0_Type0(void) { void FigurineMenu0_Type1(void) { if (gFadeControl.active == 0) { - CreateObject(OBJECT_A2, gUnk_080FC3E4[gFigurineMenu.figure_idx].unk7, 0); + CreateObject(OBJECT_A2, gUnk_080FC3E4[gFigurineMenu.figure_idx].type, 0); SetMenuType(2); } } @@ -444,7 +443,7 @@ const struct_08128184 gUnk_08128184 = { }; extern struct_020227E8 gUnk_020227E8[]; -extern void sub_0805F46C(u32, const struct_0812816C*); +extern void ShowTextBox(u32, const struct_0812816C*); void sub_080A4BA0(u32 arg1, u32 arg2) { int r0, r5, r6; @@ -497,9 +496,9 @@ void sub_080A4BA0(u32 arg1, u32 arg2) { s2.unk9 = r5; s0.unk0 += 0xb; if (gSaveHeader->language == 0) { - sub_0805F46C((u32)&s2, &s0); + ShowTextBox((u32)&s2, &s0); } else { - sub_0805F46C(r5, &s0); + ShowTextBox(r5, &s0); } } gScreen.bg3.updated = 1; @@ -538,7 +537,7 @@ u32 sub_080A4CBC(u32 param_1) { MemCopy(&gBG1Buffer, (void*)0x600e000, sizeof(gBG1Buffer)); iVar1 = sub_080A4948(param_1); if (iVar1 != 0) { - sub_0805F46C(param_1 + 0x900, &gUnk_08128190); + ShowTextBox(param_1 + 0x900, &gUnk_08128190); } gScreen.bg1.updated = 1; } @@ -585,6 +584,7 @@ void sub_080A4DA8(u32 param_1) { sub_080A4DB8(param_1); } +// Render screen? void sub_080A4DB8(u32 param_1) { const struct_08128AD8* ptr; @@ -603,25 +603,25 @@ void sub_080A4DB8(u32 param_1) { gScreen.bg0.updated = 1; gScreen.bg1.xOffset = 0; gScreen.bg1.yOffset = 0; - gScreen.bg1.control = ptr->unk4; + gScreen.bg1.control = ptr->bg1Control; gScreen.bg1.updated = 1; gScreen.bg2.xOffset = 0; gScreen.bg2.yOffset = 0; - gScreen.bg2.control = ptr->unk6; + gScreen.bg2.control = ptr->bg2Control; gScreen.bg2.updated = 1; gScreen.bg3.xOffset = 0; gScreen.bg3.yOffset = 0; gScreen.bg3.control = 0x1e0b; - if (ptr->unk0 != 0) { - LoadPaletteGroup(ptr->unk0); + if (ptr->paletteGroup != 0) { + LoadPaletteGroup(ptr->paletteGroup); } - if (ptr->unk1 != 0) { - LoadGfxGroup(ptr->unk1); + if (ptr->gfxGroup != 0) { + LoadGfxGroup(ptr->gfxGroup); } } void sub_080A4E84(u8 param_1) { - gPauseMenuOptions.unk14 = param_1; + gPauseMenuOptions.screen2 = param_1; } void sub_080A4E90(u8 param_1) { diff --git a/src/menu/kinstone_menu.c b/src/menu/kinstoneMenu.c similarity index 95% rename from src/menu/kinstone_menu.c rename to src/menu/kinstoneMenu.c index 247902e4..e9aaad8e 100644 --- a/src/menu/kinstone_menu.c +++ b/src/menu/kinstoneMenu.c @@ -1,3 +1,9 @@ +/** + * @file kinstoneMenu.c + * @ingroup Subtasks + * + * @brief Kinstone Menu Subtask + */ #include "area.h" #include "common.h" #include "enemy.h" @@ -221,12 +227,12 @@ void KinstoneMenu_Type1(void) { } void KinstoneMenu_Type2(void) { - const struct_080C9CBC* ptr; + const KinstoneWorldEvent* ptr; if (gMenu.column_idx == 6) { gFuseInfo._0 = 6; - ptr = &gUnk_080C9CBC[gFuseInfo._3]; - if (ptr->unk3 != 0) { - MenuFadeIn(ptr->unk3, ptr->evt_type); + ptr = &gKinstoneWorldEvents[gFuseInfo.kinstoneId]; + if (ptr->subtask != 0) { + MenuFadeIn(ptr->subtask, ptr->worldEventId); } else { Subtask_Exit(); } @@ -259,8 +265,8 @@ void KinstoneMenu_Type3_Overlay0(void) { } void KinstoneMenu_Type3_Overlay1(void) { - u32 temp = gUnk_080C9CBC[gKinstoneMenu.unk2a].unk5; - if (temp != gUnk_080C9CBC[gFuseInfo._3].unk5) { + u32 temp = gKinstoneWorldEvents[gKinstoneMenu.unk2a].unk5; + if (temp != gKinstoneWorldEvents[gFuseInfo.kinstoneId].unk5) { SoundReq(SFX_ITEM_SHIELD_BOUNCE); SetMenuType(4); } else { @@ -313,8 +319,8 @@ void KinstoneMenu_Type5(void) { void KinstoneMenu_Type5_Overlay0(void) { gMenu.column_idx = 5; - WriteBit(gSave.unk241, gFuseInfo._3); - if (++gSave.unk117 > 99) { + WriteBit(gSave.fusedKinstones, gFuseInfo.kinstoneId); + if (++gSave.fusedKinstoneCount > 99) { gSave.didAllFusions = 1; } KinstoneMenu_080A4468(); @@ -499,16 +505,16 @@ void KinstoneMenu_080A422C(void) { } gOamCmd.x = t2; - sub_080A42E0(gFuseInfo._3, 0); + sub_080A42E0(gFuseInfo.kinstoneId, 0); } -void sub_080A42E0(u32 param_1, u32 param_2) { +void sub_080A42E0(u32 kinstoneId, u32 param_2) { u8 uVar1; s32 sVar2; s32 sVar3; s32 iVar4; - const struct_080C9CBC* ptr = &gUnk_080C9CBC[param_1]; + const KinstoneWorldEvent* ptr = &gKinstoneWorldEvents[kinstoneId]; if (param_2 == 0xff) { uVar1 = ptr->unk2; @@ -538,7 +544,7 @@ void sub_080A42E0(u32 param_1, u32 param_2) { } { int t; - t = ptr->unk0; + t = ptr->objPalette; t <<= 0xc; t |= 0x800; t |= (iVar4 << 4) + 0x300; @@ -602,7 +608,7 @@ u32 sub_080A4418(u32 param_1, u32 param_2) { void KinstoneMenu_080A4468(void) { gUnk_03003DF0.unk_2 = 0; gUnk_03003DF0.unk_4[3] = 0; - sub_0801E6C8(gFuseInfo._3); + sub_0801E6C8(gFuseInfo.kinstoneId); sub_0801E798(gKinstoneMenu.unk2a); } diff --git a/src/subtask2.c b/src/menu/pauseMenu.c similarity index 50% rename from src/subtask2.c rename to src/menu/pauseMenu.c index 4476477c..63f22f28 100644 --- a/src/subtask2.c +++ b/src/menu/pauseMenu.c @@ -1,131 +1,604 @@ +/** + * @file pauseMenu.c + * @ingroup Subtasks + * + * @brief Pause Menu Subtask + */ +#include "pauseMenu.h" + #include "common.h" -#include "fileselect.h" -#include "flags.h" #include "functions.h" #include "game.h" #include "item.h" #include "itemMetaData.h" -#include "kinstone.h" #include "main.h" #include "menu.h" #include "message.h" #include "save.h" #include "screen.h" +#include "sound.h" +#include "structures.h" #include "subtask.h" #include "ui.h" -#ifdef EU -#define DRAW_DIRECT_SPRITE_INDEX 0x1fa -#else -#define DRAW_DIRECT_SPRITE_INDEX 0x1fb -#endif +extern void sub_080A4DB8(u32); +void sub_080A5128(void); +void sub_080A51D4(void); +bool32 sub_080A51F4(void); +void sub_080A5F48(u32, u32); + +void Subtask_PauseMenu(void) { + static Subtask* const pauseMenu_Variants[] = { + PauseMenu_Variant0, PauseMenu_Variant1, PauseMenu_Variant2, + PauseMenu_Variant3, PauseMenu_Variant4, PauseMenu_Variant5, + }; + + if (gPauseMenuOptions.unk11 == 6) { + SetBgmVolume(0x100); + Subtask_Exit(); + } else { + FlushSprites(); + pauseMenu_Variants[gPauseMenuOptions.unk11](); + sub_080A5128(); + UpdateUIElements(); + DrawUIElements(); + if (gPauseMenuOptions.unk11 != 4) { + gUnk_08128A38[gPauseMenuOptions.screen].func(); + } + CopyOAM(); + { + u32 t = gPauseMenuOptions.unk16; + u32 t2 = (t != 0) ? 0xe46 : 0; + gScreen.controls.layerFXControl = t2; + gScreen.controls.alphaBlend = (t << 8) | (0x10 - t); + } + } +} + +struct_08127F94* sub_080A6A80(u32, u32); + +extern u8 gUnk_02034492[]; +void sub_0801E8D4(void); +s32 sub_080A50A0(s32); + +void PauseMenu_Variant0(void) { + struct_08127F94* ptr; + int r0, r1; + + sub_0801E8D4(); + sub_080A4D34(); + r1 = 4; + do { + gUnk_02034492[r1] = 0; + r1++; + } while (r1 <= 0xd); + ptr = sub_080A6A80((u16)gRoomTransition.player_status.overworld_map_x, + (u16)gRoomTransition.player_status.overworld_map_y); + gPauseMenuOptions.unk2[4] = ptr->_4; + gPauseMenuOptions.unk2[5] = sub_0801DB94(); + if (IsItemEquipped(ITEM_LANTERN_ON) != EQUIP_SLOT_NONE) { + r1 = 0x10; + } else { + r1 = 0xf; + } + gPauseMenuOptions.unk15 = r1; + r0 = gUnk_08128A38[gPauseMenuOptions.screen].unk1; + r0 = sub_080A50A0(r0); + gPauseMenuOptions.screen = r0; + gPauseMenuOptions.screen2 = r0; + sub_080A4DB8(r0); + SetFade(FADE_INSTANT, 0x20); + sub_080A4E90(1); +} + +void PauseMenu_Variant1(void) { + if (gFadeControl.active == 0) { + sub_080A4E90(2); + } +} + +void PauseMenu_Variant2(void) { + int iVar1; + u32 uVar2; + int iVar4; + s32 bVar5; + + if (sub_080A51F4() && (gMenu.field_0xc != NULL)) { + iVar1 = -1; + switch (gInput.newKeys) { + case START_BUTTON: + iVar1 = 0; + break; + case L_BUTTON: + iVar1 = 1; + break; + case R_BUTTON: + iVar1 = 2; + break; + case B_BUTTON: + iVar1 = 3; + break; + } + if (iVar1 >= 0) { + switch (bVar5 = gMenu.field_0xc[iVar1]) { + case 0: + break; + case 4 ... 6: + case 0xf: + uVar2 = GetInventoryValue(ITEM_MAP); + if (uVar2 == 0) { + iVar4 = 1; + if (iVar1 == 1) { + iVar4 = 2; + } + bVar5 = gMenu.field_0xc[iVar4]; + } + default: + gPauseMenuOptions.screen2 = bVar5; + SoundReq(SFX_TEXTBOX_OPEN); + gMenu.field_0xc = NULL; + break; + } + } + } + bVar5 = sub_080A50A0(gPauseMenuOptions.screen2); + if (gPauseMenuOptions.screen != bVar5) { + gPauseMenuOptions.screen2 = bVar5; + sub_080A51D4(); + if (bVar5 == 0xe) { + sub_080A4E90(6); + } else { + sub_080A4E90(3); + MemClear(&gBG0Buffer, sizeof(gBG0Buffer)); + gScreen.bg0.updated = 1; + } + } +} + +s32 sub_080A50A0(s32 param_1) { + s32 iVar1; + + if (param_1 == 0xf) { + iVar1 = AreaHasMap(); + param_1 = 4; + if (iVar1 != 0) { + param_1 = 5; + } + } + return param_1; +} + +void PauseMenu_Variant3(void) { + s32 iVar1; + + iVar1 = gPauseMenuOptions.unk16 + 2; + if (0x10 < iVar1) { + gScreen.lcd.displayControl &= 0xf8ff; + sub_080A4E90(4); + iVar1 = 0x10; + } + gPauseMenuOptions.unk16 = iVar1; +} + +void PauseMenu_Variant4(void) { + u32 t; + gPauseMenuOptions.unk16 = 0x10; + gPauseMenuOptions.screen = t = gPauseMenuOptions.screen2; + sub_080A4DB8(t); + sub_080A4E90(5); +} + +void PauseMenu_Variant5(void) { + s32 iVar1; + + iVar1 = gPauseMenuOptions.unk16 - 2; + if (iVar1 < 0) { + sub_080A4E90(2); + iVar1 = 0; + } + gPauseMenuOptions.unk16 = iVar1; +} + +void sub_080A5128(void) { + int r5, t; + struct { + int x; + int y; + } p[3]; + + switch (gPauseMenuOptions.screen) { + case PauseMenuScreen_7: + case PauseMenuScreen_8: + p[0].x = 0x60; + p[0].y = 0x18; + p[1].x = -0x10; + p[1].y = 0x48; + p[2].x = 0x100; + p[2].y = 0x48; + break; + case PauseMenuScreen_9: + case PauseMenuScreen_10: + case PauseMenuScreen_11: + return; + default: + p[0].x = 0x40; + p[0].y = 0x10 - (gPauseMenuOptions.unk16 << 1); + t = (gPauseMenuOptions.unk16 / 3); + p[1].x = 0x10 - t; + p[1].y = 0x48; + p[2].x = 0xe0 + t; + p[2].y = 0x48; + break; + } + gOamCmd._4 = 0; + gOamCmd._6 = 0; + gOamCmd._8 = 0x400; + gOamCmd.x = p[0].x; + gOamCmd.y = p[0].y; +#ifdef EU + r5 = 0x1fa; +#else + r5 = 0x1fb; +#endif + DrawDirect(r5, 0); + gOamCmd.x = p[1].x; + gOamCmd.y = p[1].y; + DrawDirect(r5, 1); + gOamCmd.x = p[2].x; + gOamCmd.y = p[2].y; + DrawDirect(r5, 2); +} + +void sub_080A51D4(void) { + u32 i = gPauseMenuOptions.screen; + if (i < 0xe) { + gPauseMenuOptions.unk2[i] = gMenu.field_0x3; // TODO cursor? + } +} + +bool32 sub_080A51F4(void) { + bool32 retval = TRUE; + if (gFadeControl.active != 0) + retval = FALSE; + if (gPauseMenuOptions.unk11 != 2) + retval = FALSE; + return retval; +} + +typedef struct { + u8 up; + u8 down; + u8 left; + u8 right; + u8 type; + u8 unk0; + u8 x; + u8 y; +} ItemMenuTableEntry; + +void PauseMenu_ItemMenu(void) { + static Subtask* const pauseMenu_Types[] = { PauseMenu_ItemMenu_Init, PauseMenu_ItemMenu_Update }; + + pauseMenu_Types[gMenu.menuType](); + PauseMenu_ItemMenu_Draw(); +} + +void PauseMenu_ItemMenu_Init(void) { + static const KeyButtonLayout gUnk_08128B50 = { + 0xd0u, + 0x10u, + 0u, + 0xb8u, + 0x10u, + 0u, + 0xffu, + 0xd8u, + 0u, + { + 0x3u, + 0u, + 0x4u, + 0u, + 0u, + 0u, + 0x1u, + 0u, + 0xffu, + 0u, + 0u, + }, + }; + + u32 uVar1; + u32 i; + u32 item; + + gMenu.field_0xc = NULL; + sub_080A70AC((KeyButtonLayout*)&gUnk_08128B50); + for (item = ITEM_SMITH_SWORD; item < ITEM_BOTTLE_EMPTY; item++) { + uVar1 = GetInventoryValue(item); + if ((uVar1 == 1) && (i = gItemMetaData[item].menuSlot, i <= MENU_SLOT_SAVE_BUTTON_JP)) { + switch (item) { + case ITEM_LANTERN_OFF: + case ITEM_LANTERN_ON: + item = gPauseMenuOptions.unk15; + break; + default: + break; + } + gPauseMenu.items[i] = item; + sub_080A5F48(item, i * 8 + 0x360); + } + } + SetMenuType(1); +} + +const ItemMenuTableEntry gItemMenuTable[] = { + [MENU_SLOT_SWORD] = { MENU_SLOT_BOTTLE0, MENU_SLOT_SHIELD, MENU_SLOT_BOOMERANG, MENU_SLOT_GUST_JAR, 0x01, 0x0c, + 0x42, 0x33 }, + [MENU_SLOT_GUST_JAR] = { MENU_SLOT_BOTTLE1, MENU_SLOT_MOLE_MITTS, MENU_SLOT_SWORD, MENU_SLOT_CANE, 0x01, 0x10, 0x66, + 0x33 }, + [MENU_SLOT_CANE] = { MENU_SLOT_BOTTLE3, MENU_SLOT_LANTERN, MENU_SLOT_GUST_JAR, MENU_SLOT_BOOMERANG, 0x01, 0x14, + 0x8a, 0x33 }, + [MENU_SLOT_BOOMERANG] = { MENU_SLOT_SAVE_BUTTON, MENU_SLOT_BOMBS, MENU_SLOT_CANE, MENU_SLOT_SWORD, 0x01, 0x15, 0xae, + 0x33 }, + [MENU_SLOT_SHIELD] = { MENU_SLOT_SWORD, MENU_SLOT_PEGASUS_BOOTS, MENU_SLOT_BOMBS, MENU_SLOT_MOLE_MITTS, 0x01, 0x16, + 0x42, 0x4b }, + [MENU_SLOT_MOLE_MITTS] = { MENU_SLOT_GUST_JAR, MENU_SLOT_ROCS_CAPE, MENU_SLOT_SHIELD, MENU_SLOT_LANTERN, 0x01, 0x17, + 0x66, 0x4b }, + [MENU_SLOT_LANTERN] = { MENU_SLOT_CANE, MENU_SLOT_OCARINA, MENU_SLOT_MOLE_MITTS, MENU_SLOT_BOMBS, 0x01, 0x00, 0x8a, + 0x4b }, + [MENU_SLOT_BOMBS] = { MENU_SLOT_BOOMERANG, MENU_SLOT_BOW, MENU_SLOT_LANTERN, MENU_SLOT_SHIELD, 0x01, 0x00, 0xae, + 0x4b }, + [MENU_SLOT_PEGASUS_BOOTS] = { MENU_SLOT_SHIELD, MENU_SLOT_BOTTLE0, MENU_SLOT_BOW, MENU_SLOT_ROCS_CAPE, 0x01, 0x00, + 0x42, 0x63 }, + [MENU_SLOT_ROCS_CAPE] = { MENU_SLOT_MOLE_MITTS, MENU_SLOT_BOTTLE1, MENU_SLOT_PEGASUS_BOOTS, MENU_SLOT_OCARINA, 0x01, + 0x00, 0x66, 0x63 }, + [MENU_SLOT_OCARINA] = { MENU_SLOT_LANTERN, MENU_SLOT_BOTTLE3, MENU_SLOT_ROCS_CAPE, MENU_SLOT_BOW, 0x01, 0x00, 0x8a, + 0x63 }, + [MENU_SLOT_BOW] = { MENU_SLOT_BOMBS, MENU_SLOT_SAVE_BUTTON, MENU_SLOT_OCARINA, MENU_SLOT_PEGASUS_BOOTS, 0x01, 0x00, + 0xae, 0x63 }, + [MENU_SLOT_BOTTLE0] = { MENU_SLOT_PEGASUS_BOOTS, MENU_SLOT_SWORD, MENU_SLOT_SAVE_BUTTON, MENU_SLOT_BOTTLE1, 0x01, + 0x00, 0x42, 0x7b }, + [MENU_SLOT_BOTTLE1] = { MENU_SLOT_ROCS_CAPE, MENU_SLOT_GUST_JAR, MENU_SLOT_BOTTLE0, MENU_SLOT_BOTTLE2, 0x01, 0x00, + 0x5a, 0x7b }, + [MENU_SLOT_BOTTLE2] = { MENU_SLOT_ROCS_CAPE, MENU_SLOT_GUST_JAR, MENU_SLOT_BOTTLE1, MENU_SLOT_BOTTLE3, 0x01, 0x00, + 0x72, 0x7b }, + [MENU_SLOT_BOTTLE3] = { MENU_SLOT_OCARINA, MENU_SLOT_CANE, MENU_SLOT_BOTTLE2, MENU_SLOT_SAVE_BUTTON, 0x01, 0x00, + 0x8a, 0x7b }, + [MENU_SLOT_SAVE_BUTTON] = { MENU_SLOT_BOW, MENU_SLOT_BOOMERANG, MENU_SLOT_BOTTLE3, MENU_SLOT_BOTTLE0, 0x03, 0x00, + 0xb5, 0x75 }, + [MENU_SLOT_SAVE_BUTTON_JP] = { MENU_SLOT_BOW, MENU_SLOT_BOOMERANG, MENU_SLOT_BOTTLE3, MENU_SLOT_BOTTLE0, 0x05, 0x00, + 0xb5, 0x75 }, +}; + +void PauseMenu_ItemMenu_Update(void) { + static const u8 gUnk_08128BF4[] = { 14, 15, 2, 0 }; + u32 item; + u32 menuSlot; + const ItemMenuTableEntry* entry; + + if (sub_080A51F4()) { + gMenu.field_0xc = (u8*)gUnk_08128BF4; + menuSlot = gMenu.field_0x3; + + entry = &gItemMenuTable[menuSlot]; + switch (gInput.newKeys) { + case A_BUTTON: + if (menuSlot == MENU_SLOT_SAVE_BUTTON) { +#if defined(DEMO_USA) || defined(DEMO_JP) + SoundReq(SFX_MENU_ERROR); +#else + sub_080A4E84(0xb); + SoundReq(SFX_TEXTBOX_SELECT); +#endif + break; + } + case B_BUTTON: + if (gPauseMenu.items[menuSlot] != 0) { + u32 slot = !!(gInput.newKeys ^ 1); + ForceEquipItem(gPauseMenu.items[menuSlot], slot); + SoundReq(SFX_TEXTBOX_SELECT); + } + break; + default: + switch (gInput.unk4) { + case DPAD_UP: + menuSlot = entry->up; + break; + case DPAD_DOWN: + menuSlot = entry->down; + break; + case DPAD_LEFT: + menuSlot = entry->left; + break; + case DPAD_RIGHT: + menuSlot = entry->right; + break; + } + break; + } + if (gMenu.field_0x3 != menuSlot) { + gMenu.field_0x3 = menuSlot; + SoundReq(SFX_TEXTBOX_CHOICE); + } + item = gPauseMenu.items[menuSlot]; + switch (menuSlot) { + case MENU_SLOT_BOTTLE0: + case MENU_SLOT_BOTTLE1: + case MENU_SLOT_BOTTLE2: + case MENU_SLOT_BOTTLE3: + if (item != 0) { + item = gSave.saved_status.field_0x24[item - 6]; + } + break; + case MENU_SLOT_SAVE_BUTTON: + // ITEM_SKILL_FAST_SPIN, but that does not make any sense at all + // it is just a text index for the text in the message box for the save button + item = 0x73; + break; + default: + break; + } + sub_080A6F6C(TEXT_INDEX(TEXT_ITEMS, 0) + item); + } +} + +u32 GetMenuSlotForItem(u32 item); + +extern Frame* gSpriteAnimations_322[]; + +#ifdef EU +#define sub_080A5384_draw_constant0 0x1fa +#define sub_080A5384_draw_constant1 0x141 +#else +#define sub_080A5384_draw_constant0 0x1fb +#define sub_080A5384_draw_constant1 0x142 +#endif +void PauseMenu_ItemMenu_Draw(void) { + u32 tmp; + u32 i; + s32 color; + const ItemMenuTableEntry* entry; + + gOamCmd._4 = 0x400; + gOamCmd._6 = 0; + gOamCmd._8 = 0; + for (i = 0; i < MENU_SLOT_COUNT; i++) { + u32 item; + if (gPauseMenu.items[i] != 0) { + entry = &gItemMenuTable[i]; + gOamCmd.x = entry->x; + gOamCmd.y = entry->y; + item = gPauseMenu.items[i]; + switch (item) { + case ITEM_BOTTLE1: + case ITEM_BOTTLE2: + case ITEM_BOTTLE3: + case ITEM_BOTTLE4: + item = gSave.stats.bottles[item - ITEM_BOTTLE1]; + break; + default: + break; + } + color = 3; + switch (item) { + case ITEM_BOMBS: + case ITEM_REMOTE_BOMBS: + if (gBombBagSizes[gSave.stats.bombBagType] <= gSave.stats.bombCount) { + color = 4; + } + break; + case ITEM_BOW: + case ITEM_LIGHT_ARROW: + if (gQuiverSizes[gSave.stats.quiverType] <= gSave.stats.arrowCount) { + color = 4; + } + break; + default: + break; + } + gOamCmd._8 = 0x800 | color << 0xc | ((i * 8) + 0x360); + DrawDirect(sub_080A5384_draw_constant1, gSpriteAnimations_322[item]->index); + } + } + gOamCmd._8 = 0x800; + { + u32 slot = gMenu.field_0x3; + if ((slot == MENU_SLOT_SAVE_BUTTON) && (gSaveHeader->language != 0)) { + slot = MENU_SLOT_SAVE_BUTTON_JP; + } + entry = &gItemMenuTable[slot]; + gOamCmd.x = entry->x; + gOamCmd.y = entry->y; + tmp = entry->type + ((gMain.ticks & 0x10) != 0 ? 3 : 4); + DrawDirect(sub_080A5384_draw_constant0, tmp); + } + { + u32 slot; + if (gSaveHeader->language != 0) { + slot = MENU_SLOT_SAVE_BUTTON; + } else { + slot = MENU_SLOT_SAVE_BUTTON_JP; + } + entry = &gItemMenuTable[slot]; + gOamCmd.x = entry->x; + gOamCmd.y = entry->y; + gOamCmd._8 = 0x800; + DrawDirect(sub_080A5384_draw_constant0, 0x22); + } + i = GetMenuSlotForItem(gSave.stats.itemButtons[SLOT_A]); + if (i < MENU_SLOT_COUNT) { + entry = &gItemMenuTable[i]; + gOamCmd.x = entry->x; + gOamCmd.y = entry->y; + DrawDirect(sub_080A5384_draw_constant0, 3); + } + i = GetMenuSlotForItem(gSave.stats.itemButtons[SLOT_B]); + if (i < MENU_SLOT_COUNT) { + entry = &gItemMenuTable[i]; + gOamCmd.x = entry->x; + gOamCmd.y = entry->y; + DrawDirect(sub_080A5384_draw_constant0, 3); + } +} + +u32 GetMenuSlotForItem(u32 item) { + u32 i; + + if (item != 0) { + for (i = 0; i < MENU_SLOT_COUNT; i++) { + if (item == gPauseMenu.items[i]) + return i; + } + } + return MENU_SLOT_SAVE_BUTTON_JP; +} + +Subtask sub_080A5594; +Subtask sub_080A56A0; +void PauseMenu2(void) { + static Subtask* const pauseMenu2_Types[] = { + sub_080A5594, + sub_080A56A0, + }; + pauseMenu2_Types[gMenu.menuType](); + sub_080A57F4(); +} + +//// TODO Moved here from subtask2.c +// Probably could split the different screens of the pause menu. +#include "fileselect.h" +#include "flags.h" + +extern u8 gUnk_08128C00[]; +extern u16 gUnk_02017830[]; extern u8 gUnk_08128D38[]; extern u8 gUnk_08128D43[]; -extern u16 gUnk_02017830[]; -extern u8 gUnk_020350F0[]; -extern u8 gUnk_08128C00[]; -extern Frame* gSpriteAnimations_322[]; -extern u32 gUnk_085C4620[]; extern u16* gMoreSpritePtrs[]; -extern Screen gUnk_03001020; -extern u8 gUnk_02024090[]; -extern u8 gUnk_03000420[]; -extern u16 gUnk_02017AA0[]; - -void sub_080A5CFC(u32, void*, u32); -void sub_080A6FB4(u32, u32); -void sub_080A66D0(); -void sub_080A5D1C(); -void sub_080A70AC(const KeyButtonLayout* layout); -u32 sub_080A6F40(); -void sub_080A67C4(u32); -void sub_080A68D4(); -s32 sub_080A69E0(); -void sub_080A6EE0(u32 param_1); -struct_08127F94* sub_080A6A80(u32 param_1, u32 param_2); -void sub_080A698C(u32 param_1, u32 param_2, u32 param_3, u32 param_4); -void sub_080A6438(); -void sub_080A5F48(u32, u32); -void sub_080A6F6C(u32); -bool32 sub_080A5F24(void); - -extern void DrawDungeonMap(u32 floor, struct_02019EE0* data, u32 size); -extern void LoadDungeonMap(void); - -void DrawDungeonFeatures(u32, void*, u32); - +extern u32 gUnk_085C4620[]; extern void (*const gUnk_08128D58[])(void); - extern KeyButtonLayout gUnk_08128D60; +void sub_080A5D1C(); +void sub_080A5CFC(u32, void*, u32); +void sub_080A6FB4(u32, u32); +void DrawDungeonFeatures(u32, void*, u32); +extern void DrawDungeonMap(u32 floor, struct_02019EE0* data, u32 size); +extern void LoadDungeonMap(void); +bool32 sub_080A5F24(void); +extern void sub_080A42E0(u32, u32); extern void (*const gUnk_08128DB0[])(void); void sub_080A617C(void); void sub_080A7040(u32); extern u8 gUnk_08128DB8[]; -extern u8 gUnk_08128E80[]; extern KeyButtonLayout gUnk_08128DBC; -typedef struct { - u8 frameIndex; - u8 unk1; - u8 unk2; - u8 unk3; - u16 unk4; - u16 unk6; -} sturct_gUnk_08128F58; - -extern sturct_gUnk_08128F58 gUnk_08128F58[]; - -typedef struct { - u8 unk0; - u8 unk1; - u16 unk2; - u16 unk4; - u16 unk6; -} struct_sub_080A698C; - extern void (*const gUnk_08128DCC[])(void); void sub_080A6378(void); - -extern void (*const gUnk_08128F24[])(void); -void sub_080A6E70(void); -void sub_080A6498(void); - -void sub_080A4DB8(u32); -void sub_080A6290(void); -u32 sub_080A6D74(u32); - -extern const ScreenTransitionData gUnk_08128024[]; -void sub_080A71F4(const ScreenTransitionData* exitTransition); - -extern void DeleteAllEntities(void); -extern void sub_0805E974(void); -extern bool32 sub_080A51F4(void); -extern u32 sub_0807CB24(u32, u32); -extern void sub_080A42E0(u32, u32); - -extern void (*const gUnk_0812901C[])(void); - -void sub_080A74F4(void); - -extern void UpdateCarriedObject(void); - -extern void (*const gSubtasks[])(void); - -typedef struct { - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; - s8 unk5; - u8 unk6; - u8 unk7; -} struct_gUnk_08128E94; - -extern const struct_gUnk_08128E94 gUnk_08128E94[]; +void sub_080A6438(); typedef struct { u8 unk0; @@ -156,18 +629,6 @@ typedef struct { } gUnk_08128DE8_struct; extern gUnk_08128DE8_struct gUnk_08128DE8[]; -typedef struct { - u8 item; - u8 unk1; - u8 frameIndex; - u8 unk3; - u8 unk4; - s8 unk5; - u16 unk6; -} struct_gUnk_08128D70; - -extern const struct_gUnk_08128D70 gUnk_08128D70[]; - void sub_080A5594(void) { extern KeyButtonLayout gUnk_08128C04; int iVar1; @@ -239,7 +700,7 @@ void sub_080A5594(void) { void sub_080A56A0(void) { int iVar1; u32 uVar2; - u32 uVar4; + u32 item; struct_gUnk_08128C14* ptr; if (!sub_080A51F4()) { @@ -315,28 +776,28 @@ void sub_080A56A0(void) { } uVar2 = gMenu.field_0x3; - uVar4 = gGenericMenu.unk10.a[uVar2]; - if (uVar4 != 0) { + item = gGenericMenu.unk10.a[uVar2]; + if (item != 0) { switch (uVar2) { case 0: - if (uVar4 != 0x3d) { - uVar4 = 0x67; + if (item != 0x3d) { + item = 0x67; } break; case 1: - uVar4 = 99; + item = 99; break; case 2: - uVar4 = 0x70; + item = 0x70; break; case 4: - uVar4 = 0x74; + item = 0x74; break; case 5: - uVar4 = 0x73; + item = 0x73; } } - sub_080A6F6C(uVar4 + 0x400); + sub_080A6F6C(TEXT_INDEX(TEXT_ITEMS, 0) + item); } void sub_080A57F4(void) { @@ -431,7 +892,7 @@ void sub_080A57F4(void) { } } -void sub_080A5990(void) { +void PauseMenu_Screen_10(void) { extern void (*const gUnk_08128D14[])(void); gUnk_08128D14[gMenu.menuType](); } @@ -512,7 +973,7 @@ void sub_080A5A90(void) { } break; case 0xff: - if (gPauseMenuOptions.unk1 == 10) { + if (gPauseMenuOptions.screen == 10) { uVar1 = 2; } else { uVar1 = 1; @@ -525,7 +986,7 @@ void sub_080A5A90(void) { } } -void sub_080A5AD8() { +void PauseMenu_Screen_9() { extern void (*const gUnk_08128D24[])(void); gUnk_08128D24[gMenu.menuType](); } @@ -600,7 +1061,7 @@ void sub_080A5BB8(void) { } } -void sub_080A5BF0(void) { +void PauseMenu_Screen_5(void) { extern void (*const gUnk_08128D30[])(void); u32 uVar1; u32 temp; @@ -667,10 +1128,11 @@ void sub_080A5CFC(u32 menuType, void* param_2, u32 param_3) { #define SUB_080A5D1C_SPRITE_INDEX 0x144 #endif +// Actually draw the sprites for the dungeon map. void sub_080A5D1C(void) { extern u8 gUnk_08128D3C[]; u32 bVar1; - int iVar3; + int frameIndex; u32 uVar4; u32 uVar6; u32 index; @@ -693,19 +1155,19 @@ void sub_080A5D1C(void) { gOamCmd._8 = 0x4380; if (HasDungeonSmallKey()) { gOamCmd.x = 0x18; - iVar3 = gSpriteAnimations_322[0x50]->index; - DrawDirect(SUB_080A5D1C_SPRITE_INDEX, iVar3); + frameIndex = gSpriteAnimations_322[0x50]->index; + DrawDirect(SUB_080A5D1C_SPRITE_INDEX, frameIndex); } if (HasDungeonCompass()) { gOamCmd.x = 0x2e; - iVar3 = gSpriteAnimations_322[0x52]->index; - DrawDirect(SUB_080A5D1C_SPRITE_INDEX, iVar3); + frameIndex = gSpriteAnimations_322[0x52]->index; + DrawDirect(SUB_080A5D1C_SPRITE_INDEX, frameIndex); } if (HasDungeonBigKey()) { gOamCmd.x = 0x45; gOamCmd._8 = 0x380; - iVar3 = gSpriteAnimations_322[0x51]->index; - DrawDirect(SUB_080A5D1C_SPRITE_INDEX, iVar3); + frameIndex = gSpriteAnimations_322[0x51]->index; + DrawDirect(SUB_080A5D1C_SPRITE_INDEX, frameIndex); if (sub_080A5F24()) { gOamCmd._8 = 0; gOamCmd.x = 0x46; @@ -721,11 +1183,11 @@ void sub_080A5D1C(void) { gOamCmd._8 = 0; gOamCmd.x = 0x34; gOamCmd.y = bVar1; - iVar3 = pbVar9->unk_1 + 0x82; + frameIndex = pbVar9->unk_1 + 0x82; for (index = 0; index < pbVar9->unk_0; index++) { - DrawDirect(DRAW_DIRECT_SPRITE_INDEX, iVar3); - iVar3--; + DrawDirect(DRAW_DIRECT_SPRITE_INDEX, frameIndex); + frameIndex--; gOamCmd.y = gOamCmd.y + 0xc; } @@ -733,30 +1195,30 @@ void sub_080A5D1C(void) { while (*puVar8 != 0) { switch (*puVar8) { case 1: - iVar3 = 0x7d; + frameIndex = 0x7d; if (uVar4 != gMenu.field_0x3) { - iVar3 = 0x7e; + frameIndex = 0x7e; } break; case 2: - iVar3 = 0x80; + frameIndex = 0x80; break; case 3: - iVar3 = 0x81; + frameIndex = 0x81; break; case 4: if (sub_080A5F24()) { - iVar3 = 0x7f; + frameIndex = 0x7f; break; } default: - iVar3 = 0xff; + frameIndex = 0xff; break; } gOamCmd.x = puVar8[1] + 0x50 - gScreen.bg1.xOffset; gOamCmd.y = puVar8[2] + 0x10 - gScreen.bg1.yOffset; - DrawDirect(DRAW_DIRECT_SPRITE_INDEX, iVar3); + DrawDirect(DRAW_DIRECT_SPRITE_INDEX, frameIndex); puVar8 += 3; } } @@ -813,7 +1275,7 @@ void sub_080A5F48(u32 param_1, u32 param_2) { } } -void sub_080A6008(void) { +void PauseMenu_Screen_7(void) { gUnk_08128D58[gMenu.menuType](); } @@ -857,7 +1319,7 @@ void sub_080A6044(void) { } } -void sub_080A60E0(void) { +void PauseMenu_Screen_8(void) { gUnk_08128DB0[gMenu.menuType](); sub_080A617C(); sub_080A7040(gMenu.field_0x3); @@ -936,7 +1398,7 @@ void sub_080A617C(void) { } } -void sub_080A6270(void) { +void PauseMenu_Screen_4(void) { gUnk_08128DCC[gMenu.menuType](); sub_080A6378(); } @@ -1026,7 +1488,7 @@ void sub_080A6378(void) { void sub_080A6438(void) { u32 uVar1; - sturct_gUnk_08128F58* pcVar2; + struct_gUnk_08128F58* pcVar2; u32 uVar3; gOamCmd._4 = 0x400; @@ -1058,815 +1520,3 @@ void sub_080A6498(void) { } gScreen.controls.windowOutsideControl = 0x3d3f; } - -void Subtask_MapHint(void) { - extern void (*const gUnk_08128E70[])(void); - FlushSprites(); - gUnk_08128E70[gMenu.menuType](); - if ((gGenericMenu.unk2c & 0x20) != 0) { - sub_080A6438(); - } - sub_080A6498(); - CopyOAM(); -} - -void sub_080A6534(void) { - extern const u16 gUnk_08128F4C[]; - u32 val; - sub_080A4D34(); - sub_080A4DB8(4); - sub_080A6290(); - gScreen.lcd.displayControl = gScreen.lcd.displayControl & 0xf7ff; - SetColor(0, gPaletteBuffer[0x51]); - val = gUnk_08128F4C[gUI.field_0x3]; - gSave.field_0x20 |= val; - gGenericMenu.unk10.h[1] = val & gGenericMenu.unk10.h[0]; - gGenericMenu.unk10.h[0] = 0; - gMenu.transitionTimer = 60; - SetMenuType(1); - SetFade(FADE_INSTANT, 8); -} - -void sub_080A65AC(void) { - if (!gFadeControl.active) { - gGenericMenu.unk2c++; - switch (gMenu.transitionTimer) { - case 0x1e: - gGenericMenu.unk10.h[0] = gGenericMenu.unk10.h[1]; - gGenericMenu.unk2c = 0x20; - SoundReq(SFX_103); - default: - gMenu.transitionTimer--; - break; - case 0: - switch (gInput.newKeys) { - case A_BUTTON: - case B_BUTTON: - case START_BUTTON: - Subtask_Exit(); - break; - } - break; - } - } -} - -void sub_080A6608(void) { - extern void (*const gUnk_08128E78[])(void); - const struct_gUnk_08128E94* ptr; - gUnk_08128E78[gMenu.menuType](); - ptr = &gUnk_08128E94[gMenu.field_0x3]; - gScreen.bg1.yOffset = -ptr->unk5; - gScreen.bg2.yOffset = gMenu.field_0xa - (s8)ptr->unk6; - sub_080A66D0(); -} - -void sub_080A6650(void) { - extern u8 gUnk_08128E84[]; - u32 temp; - sub_080A70AC((KeyButtonLayout*)gUnk_08128E84); - temp = gPauseMenuOptions.unk2[4]; - gMenu.field_0x3 = temp; - sub_080A67C4(temp); - sub_080A68D4(); - SetMenuType(1); -} - -void sub_080A667C(void) { - u32 uVar1; - u32 uVar2; - const struct_gUnk_08128E94* ptr; - - gMenu.field_0xc = gUnk_08128E80; - ptr = &gUnk_08128E94[gMenu.field_0x3]; - uVar2 = gMenu.field_0xa; - switch (gInput.heldKeys) { - case DPAD_UP: - if (uVar2 != 0) { - uVar2 -= 2; - } - break; - case DPAD_DOWN: - uVar1 = ptr->unk2; - if (uVar1 > uVar2) { - uVar2 += 2; - } - if (uVar1 < uVar2) { - uVar2 = uVar1; - } - break; - } - - gMenu.field_0xa = uVar2; - sub_080A6FB4(gMenu.field_0x3, 0); -} - -void sub_080A66D0(void) { - u32 bVar2; - u32 bVar3; - u8 bVar4; - u32 uVar5; - u32 uVar8; - struct_sub_080A698C* ptr; - const struct_gUnk_08128E94* ptr2; - - gOamCmd._4 = 0; - gOamCmd._6 = 0; - gOamCmd.x = 0x78; - ptr2 = &gUnk_08128E94[gMenu.field_0x3]; - gGenericMenu.unk2c++; - if (gGenericMenu.unk2b != 1 && ((gGenericMenu.unk2c & 0x10) != 0)) { - gOamCmd._8 = 0x800; - if (gMenu.field_0xa != 0) { - gOamCmd.y = 0xc; - DrawDirect(DRAW_DIRECT_SPRITE_INDEX, 0x71); - } - if (ptr2->unk2 > gMenu.field_0xa) { - gOamCmd.y = 0x84; - DrawDirect(DRAW_DIRECT_SPRITE_INDEX, 0x72); - } - } - bVar2 = ptr2->unk7; - bVar3 = ptr2->unk3; - uVar5 = gMenu.field_0xa; - gOamCmd._4 = 0; - gOamCmd._6 = 0; - gOamCmd._8 = 0xc00; - bVar4 = gGenericMenu.unk2c & 0x20; - - for (ptr = (struct_sub_080A698C*)&gMapDataBottomSpecial; ptr->unk2 != 0; ptr++) { - uVar8 = 0; - if (ptr->unk0 == 1) { - if (bVar4 != 0) { - uVar8 = 1; - } - } else if (bVar4 == 0) { - uVar8 = 1; - } - - if (uVar8 != 0) { - gOamCmd.x = ptr->unk4 + bVar2; - gOamCmd.y = ptr->unk6 + bVar3 - uVar5; - DrawDirect(ptr->unk2, ptr->unk1); - } - } -} - -void sub_080A67C4(u32 param_1) { - u16* puVar2; - int i; - int iVar4; - s32 room; - const struct_gUnk_08128E94* ptr; - - LoadPaletteGroup(param_1 + 0xba); - iVar4 = param_1 + 0x5f; - switch (param_1) { - case 0x9: - if (CheckGlobalFlag(TATEKAKE_HOUSE)) { - iVar4 = 0x70; - } - break; - case 0xb: - if (CheckKinstoneFused(KINSTONE_E)) { - iVar4 = 0x71; - } - break; - case 0xe: - if (gUI.roomControls.area == 8) { - room = gUI.roomControls.room; - iVar4 = (u8)(room % 3) + 0x72; - } - break; - } - - LoadGfxGroup(iVar4); - ptr = &gUnk_08128E94[param_1]; - puVar2 = &gUnk_02017AA0[gUnk_03003DE4[0] * 0x500]; - - for (i = 0; i <= 7; puVar2++, i++) { - *puVar2 = 0x1e0a; - } - - for (i = 8; i < (int)(ptr->unk5 + ptr->unk4); puVar2++, i++) { - *puVar2 = 0x1e0b; - } - - for (; i < 0xa0; puVar2++, i++) { - *puVar2 = 0x1e0a; - } - - SetVBlankDMA((u16*)&gUnk_02017AA0[gUnk_03003DE4[0] * 0x500], (u16*)REG_ADDR_BG3CNT, - ((DMA_ENABLE | DMA_START_HBLANK | DMA_16BIT | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_RELOAD) << 16) + - 0x1); - gMenu.field_0xa = ptr->unk2 >> 1; - MemClear(&gMapDataBottomSpecial, 0x400); -} - -void sub_080A68D4(void) { - u32 uVar1; - int iVar6; - sturct_gUnk_08128F58* pcVar4; - u32 i; - u32 uVar4; - struct_080FE320* ptr; - - if ((gPlayerState.flags & PL_NO_CAP) != 0) { - iVar6 = 101; - } else { - iVar6 = 100; - } - sub_080A698C(gRoomTransition.player_status.overworld_map_x, gRoomTransition.player_status.overworld_map_y, - DRAW_DIRECT_SPRITE_INDEX, iVar6 + 0x100); - uVar1 = sub_080A6F40(); - uVar1 &= gSave.field_0x20; - - for (pcVar4 = gUnk_08128F58, i = 0; pcVar4->frameIndex != 0; i++, pcVar4++) { - if (((1 << i) & uVar1) != 0) { - sub_080A698C(pcVar4->unk4, pcVar4->unk6, DRAW_DIRECT_SPRITE_INDEX, pcVar4->unk3); - } - } - - for (i = 10; i <= 100; i++) { - if (CheckKinstoneFused(i) && !sub_0801E810(i)) { - uVar4 = gUnk_080C9CBC[i].unk7; - ptr = &gUnk_080FE320[gUnk_080C9CBC[i].evt_type]; - sub_080A698C(ptr->_c, ptr->_e, DRAW_DIRECT_SPRITE_INDEX, uVar4 + 100); - } - } -} - -void sub_080A698C(u32 param_1, u32 param_2, u32 param_3, u32 param_4) { - int iVar1; - - iVar1 = sub_080A69E0(param_1, param_2); - if (0 < iVar1) { - ((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk0 = param_4 >> 8; - ((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk1 = param_4; - ((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk2 = param_3; - ((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk4 = iVar1; - ((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk6 = iVar1 >> 0x10; - gGenericMenu.unk2d++; - } -} - -s32 sub_080A69E0(u32 param_1, u32 param_2) { - const struct_08127F94* pbVar1; - int iVar3; - - if ((param_1 | param_2) == 0) - return -1; - - pbVar1 = sub_080A6A80(param_1, param_2); - if (pbVar1 == NULL) - return -1; - - if (gMenu.field_0x3 != pbVar1->_4) - return -1; - - switch (gMenu.field_0x3) { - case 4: - case 7: - if (gMenu.field_0x3 == 4) { - iVar3 = 9; - } else { - iVar3 = 7; - } - param_2 -= gAreaRoomHeaders[iVar3]->map_y; - break; - break; - case 15: - param_1 -= 0x108; - break; - } - - param_1 = (s32)((param_1 - pbVar1->_0 * 0x10) * 100) / 0x23a; - param_2 = (s32)((param_2 - pbVar1->_1 * 0x10) * 100) / 0x23a; - return (param_2 << 0x10) | param_1; -} - -struct_08127F94* sub_080A6A80(u32 param_1, u32 param_2) { - struct_08127F94* pbVar1; - param_1 >>= 4; - param_2 >>= 4; - - for (pbVar1 = gUnk_08127F94; pbVar1->_0 != 0xff; pbVar1++) { - if (pbVar1->_0 <= param_1 && pbVar1->_2 >= param_1 && pbVar1->_1 <= param_2 && pbVar1->_3 >= param_2) { - return pbVar1; - } - } - return NULL; -} - -void Subtask_LocalMapHint() { - extern void (*const gUnk_08128F1C[])(void); - const struct_gUnk_08128E94* ptr; - FlushSprites(); - gUnk_08128F1C[gMenu.menuType](); - ptr = &gUnk_08128E94[gMenu.field_0x3]; - gScreen.bg1.yOffset = -ptr->unk5; - gScreen.bg2.yOffset = gMenu.field_0xa - (s8)ptr->unk6; - CopyOAM(); -} - -void sub_080A6B04(void) { - u32 bVar1; - u32 uVar2; - u32 uVar3; - u32 uVar4; - int uVar6; - u32 uVar7; - const struct_080C9CBC* ptr; - struct_080FE320* ptr2; - const struct_gUnk_08128E94* ptr3; - - sub_080A4D34(); - sub_080A4DB8(6); - ptr = &gUnk_080C9CBC[gFuseInfo._3]; - ptr2 = &gUnk_080FE320[ptr->evt_type]; - bVar1 = ptr->unk7; - uVar3 = ptr2->_c; - uVar4 = ptr2->_e; - uVar2 = sub_080A6A80(uVar3, uVar4)->_4; - gMenu.field_0x3 = uVar2; - gGenericMenu.unk2b = 1; - sub_080A67C4(uVar2); - sub_080A6FB4(uVar2, 2); - SetColor(0, 0x475f); - SetColor(0x5f, 0x475f); - MemFill16(0x5001, &gBG3Buffer, sizeof(gBG3Buffer)); - if ((gPlayerState.flags & PL_NO_CAP) != 0) { - uVar7 = 101; - } else { - uVar7 = 100; - } - sub_080A698C(gRoomTransition.player_status.overworld_map_x, gRoomTransition.player_status.overworld_map_y, - DRAW_DIRECT_SPRITE_INDEX, uVar7 + 0x100); - sub_080A698C(uVar3, uVar4, DRAW_DIRECT_SPRITE_INDEX, bVar1 + 100); - uVar4 = sub_080A69E0(uVar3, uVar4) >> 0x10; - ptr3 = &gUnk_08128E94[gMenu.field_0x3]; - gMenu.field_0xa = 0; - if (ptr3->unk2 != 0) { - uVar6 = uVar4 - 0x3c; - if (uVar6 > 0) { - if (ptr3->unk2 < uVar6) { - uVar6 = ptr3->unk2; - } - gMenu.field_0xa = uVar6; - } - } - gMenu.transitionTimer = 30; - SetMenuType(1); - SetFade(FADE_INSTANT, 8); -} - -void sub_080A6C1C(void) { - if (!gFadeControl.active) { - switch (gMenu.transitionTimer) { - case 0: - sub_080A66D0(); - switch (gInput.newKeys) { - case A_BUTTON: - case B_BUTTON: - case START_BUTTON: - Subtask_Exit(); - break; - } - return; - case 1: - SoundReq(SFX_103); - break; - } - gMenu.transitionTimer--; - } -} - -void Subtask_FastTravel(void) { - FlushSprites(); - gUnk_08128F24[gMenu.menuType](); - if (gMenu.field_0x0 != 0) { - sub_080A6E70(); - } - sub_080A6498(); - CopyOAM(); -} - -void sub_080A6CA8(void) { - sub_080A4D34(); - sub_080A4DB8(0xd); - sub_080A6290(); - gMenu.field_0x3 = sub_080A6D74(0); - SetMenuType(1); - SetFade(FADE_INSTANT, 8); -} - -void sub_080A6CD8(void) { - u32 uVar1; - u32 uVar2; - - if (gFadeControl.active) { - return; - } - - gMenu.field_0x0 = 1; - uVar2 = 0; - - switch (gInput.newKeys) { - case DPAD_LEFT: - case DPAD_UP: - uVar2 = -1; - break; - case DPAD_RIGHT: - case DPAD_DOWN: - uVar2 = 1; - break; - case A_BUTTON: - case START_BUTTON: - gMenu.field_0x0 = 2; - SetMenuType(2); - MessageFromTarget(TEXT_INDEX(TEXT_WINDCRESTS, 0x04)); - break; - case B_BUTTON: - gMenu.field_0x0 = 3; - SetMenuType(3); - break; - } - - if (uVar2) { - uVar1 = sub_080A6D74(uVar2); - if (uVar1 != gMenu.field_0x3) { - gMenu.field_0x3 = uVar1; - SoundReq(SFX_TEXTBOX_CHOICE); - } - } -} - -u32 sub_080A6D74(u32 param_1) { - u32 uVar1; - u32 uVar2; - u32 uVar3; - - uVar3 = gSave.windcrests >> 0x18; - uVar2 = gMenu.field_0x3; - if (param_1 == 0) { - uVar2 = 0; - if ((uVar3 & 1) == 0) { - while (++uVar2 < 8 && ((1 << uVar2) & uVar3) == 0) {} - } - } else if (uVar3 != 0) { - do { - uVar2 = (uVar2 + param_1 + 8) & 7; - } while ((1 << uVar2 & uVar3) == 0); - } - return uVar2 & 7; -} - -void sub_080A6DD0(void) { - u32 tmp; - switch (sub_08056338()) { -#ifdef EU - case 0: - gMenu.field_0x0 = 2; - break; - case 1: - gMenu.field_0x0 = 3; - tmp = 1; - break; - default: - return; - } - - if (tmp) { - SetMenuType(3); - } -#else - case 0: - gMenu.field_0x0 = 2; - tmp = 3; - break; - case 1: - tmp = 1; - break; - default: - return; - } - SetMenuType(tmp); -#endif -} - -void sub_080A6DF8(void) { - if (gMenu.field_0x0 == 2) { - SetMenuType(4); - SetFade(FADE_IN_OUT | FADE_INSTANT, 8); - } else { - ResetPlayerAnimationAndAction(); - sub_080042D0(&gPlayerEntity, (u32)gPlayerEntity.animIndex, gPlayerEntity.spriteIndex); - Subtask_Exit(); - gPauseMenuOptions.disabled = 0; - SoundReq(SFX_MENU_CANCEL); - } -} - -void sub_080A6E44(void) { - if (gFadeControl.active == 0) { - sub_080A71F4(&gUnk_08128024[gMenu.field_0x3]); - } -} - -void sub_080A6E70(void) { - u32 frameIndex; - u32 i; - - gOamCmd._4 = 0; - gOamCmd._6 = 0; - gOamCmd._8 = 0x400; - gGenericMenu.unk2c++; - sub_080A6EE0(gMenu.field_0x3); - if ((gGenericMenu.unk2c & 0x10) != 0) { - frameIndex = 0x5d; - } else { - frameIndex = 0x5e; - } - - DrawDirect(DRAW_DIRECT_SPRITE_INDEX, frameIndex); - for (i = 0; i < 8; i++) { - if ((gSave.windcrests & (1 << (i + 0x18))) != 0) { - sub_080A6EE0(i); - DrawDirect(DRAW_DIRECT_SPRITE_INDEX, 0x5c); - } - } -} - -void sub_080A6EE0(u32 param_1) { - u32 x; - u32 y; - RoomHeader* roomHeader; - const ScreenTransitionData* ptr = &gUnk_08128024[param_1]; - - x = (u16)ptr->playerXPos; - y = (u16)ptr->playerYPos; - roomHeader = &gAreaRoomHeaders[ptr->area][ptr->room]; - x += roomHeader->map_x; - y += roomHeader->map_y; - gOamCmd.x = (s32)(x * DISPLAY_HEIGHT) / 0xf90 + 0x28; - gOamCmd.y = (s32)(y * DISPLAY_HEIGHT) / 0xf90 + 0xc; -} - -u32 sub_080A6F40(void) { - extern u8 gUnk_08128F38[]; - int iVar1; - u8* pcVar2; - u32 uVar3; - u32 uVar4; - - for (uVar3 = 0, pcVar2 = gUnk_08128F38, uVar4 = 0; *pcVar2 != 0; uVar3++, pcVar2 += 2) { - uVar4 |= sub_0807CB24(*pcVar2, pcVar2[1]) << uVar3; - } - return ~uVar4; -} - -void sub_080A6F6C(u32 param_1) { - extern Font gUnk_08128FA8; - if (gGenericMenu.unk2e.HWORD != param_1) { - gGenericMenu.unk2e.HWORD = param_1; - MemClear(gUnk_020350F0, 0x100); - if ((param_1 & 0xff) != 0) { - sub_0805F46C(param_1, &gUnk_08128FA8); - } - gScreen.bg0.updated = 1; - } - gScreen.bg0.yOffset = 2; -} - -void sub_080A6FB4(u32 param_1, u32 param_2) { - extern u16 gUnk_08128FF0[]; - extern Font gUnk_08128FD8; - extern Font gUnk_08128FC0; - u32 uVar1; - Font* font; - - uVar1 = 0; - switch (param_2) { - case 0: - if ((gSave.windcrests & (1 << param_1)) == 0) - break; - case 2: - uVar1 = gUnk_08127F94[param_1]._6; - font = &gUnk_08128FC0; - break; - case 1: - uVar1 = gUnk_08128FF0[param_1]; - font = &gUnk_08128FD8; - break; - } - - if (gGenericMenu.unk2e.HWORD != uVar1) { - gGenericMenu.unk2e.HWORD = uVar1; - MemClear(&gUnk_020350F0, 0x100); - if ((uVar1 & 0xff) != 0) { - sub_0805F46C(uVar1, font); - } - gScreen.bg0.updated = 1; - } - gScreen.bg0.yOffset = 2; -} - -void sub_080A7040(u32 param_1) { - extern Font gUnk_08129004; - extern u8 gUnk_02022130[]; - if (gGenericMenu.unk2e.HWORD != param_1) { - gGenericMenu.unk2e.HWORD = param_1; - MemClear(gUnk_02022130, 0x300); - MemCopy(gUnk_02022130 - 0x200, (void*)0x600e000, 0x800); - if (GetInventoryValue(gUnk_08128D70[param_1].item) != 0) { - sub_0805F46C(gUnk_08128D70[param_1].unk6, &gUnk_08129004); - } - gScreen.bg1.yOffset = 3; - gScreen.bg1.updated = 1; - } -} - -void sub_080A70AC(const KeyButtonLayout* layout) { - MemClear(&gUnk_0200AF00.elements, 0x300); - gUnk_0200AF00.unk_13 = 0x7f; - gUnk_0200AF00.unk_14 = 0x7f; - gUnk_0200AF00.buttonX[0] = layout->aButtonX; - gUnk_0200AF00.buttonY[0] = (s8)layout->aButtonY; - gUnk_0200AF00.unk_30[0] = layout->aButtonText; - gUnk_0200AF00.buttonX[1] = layout->bButtonX; - gUnk_0200AF00.buttonY[1] = (s8)layout->bButtonY; - gUnk_0200AF00.unk_30[1] = layout->bButtonText; - gUnk_0200AF00.buttonX[2] = layout->rButtonX; - gUnk_0200AF00.buttonY[2] = (s8)layout->rButtonY; - gUnk_0200AF00.unk_32 = layout->rButtonText; - layout++; - do { - CreateUIElement(layout->aButtonX, layout->aButtonY); - layout = (KeyButtonLayout*)&layout->aButtonText; - } while ((s8)layout->aButtonX != -1); -} - -void SetMenuType(u32 menuType) { - gMenu.menuType = menuType; - gMenu.overlayType = 0; - gMenu.storyPanelIndex = 0; -} - -void ResetUI(void) { - MemClear(&gUI, sizeof(gUI)); -} - -void MenuFadeIn(u32 param_1, u32 param_2) { - if (gUI.nextToLoad == 0) { - MemClear(&gUI, sizeof(gUI)); - gUI.lastState = param_1; - gUI.field_0x3 = param_2; - gUI.pauseFadeIn = gMain.substate; - } else { - gUI.state = param_1; - gUI.field_0x5 = param_2; - gUI.nextToLoad = 1; - } - gUI.field_0x6 = 0; - gUI.fadeType = -1; - gUI.fadeInTime = 0x20; - gMain.substate = GAMEMAIN_SUBTASK; - SetFade(FADE_IN_OUT | FADE_INSTANT, 0x20); - gUnk_02018EB0.unk_0 = 0; - gUnk_02018EB0.unk_1 = 0; -} - -void sub_080A71A4(u32 param_1, u32 param_2, u32 param_3) { - if (gUI.nextToLoad == 0) { - gUI.unk_e = param_3; - } else { - gUI.unk_f = param_3; - } - MenuFadeIn(param_1, param_2); -} - -void sub_080A71C4(u32 param_1, u32 param_2, u32 fadeType, u32 param_4) { - MenuFadeIn(param_1, param_2); - gUI.fadeType = fadeType; - gUI.fadeInTime = param_4; -} - -void Subtask_Exit(void) { - gUI.nextToLoad = 3; - SetFade(FADE_IN_OUT | FADE_INSTANT, 0x20); -} - -void sub_080A71F4(const ScreenTransitionData* exitTransition) { - if (exitTransition != NULL) { - DoExitTransition(exitTransition); - } - DeleteAllEntities(); - sub_0805E974(); - DeleteAllEntities(); - gMain.state = GAMETASK_INIT; - gMain.substate = GAMEMAIN_INITROOM; -} - -void GameMain_Subtask(void) { - if (gUI.nextToLoad < 3) { - if (gUI.state != 0) { - gUI.field_0x3 = gUI.field_0x5; - gUI.lastState = gUI.state; - gUI.state = 0; - } - } - gUnk_0812901C[gUI.nextToLoad](); -} - -void Subtask_FadeIn(void) { - if (!gFadeControl.active) { - MemCopy(&gScreen, &gUnk_03001020, sizeof(Screen)); - MemCopy(gPaletteBuffer, gUnk_02024090, 0x400); - MemCopy(&gGFXSlots, &gUI.gfxSlotList, sizeof(GfxSlotList)); - MemCopy(gPaletteList, gUI.palettes, sizeof(gUI.palettes)); - MemCopy(&gRoomControls, &gUI.roomControls, sizeof(RoomControls)); - MemCopy(gUnk_03000420, gUI.unk_2a8, sizeof(gUI.unk_2a8)); - MemCopy(&gActiveScriptInfo, &gUI.activeScriptInfo, sizeof(ActiveScriptInfo)); - sub_0805E958(); - gUI.unk_d = gRoomTransition.field_0x2c[2]; - gUI.controlMode = gPlayerState.controlMode; - gUI.currentRoomProperties = gCurrentRoomProperties; - gUI.mapBottomBgSettings = gMapBottom.bgSettings; - gUI.mapTopBgSettings = gMapTop.bgSettings; - gUI.nextToLoad = 1; - } -} - -void Subtask_Init(void) { - if (gFadeControl.active == 0) { - DeleteAllEntities(); - MemClear(&gMenu, sizeof(FigurineMenu)); - MemClear(&gRoomControls, sizeof(gRoomControls)); - MemClear(gOAMControls.unk, 0x100); - MemClear(&gActiveScriptInfo, sizeof(gActiveScriptInfo)); - gActiveScriptInfo.fadeSpeed = 8; - DispReset(1); - MessageInitialize(); - ResetPalettes(); - ResetPaletteTable(0); - gGFXSlots.unk0 = 1; - gUI.nextToLoad = 2; - gRoomTransition.field_0x2c[3] = 1; - } -} - -void Subtask_FadeOut(void) { - if (!gFadeControl.active) { - DeleteAllEntities(); - sub_0805E974(); - gCurrentRoomProperties = gUI.currentRoomProperties; - gPlayerState.controlMode = gUI.controlMode; - gMapBottom.bgSettings = gUI.mapBottomBgSettings; - gMapTop.bgSettings = gUI.mapTopBgSettings; - MemCopy(&gUI.activeScriptInfo, &gActiveScriptInfo, sizeof(ActiveScriptInfo)); - MemCopy(gUI.unk_2a8, gUnk_03000420, sizeof(gUI.unk_2a8)); - MemCopy(gUI.palettes, gPaletteList, sizeof(gUI.palettes)); - MemCopy(&gUI.gfxSlotList, &gGFXSlots, sizeof(gGFXSlots)); - MemCopy(&gUI.roomControls, &gRoomControls, sizeof(RoomControls)); - MemCopy(&gUnk_03001020, &gScreen, sizeof(Screen)); - gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.area); - gArea.pCurrentRoomInfo = GetCurrentRoomInfo(); - RestoreGameTask(gUI.field_0x6); - sub_0801D000(gUI.unk_d != 0); - sub_080A74F4(); - if (gUI.fadeType != 0xffff) { - SetFade(gUI.fadeType, gUI.fadeInTime); - } else { - SetFadeInverted(gUI.fadeInTime); - } - gUI.nextToLoad = 4; - gRoomTransition.field_0x2c[3] = 0; - } -} - -void Subtask_Die(void) { - sub_080A74F4(); - if (gFadeControl.active == 0) { - gMain.substate = gUI.pauseFadeIn; - gUI.nextToLoad = gFadeControl.active; - gUI.lastState = gFadeControl.active; - ResetSystemPriority(); - } -} - -void sub_080A74F4(void) { - SetInitializationPriority(); - gMain.pad = 0; - FlushSprites(); - UpdateEntities(); - UpdateManagers(); - DrawUI(); - DrawUIElements(); - UpdateCarriedObject(); - DrawEntities(); - CopyOAM(); -} - -void Subtask_Update(void) { - gSubtasks[gUI.lastState](); -} diff --git a/src/menu/pauseMenuScreen6.c b/src/menu/pauseMenuScreen6.c new file mode 100644 index 00000000..4bfcd17a --- /dev/null +++ b/src/menu/pauseMenuScreen6.c @@ -0,0 +1,276 @@ +/** + * @file pauseMenuScreen6.c + * + * @brief Pause Menu Screen 6 + */ +#include "common.h" +#include "fileselect.h" +#include "flags.h" +#include "functions.h" +#include "kinstone.h" +#include "main.h" +#include "menu.h" +#include "pauseMenu.h" +#include "save.h" +#include "screen.h" + +typedef struct { + u8 unk0; + u8 unk1; + u16 unk2; + u16 unk4; + u16 unk6; +} struct_sub_080A698C; + +extern u8 gUnk_08128E80[]; + +extern u16 gUnk_02017AA0[]; + +void sub_080A68D4(); + +void PauseMenu_Screen_6(void) { + extern void (*const gUnk_08128E78[])(void); + const struct_gUnk_08128E94* ptr; + gUnk_08128E78[gMenu.menuType](); + ptr = &gUnk_08128E94[gMenu.field_0x3]; + gScreen.bg1.yOffset = -ptr->unk5; + gScreen.bg2.yOffset = gMenu.field_0xa - (s8)ptr->unk6; + sub_080A66D0(); +} + +void sub_080A6650(void) { + extern u8 gUnk_08128E84[]; + u32 temp; + sub_080A70AC((KeyButtonLayout*)gUnk_08128E84); + temp = gPauseMenuOptions.unk2[4]; + gMenu.field_0x3 = temp; + sub_080A67C4(temp); + sub_080A68D4(); + SetMenuType(1); +} + +void sub_080A667C(void) { + u32 uVar1; + u32 uVar2; + const struct_gUnk_08128E94* ptr; + + gMenu.field_0xc = gUnk_08128E80; + ptr = &gUnk_08128E94[gMenu.field_0x3]; + uVar2 = gMenu.field_0xa; + switch (gInput.heldKeys) { + case DPAD_UP: + if (uVar2 != 0) { + uVar2 -= 2; + } + break; + case DPAD_DOWN: + uVar1 = ptr->unk2; + if (uVar1 > uVar2) { + uVar2 += 2; + } + if (uVar1 < uVar2) { + uVar2 = uVar1; + } + break; + } + + gMenu.field_0xa = uVar2; + sub_080A6FB4(gMenu.field_0x3, 0); +} + +void sub_080A66D0(void) { + u32 bVar2; + u32 bVar3; + u8 bVar4; + u32 uVar5; + u32 uVar8; + struct_sub_080A698C* ptr; + const struct_gUnk_08128E94* ptr2; + + gOamCmd._4 = 0; + gOamCmd._6 = 0; + gOamCmd.x = 0x78; + ptr2 = &gUnk_08128E94[gMenu.field_0x3]; + gGenericMenu.unk2c++; + if (gGenericMenu.unk2b != 1 && ((gGenericMenu.unk2c & 0x10) != 0)) { + gOamCmd._8 = 0x800; + if (gMenu.field_0xa != 0) { + gOamCmd.y = 0xc; + DrawDirect(DRAW_DIRECT_SPRITE_INDEX, 0x71); + } + if (ptr2->unk2 > gMenu.field_0xa) { + gOamCmd.y = 0x84; + DrawDirect(DRAW_DIRECT_SPRITE_INDEX, 0x72); + } + } + bVar2 = ptr2->unk7; + bVar3 = ptr2->unk3; + uVar5 = gMenu.field_0xa; + gOamCmd._4 = 0; + gOamCmd._6 = 0; + gOamCmd._8 = 0xc00; + bVar4 = gGenericMenu.unk2c & 0x20; + + for (ptr = (struct_sub_080A698C*)&gMapDataBottomSpecial; ptr->unk2 != 0; ptr++) { + uVar8 = 0; + if (ptr->unk0 == 1) { + if (bVar4 != 0) { + uVar8 = 1; + } + } else if (bVar4 == 0) { + uVar8 = 1; + } + + if (uVar8 != 0) { + gOamCmd.x = ptr->unk4 + bVar2; + gOamCmd.y = ptr->unk6 + bVar3 - uVar5; + DrawDirect(ptr->unk2, ptr->unk1); + } + } +} + +void sub_080A67C4(u32 param_1) { + u16* puVar2; + int i; + int iVar4; + s32 room; + const struct_gUnk_08128E94* ptr; + + LoadPaletteGroup(param_1 + 0xba); + iVar4 = param_1 + 0x5f; + switch (param_1) { + case 0x9: + if (CheckGlobalFlag(TATEKAKE_HOUSE)) { + iVar4 = 0x70; + } + break; + case 0xb: + if (CheckKinstoneFused(KINSTONE_E)) { + iVar4 = 0x71; + } + break; + case 0xe: + if (gUI.roomControls.area == 8) { + room = gUI.roomControls.room; + iVar4 = (u8)(room % 3) + 0x72; + } + break; + } + + LoadGfxGroup(iVar4); + ptr = &gUnk_08128E94[param_1]; + puVar2 = &gUnk_02017AA0[gUnk_03003DE4[0] * 0x500]; + + for (i = 0; i <= 7; puVar2++, i++) { + *puVar2 = 0x1e0a; + } + + for (i = 8; i < (int)(ptr->unk5 + ptr->unk4); puVar2++, i++) { + *puVar2 = 0x1e0b; + } + + for (; i < 0xa0; puVar2++, i++) { + *puVar2 = 0x1e0a; + } + + SetVBlankDMA((u16*)&gUnk_02017AA0[gUnk_03003DE4[0] * 0x500], (u16*)REG_ADDR_BG3CNT, + ((DMA_ENABLE | DMA_START_HBLANK | DMA_16BIT | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_RELOAD) << 16) + + 0x1); + gMenu.field_0xa = ptr->unk2 >> 1; + MemClear(&gMapDataBottomSpecial, 0x400); +} + +void sub_080A68D4(void) { + u32 uVar1; + int iVar6; + struct_gUnk_08128F58* pcVar4; + u32 i; + u32 uVar4; + const WorldEvent* ptr; + + if ((gPlayerState.flags & PL_NO_CAP) != 0) { + iVar6 = 101; + } else { + iVar6 = 100; + } + sub_080A698C(gRoomTransition.player_status.overworld_map_x, gRoomTransition.player_status.overworld_map_y, + DRAW_DIRECT_SPRITE_INDEX, iVar6 + 0x100); + uVar1 = sub_080A6F40(); + uVar1 &= gSave.field_0x20; + + for (pcVar4 = gUnk_08128F58, i = 0; pcVar4->frameIndex != 0; i++, pcVar4++) { + if (((1 << i) & uVar1) != 0) { + sub_080A698C(pcVar4->unk4, pcVar4->unk6, DRAW_DIRECT_SPRITE_INDEX, pcVar4->unk3); + } + } + + for (i = 10; i <= 100; i++) { + if (CheckKinstoneFused(i) && !sub_0801E810(i)) { + uVar4 = gKinstoneWorldEvents[i].unk7; + ptr = &gWorldEvents[gKinstoneWorldEvents[i].worldEventId]; + sub_080A698C(ptr->_c, ptr->_e, DRAW_DIRECT_SPRITE_INDEX, uVar4 + 100); + } + } +} + +void sub_080A698C(u32 param_1, u32 param_2, u32 param_3, u32 param_4) { + int iVar1; + + iVar1 = sub_080A69E0(param_1, param_2); + if (0 < iVar1) { + ((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk0 = param_4 >> 8; + ((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk1 = param_4; + ((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk2 = param_3; + ((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk4 = iVar1; + ((struct_sub_080A698C*)&gMapDataBottomSpecial)[gGenericMenu.unk2d].unk6 = iVar1 >> 0x10; + gGenericMenu.unk2d++; + } +} + +s32 sub_080A69E0(u32 param_1, u32 param_2) { + const struct_08127F94* pbVar1; + int iVar3; + + if ((param_1 | param_2) == 0) + return -1; + + pbVar1 = sub_080A6A80(param_1, param_2); + if (pbVar1 == NULL) + return -1; + + if (gMenu.field_0x3 != pbVar1->_4) + return -1; + + switch (gMenu.field_0x3) { + case 4: + case 7: + if (gMenu.field_0x3 == 4) { + iVar3 = 9; + } else { + iVar3 = 7; + } + param_2 -= gAreaRoomHeaders[iVar3]->map_y; + break; + break; + case 15: + param_1 -= 0x108; + break; + } + + param_1 = (s32)((param_1 - pbVar1->_0 * 0x10) * 100) / 0x23a; + param_2 = (s32)((param_2 - pbVar1->_1 * 0x10) * 100) / 0x23a; + return (param_2 << 0x10) | param_1; +} + +struct_08127F94* sub_080A6A80(u32 param_1, u32 param_2) { + struct_08127F94* pbVar1; + param_1 >>= 4; + param_2 >>= 4; + + for (pbVar1 = gUnk_08127F94; pbVar1->_0 != 0xff; pbVar1++) { + if (pbVar1->_0 <= param_1 && pbVar1->_2 >= param_1 && pbVar1->_1 <= param_2 && pbVar1->_3 >= param_2) { + return pbVar1; + } + } + return NULL; +} diff --git a/src/menu/pause_menu.c b/src/menu/pause_menu.c deleted file mode 100644 index 957dc751..00000000 --- a/src/menu/pause_menu.c +++ /dev/null @@ -1,567 +0,0 @@ -#include "global.h" -#include "menu.h" -#include "sound.h" -#include "subtask.h" -#include "screen.h" -#include "item.h" -#include "common.h" -#include "game.h" -#include "main.h" -#include "save.h" -#include "itemMetaData.h" -#include "structures.h" -#include "functions.h" -#include "ui.h" - -extern void sub_080A4DB8(u32); - -void sub_080A5128(void); -void sub_080A51D4(void); -bool32 sub_080A51F4(void); -void sub_080A5F48(u32, u32); - -Subtask PauseMenu_Variant0; -Subtask PauseMenu_Variant1; -Subtask PauseMenu_Variant2; -Subtask PauseMenu_Variant3; -Subtask PauseMenu_Variant4; -Subtask PauseMenu_Variant5; -void Subtask_PauseMenu(void) { - static Subtask* const pauseMenu_Variants[] = { - PauseMenu_Variant0, PauseMenu_Variant1, PauseMenu_Variant2, - PauseMenu_Variant3, PauseMenu_Variant4, PauseMenu_Variant5, - }; - - if (gPauseMenuOptions.unk11 == 6) { - SetBgmVolume(0x100); - Subtask_Exit(); - } else { - FlushSprites(); - pauseMenu_Variants[gPauseMenuOptions.unk11](); - sub_080A5128(); - UpdateUIElements(); - DrawUIElements(); - if (gPauseMenuOptions.unk11 != 4) { - gUnk_08128A38[gPauseMenuOptions.unk1].func(); - } - CopyOAM(); - { - u32 t = gPauseMenuOptions.unk16; - u32 t2 = (t != 0) ? 0xe46 : 0; - gScreen.controls.layerFXControl = t2; - gScreen.controls.alphaBlend = (t << 8) | (0x10 - t); - } - } -} - -struct_08127F94* sub_080A6A80(u32, u32); - -extern u8 gUnk_02034492[]; -void sub_0801E8D4(void); -s32 sub_080A50A0(s32); - -void PauseMenu_Variant0(void) { - struct_08127F94* ptr; - int r0, r1; - - sub_0801E8D4(); - sub_080A4D34(); - r1 = 4; - do { - gUnk_02034492[r1] = 0; - r1++; - } while (r1 <= 0xd); - ptr = sub_080A6A80((u16)gRoomTransition.player_status.overworld_map_x, - (u16)gRoomTransition.player_status.overworld_map_y); - gPauseMenuOptions.unk2[4] = ptr->_4; - gPauseMenuOptions.unk2[5] = sub_0801DB94(); - if (IsItemEquipped(ITEM_LANTERN_ON) != EQUIP_SLOT_NONE) { - r1 = 0x10; - } else { - r1 = 0xf; - } - gPauseMenuOptions.unk15 = r1; - r0 = gUnk_08128A38[gPauseMenuOptions.unk1].unk1; - r0 = sub_080A50A0(r0); - gPauseMenuOptions.unk1 = r0; - gPauseMenuOptions.unk14 = r0; - sub_080A4DB8(r0); - SetFade(FADE_INSTANT, 0x20); - sub_080A4E90(1); -} - -void PauseMenu_Variant1(void) { - if (gFadeControl.active == 0) { - sub_080A4E90(2); - } -} - -void PauseMenu_Variant2(void) { - int iVar1; - u32 uVar2; - int iVar4; - s32 bVar5; - - if (sub_080A51F4() && (gMenu.field_0xc != NULL)) { - iVar1 = -1; - switch (gInput.newKeys) { - case START_BUTTON: - iVar1 = 0; - break; - case L_BUTTON: - iVar1 = 1; - break; - case R_BUTTON: - iVar1 = 2; - break; - case B_BUTTON: - iVar1 = 3; - break; - } - if (iVar1 >= 0) { - switch (bVar5 = gMenu.field_0xc[iVar1]) { - case 0: - break; - case 4 ... 6: - case 0xf: - uVar2 = GetInventoryValue(ITEM_MAP); - if (uVar2 == 0) { - iVar4 = 1; - if (iVar1 == 1) { - iVar4 = 2; - } - bVar5 = gMenu.field_0xc[iVar4]; - } - default: - gPauseMenuOptions.unk14 = bVar5; - SoundReq(SFX_TEXTBOX_OPEN); - gMenu.field_0xc = NULL; - break; - } - } - } - bVar5 = sub_080A50A0(gPauseMenuOptions.unk14); - if (gPauseMenuOptions.unk1 != bVar5) { - gPauseMenuOptions.unk14 = bVar5; - sub_080A51D4(); - if (bVar5 == 0xe) { - sub_080A4E90(6); - } else { - sub_080A4E90(3); - MemClear(&gBG0Buffer, sizeof(gBG0Buffer)); - gScreen.bg0.updated = 1; - } - } -} - -s32 sub_080A50A0(s32 param_1) { - s32 iVar1; - - if (param_1 == 0xf) { - iVar1 = AreaHasMap(); - param_1 = 4; - if (iVar1 != 0) { - param_1 = 5; - } - } - return param_1; -} - -void PauseMenu_Variant3(void) { - s32 iVar1; - - iVar1 = gPauseMenuOptions.unk16 + 2; - if (0x10 < iVar1) { - gScreen.lcd.displayControl &= 0xf8ff; - sub_080A4E90(4); - iVar1 = 0x10; - } - gPauseMenuOptions.unk16 = iVar1; -} - -void PauseMenu_Variant4(void) { - u32 t; - gPauseMenuOptions.unk16 = 0x10; - gPauseMenuOptions.unk1 = t = gPauseMenuOptions.unk14; - sub_080A4DB8(t); - sub_080A4E90(5); -} - -void PauseMenu_Variant5(void) { - s32 iVar1; - - iVar1 = gPauseMenuOptions.unk16 - 2; - if (iVar1 < 0) { - sub_080A4E90(2); - iVar1 = 0; - } - gPauseMenuOptions.unk16 = iVar1; -} - -void sub_080A5128(void) { - int r5, t; - struct { - int x; - int y; - } p[3]; - - switch (gPauseMenuOptions.unk1) { - case 7: - case 8: - p[0].x = 0x60; - p[0].y = 0x18; - p[1].x = -0x10; - p[1].y = 0x48; - p[2].x = 0x100; - p[2].y = 0x48; - break; - case 9: - case 10: - case 11: - return; - default: - p[0].x = 0x40; - p[0].y = 0x10 - (gPauseMenuOptions.unk16 << 1); - t = (gPauseMenuOptions.unk16 / 3); - p[1].x = 0x10 - t; - p[1].y = 0x48; - p[2].x = 0xe0 + t; - p[2].y = 0x48; - break; - } - gOamCmd._4 = 0; - gOamCmd._6 = 0; - gOamCmd._8 = 0x400; - gOamCmd.x = p[0].x; - gOamCmd.y = p[0].y; -#ifdef EU - r5 = 0x1fa; -#else - r5 = 0x1fb; -#endif - DrawDirect(r5, 0); - gOamCmd.x = p[1].x; - gOamCmd.y = p[1].y; - DrawDirect(r5, 1); - gOamCmd.x = p[2].x; - gOamCmd.y = p[2].y; - DrawDirect(r5, 2); -} - -void sub_080A51D4(void) { - u32 i = gPauseMenuOptions.unk1; - if (i < 0xe) { - gPauseMenuOptions.unk2[i] = gMenu.field_0x3; - } -} - -bool32 sub_080A51F4(void) { - bool32 retval = TRUE; - if (gFadeControl.active != 0) - retval = FALSE; - if (gPauseMenuOptions.unk11 != 2) - retval = FALSE; - return retval; -} - -typedef struct { - u8 up; - u8 down; - u8 left; - u8 right; - u8 type; - u8 unk0; - u8 x; - u8 y; -} ItemMenuTableEntry; - -Subtask PauseMenu_ItemMenu_Draw; -Subtask PauseMenu_ItemMenu_Init; -Subtask PauseMenu_ItemMenu_Update; -void PauseMenu_ItemMenu(void) { - static Subtask* const pauseMenu_Types[] = { PauseMenu_ItemMenu_Init, PauseMenu_ItemMenu_Update }; - - pauseMenu_Types[gMenu.menuType](); - PauseMenu_ItemMenu_Draw(); -} - -void PauseMenu_ItemMenu_Init(void) { - static const KeyButtonLayout gUnk_08128B50 = { - 0xd0u, - 0x10u, - 0u, - 0xb8u, - 0x10u, - 0u, - 0xffu, - 0xd8u, - 0u, - { - 0x3u, - 0u, - 0x4u, - 0u, - 0u, - 0u, - 0x1u, - 0u, - 0xffu, - 0u, - 0u, - }, - }; - - u32 uVar1; - u32 i; - u32 item; - - gMenu.field_0xc = NULL; - sub_080A70AC((KeyButtonLayout*)&gUnk_08128B50); - for (item = ITEM_SMITH_SWORD; item < ITEM_BOTTLE_EMPTY; item++) { - uVar1 = GetInventoryValue(item); - if ((uVar1 == 1) && (i = gItemMetaData[item].menuSlot, i <= MENU_SLOT_SAVE_BUTTON_JP)) { - switch (item) { - case ITEM_LANTERN_OFF: - case ITEM_LANTERN_ON: - item = gPauseMenuOptions.unk15; - break; - default: - break; - } - gPauseMenu.items[i] = item; - sub_080A5F48(item, i * 8 + 0x360); - } - } - SetMenuType(1); -} - -const ItemMenuTableEntry gItemMenuTable[] = { - [MENU_SLOT_SWORD] = { MENU_SLOT_BOTTLE0, MENU_SLOT_SHIELD, MENU_SLOT_BOOMERANG, MENU_SLOT_GUST_JAR, 0x01, 0x0c, - 0x42, 0x33 }, - [MENU_SLOT_GUST_JAR] = { MENU_SLOT_BOTTLE1, MENU_SLOT_MOLE_MITTS, MENU_SLOT_SWORD, MENU_SLOT_CANE, 0x01, 0x10, 0x66, - 0x33 }, - [MENU_SLOT_CANE] = { MENU_SLOT_BOTTLE3, MENU_SLOT_LANTERN, MENU_SLOT_GUST_JAR, MENU_SLOT_BOOMERANG, 0x01, 0x14, - 0x8a, 0x33 }, - [MENU_SLOT_BOOMERANG] = { MENU_SLOT_SAVE_BUTTON, MENU_SLOT_BOMBS, MENU_SLOT_CANE, MENU_SLOT_SWORD, 0x01, 0x15, 0xae, - 0x33 }, - [MENU_SLOT_SHIELD] = { MENU_SLOT_SWORD, MENU_SLOT_PEGASUS_BOOTS, MENU_SLOT_BOMBS, MENU_SLOT_MOLE_MITTS, 0x01, 0x16, - 0x42, 0x4b }, - [MENU_SLOT_MOLE_MITTS] = { MENU_SLOT_GUST_JAR, MENU_SLOT_ROCS_CAPE, MENU_SLOT_SHIELD, MENU_SLOT_LANTERN, 0x01, 0x17, - 0x66, 0x4b }, - [MENU_SLOT_LANTERN] = { MENU_SLOT_CANE, MENU_SLOT_OCARINA, MENU_SLOT_MOLE_MITTS, MENU_SLOT_BOMBS, 0x01, 0x00, 0x8a, - 0x4b }, - [MENU_SLOT_BOMBS] = { MENU_SLOT_BOOMERANG, MENU_SLOT_BOW, MENU_SLOT_LANTERN, MENU_SLOT_SHIELD, 0x01, 0x00, 0xae, - 0x4b }, - [MENU_SLOT_PEGASUS_BOOTS] = { MENU_SLOT_SHIELD, MENU_SLOT_BOTTLE0, MENU_SLOT_BOW, MENU_SLOT_ROCS_CAPE, 0x01, 0x00, - 0x42, 0x63 }, - [MENU_SLOT_ROCS_CAPE] = { MENU_SLOT_MOLE_MITTS, MENU_SLOT_BOTTLE1, MENU_SLOT_PEGASUS_BOOTS, MENU_SLOT_OCARINA, 0x01, - 0x00, 0x66, 0x63 }, - [MENU_SLOT_OCARINA] = { MENU_SLOT_LANTERN, MENU_SLOT_BOTTLE3, MENU_SLOT_ROCS_CAPE, MENU_SLOT_BOW, 0x01, 0x00, 0x8a, - 0x63 }, - [MENU_SLOT_BOW] = { MENU_SLOT_BOMBS, MENU_SLOT_SAVE_BUTTON, MENU_SLOT_OCARINA, MENU_SLOT_PEGASUS_BOOTS, 0x01, 0x00, - 0xae, 0x63 }, - [MENU_SLOT_BOTTLE0] = { MENU_SLOT_PEGASUS_BOOTS, MENU_SLOT_SWORD, MENU_SLOT_SAVE_BUTTON, MENU_SLOT_BOTTLE1, 0x01, - 0x00, 0x42, 0x7b }, - [MENU_SLOT_BOTTLE1] = { MENU_SLOT_ROCS_CAPE, MENU_SLOT_GUST_JAR, MENU_SLOT_BOTTLE0, MENU_SLOT_BOTTLE2, 0x01, 0x00, - 0x5a, 0x7b }, - [MENU_SLOT_BOTTLE2] = { MENU_SLOT_ROCS_CAPE, MENU_SLOT_GUST_JAR, MENU_SLOT_BOTTLE1, MENU_SLOT_BOTTLE3, 0x01, 0x00, - 0x72, 0x7b }, - [MENU_SLOT_BOTTLE3] = { MENU_SLOT_OCARINA, MENU_SLOT_CANE, MENU_SLOT_BOTTLE2, MENU_SLOT_SAVE_BUTTON, 0x01, 0x00, - 0x8a, 0x7b }, - [MENU_SLOT_SAVE_BUTTON] = { MENU_SLOT_BOW, MENU_SLOT_BOOMERANG, MENU_SLOT_BOTTLE3, MENU_SLOT_BOTTLE0, 0x03, 0x00, - 0xb5, 0x75 }, - [MENU_SLOT_SAVE_BUTTON_JP] = { MENU_SLOT_BOW, MENU_SLOT_BOOMERANG, MENU_SLOT_BOTTLE3, MENU_SLOT_BOTTLE0, 0x05, 0x00, - 0xb5, 0x75 }, -}; - -void sub_080A6F6C(u32); -void PauseMenu_ItemMenu_Update(void) { - static const u8 gUnk_08128BF4[] = { 14, 15, 2, 0 }; - u32 item; - u32 menuSlot; - const ItemMenuTableEntry* entry; - - if (sub_080A51F4()) { - gMenu.field_0xc = (u8*)gUnk_08128BF4; - menuSlot = gMenu.field_0x3; - - entry = &gItemMenuTable[menuSlot]; - switch (gInput.newKeys) { - case A_BUTTON: - if (menuSlot == MENU_SLOT_SAVE_BUTTON) { -#if defined(DEMO_USA) || defined(DEMO_JP) - SoundReq(SFX_MENU_ERROR); -#else - sub_080A4E84(0xb); - SoundReq(SFX_TEXTBOX_SELECT); -#endif - break; - } - case B_BUTTON: - if (gPauseMenu.items[menuSlot] != 0) { - u32 slot = !!(gInput.newKeys ^ 1); - ForceEquipItem(gPauseMenu.items[menuSlot], slot); - SoundReq(SFX_TEXTBOX_SELECT); - } - break; - default: - switch (gInput.unk4) { - case DPAD_UP: - menuSlot = entry->up; - break; - case DPAD_DOWN: - menuSlot = entry->down; - break; - case DPAD_LEFT: - menuSlot = entry->left; - break; - case DPAD_RIGHT: - menuSlot = entry->right; - break; - } - break; - } - if (gMenu.field_0x3 != menuSlot) { - gMenu.field_0x3 = menuSlot; - SoundReq(SFX_TEXTBOX_CHOICE); - } - item = gPauseMenu.items[menuSlot]; - switch (menuSlot) { - case MENU_SLOT_BOTTLE0: - case MENU_SLOT_BOTTLE1: - case MENU_SLOT_BOTTLE2: - case MENU_SLOT_BOTTLE3: - if (item != 0) { - item = gSave.saved_status.field_0x24[item - 6]; - } - break; - case MENU_SLOT_SAVE_BUTTON: - // ITEM_SKILL_FAST_SPIN, but that does not make any sense at all - item = 0x73; - break; - default: - break; - } - sub_080A6F6C(item + 0x400); - } -} - -u32 GetMenuSlotForItem(u32 item); -extern u8* gSpriteAnimations_322[]; -#ifdef EU -#define sub_080A5384_draw_constant0 0x1fa -#define sub_080A5384_draw_constant1 0x141 -#else -#define sub_080A5384_draw_constant0 0x1fb -#define sub_080A5384_draw_constant1 0x142 -#endif -void PauseMenu_ItemMenu_Draw(void) { - u32 tmp; - u32 i; - s32 color; - const ItemMenuTableEntry* entry; - - gOamCmd._4 = 0x400; - gOamCmd._6 = 0; - gOamCmd._8 = 0; - for (i = 0; i < MENU_SLOT_COUNT; i++) { - u32 item; - if (gPauseMenu.items[i] != 0) { - entry = &gItemMenuTable[i]; - gOamCmd.x = entry->x; - gOamCmd.y = entry->y; - item = gPauseMenu.items[i]; - switch (item) { - case ITEM_BOTTLE1: - case ITEM_BOTTLE2: - case ITEM_BOTTLE3: - case ITEM_BOTTLE4: - item = gSave.stats.bottles[item - ITEM_BOTTLE1]; - break; - default: - break; - } - color = 3; - switch (item) { - case ITEM_BOMBS: - case ITEM_REMOTE_BOMBS: - if (gBombBagSizes[gSave.stats.bombBagType] <= gSave.stats.bombCount) { - color = 4; - } - break; - case ITEM_BOW: - case ITEM_LIGHT_ARROW: - if (gQuiverSizes[gSave.stats.quiverType] <= gSave.stats.arrowCount) { - color = 4; - } - break; - default: - break; - } - gOamCmd._8 = 0x800 | color << 0xc | ((i * 8) + 0x360); - DrawDirect(sub_080A5384_draw_constant1, *gSpriteAnimations_322[item]); - } - } - gOamCmd._8 = 0x800; - { - u32 slot = gMenu.field_0x3; - if ((slot == MENU_SLOT_SAVE_BUTTON) && (gSaveHeader->language != 0)) { - slot = MENU_SLOT_SAVE_BUTTON_JP; - } - entry = &gItemMenuTable[slot]; - gOamCmd.x = entry->x; - gOamCmd.y = entry->y; - tmp = entry->type + ((gMain.ticks & 0x10) != 0 ? 3 : 4); - DrawDirect(sub_080A5384_draw_constant0, tmp); - } - { - u32 slot; - if (gSaveHeader->language != 0) { - slot = MENU_SLOT_SAVE_BUTTON; - } else { - slot = MENU_SLOT_SAVE_BUTTON_JP; - } - entry = &gItemMenuTable[slot]; - gOamCmd.x = entry->x; - gOamCmd.y = entry->y; - gOamCmd._8 = 0x800; - DrawDirect(sub_080A5384_draw_constant0, 0x22); - } - i = GetMenuSlotForItem(gSave.stats.itemButtons[SLOT_A]); - if (i < MENU_SLOT_COUNT) { - entry = &gItemMenuTable[i]; - gOamCmd.x = entry->x; - gOamCmd.y = entry->y; - DrawDirect(sub_080A5384_draw_constant0, 3); - } - i = GetMenuSlotForItem(gSave.stats.itemButtons[SLOT_B]); - if (i < MENU_SLOT_COUNT) { - entry = &gItemMenuTable[i]; - gOamCmd.x = entry->x; - gOamCmd.y = entry->y; - DrawDirect(sub_080A5384_draw_constant0, 3); - } -} - -u32 GetMenuSlotForItem(u32 item) { - u32 i; - - if (item != 0) { - for (i = 0; i < MENU_SLOT_COUNT; i++) { - if (item == gPauseMenu.items[i]) - return i; - } - } - return MENU_SLOT_SAVE_BUTTON_JP; -} - -Subtask sub_080A5594; -Subtask sub_080A56A0; -void PauseMenu2(void) { - static Subtask* const pauseMenu2_Types[] = { - sub_080A5594, - sub_080A56A0, - }; - pauseMenu2_Types[gMenu.menuType](); - sub_080A57F4(); -} diff --git a/src/movement.c b/src/movement.c index 62b76406..6e87133b 100644 --- a/src/movement.c +++ b/src/movement.c @@ -67,31 +67,30 @@ bool32 TileCollisionFunction0(s32 x, s32 y) { bool32 TileCollisionFunction1(s32 x, s32 y) { return TRUE; } - +const u16 gUnk_08133918[] = { + /* + 0b1000000000000000, + 0b1100000000000000, + 0b1110000000000000, + 0b1111000000000000, + 0b1111100000000000, + 0b1111110000000000, + 0b1111111000000000, + 0b1111111100000000, + 0b1111111110000000, + 0b1111111111000000, + 0b1111111111100000, + 0b1111111111110000, + 0b1111111111111000, + 0b1111111111111100, + 0b1111111111111110, + 0b1111111111111111, + */ + 0x8000, 0xC000, 0xE000, 0xF000, 0xF800, 0xFC00, 0xFE00, 0xFF00, + 0xFF80, 0xFFC0, 0xFFE0, 0xFFF0, 0xFFF8, 0xFFFC, 0xFFFE, 0xFFFF, +}; /** Diagonal North West filled*/ bool32 TileCollisionFunction2(s32 x, s32 y) { - static const u16 gUnk_08133918[] = { - /* - 0b1000000000000000, - 0b1100000000000000, - 0b1110000000000000, - 0b1111000000000000, - 0b1111100000000000, - 0b1111110000000000, - 0b1111111000000000, - 0b1111111100000000, - 0b1111111110000000, - 0b1111111111000000, - 0b1111111111100000, - 0b1111111111110000, - 0b1111111111111000, - 0b1111111111111100, - 0b1111111111111110, - 0b1111111111111111, - */ - 0x8000, 0xC000, 0xE000, 0xF000, 0xF800, 0xFC00, 0xFE00, 0xFF00, - 0xFF80, 0xFFC0, 0xFFE0, 0xFFF0, 0xFFF8, 0xFFFC, 0xFFFE, 0xFFFF, - }; return gUnk_08133918[y & 0xf] >> (x & 0xf) & 1; } diff --git a/src/npc/beedle.c b/src/npc/beedle.c index b9c562ee..351a53fb 100644 --- a/src/npc/beedle.c +++ b/src/npc/beedle.c @@ -70,7 +70,7 @@ void sub_080632C8(Entity* this) { } void sub_080632E0(Entity* this) { - if (LoadExtraSpriteData(this, gUnk_0810C8D4) != 0) { + if (LoadExtraSpriteData(this, gUnk_0810C8D4)) { InitializeAnimation(this, 0); sub_08078778(this); this->spriteSettings.draw = 1; @@ -127,7 +127,7 @@ void Beedle_Head(Entity* this) { void sub_08063410(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, gUnk_0810C8D4) == 0) { + if (!LoadExtraSpriteData(this, gUnk_0810C8D4)) { return; } this->action++; diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c index 7e4f161a..fb31384a 100644 --- a/src/npc/bladeBrothers.c +++ b/src/npc/bladeBrothers.c @@ -11,25 +11,202 @@ #include "game.h" #include "item.h" -extern void (*gUnk_081115C0[])(Entity*); -extern void (*gUnk_081115D0[])(Entity*); +void sub_08068A1C(Entity*); +void sub_08068A4C(Entity*); +void sub_08068AA4(Entity*); +void sub_08068ADC(Entity*); +void (*const gUnk_081115C0[])(Entity*) = { + sub_08068A1C, + sub_08068A4C, + sub_08068AA4, + sub_08068ADC, +}; +void sub_08068AFC(Entity*); +void sub_08068b2c(Entity*); +void sub_08068B70(Entity*); +void (*const gUnk_081115D0[])(Entity*) = { + sub_08068AFC, + sub_08068b2c, + sub_08068B70, +}; + +const u16 gUnk_081115DC[] = { 183, 184, 185, 186, 187, 188, 189, 190 }; + +// TODO extract macros +extern const PlayerMacroEntry gUnk_08004A0C; +extern const PlayerMacroEntry gUnk_08004A16; +extern const PlayerMacroEntry gUnk_08004A24; +extern const PlayerMacroEntry gUnk_08004A32; +extern const PlayerMacroEntry gUnk_08004A48; +extern const PlayerMacroEntry gUnk_08004A72; +extern const PlayerMacroEntry gUnk_08004A8C; +extern const PlayerMacroEntry gUnk_08004AA6; +const PlayerMacroEntry* const BladeBrothers_PlayerMacros[] = { + &gUnk_08004A0C, &gUnk_08004A16, &gUnk_08004A24, &gUnk_08004A32, &gUnk_08004A48, &gUnk_08004A72, + &gUnk_08004A8C, &gUnk_08004AA6, NULL, NULL, NULL, +}; + +const u8 BladeBrothers_EquippedItem[] = { + 0, 0, ITEM_PEGASUS_BOOTS, ITEM_ROCS_CAPE, 0, 0, 0, 0, 0, 0, 0, +}; + +const u8 gUnk_08111623[] = { + 7, 0, 4, 6, 5, 8, 9, 10, +}; +const u8 gUnk_0811162B[] = { + ITEM_SKILL_SPIN_ATTACK, + ITEM_SKILL_ROCK_BREAKER, + ITEM_SKILL_DASH_ATTACK, + ITEM_SKILL_DOWN_THRUST, + ITEM_SKILL_ROLL_ATTACK, + ITEM_SKILL_SWORD_BEAM, + ITEM_SKILL_PERIL_BEAM, + ITEM_SKILL_GREAT_SPIN, + 243, + 244, + 245, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, +}; + +const u16 gUnk_08111664[] = { + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x01), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x09), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x11), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x19), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x22), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x2b), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x34), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x3d), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x46), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x50), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x5a), +}; + +const u16 gUnk_0811167A[] = { + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x02), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x0a), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x12), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x1a), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x23), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x2c), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x35), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x3e), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x47), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x51), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x5b), +}; +const u16 gUnk_08111690[] = { + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x03), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x0b), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x13), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x1b), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x24), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x2d), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x36), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x3f), + 0x0, + 0x0, + 0x0, +}; +const u16 gUnk_081116A6[] = { + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x04), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x0c), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x14), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x1c), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x25), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x2e), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x37), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x40), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x48), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x52), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x5c), +}; +const u16 gUnk_081116BC[] = { + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x05), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x0d), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x15), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x1d), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x26), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x2f), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x38), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x41), + 0x0, + 0x0, + 0x0, +}; +const u16 gUnk_081116D2[] = { + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x06), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x0e), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x16), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x1e), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x27), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x30), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x39), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x42), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x49), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x53), TEXT_INDEX(TEXT_BLADE_MASTERS, 0x5d), +}; +const u16 gUnk_081116E8[] = { + 0x0, + 0x0, + 0x0, + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x1f), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x28), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x31), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x3a), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x43), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x1f), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x1f), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x1f), +}; +const u16 gUnk_081116FE[] = { + 0x0, + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x07), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x0f), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x17), + 0x0, + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x32), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x3b), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x44), + 0x0, + 0x0, + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x5e), +}; +const u16 gUnk_08111714[] = { + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x60), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x61), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x62), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x63), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x64), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x65), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x66), + TEXT_INDEX(TEXT_BLADE_MASTERS, 0x67), + 0x0, + 0x0, + 0x0, +}; + +const u16 gUnk_0811172A[] = { 0, 0, 30, 0, 0, 0, 0, 30, 0, 0, 0 }; +const u32 gUnk_08111740[] = { 1, 4, 3, 7, 2, 5, 8, 6, 10, 11, 12 }; -extern u16 gUnk_081115DC[]; -extern u8 BladeBrothers_EquippedItem[]; -extern PlayerMacroEntry* BladeBrothers_PlayerMacros[]; -extern u8 gUnk_08111623[]; -extern u8 gUnk_0811162B[]; -extern u16 gUnk_08111664[]; -extern u16 gUnk_0811167A[]; -extern u16 gUnk_08111690[]; -extern u16 gUnk_081116A6[]; -extern u16 gUnk_081116BC[]; -extern u16 gUnk_081116D2[]; -extern u16 gUnk_081116E8[]; -extern u16 gUnk_081116FE[]; -extern u16 gUnk_08111714[]; -extern u32 gUnk_08111740[]; -extern u16 gUnk_0811172A[]; extern u32 gUnk_0300402B; extern EntityData gUnk_080F3494; @@ -146,7 +323,7 @@ void BladeBrothers_StartPlayerDemonstration(Entity* this, ScriptExecutionContext if (p = this->timer, BladeBrothers_EquippedItem[p]) { ForceEquipItem(BladeBrothers_EquippedItem[this->timer], EQUIP_SLOT_A); } - InitPlayerMacro(BladeBrothers_PlayerMacros[this->timer]); + InitPlayerMacro((PlayerMacroEntry*)BladeBrothers_PlayerMacros[this->timer]); } void sub_08068BB4(Entity* this) { @@ -196,7 +373,7 @@ void BladeBrothers_GetScroll(Entity* this) { } void sub_08068C8C(Entity* this, ScriptExecutionContext* context) { - u8* arr = gUnk_0811162B + 0xd; + const u8* arr = gUnk_0811162B + 0xd; context->condition = *(u32*)(arr + this->timer * 4); } diff --git a/src/npc/carpenter.c b/src/npc/carpenter.c index d8572d1d..a4da0fff 100644 --- a/src/npc/carpenter.c +++ b/src/npc/carpenter.c @@ -98,7 +98,7 @@ void sub_08067314(Entity* this) { void Carpenter_Fusion(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, &gUnk_08110CA8[this->type * 4]) != 0) { + if (LoadExtraSpriteData(this, &gUnk_08110CA8[this->type * 4])) { this->action = this->action + 1; this->spriteSettings.draw = 1; SetDefaultPriority(this, PRIO_MESSAGE); diff --git a/src/npc/castleMaid.c b/src/npc/castleMaid.c index cb327cdc..c17db2f8 100644 --- a/src/npc/castleMaid.c +++ b/src/npc/castleMaid.c @@ -66,7 +66,7 @@ void sub_08064570(CastleMaidEntity* this) { tmp3 = 0; } data = &gUnk_0810F874[tmp3 * 3]; - if (LoadExtraSpriteData(super, data) == 0) { + if (!LoadExtraSpriteData(super, data)) { return; } super->action++; diff --git a/src/npc/dog.c b/src/npc/dog.c index cacabce8..fef5cd27 100644 --- a/src/npc/dog.c +++ b/src/npc/dog.c @@ -4,32 +4,177 @@ #include "npc.h" #include "item.h" -extern void (*gUnk_08111D88[])(Entity*); void sub_08069FE8(Entity*); -u32 sub_08069EF0(Entity*); - -extern u8 gUnk_08111DA8[]; +bool32 sub_08069EF0(Entity*); bool32 sub_08069F90(Entity*); void sub_08069F6C(Entity*); void sub_08069D00(Entity*); void sub_08069CB8(Entity*); - -extern u8 gUnk_08111DB0[]; void sub_0806A028(Entity*); - void sub_08069FBC(Entity*); - -extern SpriteLoadData gUnk_08111D58[]; -extern u8 gUnk_08111E30[]; - void sub_0806A080(Entity*); -extern Dialog gUnk_08111E34[][10]; +const SpriteLoadData gUnk_08111D58[] = { +#ifdef EU + { 82, 67, 4 }, { 7250, 67, 4 }, { 0, 0, 0 }, { 64, 69, 4 }, { 7232, 69, 4 }, { 0, 0, 0 }, +#else + { 82, 67, 4 }, { 7250, 67, 4 }, { 0, 0, 0 }, { 1, 69, 4 }, { 7169, 69, 4 }, { 0, 0, 0 }, +#endif + { 4, 68, 4 }, { 7172, 68, 4 }, { 0, 0, 0 }, { 83, 69, 4 }, { 7251, 69, 4 }, { 0, 0, 0 }, +}; -extern u16 gUnk_08111F74[][5]; +void sub_08069B44(Entity*); +void sub_08069C40(Entity*); +void sub_08069D54(Entity*); +void sub_08069DF8(Entity*); +void sub_08069E44(Entity*); +void sub_08069E50(Entity*); +void sub_08069ECC(Entity*); +void sub_08069EE0(Entity*); +void (*const gUnk_08111D88[])(Entity*) = { + sub_08069B44, sub_08069C40, sub_08069D54, sub_08069DF8, sub_08069E44, sub_08069E50, sub_08069ECC, sub_08069EE0, +}; -extern u16 gUnk_08111FD8[]; +const u8 gUnk_08111DA8[] = { 7, 23, 8, 24, 8, 24, 9, 25 }; +const u8 gUnk_08111DB0[] = { + 24, 24, 24, 24, 25, 25, 25, 25, 77, 77, 77, 77, 78, 78, 78, 146, 146, 214, 214, 214, 215, 215, + 215, 215, 27, 27, 27, 27, 24, 24, 24, 24, 76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 77, + 78, 78, 78, 78, 146, 146, 146, 146, 147, 147, 147, 215, 215, 27, 27, 27, 24, 24, 24, 24, 24, 76, + 76, 76, 77, 77, 77, 77, 145, 145, 145, 145, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, 147, 147, + 215, 215, 215, 215, 212, 212, 212, 24, 24, 24, 24, 24, 25, 25, 25, 77, 77, 145, 145, 145, 146, 146, + 146, 146, 214, 214, 214, 214, 215, 215, 215, 215, 215, 215, 215, 215, 212, 212, 212, 212, +}; +const u8 gUnk_08111E30[] = { 19, 13, 13, 13 }; +void sub_0806A0A4(Entity*); +void sub_0806A144(Entity*); + +const Dialog gUnk_08111E34[][10] = { + { + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_LON_LON, 0x8), TEXT_INDEX(TEXT_STOCKWELL, 0x23) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_LON_LON, 0x8), TEXT_INDEX(TEXT_STOCKWELL, 0x23) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_LON_LON, 0x8), TEXT_INDEX(TEXT_STOCKWELL, 0x23) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_LON_LON, 0x8), TEXT_INDEX(TEXT_STOCKWELL, 0x23) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_LON_LON, 0x8), TEXT_INDEX(TEXT_STOCKWELL, 0x23) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_LON_LON, 0x8), TEXT_INDEX(TEXT_STOCKWELL, 0x23) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_LON_LON, 0x8), TEXT_INDEX(TEXT_STOCKWELL, 0x23) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_LON_LON, 0x8), TEXT_INDEX(TEXT_STOCKWELL, 0x23) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_LON_LON, 0x8), TEXT_INDEX(TEXT_STOCKWELL, 0x23) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_LON_LON, 0x8), TEXT_INDEX(TEXT_STOCKWELL, 0x23) } }, + }, + { + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_TOWN, 0x18), TEXT_INDEX(TEXT_TOWN, 0x19) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_TOWN, 0x18), TEXT_INDEX(TEXT_TOWN, 0x19) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_TOWN, 0x18), TEXT_INDEX(TEXT_TOWN, 0x19) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_TOWN, 0x18), TEXT_INDEX(TEXT_TOWN, 0x19) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_TOWN2, 0x14), TEXT_INDEX(TEXT_TOWN2, 0x15) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_TOWN3, 0x14), TEXT_INDEX(TEXT_TOWN3, 0x15) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_TOWN4, 0x14), TEXT_INDEX(TEXT_TOWN4, 0x15) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_TOWN5, 0x14), TEXT_INDEX(TEXT_TOWN5, 0x15) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_TOWN6, 0x13), TEXT_INDEX(TEXT_TOWN6, 0x14) } }, + { 0, 0, DIALOG_MINISH, 1, { TEXT_INDEX(TEXT_TOWN6, 0x13), TEXT_INDEX(TEXT_TOWN6, 0x14) } }, + }, + { + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A0A4 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A0A4 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A0A4 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A0A4 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A0A4 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A0A4 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A0A4 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A0A4 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A0A4 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A0A4 } }, + }, + { + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A144 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A144 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A144 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A144 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A144 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A144 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A144 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A144 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A144 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806A144 } }, + } +}; +const u16 gUnk_08111F74[][5] = { + { + TEXT_INDEX(TEXT_TOWN, 0x3b), + TEXT_INDEX(TEXT_TOWN, 0x3c), + TEXT_INDEX(TEXT_TOWN2, 0x32), + TEXT_INDEX(TEXT_TOWN2, 0x33), + TEXT_INDEX(TEXT_TOWN2, 0x34), + }, + { + TEXT_INDEX(TEXT_TOWN, 0x3b), + TEXT_INDEX(TEXT_TOWN, 0x3c), + TEXT_INDEX(TEXT_TOWN2, 0x32), + TEXT_INDEX(TEXT_TOWN2, 0x33), + TEXT_INDEX(TEXT_TOWN2, 0x34), + }, + { + TEXT_INDEX(TEXT_TOWN, 0x3b), + TEXT_INDEX(TEXT_TOWN, 0x3c), + TEXT_INDEX(TEXT_TOWN2, 0x32), + TEXT_INDEX(TEXT_TOWN2, 0x33), + TEXT_INDEX(TEXT_TOWN2, 0x34), + }, + { + TEXT_INDEX(TEXT_TOWN, 0x3b), + TEXT_INDEX(TEXT_TOWN, 0x3c), + TEXT_INDEX(TEXT_TOWN2, 0x32), + TEXT_INDEX(TEXT_TOWN2, 0x33), + TEXT_INDEX(TEXT_TOWN2, 0x34), + }, + { + TEXT_INDEX(TEXT_TOWN2, 0x30), + TEXT_INDEX(TEXT_TOWN2, 0x31), + TEXT_INDEX(TEXT_TOWN2, 0x32), + TEXT_INDEX(TEXT_TOWN2, 0x33), + TEXT_INDEX(TEXT_TOWN2, 0x34), + }, + { + TEXT_INDEX(TEXT_TOWN3, 0x2c), + TEXT_INDEX(TEXT_TOWN3, 0x2d), + TEXT_INDEX(TEXT_TOWN3, 0x2e), + TEXT_INDEX(TEXT_TOWN2, 0x33), + TEXT_INDEX(TEXT_TOWN3, 0x2f), + }, + { + TEXT_INDEX(TEXT_TOWN4, 0x28), + TEXT_INDEX(TEXT_TOWN4, 0x29), + TEXT_INDEX(TEXT_TOWN4, 0x2a), + TEXT_INDEX(TEXT_TOWN2, 0x33), + TEXT_INDEX(TEXT_TOWN4, 0x2b), + }, + { + TEXT_INDEX(TEXT_TOWN5, 0x28), + TEXT_INDEX(TEXT_TOWN5, 0x29), + TEXT_INDEX(TEXT_TOWN5, 0x2a), + TEXT_INDEX(TEXT_TOWN2, 0x33), + TEXT_INDEX(TEXT_TOWN5, 0x2b), + }, + { + TEXT_INDEX(TEXT_TOWN6, 0x21), + TEXT_INDEX(TEXT_TOWN6, 0x22), + TEXT_INDEX(TEXT_TOWN6, 0x23), + TEXT_INDEX(TEXT_TOWN2, 0x33), + TEXT_INDEX(TEXT_TOWN6, 0x24), + }, + { + TEXT_INDEX(TEXT_TOWN6, 0x21), + TEXT_INDEX(TEXT_TOWN6, 0x22), + TEXT_INDEX(TEXT_TOWN6, 0x23), + TEXT_INDEX(TEXT_TOWN2, 0x33), + TEXT_INDEX(TEXT_TOWN6, 0x24), + }, +}; +const u16 gUnk_08111FD8[] = { + TEXT_INDEX(TEXT_TOWN8, 0x7), TEXT_INDEX(TEXT_TOWN8, 0x8), TEXT_INDEX(TEXT_TOWN8, 0x9), + TEXT_INDEX(TEXT_TOWN8, 0x11), TEXT_INDEX(TEXT_TOWN8, 0x3), +}; void Dog(Entity* this) { gUnk_08111D88[this->action](this); sub_0806ED78(this); @@ -41,7 +186,7 @@ void sub_08069B44(Entity* this) { u32 sVar3; u32 uVar4; u32 uVar5; - if (sub_08069EF0(this) != 0) { + if (sub_08069EF0(this)) { uVar5 = sub_0805ACC0(this); if (uVar5 == 0) { sVar3 = this->x.HALF.HI; @@ -234,13 +379,13 @@ void sub_08069EE8(Entity* this) { this->action = 5; } -u32 sub_08069EF0(Entity* this) { - if (LoadExtraSpriteData(this, &gUnk_08111D58[this->type * 3]) == 0) { - return 0; +bool32 sub_08069EF0(Entity* this) { + if (!LoadExtraSpriteData(this, &gUnk_08111D58[this->type * 3])) { + return FALSE; } this->action = 1; this->field_0x68.HWORD = gUnk_08111E30[this->type]; - return 1; + return TRUE; } void Dog_Head(Entity* this) { @@ -358,7 +503,7 @@ void sub_0806A144(Entity* this) { void Dog_Fusion(Entity* this) { if (this->action == 0) { - if (sub_08069EF0(this) != 0) { + if (sub_08069EF0(this)) { this->action++; this->spriteSettings.draw = 1; SetDefaultPriority(this, PRIO_MESSAGE); diff --git a/src/npc/farmers.c b/src/npc/farmers.c index 86838460..59de6957 100644 --- a/src/npc/farmers.c +++ b/src/npc/farmers.c @@ -11,7 +11,7 @@ void sub_0806BC58(Entity* this); void Farmers(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, &gUnk_08113140[this->type * 3]) == 0) { + if (!LoadExtraSpriteData(this, &gUnk_08113140[this->type * 3])) { return; } this->action++; @@ -81,8 +81,8 @@ void sub_0806BCE8(Entity* this) { void Farmers_Fusion(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, &gUnk_08113140[this->type * 3]) != 0) { - this->action = this->action + 1; + if (LoadExtraSpriteData(this, &gUnk_08113140[this->type * 3])) { + this->action++; this->spriteSettings.draw = 1; this->spriteSettings.flipX = 0; sub_0806BC58(this); diff --git a/src/npc/forestMinish.c b/src/npc/forestMinish.c index 1e833a02..7f3625f0 100644 --- a/src/npc/forestMinish.c +++ b/src/npc/forestMinish.c @@ -1,24 +1,510 @@ -#include "npc.h" -#include "object.h" #include "functions.h" -#include "playeritem.h" #include "item.h" #include "kinstone.h" +#include "npc.h" +#include "object.h" +#include "playeritem.h" +#include "structures.h" -extern SpriteLoadData gUnk_0810A348; -extern u8* gUnk_08109D18[]; -extern u8 gUnk_08109C98[]; -extern u16 gUnk_0810A354[]; -extern Dialog gUnk_08109DC8[]; -extern u16 gUnk_0810A35A[]; -extern u16 gUnk_0810A362[]; +const FrameStruct gUnk_08109C98[] = { + { 36, 26 }, { 37, 26 }, { 38, 26 }, { 39, 155 }, { 40, 155 }, { 41, 155 }, { 42, 155 }, { 43, 152 }, + { 28, 152 }, { 29, 152 }, { 30, 153 }, { 31, 153 }, { 32, 153 }, { 33, 153 }, { 34, 26 }, { 35, 26 }, + { 36, 154 }, { 37, 154 }, { 38, 27 }, { 39, 27 }, { 40, 27 }, { 41, 27 }, { 42, 27 }, { 43, 152 }, + { 28, 152 }, { 29, 152 }, { 30, 152 }, { 31, 153 }, { 32, 153 }, { 33, 153 }, { 34, 154 }, { 35, 154 }, + { 36, 154 }, { 37, 154 }, { 38, 155 }, { 39, 155 }, { 40, 155 }, { 41, 155 }, { 42, 24 }, { 43, 24 }, + { 28, 24 }, { 29, 24 }, { 30, 24 }, { 31, 153 }, { 32, 153 }, { 33, 153 }, { 34, 153 }, { 35, 154 }, + { 36, 154 }, { 37, 154 }, { 38, 154 }, { 39, 155 }, { 40, 155 }, { 41, 155 }, { 42, 152 }, { 43, 152 }, + { 28, 152 }, { 29, 152 }, { 30, 25 }, { 31, 25 }, { 32, 25 }, { 33, 25 }, { 34, 25 }, { 35, 154 }, +}; +extern Script script_BombMinish; +extern Script script_BombMinishKinstone; +extern Script script_ForestMinish1; +extern Script script_ForestMinish2; +extern Script script_ForestMinish3; +extern Script script_ForestMinish4; +extern Script script_ForestMinish5; +extern Script script_ForestMinish6; +extern Script script_ForestMinish7; +extern Script script_ForestMinish8; +extern Script script_ForestMinish9; +extern Script script_ForestMinish10; +extern Script script_ForestMinish11; +extern Script script_ForestMinish12; +extern Script script_ForestMinish13; +extern Script script_ForestMinish14; +extern Script script_ForestMinish15; +extern Script script_ForestMinish16; +extern Script script_ForestMinish17; +extern Script script_ForestMinish18; +extern Script script_ForestMinish19; +extern Script script_ForestMinish20; +extern Script script_ForestMinish21; +Script* const gUnk_08109D18[] = { + &script_BombMinish, &script_BombMinishKinstone, &script_ForestMinish12, &script_ForestMinish13, + &script_ForestMinish14, &script_ForestMinish15, &script_ForestMinish16, &script_ForestMinish17, + &script_ForestMinish18, &script_ForestMinish19, &script_ForestMinish20, &script_ForestMinish21, + &script_ForestMinish1, &script_ForestMinish1, &script_ForestMinish1, &script_ForestMinish2, + &script_ForestMinish3, &script_ForestMinish1, &script_ForestMinish1, &script_ForestMinish1, + &script_ForestMinish1, &script_ForestMinish1, &script_ForestMinish10, &script_ForestMinish4, + &script_ForestMinish4, &script_ForestMinish4, &script_ForestMinish4, &script_ForestMinish4, + &script_ForestMinish4, &script_ForestMinish4, &script_ForestMinish4, &script_ForestMinish4, + &script_ForestMinish4, &script_ForestMinish4, &script_ForestMinish4, &script_ForestMinish4, + &script_ForestMinish11, &script_ForestMinish11, &script_ForestMinish11, &script_ForestMinish5, + &script_ForestMinish6, &script_ForestMinish7, &script_ForestMinish8, &script_ForestMinish9, +}; + +void sub_080601D4(Entity*); +const Dialog gUnk_08109DC8[][4] = { + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { KINSTONE_24, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x4), TEXT_INDEX(TEXT_MINISH, 0x0) } }, + { KINSTONE_24, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x4), TEXT_INDEX(TEXT_MINISH, 0x0) } }, + { KINSTONE_24, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x4), TEXT_INDEX(TEXT_MINISH, 0x0) } }, + { KINSTONE_24, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x4), TEXT_INDEX(TEXT_MINISH, 0x0) } }, + }, + { + { KINSTONE_14, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x9), TEXT_INDEX(TEXT_MINISH, 0x5) } }, + { KINSTONE_14, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x9), TEXT_INDEX(TEXT_MINISH, 0x5) } }, + { KINSTONE_14, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x9), TEXT_INDEX(TEXT_MINISH, 0x5) } }, + { KINSTONE_14, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x9), TEXT_INDEX(TEXT_MINISH, 0x5) } }, + }, + { +#if defined(USA) || defined(DEMO_USA) + { KINSTONE_3F, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0xe), TEXT_INDEX(TEXT_MINISH, 0xa) } }, + { KINSTONE_3F, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0xe), TEXT_INDEX(TEXT_MINISH, 0xa) } }, + { KINSTONE_3F, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0xe), TEXT_INDEX(TEXT_MINISH, 0xa) } }, + { KINSTONE_3F, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0xe), TEXT_INDEX(TEXT_MINISH, 0xa) } }, +#else + { KINSTONE_22, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0xe), TEXT_INDEX(TEXT_MINISH, 0xa) } }, + { KINSTONE_22, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0xe), TEXT_INDEX(TEXT_MINISH, 0xa) } }, + { KINSTONE_22, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0xe), TEXT_INDEX(TEXT_MINISH, 0xa) } }, + { KINSTONE_22, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0xe), TEXT_INDEX(TEXT_MINISH, 0xa) } }, +#endif + }, + { + { KINSTONE_2E, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x22), TEXT_INDEX(TEXT_MINISH, 0x1e) } }, + { KINSTONE_2E, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x22), TEXT_INDEX(TEXT_MINISH, 0x1e) } }, + { KINSTONE_2E, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x22), TEXT_INDEX(TEXT_MINISH, 0x1e) } }, + { KINSTONE_2E, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x22), TEXT_INDEX(TEXT_MINISH, 0x1e) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x1) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x1) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x1) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x1) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x25) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x25) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x25) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x25) } }, + }, + { + { KINSTONE_23, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x13), TEXT_INDEX(TEXT_MINISH, 0xf) } }, + { KINSTONE_23, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x13), TEXT_INDEX(TEXT_MINISH, 0xf) } }, + { KINSTONE_23, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x13), TEXT_INDEX(TEXT_MINISH, 0xf) } }, + { KINSTONE_23, + DIALOG_KINSTONE, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_MINISH, 0x13), TEXT_INDEX(TEXT_MINISH, 0xf) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x1a) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x1a) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x1a) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x1a) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x15) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x15) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x15) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x15) } }, + }, + { + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_080601D4 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_080601D4 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_080601D4 } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_080601D4 } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x1) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x2) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x3) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x23) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x24) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x6) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0xe) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0xe) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0xe) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x15) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x15) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x15) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x1a) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x1a) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x1a) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x1f) } }, + { ITEM_GREEN_SWORD, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_FOREST_MINISH, 0x21), TEXT_INDEX(TEXT_FOREST_MINISH, 0x20) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x21) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x24) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x25) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x25) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x29) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x2a) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x2b) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x2e) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x2f) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x2f) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x33) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x34) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x34) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x38) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x39) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x39) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x22) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x32) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x32) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x32) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_BELARI, 0x32) } }, + }, + { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x31) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x31) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x31) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FOREST_MINISH, 0x31) } }, + }, + { + { ITEM_FLIPPERS, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_TOWN_MINISH2, 0x9), TEXT_INDEX(TEXT_TOWN_MINISH2, 0x3) } }, + { ITEM_FLIPPERS, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_TOWN_MINISH2, 0x9), TEXT_INDEX(TEXT_TOWN_MINISH2, 0x3) } }, + { ITEM_FLIPPERS, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_TOWN_MINISH2, 0x9), TEXT_INDEX(TEXT_TOWN_MINISH2, 0x3) } }, + { ITEM_FLIPPERS, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_TOWN_MINISH2, 0x9), TEXT_INDEX(TEXT_TOWN_MINISH2, 0x3) } }, + }, + { + { ITEM_FLIPPERS, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_TOWN_MINISH2, 0xb), TEXT_INDEX(TEXT_TOWN_MINISH2, 0x5) } }, + { ITEM_FLIPPERS, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_TOWN_MINISH2, 0xb), TEXT_INDEX(TEXT_TOWN_MINISH2, 0x5) } }, + { ITEM_FLIPPERS, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_TOWN_MINISH2, 0xb), TEXT_INDEX(TEXT_TOWN_MINISH2, 0x5) } }, + { ITEM_FLIPPERS, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_TOWN_MINISH2, 0xb), TEXT_INDEX(TEXT_TOWN_MINISH2, 0x5) } }, + }, + { + { ITEM_FLIPPERS, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_TOWN_MINISH2, 0xc), TEXT_INDEX(TEXT_TOWN_MINISH2, 0x6) } }, + { ITEM_FLIPPERS, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_TOWN_MINISH2, 0xc), TEXT_INDEX(TEXT_TOWN_MINISH2, 0x6) } }, + { ITEM_FLIPPERS, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_TOWN_MINISH2, 0xc), TEXT_INDEX(TEXT_TOWN_MINISH2, 0x6) } }, + { ITEM_FLIPPERS, + DIALOG_INVENTORY, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_TOWN_MINISH2, 0xc), TEXT_INDEX(TEXT_TOWN_MINISH2, 0x6) } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + }, + { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + } +}; + +const SpriteLoadData gUnk_0810A348[] = { + { 48, 31, 4 }, + { 8240, 31, 4 }, + { 0, 0, 0 }, +}; +const u16 gUnk_0810A354[] = { + TEXT_INDEX(TEXT_MINISH, 0x14), + TEXT_INDEX(TEXT_MINISH, 0x18), + TEXT_INDEX(TEXT_ANSWER_HOUSE, 0x26), +}; +const u16 gUnk_0810A35A[] = { + TEXT_INDEX(TEXT_UNK_WISE, 0x1), + TEXT_INDEX(TEXT_UNK_WISE, 0x2), + TEXT_INDEX(TEXT_UNK_WISE, 0x3), + TEXT_INDEX(TEXT_UNK_WISE, 0x4), +}; +const u16 gUnk_0810A362[] = { + TEXT_INDEX(TEXT_BELARI, 0x2), + TEXT_INDEX(TEXT_BELARI, 0x3), + TEXT_INDEX(TEXT_BELARI, 0x9), + TEXT_INDEX(TEXT_BELARI, 0x8), +}; static void sub_080600F0(Entity* this); void ForestMinish(Entity* this) { switch (this->action) { case 0: - if (LoadExtraSpriteData(this, &gUnk_0810A348)) { + if (LoadExtraSpriteData(this, gUnk_0810A348)) { this->action = 1; this->spriteSettings.draw = TRUE; this->field_0x68.HALF.HI = this->animationState = this->timer << 1; @@ -100,7 +586,7 @@ void sub_0806014C(Entity* this) { void sub_08060158(Entity* this) { int index; - u8* idx3; + const FrameStruct* idx3; u8 tmp1, tmp2; if (this->timer) { @@ -114,9 +600,9 @@ void sub_08060158(Entity* this) { index = state * 4; } - idx3 = gUnk_08109C98 + (this->animationState / 2) * 0x20 + (index >> 1) * 2; - tmp1 = idx3[0]; - tmp2 = idx3[1]; + idx3 = gUnk_08109C98 + (this->animationState / 2) * 0x10 + (index >> 1); + tmp1 = idx3->frame; + tmp2 = idx3->frameIndex; if (tmp2 & 0x80) { this->animationState = sub_0806F5B0(index); @@ -144,7 +630,7 @@ void sub_080601D4(Entity* this) { } void sub_08060208(Entity* this) { - ShowNPCDialogue(this, &gUnk_08109DC8[this->type2 * 0x4]); + ShowNPCDialogue(this, gUnk_08109DC8[this->type2]); } void sub_0806021C(Entity* this) { @@ -161,11 +647,11 @@ void sub_0806021C(Entity* this) { if (GetInventoryValue(ITEM_MOLE_MITTS)) { uVar2 = 3; } - ShowNPCDialogue(this, gUnk_08109DC8 + this->type2 * 0x4 + uVar2); + ShowNPCDialogue(this, &gUnk_08109DC8[this->type2][uVar2]); } void sub_0806025C(Entity* this) { - ShowNPCDialogue(this, &gUnk_08109DC8[this->type2 * 0x4]); + ShowNPCDialogue(this, gUnk_08109DC8[this->type2]); } void sub_08060270(Entity* this) { @@ -249,7 +735,7 @@ u32 sub_08060354(void) { void ForestMinish_Fusion(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, &gUnk_0810A348)) { + if (LoadExtraSpriteData(this, gUnk_0810A348)) { this->action++; this->spriteSettings.draw = TRUE; SetDefaultPriority(this, PRIO_MESSAGE); diff --git a/src/npc/gorman.c b/src/npc/gorman.c index bfb30084..bec184f5 100644 --- a/src/npc/gorman.c +++ b/src/npc/gorman.c @@ -1,30 +1,57 @@ #include "functions.h" #include "npc.h" -extern void (*const gUnk_08111C48[])(Entity*); - void sub_080697A4(Entity* this); void sub_08069838(Entity* this); - -extern SpriteLoadData gUnk_08111C3C; - -extern u8 gUnk_08111C9C[]; - -extern u8 gUnk_08111CA8[]; - -extern u8 gUnk_08111CB4[]; - -extern u8 gUnk_08111CB8[]; - void sub_08069888(Entity* this); -extern u16 gUnk_08111C50[]; - -extern const s16 gUnk_08111C5C[]; -extern const u8 gUnk_08111C74[]; - -extern const s16 gUnk_08111C84[]; -extern const u8 gUnk_08111C8C[]; +const SpriteLoadData gUnk_08111C3C[] = { + { 193, 64, 4 }, + { 5313, 64, 4 }, + { 0, 0, 0 }, +}; +void sub_080697C4(Entity*); +void sub_080697EC(Entity*); +void (*const gUnk_08111C48[])(Entity*) = { + sub_080697C4, + sub_080697EC, +}; +const u16 gUnk_08111C50[] = { + TEXT_INDEX(TEXT_GORMAN_ORACLES, 0x1), TEXT_INDEX(TEXT_GORMAN_ORACLES, 0x2), TEXT_INDEX(TEXT_GORMAN_ORACLES, 0xc), + TEXT_INDEX(TEXT_GORMAN_ORACLES, 0xd), TEXT_INDEX(TEXT_GORMAN_ORACLES, 0xe), TEXT_INDEX(TEXT_GORMAN_ORACLES, 0x15), +}; +const Coords gUnk_08111C5C[] = { + { .HALF = { 0x68, 0x1c8 } }, { .HALF = { 0x28, 0x1c8 } }, { .HALF = { 0x68, 0x188 } }, + { .HALF = { 0x68, 0x1c8 } }, { .HALF = { 0x28, 0x188 } }, { .HALF = { 0x68, 0x188 } } +}; +const u8 gUnk_08111C74[] = { + 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 0, +}; +const Coords gUnk_08111C84[] = { + { .HALF = { 0x178, 0x108 } }, + { .HALF = { 0x138, 0x108 } }, +}; +const u8 gUnk_08111C8C[] = { + 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 0, +}; +const u8 gUnk_08111C9C[] = { + 0, 1, 0, 1, 2, 3, 2, 3, 4, 5, 4, 5, +}; +const u8 gUnk_08111CA8[] = { + 1, 2, 0, 0, 3, 4, 1, 2, 5, 5, 3, 4, +}; +const u8 gUnk_08111CB4[] = { + 0, + 1, + 0, + 1, +}; +const u8 gUnk_08111CB8[] = { + 1, + 1, + 0, + 0, +}; void Gorman(Entity* this) { if ((this->flags & ENT_SCRIPTED) != 0) { @@ -40,7 +67,7 @@ void sub_080697A4(Entity* this) { } void sub_080697C4(Entity* this) { - if (LoadExtraSpriteData(this, &gUnk_08111C3C) != 0) { + if (LoadExtraSpriteData(this, gUnk_08111C3C)) { this->action = 1; InitializeAnimation(this, 2); sub_08078778(this); @@ -69,7 +96,7 @@ void sub_080697EC(Entity* this) { void sub_08069838(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, &gUnk_08111C3C) == 0) { + if (!LoadExtraSpriteData(this, gUnk_08111C3C)) { return; } this->action++; @@ -107,11 +134,11 @@ void sub_08069888(Entity* this) { void sub_0806991C(Entity* this, ScriptExecutionContext* context) { u32 tmp; - const s16* ptr; + const Coords* ptr; this->field_0x68.HALF.LO = (Random() & 0x1f) + 0x3c; - ptr = &gUnk_08111C5C[*(s8*)&this->field_0x68.HALF.HI * 2]; - context->x.HALF.HI = gRoomControls.origin_x + ptr[0]; - context->y.HALF.HI = gRoomControls.origin_y + ptr[1]; + ptr = &gUnk_08111C5C[*(s8*)&this->field_0x68.HALF.HI]; + context->x.HALF.HI = gRoomControls.origin_x + ptr->HALF.x; + context->y.HALF.HI = gRoomControls.origin_y + ptr->HALF.y; context->unk_19 = 8; context->postScriptActions |= 2; context->condition = 0; @@ -123,11 +150,11 @@ void sub_0806991C(Entity* this, ScriptExecutionContext* context) { void sub_080699AC(Entity* this, ScriptExecutionContext* context) { u32 tmp; - const s16* ptr; + const Coords* ptr; this->field_0x68.HALF.LO = (Random() & 0x1f) + 0x3c; - ptr = &gUnk_08111C84[*(s8*)&this->field_0x68.HALF.HI * 2]; - context->x.HALF.HI = gRoomControls.origin_x + ptr[0]; - context->y.HALF.HI = gRoomControls.origin_y + ptr[1]; + ptr = &gUnk_08111C84[*(s8*)&this->field_0x68.HALF.HI]; + context->x.HALF.HI = gRoomControls.origin_x + ptr->HALF.x; + context->y.HALF.HI = gRoomControls.origin_y + ptr->HALF.y; context->unk_19 = 8; context->postScriptActions |= 2; context->condition = 0; diff --git a/src/npc/goron.c b/src/npc/goron.c index 497b8ab3..e046f7c9 100644 --- a/src/npc/goron.c +++ b/src/npc/goron.c @@ -1,8 +1,8 @@ -#include "global.h" +#include "effects.h" #include "entity.h" #include "functions.h" +#include "kinstone.h" #include "message.h" -#include "effects.h" #include "npc.h" void sub_08069310(Entity*); @@ -158,7 +158,7 @@ void sub_080694EC(Entity* this) { u32 anim; this->animationState = 4; anim = 2; - if (!CheckKinstoneFused(47)) + if (!CheckKinstoneFused(KINSTONE_2F)) anim = 8; InitAnimationForceUpdate(this, anim); this->field_0x80.HWORD = anim; diff --git a/src/npc/guard.c b/src/npc/guard.c index a3e9bf05..661739ee 100644 --- a/src/npc/guard.c +++ b/src/npc/guard.c @@ -24,12 +24,242 @@ extern void sub_08064428(Entity*); void sub_08063DC8(Entity*); void sub_08063F20(Entity*); -extern void (*const gUnk_0810F544[])(Entity*); -extern void (*const gUnk_0810F550[])(Entity*); +// TODO guardWithSpear rodata before this +const Dialog gUnk_0810CF4C[] = { + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FINDING_EZLO, 0x17) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FINDING_EZLO, 0x18) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_CARPENTERS, 0x6) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_CARPENTERS, 0x5) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_PROLOGUE, 0x3e) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_PROLOGUE, 0x40) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_PROLOGUE, 0x3c) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_PROLOGUE, 0x3b) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { TABIDACHI, + DIALOG_GLOBAL_FLAG, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_PROLOGUE, 0x3f), TEXT_INDEX(TEXT_PROLOGUE, 0x3d) } }, + { TABIDACHI, + DIALOG_GLOBAL_FLAG, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_PROLOGUE, 0x3f), TEXT_INDEX(TEXT_PROLOGUE, 0x3d) } }, + { TABIDACHI, + DIALOG_GLOBAL_FLAG, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_PROLOGUE, 0x3f), TEXT_INDEX(TEXT_PROLOGUE, 0x3d) } }, + { TABIDACHI, + DIALOG_GLOBAL_FLAG, + DIALOG_CHECK_FLAG, + 1, + { TEXT_INDEX(TEXT_PROLOGUE, 0x3f), TEXT_INDEX(TEXT_PROLOGUE, 0x3d) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_VAATI, 0x20) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_VAATI, 0x20) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_VAATI, 0x20) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_VAATI, 0x22) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_VAATI, 0x20) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FESTIVAL, 0x1d) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_PROLOGUE, 0x63) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_PROLOGUE, 0x64) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, +}; -// entity count -extern SpriteLoadData gUnk_0810F524[]; -extern void* gUnk_0810F6BC[]; +const Dialog gUnk_0810D0A4[] = { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN, 0x32) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN, 0x32) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN2, 0x2d) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN3, 0x29) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN2, 0x29) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN3, 0x26) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x24) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN5, 0x24) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN6, 0x1d) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN6, 0x20) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN7, 0xb) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN2, 0x26) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN3, 0x23) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN6, 0x1c) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN7, 0x8) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN2, 0x35) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN7, 0xc) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN2, 0x24) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN3, 0x21) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN5, 0x22) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN6, 0x1b) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN2, 0x38) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN3, 0x32) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x2d) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN5, 0x2d) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN6, 0x26) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN7, 0xd) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN2, 0x16) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN3, 0x16) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN7, 0x4) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN6, 0x15) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN7, 0x6) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN7, 0x5) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN7, 0x1) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN7, 0x9) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN7, 0xa) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN, 0x33) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN3, 0x30) } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, + { 0, 0, DIALOG_NONE, 0, { 0, 0 } }, +}; +// Seemingly wasted space. Is this ever indexed? +const u32 emptyDialogs[2048] = {}; + +const SpriteLoadData gUnk_0810F524[] = { + { 55, 43, 4 }, { 6199, 43, 4 }, { 22583, 43, 4 }, { 0, 0, 0 }, + { 4, 43, 4 }, { 16388, 43, 4 }, { 8196, 43, 4 }, { 0, 0, 0 }, +}; +void sub_08063E90(Entity*); +void sub_08063F20(Entity*); +void sub_08063F78(Entity*); +void (*const gUnk_0810F544[])(Entity*) = { + sub_08063E90, + sub_08063F20, + sub_08063F78, +}; +void sub_08063D44(Entity*); +void sub_08063DC8(Entity*); +void sub_08063E54(Entity*); +void sub_08063E6C(Entity*); +void (*const gUnk_0810F550[])(Entity*) = { + sub_08063D44, + sub_08063DC8, + sub_08063E54, + sub_08063E6C, +}; + +extern void* gUnk_0810F6BC[]; // TODO find out type of second param for sub_0806EE04 void Guard(Entity* this) { if ((this->flags & ENT_SCRIPTED) != 0) { diff --git a/src/npc/hurdyGurdyMan.c b/src/npc/hurdyGurdyMan.c index c56d745e..4decaced 100644 --- a/src/npc/hurdyGurdyMan.c +++ b/src/npc/hurdyGurdyMan.c @@ -13,7 +13,7 @@ void HurdyGurdyMan(Entity* this) { switch (this->action) { case 0: - if (LoadExtraSpriteData(this, gUnk_081144F0) != 0) { + if (LoadExtraSpriteData(this, gUnk_081144F0)) { this->action = 1; this->field_0x68.HALF.HI = 0; SetDefaultPriority(this, PRIO_MESSAGE); @@ -106,11 +106,8 @@ void sub_0806E440(Entity* this) { } void HurdyGurdyMan_Fusion(Entity* this) { - u32 uVar1; - if (this->action == 0) { - uVar1 = LoadExtraSpriteData(this, gUnk_081144F0); - if (uVar1 != 0) { + if (LoadExtraSpriteData(this, gUnk_081144F0)) { this->action++; this->spriteSettings.draw = 1; SetDefaultPriority(this, PRIO_MESSAGE); diff --git a/src/npc/kid.c b/src/npc/kid.c index 1371fb9d..59e1e87f 100644 --- a/src/npc/kid.c +++ b/src/npc/kid.c @@ -2,14 +2,184 @@ #include "message.h" #include "npc.h" -extern void (*const gUnk_0810BE0C[])(Entity*); +const SpriteLoadData gUnk_0810BD7C[] = { + { 58, 59, 4 }, + { 10298, 59, 4 }, + { 12288, 59, 4 }, + { 0, 0, 0 }, +}; +const SpriteLoadData gUnk_0810BD8C[] = { + { 58, 59, 4 }, + { 8250, 59, 4 }, + { 10241, 59, 4 }, + { 0, 0, 0 }, +}; +const SpriteLoadData gUnk_0810BD9C[] = { + { 16385, 59, 4 }, + { 58, 59, 4 }, + { 8250, 59, 4 }, + { 0, 0, 0 }, +}; +const SpriteLoadData gUnk_0810BDAC[] = { + { 58, 59, 4 }, + { 6202, 59, 4 }, + { 0, 0, 0 }, +}; +const SpriteLoadData gUnk_0810BDB8[] = { + { 58, 59, 4 }, + { 6202, 59, 4 }, + { 0, 0, 0 }, +}; + +const SpriteLoadData* const gUnk_0810BDC4[] = { + gUnk_0810BD7C, gUnk_0810BD7C, gUnk_0810BD7C, gUnk_0810BD7C, gUnk_0810BD8C, + gUnk_0810BD8C, gUnk_0810BD9C, gUnk_0810BDAC, gUnk_0810BDB8, +}; + +const u16 gUnk_0810BDE8[][2] = { { + TEXT_INDEX(TEXT_EMPTY, 0x1), + TEXT_INDEX(TEXT_EMPTY, 0x1), + }, + { + TEXT_INDEX(TEXT_EMPTY, 0x1), + TEXT_INDEX(TEXT_EMPTY, 0x1), + }, + { + TEXT_INDEX(TEXT_EMPTY, 0x1), + TEXT_INDEX(TEXT_EMPTY, 0x1), + }, + { + TEXT_INDEX(TEXT_EMPTY, 0x1), + TEXT_INDEX(TEXT_EMPTY, 0x1), + }, + { + TEXT_INDEX(TEXT_EMPTY, 0x1), + TEXT_INDEX(TEXT_EMPTY, 0x1), + }, + { + TEXT_INDEX(TEXT_EMPTY, 0x1), + TEXT_INDEX(TEXT_EMPTY, 0x1), + }, + { + TEXT_INDEX(TEXT_EMPTY, 0x1), + TEXT_INDEX(TEXT_EMPTY, 0x1), + }, + { + TEXT_INDEX(TEXT_EMPTY, 0x1), + TEXT_INDEX(TEXT_EMPTY, 0x1), + }, + { + TEXT_INDEX(TEXT_EMPTY, 0x1), + TEXT_INDEX(TEXT_EMPTY, 0x1), + } }; +void sub_080620F4(Entity*); +void sub_08062130(Entity*); +void sub_08062194(Entity*); +void (*const gUnk_0810BE0C[])(Entity*) = { sub_080620F4, sub_08062130, sub_08062194 }; + +void sub_08062194(Entity*); +const Dialog gUnk_0810BE10[] = { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FESTIVAL, 0xf) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x33) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x33) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x33) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x33) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x33) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x7) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x1d) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x1d) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x4) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x4) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x4) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x4) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x4) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x4) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN5, 0x33) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0xb) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0xb) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x5) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x5) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x5) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x5) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x5) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x5) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN5, 0x34) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0xc) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0xc) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x34) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x34) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x34) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x34) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x34) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x34) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SCHOOL, 0x8) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN8, 0x2e) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN8, 0x2e) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FESTIVAL, 0xe) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x35) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x35) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x35) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x35) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x35) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN5, 0x35) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN8, 0x2d) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN8, 0x2d) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x36) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x36) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x36) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x36) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x36) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x36) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN5, 0x36) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SIMON, 0x13) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_SIMON, 0x13) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_FESTIVAL, 0x14) } }, + { 9, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_TOWN, 0x31), TEXT_INDEX(TEXT_TOWN, 0x30) } }, + { 9, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_TOWN, 0x31), TEXT_INDEX(TEXT_TOWN, 0x30) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x10) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN3, 0x35) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x16) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN5, 0x16) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x1e) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x1e) } }, + { 0, 0, DIALOG_CHECK_FLAG, 1, { TEXT_INDEX(TEXT_FESTIVAL, 0x20), TEXT_INDEX(TEXT_FESTIVAL, 0x13) } }, +#if defined(USA) || defined(DEMO_USA) + { 212, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { TEXT_INDEX(TEXT_TOWN, 0x2a), TEXT_INDEX(TEXT_TOWN, 0x29) } }, + { 212, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { TEXT_INDEX(TEXT_TOWN, 0x2a), TEXT_INDEX(TEXT_TOWN, 0x29) } }, +#else + { 209, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { TEXT_INDEX(TEXT_TOWN, 0x2a), TEXT_INDEX(TEXT_TOWN, 0x29) } }, + { 209, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { TEXT_INDEX(TEXT_TOWN, 0x2a), TEXT_INDEX(TEXT_TOWN, 0x29) } }, +#endif + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x11) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN3, 0x33) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x17) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN5, 0x17) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x20) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x20) } }, + { 0, 0, DIALOG_CHECK_FLAG, 1, { TEXT_INDEX(TEXT_FESTIVAL, 0x21), TEXT_INDEX(TEXT_FESTIVAL, 0x1e) } }, +#if defined(USA) || defined(DEMO_USA) + { 213, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { TEXT_INDEX(TEXT_TOWN, 0x2c), TEXT_INDEX(TEXT_TOWN, 0x2b) } }, + { 213, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { TEXT_INDEX(TEXT_TOWN, 0x2c), TEXT_INDEX(TEXT_TOWN, 0x2b) } }, +#else + { 210, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { TEXT_INDEX(TEXT_TOWN, 0x2c), TEXT_INDEX(TEXT_TOWN, 0x2b) } }, + { 210, DIALOG_LOCAL_FLAG, DIALOG_SET_FLAG, 1, { TEXT_INDEX(TEXT_TOWN, 0x2c), TEXT_INDEX(TEXT_TOWN, 0x2b) } }, +#endif + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x12) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN3, 0x34) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN4, 0x18) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_TOWN5, 0x18) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x21) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x21) } }, +}; +const FrameStruct gUnk_0810C0A0[] = { + { 25, 0 }, { 128, 15 }, { 37, 0 }, { 128, 15 }, { 46, 0 }, { 128, 15 }, + { 55, 0 }, { 128, 15 }, { 64, 15 }, { 128, 15 }, { 72, 15 }, { 128, 15 }, + { 120, 83 }, { 128, 15 }, { 131, 102 }, { 128, 15 }, { 139, 111 }, { 128, 15 }, +}; + void sub_080621AC(Entity*); - -extern SpriteLoadData* gUnk_0810BDC4[]; - void sub_080622F4(Entity*); void sub_0806265C(Entity*, ScriptExecutionContext*); - void sub_0806252C(Entity*); typedef struct { @@ -23,12 +193,6 @@ typedef struct { #define KID_HEAP_COUNT 0x14 typedef KidHeapItem KidHeap[KID_HEAP_COUNT]; -extern u16 gUnk_0810BDE8[][2]; - -extern Dialog gUnk_0810BE10[]; - -extern u8 gUnk_0810C0A0[]; - void Kid(Entity* this) { if ((this->flags & ENT_SCRIPTED) != 0) { sub_080621AC(this); @@ -38,7 +202,7 @@ void Kid(Entity* this) { } void sub_080620F4(Entity* this) { - if (LoadExtraSpriteData(this, gUnk_0810BDC4[this->type]) != 0) { + if (LoadExtraSpriteData(this, gUnk_0810BDC4[this->type])) { this->animationState = 4; this->field_0x68.HALF.LO = 0; this->action = 1; @@ -76,7 +240,7 @@ void sub_080621AC(Entity* this) { switch (this->action) { case 0: - if (LoadExtraSpriteData(this, gUnk_0810BDC4[this->type]) != 0) { + if (LoadExtraSpriteData(this, gUnk_0810BDC4[this->type])) { this->action = 1; this->animationState = this->timer; this->timer = 0; @@ -204,7 +368,7 @@ void sub_0806265C(Entity* this, ScriptExecutionContext* context) { if (gSave.global_progress == 0) { MessageNoOverlap(0, this); } else { - Dialog* pDialog = &gUnk_0810BE10[this->type * 9]; + const Dialog* pDialog = &gUnk_0810BE10[this->type * 9 - 1]; pDialog += gSave.global_progress; ShowNPCDialogue(this, pDialog); } @@ -273,17 +437,15 @@ void sub_080627E8(Entity* this, ScriptExecutionContext* context) { } void Kid_Head(Entity* this) { - u32 uVar1; u32 uVar2; u32 uVar3; u32 uVar4; u32 uVar5; - u8* ptr; + const FrameStruct* ptr; - uVar1 = this->type * 4; - ptr = &gUnk_0810C0A0[uVar1]; - uVar3 = ((u8)this->frame & 0x1f) + ptr[0]; - uVar4 = (this->frameIndex & 0x1f) + ptr[1]; + ptr = &gUnk_0810C0A0[this->type * 2]; + uVar3 = ((u8)this->frame & 0x1f) + ptr->frame; + uVar4 = (this->frameIndex & 0x1f) + ptr->frameIndex; switch (this->type) { case 0: case 1: @@ -400,7 +562,7 @@ void sub_08062A48(Entity* this, ScriptExecutionContext* context) { void Kid_Fusion(Entity* this) { u32 tmp; if (this->action == 0) { - if (LoadExtraSpriteData(this, gUnk_0810BDC4[this->type]) != 0) { + if (LoadExtraSpriteData(this, gUnk_0810BDC4[this->type])) { this->action = this->action + 1; this->spriteSettings.draw = 1; this->y.HALF.HI = this->y.HALF.HI + -8; diff --git a/src/npc/mama.c b/src/npc/mama.c index ffe8abb6..0cbda85b 100644 --- a/src/npc/mama.c +++ b/src/npc/mama.c @@ -46,7 +46,7 @@ void Mama(Entity* this) { } bool32 sub_0806C454(Entity* this) { - if (LoadExtraSpriteData(this, gUnk_08113754) == 0) { + if (!LoadExtraSpriteData(this, gUnk_08113754)) { return FALSE; } else { SetDefaultPriority(this, PRIO_MESSAGE); diff --git a/src/npc/melari.c b/src/npc/melari.c index 73b86a1a..7e20dbed 100644 --- a/src/npc/melari.c +++ b/src/npc/melari.c @@ -26,7 +26,7 @@ void Melari(Entity* this) { } void sub_08068708(Entity* this) { - if (LoadExtraSpriteData(this, gUnk_08111520) != 0) { + if (LoadExtraSpriteData(this, gUnk_08111520)) { this->action = 1; InitializeAnimation(this, 0); sub_08078778(this); @@ -60,7 +60,7 @@ void sub_08068780(Entity* this) { switch (this->action) { case 0: - if (LoadExtraSpriteData(this, gUnk_08111520) == 0) { + if (!LoadExtraSpriteData(this, gUnk_08111520)) { return; } this->action = 1; diff --git a/src/npc/minishEzlo.c b/src/npc/minishEzlo.c index 2296d384..921452de 100644 --- a/src/npc/minishEzlo.c +++ b/src/npc/minishEzlo.c @@ -22,7 +22,7 @@ void MinishEzlo(Entity* this) { { 0x0, 0x0, 0x0 }, }; if (this->action == 0) { - if (LoadExtraSpriteData(this, gUnk_0810C48C) == 0) { + if (!LoadExtraSpriteData(this, gUnk_0810C48C)) { return; } this->action++; diff --git a/src/npc/mountainMinish.c b/src/npc/mountainMinish.c index 92156995..647b550a 100644 --- a/src/npc/mountainMinish.c +++ b/src/npc/mountainMinish.c @@ -55,7 +55,7 @@ void MountainMinish(Entity* this) { } void sub_08067E60(Entity* this) { - if (LoadExtraSpriteData(this, gUnk_08111358) != 0) { + if (LoadExtraSpriteData(this, gUnk_08111358)) { this->action = 1; sub_08078778(this); InitializeAnimation(this, 2); @@ -106,7 +106,7 @@ void sub_08067EF0(Entity* this) { switch (this->action) { case 0: - if (LoadExtraSpriteData(this, gUnk_08111358) == 0) { + if (!LoadExtraSpriteData(this, gUnk_08111358)) { return; } this->action = 1; @@ -265,7 +265,7 @@ void MountainMinish_Head(Entity* this) { void MountainMinish_Fusion(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, gUnk_08111358) != 0) { + if (LoadExtraSpriteData(this, gUnk_08111358)) { this->action++; this->spriteSettings.draw = 1; InitializeAnimation(this, 6); diff --git a/src/npc/mutoh.c b/src/npc/mutoh.c index 5eb9bdba..d1d5a00a 100644 --- a/src/npc/mutoh.c +++ b/src/npc/mutoh.c @@ -89,7 +89,7 @@ void sub_08067100(Entity* this) { void Mutoh_Fusion(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, gUnk_08110C00) != 0) { + if (LoadExtraSpriteData(this, gUnk_08110C00)) { this->action++; this->spriteSettings.draw = TRUE; InitializeAnimation(this, 2); diff --git a/src/npc/npc58.c b/src/npc/npc58.c index 5b916583..0409dc4f 100644 --- a/src/npc/npc58.c +++ b/src/npc/npc58.c @@ -14,7 +14,7 @@ void NPC58(Entity* this) { Entity* entity; if (this->action == 0) { - if (LoadExtraSpriteData(this, gUnk_081146D0) == 0) { + if (!LoadExtraSpriteData(this, gUnk_081146D0)) { return; } this->action++; diff --git a/src/npc/percy.c b/src/npc/percy.c index bb318c3b..acb65a57 100644 --- a/src/npc/percy.c +++ b/src/npc/percy.c @@ -168,7 +168,7 @@ void sub_0806B60C(Entity* this) { void Percy_Fusion(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, gUnk_08112E1C) != 0) { + if (LoadExtraSpriteData(this, gUnk_08112E1C)) { this->action++; this->spriteSettings.draw = 1; InitializeAnimation(this, 2); diff --git a/src/npc/phonograph.c b/src/npc/phonograph.c index 26872a4c..071f5b6e 100644 --- a/src/npc/phonograph.c +++ b/src/npc/phonograph.c @@ -193,14 +193,14 @@ const static Font gUnk_081146B8 = { void sub_0806EABC(Entity* this) { sub_08050384(); sub_08057044((s16)this->field_0x68.HWORD, gUnk_020227E8, 0x202020); - sub_0805F46C(0x3302, &gUnk_081146B8); + ShowTextBox(0x3302, &gUnk_081146B8); gScreen.bg0.updated = 1; } #else void sub_0806EABC(Entity* this, u32 param) { sub_08050384(); sub_08057044(param, gUnk_020227E8, 0x202020); - sub_0805F46C(0x3302, &gUnk_081146B8); + ShowTextBox(0x3302, &gUnk_081146B8); gScreen.bg0.updated = 1; } #endif diff --git a/src/npc/postman.c b/src/npc/postman.c index dd1f2381..2bdeedd2 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -3,24 +3,151 @@ #include "entity.h" #include "functions.h" #include "npc.h" +#include "structures.h" extern void sub_08060528(Entity*); extern void sub_080604DC(Entity*); extern void sub_080606D8(Entity*); extern void sub_080606C0(Entity*); -extern const s8 gUnk_0810AA70[][4][4]; +const Coords gUnk_0810A66C[] = { + { .HALF = { 0x0, 0x0 } }, { .HALF = { 0x48, 0xa8 } }, { .HALF = { 0x0, 0xf0 } }, + { .HALF = { 0x1f8, 0x0 } }, { .HALF = { 0x3f8, 0xf0 } }, { .HALF = { 0x1f8, 0x3c8 } }, + { .HALF = { 0x48, 0xf0 } }, { .HALF = { 0x60, 0xf0 } }, { .HALF = { 0x60, 0x188 } }, + { .HALF = { 0x78, 0x188 } }, { .HALF = { 0x78, 0x270 } }, { .HALF = { 0x38, 0x270 } }, + { .HALF = { 0x38, 0x328 } }, { .HALF = { 0x98, 0x328 } }, { .HALF = { 0xd8, 0x328 } }, + { .HALF = { 0x108, 0x328 } }, { .HALF = { 0x188, 0x328 } }, { .HALF = { 0x188, 0x368 } }, + { .HALF = { 0x108, 0x278 } }, { .HALF = { 0x128, 0x278 } }, { .HALF = { 0x128, 0x1d0 } }, + { .HALF = { 0x1a8, 0x1d0 } }, { .HALF = { 0x1f8, 0x1d0 } }, { .HALF = { 0x1a8, 0x288 } }, + { .HALF = { 0x1f8, 0x288 } }, { .HALF = { 0x1f8, 0x328 } }, { .HALF = { 0x268, 0x328 } }, + { .HALF = { 0x268, 0x368 } }, { .HALF = { 0x268, 0x390 } }, { .HALF = { 0x1f8, 0xf0 } }, + { .HALF = { 0x248, 0x1d0 } }, { .HALF = { 0x248, 0x1c0 } }, { .HALF = { 0x248, 0x288 } }, + { .HALF = { 0x298, 0x288 } }, { .HALF = { 0x298, 0x328 } }, { .HALF = { 0x328, 0x328 } }, + { .HALF = { 0x328, 0x390 } }, { .HALF = { 0x368, 0x328 } }, { .HALF = { 0x368, 0x318 } }, + { .HALF = { 0x3a0, 0x318 } }, { .HALF = { 0x3a0, 0x290 } }, { .HALF = { 0x370, 0x290 } }, + { .HALF = { 0x370, 0x280 } }, { .HALF = { 0x360, 0x280 } }, { .HALF = { 0x360, 0x270 } }, + { .HALF = { 0x340, 0x270 } }, { .HALF = { 0x340, 0x248 } }, { .HALF = { 0x320, 0x248 } }, + { .HALF = { 0x2e0, 0x248 } }, { .HALF = { 0x2e0, 0x1d0 } }, { .HALF = { 0x2d0, 0x1d0 } }, + { .HALF = { 0x2d0, 0x1c0 } }, { .HALF = { 0x320, 0x168 } }, { .HALF = { 0x378, 0x168 } }, + { .HALF = { 0x378, 0xf0 } }, { .HALF = { 0x2b0, 0x288 } }, { .HALF = { 0x2b0, 0x280 } }, + { .HALF = { 0x2c0, 0x280 } }, { .HALF = { 0x2c0, 0x270 } }, { .HALF = { 0x2d0, 0x270 } }, + { .HALF = { 0x2d0, 0x248 } }, { .HALF = { 0x78, 0x1f0 } }, { .HALF = { 0x78, 0x230 } }, +}; -typedef struct { - s16 x; - s16 y; -} Coords16; +// Indices into the coords array above +const s8 gUnk_0810A768[] = { 1, -4, 0, 1, 2 }; +const s8 gUnk_0810A76D[] = { 6, 0, 2, 4, 21 }; +const s8 gUnk_0810A772[] = { 6, 0, 2, 1, 21 }; +const s8 gUnk_0810A777[] = { 2, -5, 3, 5, 7, 9 }; +const s8 gUnk_0810A77D[] = { 29, 0, 3, 20, 17, 16 }; +const s8 gUnk_0810A783[] = { 3, -5, 3, 3, 7, 9 }; +const s8 gUnk_0810A789[] = { 54, 0, 2, 18, 62 }; +const s8 gUnk_0810A78E[] = { 4, -5, 3, 3, 5, 9 }; +const s8 gUnk_0810A794[] = { 25, 0, 3, 46, 30, 31 }; +const s8 gUnk_0810A79A[] = { 5, -5, 3, 3, 5, 7 }; +const s8 gUnk_0810A7A0[] = { 24, 0, 3, 45, 47, 14 }; +const s8 gUnk_0810A7A6[] = { 22, 0, 3, 15, 66, 63 }; +const s8 gUnk_0810A7AC[] = { 23, 24, 0, 3, 12, 47, 45 }; +const s8 gUnk_0810A7B3[] = { 23, 21, 0, 2, 65, 26 }; +const s8 gUnk_0810A7B9[] = { 29, 0, 3, 6, 20, 17 }; +const s8 gUnk_0810A7BF[] = { 22, 0, 3, 66, 11, 63 }; +const s8 gUnk_0810A7C5[] = { 54, 0, 2, 8, 62 }; +const s8 gUnk_0810A7CA[] = { 29, 0, 3, 6, 20, 16 }; +const s8 gUnk_0810A7D0[] = { 29, 0, 3, 6, 17, 16 }; +const s8 gUnk_0810A7D6[] = { 7, 0, 2, 22, 23 }; +const s8 gUnk_0810A7DB[] = { 7, 0, 2, 23, 19 }; +const s8 gUnk_0810A7E0[] = { 6, 0, 2, 1, 4 }; +const s8 gUnk_0810A7E5[] = { 8, 9, 61, -1, 62, 10, 11, 12, 13, -1, 14, 15, 0, 2, 27, 25 }; +const s8 gUnk_0810A7F5[] = { 14, -1, 13, 12, 11, 10, 62, -1, 61, 9, 8, 7, 0, 2, 22, 19 }; +const s8 gUnk_0810A805[] = { 18, 19, 20, 21, 0, 2, 65, 13 }; +const s8 gUnk_0810A80D[] = { 20, 19, 18, 15, 0, 2, 24, 27 }; +const s8 gUnk_0810A815[] = { 16, 0, 2, 29, 33 }; +const s8 gUnk_0810A81A[] = { 15, 0, 2, 24, 25 }; +const s8 gUnk_0810A81F[] = { 25, 0, 3, 46, 31, 10 }; +const s8 gUnk_0810A825[] = { 16, 0, 2, 28, 33 }; +const s8 gUnk_0810A82A[] = { 26, 0, 2, 41, 43 }; +const s8 gUnk_0810A82F[] = { 25, 0, 3, 10, 46, 30 }; +const s8 gUnk_0810A835[] = { 17, 27, 0, 2, 42, 35 }; +const s8 gUnk_0810A83B[] = { 17, 16, 0, 2, 28, 29 }; +const s8 gUnk_0810A841[] = { 28, 36, 35, 0, 2, 40, 37 }; +const s8 gUnk_0810A848[] = { 36, 28, 27, 0, 2, 34, 42 }; +const s8 gUnk_0810A84F[] = { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 2, 57, 61 }; +const s8 gUnk_0810A85E[] = { 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 35, 0, 2, 36, 40 }; +const s8 gUnk_0810A86D[] = { 35, 0, 2, 36, 37 }; +const s8 gUnk_0810A872[] = { 34, 0, 2, 44, 52 }; +const s8 gUnk_0810A877[] = { 27, 0, 2, 34, 35 }; +const s8 gUnk_0810A87C[] = { 26, 0, 2, 32, 43 }; +const s8 gUnk_0810A881[] = { 34, 0, 2, 52, 39 }; +const s8 gUnk_0810A886[] = { 26, 0, 2, 32, 41 }; +const s8 gUnk_0810A88B[] = { 25, 0, 3, 10, 30, 31 }; +const s8 gUnk_0810A891[] = { 24, 0, 3, 14, 12, 47 }; +const s8 gUnk_0810A897[] = { 32, 0, 2, 54, 49 }; +const s8 gUnk_0810A89C[] = { 24, 0, 3, 14, 12, 45 }; +const s8 gUnk_0810A8A2[] = { 33, 0, 2, 51, 55 }; +const s8 gUnk_0810A8A7[] = { 32, 0, 2, 48, 54 }; +const s8 gUnk_0810A8AC[] = { 34, 0, 2, 44, 39 }; +const s8 gUnk_0810A8B1[] = { 33, 0, 2, 50, 55 }; +const s8 gUnk_0810A8B6[] = { 32, 0, 2, 48, 49 }; +const s8 gUnk_0810A8BB[] = { 30, 0, 2, 64, 59 }; +const s8 gUnk_0810A8C0[] = { 55, 56, 57, 58, 59, 60, 48, 0, 2, 60, 58 }; +const s8 gUnk_0810A8CB[] = { 60, 59, 58, 57, 56, 55, 33, 0, 2, 50, 51 }; +const s8 gUnk_0810A8D6[] = { 48, 0, 2, 60, 56 }; +const s8 gUnk_0810A8DB[] = { 47, 0, 2, 38, 61 }; +const s8 gUnk_0810A8E0[] = { 31, 51, 50, 49, 48, 0, 2, 56, 58 }; +const s8 gUnk_0810A8E9[] = { 49, 50, 51, 31, 30, 0, 2, 64, 53 }; +const s8 gUnk_0810A8F2[] = { 52, 53, 54, 0, 2, 8, 18 }; +const s8 gUnk_0810A8F9[] = { 53, 52, 47, 0, 2, 38, 57 }; +const s8 gUnk_0810A900[] = { 30, 0, 2, 53, 59 }; +const s8 gUnk_0810A905[] = { 22, 0, 3, 66, 11, 15 }; +const s8 gUnk_0810A90B[] = { 22, 0, 3, 11, 15, 63 }; +const s8 gUnk_0810A911[] = { 21, 0, 2, 26, 13, 0, 0 }; -extern Coords16 gUnk_0810A66C[]; -extern s8* gUnk_0810A918[]; +const s8* const gUnk_0810A918[] = { + gUnk_0810A768, gUnk_0810A768, gUnk_0810A76D, gUnk_0810A772, gUnk_0810A777, gUnk_0810A77D, gUnk_0810A783, + gUnk_0810A789, gUnk_0810A78E, gUnk_0810A794, gUnk_0810A79A, gUnk_0810A7A0, gUnk_0810A7A6, gUnk_0810A7AC, + gUnk_0810A7B3, gUnk_0810A7B9, gUnk_0810A7BF, gUnk_0810A7C5, gUnk_0810A7CA, gUnk_0810A7D0, gUnk_0810A7D6, + gUnk_0810A7DB, gUnk_0810A7E0, gUnk_0810A7E5, gUnk_0810A7F5, gUnk_0810A805, gUnk_0810A80D, gUnk_0810A815, + gUnk_0810A81A, gUnk_0810A81F, gUnk_0810A825, gUnk_0810A82A, gUnk_0810A82F, gUnk_0810A835, gUnk_0810A83B, + gUnk_0810A841, gUnk_0810A848, gUnk_0810A84F, gUnk_0810A85E, gUnk_0810A86D, gUnk_0810A872, gUnk_0810A877, + gUnk_0810A87C, gUnk_0810A881, gUnk_0810A886, gUnk_0810A88B, gUnk_0810A891, gUnk_0810A897, gUnk_0810A89C, + gUnk_0810A8A2, gUnk_0810A8A7, gUnk_0810A8AC, gUnk_0810A8B1, gUnk_0810A8B6, gUnk_0810A8BB, gUnk_0810A8C0, + gUnk_0810A8CB, gUnk_0810A8D6, gUnk_0810A8DB, gUnk_0810A8E0, gUnk_0810A8E9, gUnk_0810A8F2, gUnk_0810A8F9, + gUnk_0810A900, gUnk_0810A905, gUnk_0810A90B, gUnk_0810A911, +}; +void sub_08060428(Entity*); +void sub_0806045C(Entity*); +void sub_080604C8(Entity*); +void (*const gUnk_0810AA24[])(Entity*) = { + sub_08060428, + sub_0806045C, + sub_080604C8, +}; -extern void (*const gUnk_0810AA24[])(Entity*); -extern Dialog gUnk_0810AA30[]; +const Dialog gUnk_0810AA30[] = { + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_POST, 0xc) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_POST, 0xc) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_POST, 0xd) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_POST, 0xe) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_POST, 0xf) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_POST, 0x10) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_POST, 0x11) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_POST, 0x12) } }, +}; + +const Rect gUnk_0810AA70[][4] = { + { + { 0, -16, 16, 16 }, + { 16, 0, 16, 16 }, + { 0, 16, 16, 16 }, + { -16, 0, 16, 16 }, + }, + { + { 0, -16, 32, 32 }, + { 16, 0, 32, 32 }, + { 0, 16, 32, 32 }, + { -16, 0, 32, 32 }, + }, +}; void Postman(Entity* this) { if ((this->flags & ENT_SCRIPTED) != 0) { @@ -181,10 +308,10 @@ void sub_080606D8(Entity* this) { } void sub_08060700(Entity* entity, ScriptExecutionContext* context) { - s8* var0 = gUnk_0810A918[(s8)entity->field_0x68.HALF.LO]; - Coords16* coords = &gUnk_0810A66C[var0[(s8)entity->field_0x68.HALF.HI]]; - u32 x = coords->x + gRoomControls.origin_x; - u32 y = coords->y + gRoomControls.origin_y; + const s8* var0 = gUnk_0810A918[(s8)entity->field_0x68.HALF.LO]; + const Coords* coords = &gUnk_0810A66C[var0[(s8)entity->field_0x68.HALF.HI]]; + u32 x = coords->HALF.x + gRoomControls.origin_x; + u32 y = coords->HALF.y + gRoomControls.origin_y; sub_0807DEDC(entity, context, x, y); gActiveScriptInfo.flags |= 1; } @@ -200,8 +327,8 @@ void sub_0806076C(Entity* this, ScriptExecutionContext* context) { u32 uVar6; s32 uVar9; int local_24; - Coords16* ptr; - s8* pbVar10; + const Coords* ptr; + const s8* pbVar10; if (this->z.WORD < 0) { gActiveScriptInfo.commandSize = 0; @@ -244,8 +371,8 @@ void sub_0806076C(Entity* this, ScriptExecutionContext* context) { this->field_0x68.HALF.LO = pbVar10[local_24]; cVar2 = gUnk_0810A918[(s8)this->field_0x68.HALF.LO][0]; ptr = &gUnk_0810A66C[cVar2]; - this->x.HALF_U.HI = gRoomControls.origin_x + ptr->x; - this->y.HALF_U.HI = gRoomControls.origin_y + ptr->y; + this->x.HALF_U.HI = gRoomControls.origin_x + ptr->HALF.x; + this->y.HALF_U.HI = gRoomControls.origin_y + ptr->HALF.y; if (CheckOnScreen(this) == 0) break; local_24 = (s32)(local_24 + 1) % uVar9; @@ -265,14 +392,14 @@ void sub_080608E4(Entity* this, ScriptExecutionContext* context) { if (this->z.WORD >= 0) { if ((this->collisionLayer != 1 || gPlayerEntity.collisionLayer != 2) && (this->collisionLayer != 2 || gPlayerEntity.collisionLayer != 1)) { - const s8* ptr = gUnk_0810AA70[context->intVariable][this->animationState >> 1]; - u32 x = this->x.HALF.HI + ptr[0]; - u32 y = this->y.HALF.HI + ptr[1]; + const Rect* ptr = &gUnk_0810AA70[context->intVariable][this->animationState >> 1]; + u32 x = this->x.HALF.HI + ptr->x; + u32 y = this->y.HALF.HI + ptr->y; x = gPlayerEntity.x.HALF.HI - x; y = gPlayerEntity.y.HALF.HI - y; - x += ptr[2]; - y += ptr[3]; - if (ptr[2] * 2 > x && ptr[3] * 2 > y) { + x += ptr->width; + y += ptr->height; + if (ptr->width * 2 > x && ptr->height * 2 > y) { context->condition = 1; this->field_0x6a.HWORD += 2; } diff --git a/src/npc/sittingPerson.c b/src/npc/sittingPerson.c index 6f60f47e..6fc0ec00 100644 --- a/src/npc/sittingPerson.c +++ b/src/npc/sittingPerson.c @@ -1,15 +1,109 @@ #include "npc.h" #include "functions.h" -extern void (*SittingPersion_Actions[])(Entity*); +const SpriteLoadData gUnk_0810CB78[] = { + { 63, 61, 4 }, { 8255, 61, 4 }, { 0, 0, 0 }, { 62, 61, 4 }, { 8255, 61, 4 }, { 0, 0, 0 }, + { 64, 61, 4 }, { 8254, 61, 4 }, { 0, 0, 0 }, { 64, 61, 4 }, { 8256, 61, 4 }, { 0, 0, 0 }, + { 64, 61, 4 }, { 8255, 61, 4 }, { 0, 0, 0 }, { 62, 61, 4 }, { 8255, 61, 4 }, { 0, 0, 0 }, +}; +const FrameStruct gUnk_0810CBC0[] = { + { 4, 0 }, { 0, 0 }, { 12, 0 }, { 0, 0 }, { 20, 0 }, { 0, 0 }, + { 28, 1 }, { 0, 0 }, { 36, 1 }, { 0, 0 }, { 44, 0 }, { 0, 0 }, +}; +void SittingPersion_Init(Entity*); +void sub_080637B8(Entity*); +void sub_08063830(Entity*); +void (*const SittingPersion_Actions[])(Entity*) = { + SittingPersion_Init, + sub_080637B8, + sub_08063830, +}; -extern Dialog gUnk_0810CC08[]; +const u16 gUnk_0810CBE4[][4] = { { + TEXT_INDEX(TEXT_TOWN4, 0x2f), + TEXT_INDEX(TEXT_TOWN4, 0x30), + TEXT_INDEX(TEXT_TOWN4, 0x31), + TEXT_INDEX(TEXT_TOWN4, 0x32), + }, + { + TEXT_INDEX(TEXT_TOWN5, 0x2f), + TEXT_INDEX(TEXT_TOWN5, 0x30), + TEXT_INDEX(TEXT_TOWN5, 0x31), + TEXT_INDEX(TEXT_TOWN5, 0x32), + }, + { + TEXT_INDEX(TEXT_TOWN6, 0x28), + TEXT_INDEX(TEXT_TOWN6, 0x29), + TEXT_INDEX(TEXT_TOWN6, 0x2a), + TEXT_INDEX(TEXT_TOWN6, 0x2b), + }, + { + TEXT_INDEX(TEXT_TOWN7, 0xe), + TEXT_INDEX(TEXT_TOWN7, 0xf), + TEXT_INDEX(TEXT_TOWN7, 0x10), + TEXT_INDEX(TEXT_TOWN7, 0x11), + } }; -extern SpriteLoadData gUnk_0810CB78[]; -extern u16 gUnk_0810CC04[]; -extern u16 gUnk_0810CBE4[][4]; -extern u8 gUnk_0810CBC0[]; -extern u8 gUnk_0810CD88[][4]; +const u16 gUnk_0810CC04[] = { + TEXT_INDEX(TEXT_TOWN5, 0x37), + TEXT_INDEX(TEXT_TOWN5, 0x38), +}; + +void sub_0806387C(Entity*); +void sub_0806390C(Entity*); +const Dialog gUnk_0810CC08[] = { + { 2, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x5), TEXT_INDEX(TEXT_CAFE, 0x4) } }, + { 2, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x5), TEXT_INDEX(TEXT_CAFE, 0x4) } }, + { 2, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0xf), TEXT_INDEX(TEXT_CAFE, 0xe) } }, + { 2, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x1d), TEXT_INDEX(TEXT_CAFE, 0x1c) } }, + { 2, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x29), TEXT_INDEX(TEXT_CAFE, 0x28) } }, + { 2, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x35), TEXT_INDEX(TEXT_CAFE, 0x34) } }, + { 2, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x41), TEXT_INDEX(TEXT_CAFE, 0x40) } }, + { 2, DIALOG_ROOM_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x4b), TEXT_INDEX(TEXT_CAFE, 0x4a) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_CAFE, 0x8) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_CAFE, 0x8) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_CAFE, 0x12) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_CAFE, 0x20) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_CAFE, 0x2c) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_CAFE, 0x38) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_CAFE, 0x44) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_CAFE, 0x4e) } }, + { 0, 0, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_HAPPY_HEARTH, 0xf), TEXT_INDEX(TEXT_HAPPY_HEARTH, 0xe) } }, + { 0, 0, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_HAPPY_HEARTH, 0xf), TEXT_INDEX(TEXT_HAPPY_HEARTH, 0xe) } }, + { 0, 0, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_HAPPY_HEARTH, 0xf), TEXT_INDEX(TEXT_HAPPY_HEARTH, 0xe) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x16) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x17) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x19) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x1b) } }, + { 0, 0, DIALOG_NORMAL, 1, { 0, TEXT_INDEX(TEXT_HAPPY_HEARTH, 0x1b) } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806387C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806387C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806387C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806387C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806387C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806387C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806387C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806387C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806390C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806390C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806390C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806390C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806390C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806390C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806390C } }, + { 0, 0, DIALOG_CALL_FUNC, 0, { .func = sub_0806390C } }, + { 89, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x52), TEXT_INDEX(TEXT_CAFE, 0x51) } }, + { 89, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x52), TEXT_INDEX(TEXT_CAFE, 0x51) } }, + { 89, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x54), TEXT_INDEX(TEXT_CAFE, 0x53) } }, + { 89, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x56), TEXT_INDEX(TEXT_CAFE, 0x55) } }, + { 89, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x58), TEXT_INDEX(TEXT_CAFE, 0x57) } }, + { 89, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x5a), TEXT_INDEX(TEXT_CAFE, 0x59) } }, + { 89, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x5c), TEXT_INDEX(TEXT_CAFE, 0x5b) } }, + { 89, DIALOG_LOCAL_FLAG, DIALOG_TOGGLE_FLAG, 1, { TEXT_INDEX(TEXT_CAFE, 0x5e), TEXT_INDEX(TEXT_CAFE, 0x5d) } }, +}; +const u8 gUnk_0810CD88[][4] = { + { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 1, 2, 0 }, { 0, 1, 2, 0 }, { 0, 0, 0, 0 }, +}; extern void sub_08096208(Entity*, u32); void sub_080637B8(Entity* this); @@ -134,9 +228,9 @@ void SittingPersion_ShowDialogue(Entity* this, ScriptExecutionContext* context) } void SittingPerson_Head(Entity* this) { - u8* ptr = &gUnk_0810CBC0[this->type * 4]; - SetExtraSpriteFrame(this, 0, *ptr + (this->frame & 0xf)); - SetExtraSpriteFrame(this, 1, gUnk_0810CD88[this->type][this->frameIndex & 3] + *(ptr + 1)); + const FrameStruct* ptr = &gUnk_0810CBC0[this->type * 2]; + SetExtraSpriteFrame(this, 0, ptr->frame + (this->frame & 0xf)); + SetExtraSpriteFrame(this, 1, gUnk_0810CD88[this->type][this->frameIndex & 3] + ptr->frameIndex); SetSpriteSubEntryOffsetData1(this, 1, 0); sub_0807000C(this); } @@ -148,7 +242,7 @@ void sub_080639D0(Entity* this) { void SittingPerson_Fusion(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, &gUnk_0810CB78[this->type * 3]) != 0) { + if (LoadExtraSpriteData(this, &gUnk_0810CB78[this->type * 3])) { this->action++; this->spriteSettings.draw = 1; this->spriteSettings.flipX = 0; diff --git a/src/npc/smith.c b/src/npc/smith.c index 0ff8ef31..e6663737 100644 --- a/src/npc/smith.c +++ b/src/npc/smith.c @@ -71,7 +71,7 @@ void Smith_Head(Entity* this) { } void sub_080660EC(Entity* this) { - if (LoadExtraSpriteData(this, gUnk_08110354) != 0) { + if (LoadExtraSpriteData(this, gUnk_08110354)) { this->action = 1; this->field_0x68.HALF.LO = sub_0801E99C(this); InitAnimationForceUpdate(this, 2); @@ -106,7 +106,7 @@ void sub_08066170(Entity* this) { } void sub_08066178(Entity* this) { - if (LoadExtraSpriteData(this, gUnk_08110354) != 0) { + if (LoadExtraSpriteData(this, gUnk_08110354)) { this->action = 1; this->spriteSettings.draw = 1; this->field_0x68.HALF.LO = sub_0801E99C(this); @@ -221,7 +221,7 @@ void sub_08066288(Entity* this) { void Smith_Fusion(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, gUnk_08110354) != 0) { + if (LoadExtraSpriteData(this, gUnk_08110354)) { this->action++; this->spriteSettings.draw = 1; InitAnimationForceUpdate(this, 6); diff --git a/src/npc/sturgeon.c b/src/npc/sturgeon.c index 6d1c467d..7ee3e4bc 100644 --- a/src/npc/sturgeon.c +++ b/src/npc/sturgeon.c @@ -4,16 +4,32 @@ #include "object.h" #include "item.h" -extern u16 gUnk_0810FA54[]; +const SpriteLoadData gUnk_0810FA38[] = { + { 59, 140, 0 }, + { 59, 140, 0 }, + { 0, 0, 0 }, +}; +void sub_08064B44(Entity*); +void sub_08064B88(Entity*); +void sub_08064C2C(Entity*); +void sub_08064C50(Entity*); +void (*const gUnk_0810FA44[])(Entity*) = { + sub_08064B44, + sub_08064B88, + sub_08064C2C, + sub_08064C50, +}; -extern SpriteLoadData gUnk_0810FA38; +extern const u16 gUnk_0810FA54[]; +// const u16 gUnk_0810FA54[] = { +// TEXT_INDEX(TEXT_LIBRARY, 0xe), +// TEXT_INDEX(TEXT_LIBRARY, 0x15), +// TEXT_INDEX(TEXT_LIBRARY, 0x11), +// }; +extern u32 gUnk_0810FA5A; // TODO second parameter of sub_0806EE04 -extern u32 gUnk_0810FA5A; void sub_08064CC0(Entity* this); - -extern void (*const gUnk_0810FA44[])(Entity*); void sub_08064C9C(Entity* this); - void sub_08064CD8(Entity* this); void Sturgeon(Entity* this) { @@ -22,7 +38,7 @@ void Sturgeon(Entity* this) { sub_0806ED78(this); } else { if (this->action == 0) { - if (LoadExtraSpriteData(this, &gUnk_0810FA38) != 0) { + if (LoadExtraSpriteData(this, gUnk_0810FA38)) { this->action = 1; this->timer = 0; sub_0807DD50(this); @@ -30,13 +46,13 @@ void Sturgeon(Entity* this) { } else { u32 tmp = this->action & 0x80; if (tmp) { - if (UpdateFuseInteraction(this) != 0) { + if (UpdateFuseInteraction(this)) { this->action = 1; } } else { if (this->interactType == 2) { this->action = this->action | 0xff; - this->interactType = tmp; + this->interactType = 0; InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); sub_0806F118(this); } else { @@ -49,7 +65,7 @@ void Sturgeon(Entity* this) { } void sub_08064B44(Entity* this) { - if (LoadExtraSpriteData(this, &gUnk_0810FA38) != 0) { + if (LoadExtraSpriteData(this, gUnk_0810FA38)) { InitializeAnimation(this, 2); sub_0806EE04(this, &gUnk_0810FA5A, 0); sub_08064CC0(this); @@ -152,7 +168,7 @@ void sub_08064D10(Entity* this) { void Sturgeon_Fusion(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, &gUnk_0810FA38) != 0) { + if (LoadExtraSpriteData(this, gUnk_0810FA38)) { this->action++; this->spriteSettings.draw = 1; InitializeAnimation(this, 6); diff --git a/src/npc/syrup.c b/src/npc/syrup.c index 51c24059..05e90aee 100644 --- a/src/npc/syrup.c +++ b/src/npc/syrup.c @@ -29,13 +29,11 @@ void Syrup(Entity* this) { } void sub_0806A1F8(Entity* this) { - u32 iVar1; const SpriteLoadData* paVar2; this->type == 0 ? (paVar2 = gUnk_081121B4) : (paVar2 = gUnk_081121C4); - iVar1 = LoadExtraSpriteData(this, paVar2); - if (iVar1) { + if (LoadExtraSpriteData(this, paVar2)) { this->action = 1; SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); diff --git a/src/npc/talon.c b/src/npc/talon.c index 67845700..8de3c789 100644 --- a/src/npc/talon.c +++ b/src/npc/talon.c @@ -35,7 +35,7 @@ void Talon(Entity* this) { } void sub_08065570(Entity* this) { - if (LoadExtraSpriteData(this, gUnk_0810FEB0) != 0) { + if (LoadExtraSpriteData(this, gUnk_0810FEB0)) { InitializeAnimation(this, 0); sub_08078778(this); this->action = 1; @@ -75,7 +75,7 @@ void sub_0806559C(Entity* this) { } void sub_08065608(Entity* this) { - if (LoadExtraSpriteData(this, gUnk_0810FEB0) != 0) { + if (LoadExtraSpriteData(this, gUnk_0810FEB0)) { this->action = 1; this->spriteSettings.draw = 1; this->field_0x68.HALF.LO = sub_0801E99C(this); @@ -164,7 +164,7 @@ void Talon_Head(Entity* this) { void Talon_Fusion(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, gUnk_0810FEB0) != 0) { + if (LoadExtraSpriteData(this, gUnk_0810FEB0)) { this->action++; this->spriteSettings.draw = 1; InitializeAnimation(this, 6); diff --git a/src/npc/tingleSiblings.c b/src/npc/tingleSiblings.c index c3bb814b..7ca9c778 100644 --- a/src/npc/tingleSiblings.c +++ b/src/npc/tingleSiblings.c @@ -127,8 +127,8 @@ void sub_08064EE8(Entity* this) { void sub_08064F28(Entity* this, ScriptExecutionContext* context) { u32 roomFlag; u32 bVar2; - int iVar3; - int iVar4; + s32 iVar3; + s32 remainingFusions; u32 uVar5; context->condition = 0; @@ -148,35 +148,35 @@ void sub_08064F28(Entity* this, ScriptExecutionContext* context) { } } } - iVar4 = -1; + remainingFusions = -1; } else { if (CheckGlobalFlag(KAKERA_COMPLETE) == 0) { - iVar4 = 100 - gSave.unk117; - if (iVar4 < 1) { + remainingFusions = 100 - gSave.fusedKinstoneCount; + if (remainingFusions < 1) { uVar5 = 8; - iVar4 = 0; + remainingFusions = 0; SetGlobalFlag(KAKERA_COMPLETE); context->condition = 1; } else { uVar5 = 7; - if (9 < iVar4) { + if (9 < remainingFusions) { uVar5 = 6; } - if (0x27 < iVar4) { + if (0x27 < remainingFusions) { uVar5 = 5; } - if (0x45 < iVar4) { + if (0x45 < remainingFusions) { uVar5 = 4; } } } else { uVar5 = 8; - iVar4 = 0; + remainingFusions = 0; } } MessageNoOverlap(TingleSiblings_MessageIndices[this->type][uVar5], this); - if (iVar4 > 0) { - gMessage.rupees = (u16)iVar4; + if (remainingFusions > 0) { + gMessage.rupees = (u16)remainingFusions; } if (CheckRoomFlag(roomFlag) == 0) { diff --git a/src/npc/townMinish.c b/src/npc/townMinish.c index 10de6135..85630b7c 100644 --- a/src/npc/townMinish.c +++ b/src/npc/townMinish.c @@ -199,7 +199,7 @@ void sub_0806ACC4(Entity* this) { u8 delay; switch (this->action) { case 0: - if (LoadExtraSpriteData(this, gUnk_08112674[this->type]) == 0) + if (!LoadExtraSpriteData(this, gUnk_08112674[this->type])) return; this->action = 1; diff --git a/src/npc/townsperson.c b/src/npc/townsperson.c index 58299104..4def0fca 100644 --- a/src/npc/townsperson.c +++ b/src/npc/townsperson.c @@ -9,18 +9,18 @@ typedef struct { u8 unk3; } struct_0810B680; -extern void (*const gUnk_0810B774[])(Entity*); -extern void (*const gUnk_0810B77C[])(Entity*); extern void sub_08061CB4(Entity*, u32); extern void sub_08061D64(Entity*); extern void sub_08062048(Entity*); -extern SpriteLoadData* gUnk_0810B6EC[]; -extern u8 gUnk_0810B78C[]; extern struct_0810B680 gUnk_0810B680[]; +extern SpriteLoadData* gUnk_0810B6EC[]; +extern u32 gUnk_0810B740[]; // TODO fourth parameter of sub_08078850 +extern u8 gUnk_0810B748[]; // TODO third parameter of sub_08078850 extern u16 gUnk_0810B74A[]; -extern u8 gUnk_0810B748[]; -extern u32 gUnk_0810B740[]; +extern void (*const gUnk_0810B774[])(Entity*); +extern void (*const gUnk_0810B77C[])(Entity*); +extern u8 gUnk_0810B78C[]; extern u16 gUnk_0810B790[]; extern u16 gUnk_0810B7BA[]; extern Dialog gUnk_0810B7C0[]; @@ -283,7 +283,7 @@ void sub_08062048(Entity* this) { void Townsperson_Fusion(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, gUnk_0810B6EC[this->type]) == 0) { + if (!LoadExtraSpriteData(this, gUnk_0810B6EC[this->type])) { return; } this->action++; diff --git a/src/npc/windTribespeople.c b/src/npc/windTribespeople.c index 7951715c..2018581f 100644 --- a/src/npc/windTribespeople.c +++ b/src/npc/windTribespeople.c @@ -39,10 +39,7 @@ void WindTribespeople(Entity* this) { } void sub_0806C798(Entity* this) { - s32 iVar1; - - iVar1 = LoadExtraSpriteData(this, gUnk_08113A1C + (this->type * 4)); - if (iVar1 != 0) { + if (LoadExtraSpriteData(this, gUnk_08113A1C + (this->type * 4))) { this->action = 1; this->spriteSettings.draw = 1; this->animationState = this->timer; @@ -274,7 +271,7 @@ void sub_0806CA5C(Entity* this, ScriptExecutionContext* context) { void WindTribespeople_Fusion(Entity* this) { if (this->action == 0) { - if (LoadExtraSpriteData(this, &gUnk_08113A1C[this->type * 4]) != 0) { + if (LoadExtraSpriteData(this, &gUnk_08113A1C[this->type * 4])) { this->action++; this->spriteSettings.draw = 1; InitializeAnimation(this, 6); diff --git a/src/npc/zelda.c b/src/npc/zelda.c index df2ed8f3..64898ef7 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -5,8 +5,8 @@ #include "flags.h" #include "npc.h" -void sub_08068680(Entity*, Entity*); -void sub_08068694(Entity*, Entity*); +void ZeldaFollower_Hide(Entity*, Entity*); +void ZeldaFollower_Show(Entity*, Entity*); extern Entity* GetEntityByType(u32, u32); extern void sub_080686C4(Entity*, Entity*); void sub_08066CCC(Entity*); @@ -44,7 +44,7 @@ void sub_08066D14(Entity* this, ScriptExecutionContext* context) { this->animationState = parent->animationState; this->spriteSettings.draw = 1; CopyPosition(parent, this); - sub_08068680(this, this->parent); + ZeldaFollower_Hide(this, this->parent); context->condition = 1; } else { context->condition = 0; @@ -52,16 +52,14 @@ void sub_08066D14(Entity* this, ScriptExecutionContext* context) { } void sub_08066D4C(Entity* this, ScriptExecutionContext* context) { - Entity* parent; - - parent = this->parent; + Entity* parent = this->parent; if (this->parent != NULL) { CopyPosition(this, parent); this->parent->spriteSettings.draw = 1; this->parent->animationState = this->animationState; this->spriteSettings.draw = 0; this->followerFlag &= 0xFE; - sub_08068694(this, this->parent); + ZeldaFollower_Show(this, this->parent); context->condition = 1; } else { context->condition = 0; @@ -85,13 +83,11 @@ void sub_08066D94(Entity* this) { DeleteThisEntity(); } -void SetZeldaFollowTarget(Entity* this) { - Entity* pEVar1; - - pEVar1 = DeepFindEntityByID(NPC, ZELDA_FOLLOWER); - if (pEVar1 != NULL) { - CopyPosition(this, pEVar1); - sub_080686C4(this, pEVar1); +void SetZeldaFollowTarget(Entity* target) { + Entity* follower = DeepFindEntityByID(NPC, ZELDA_FOLLOWER); + if (follower != NULL) { + CopyPosition(target, follower); + sub_080686C4(target, follower); } } diff --git a/src/npc/zeldaFollower.c b/src/npc/zeldaFollower.c index 5cbaa03f..04153f4a 100644 --- a/src/npc/zeldaFollower.c +++ b/src/npc/zeldaFollower.c @@ -3,9 +3,8 @@ #include "functions.h" #include "common.h" -extern void sub_08068318(Entity*); -extern void sub_0806854C(Entity*, u32*); - +void sub_08068318(Entity*); +void sub_0806854C(Entity*, u32*); void sub_08068578(Entity* this); void ZeldaFollower(Entity* this) { @@ -40,20 +39,20 @@ void sub_0806854C(Entity* this, u32* none) { ASM_FUNC("asm/non_matching/zeldaFollower/sub_08068578.inc", void sub_08068578(Entity* this)) -void sub_08068680(Entity* this, Entity* entity) { - entity->field_0x68.HALF.LO = 0; - entity->spriteSettings.draw = 0; +void ZeldaFollower_Hide(Entity* zelda, Entity* follower) { + follower->field_0x68.HALF.LO = 0; + follower->spriteSettings.draw = 0; } -void sub_08068694(Entity* this, Entity* entity) { - entity->field_0x68.HALF.LO = 1; - entity->spriteSettings.draw = 1; - entity->animationState = this->animationState; - sub_08068578(entity); - InitAnimationForceUpdate(entity, entity->animationState / 2); +void ZeldaFollower_Show(Entity* zelda, Entity* follower) { + follower->field_0x68.HALF.LO = 1; + follower->spriteSettings.draw = 1; + follower->animationState = zelda->animationState; + sub_08068578(follower); + InitAnimationForceUpdate(follower, follower->animationState / 2); } -void sub_080686C4(Entity* this, Entity* entity) { - entity->y.HALF.HI -= 0x10; - sub_08068578(entity); +void sub_080686C4(Entity* zelda, Entity* follower) { + follower->y.HALF.HI -= 0x10; + sub_08068578(follower); } diff --git a/src/npcUtils.c b/src/npcUtils.c index 698cfaa8..190c9338 100644 --- a/src/npcUtils.c +++ b/src/npcUtils.c @@ -495,3 +495,16 @@ void ShowNPCDialogue(Entity* ent, const Dialog* dia) { MessageFromTarget(uVar2); } } + +const u8 gUnk_08114F30[] = { + 0, + 0, + 1, + 2, +}; +const u8 gUnk_08114F34[] = { + 1, + 2, + 3, + 3, +}; diff --git a/src/object/angryStatue.c b/src/object/angryStatue.c index 107ba864..0204c90e 100644 --- a/src/object/angryStatue.c +++ b/src/object/angryStatue.c @@ -6,13 +6,12 @@ */ #include "asm.h" #include "entity.h" +#include "hitbox.h" #include "physics.h" #include "projectile.h" #include "room.h" #include "sound.h" -extern Hitbox gUnk_080FD178; - void AngryStatue_Init(Entity*); void AngryStatue_Action1(Entity*); void AngryStatue_Action2(Entity*); @@ -29,7 +28,7 @@ void AngryStatue(Entity* this) { void AngryStatue_Init(Entity* this) { this->action = 1; - this->hitbox = &gUnk_080FD178; + this->hitbox = (Hitbox*)&gUnk_080FD178; SetTile(0x4022, COORD_TO_TILE(this), this->collisionLayer); InitializeAnimation(this, this->type); } diff --git a/src/object/cameraTarget.c b/src/object/cameraTarget.c index f08e9b43..79b56190 100644 --- a/src/object/cameraTarget.c +++ b/src/object/cameraTarget.c @@ -116,7 +116,7 @@ void CameraTarget_Action2(Entity* this) { u32 bVar3; u32 temp; u32 temp2; - const struct_080C9CBC* ptr; + const KinstoneWorldEvent* ptr; if ((this->type != 1) && (((u8)(gUnk_03003DF0.unk_4[3] - 1) >= 100 || (this->child != *(Entity**)(gUnk_03003DF0.unk_4 + 8))))) { @@ -132,7 +132,7 @@ void CameraTarget_Action2(Entity* this) { } else { bVar2 = this->type2; } - ptr = gUnk_080C9CBC + bVar2; + ptr = gKinstoneWorldEvents + bVar2; bVar1 = ptr->unk6; bVar3 = bVar1 & 1; this->palette.b.b0 = bVar3; diff --git a/src/object/cutsceneMiscObject.c b/src/object/cutsceneMiscObject.c index 8d971ba2..75911fe8 100644 --- a/src/object/cutsceneMiscObject.c +++ b/src/object/cutsceneMiscObject.c @@ -13,16 +13,25 @@ #include "screen.h" #include "script.h" -extern u8 gUnk_08114F30[]; -extern u8 gUnk_08114F34[]; extern u8 gUnk_08122AE0[]; extern u16 gUnk_08122AE8[]; -extern s8 gUnk_08122AF8[]; +extern s8 gUnk_08122AF8[]; // TODO struct s8XY extern u16 gUnk_08122B00[]; extern s16 gUnk_08122B0E[]; extern u16 gUnk_08122B1E[]; -extern s8 gUnk_08122B2E[]; +extern Coords8 gUnk_08122B2E[]; // TODO struct xy +typedef struct { + Hitbox hit; + u8 _8[4]; // TODO fourth param of sub_08078850 + u8 _c; +} HitboxCfg; +extern HitboxCfg gUnk_08122B3C[]; +// npcUtils.c +extern u8 gUnk_08114F30[]; +extern u8 gUnk_08114F34[]; + +// TODO use Script type extern u16 script_CutsceneMiscObjectTheLittleHat; extern u16 script_CutsceneMiscObjectSwordInChest; extern u16 script_08015B14; @@ -56,13 +65,6 @@ typedef struct { u32 anim; } Type1F; -typedef struct { - Hitbox hit; - u8 _8[4]; - u8 _c; -} HitboxCfg; -extern HitboxCfg gUnk_08122B3C[]; - typedef void(CutsceneMiscObjectTypeAction)(CutsceneMiscObjectEntity*); CutsceneMiscObjectTypeAction sub_08094A5C; @@ -1265,10 +1267,10 @@ void sub_080961F4(CutsceneMiscObjectEntity* this) { } void sub_08096208(CutsceneMiscObjectEntity* this, u32 x) { - s8* p = &gUnk_08122B2E[x * 2]; + Coords8* p = &gUnk_08122B2E[x]; Entity* e = CreateObject(CUTSCENE_MISC_OBJECT, 0x26, 0); if (e != NULL) { - PositionRelative(super, e, Q_16_16(p[0]), Q_16_16(p[1])); + PositionRelative(super, e, Q_16_16(p->x), Q_16_16(p->y)); } } diff --git a/src/object/figurineDevice.c b/src/object/figurineDevice.c index 75d626f3..d52ac049 100644 --- a/src/object/figurineDevice.c +++ b/src/object/figurineDevice.c @@ -6,9 +6,10 @@ */ #define NENT_DEPRECATED +#include "figurineMenu.h" #include "fileselect.h" #include "functions.h" -#include "global.h" +#include "kinstone.h" #include "item.h" #include "message.h" #include "object.h" @@ -43,13 +44,6 @@ typedef struct { extern void ModShells(s32); extern u8 gUnk_020227F0; -typedef struct { - u32 unk_0; - u16 unk_4; - u8 unk_6; - u8 unk_7; -} struct_080FC3E4; -extern const struct_080FC3E4 gUnk_080FC3E4[]; void sub_0808804C(FigurineDeviceEntity*); void sub_08087F58(FigurineDeviceEntity*); @@ -509,13 +503,13 @@ NONMATCH("asm/non_matching/figurineDevice/sub_08088160.inc", switch (ptr->unk_6) { case 0x8: case 0x40: - if (CheckLocalFlagByBank(ptr->unk_0, ptr->unk_4)) { + if (CheckLocalFlagByBank(ptr->bank, ptr->flag)) { result = TRUE; } return result; break; case 0x10: - if (CheckKinstoneFused(gUnk_080FC3E4[param_2].unk_4)) { + if (CheckKinstoneFused(gUnk_080FC3E4[param_2].flag)) { result = TRUE; } return result; @@ -523,30 +517,34 @@ NONMATCH("asm/non_matching/figurineDevice/sub_08088160.inc", default: return result; case 0x20: - switch (gUnk_080FC3E4[param_2].unk_4) { + switch (gUnk_080FC3E4[param_2].flag) { case 0: - if (CheckKinstoneFused(0x20) || CheckKinstoneFused(0x10) || CheckKinstoneFused(0x19)) { + if (CheckKinstoneFused(KINSTONE_20) || CheckKinstoneFused(KINSTONE_10) || + CheckKinstoneFused(KINSTONE_19)) { result = TRUE; } break; case 1: - if ((u8)this->unk_7c >= 5 && CheckKinstoneFused(0x28)) { + if ((u8)this->unk_7c >= 5 && CheckKinstoneFused(KINSTONE_28)) { result = TRUE; } break; case 2: - if (CheckKinstoneFused(0x54) || CheckKinstoneFused(0x56) || CheckKinstoneFused(0x3d)) { + if (CheckKinstoneFused(KINSTONE_54) || CheckKinstoneFused(KINSTONE_56) || + CheckKinstoneFused(KINSTONE_3D)) { result = TRUE; } break; case 3: - if (CheckKinstoneFused(0x3b) || CheckKinstoneFused(0x4a) || CheckKinstoneFused(0xd)) { + if (CheckKinstoneFused(KINSTONE_3B) || CheckKinstoneFused(KINSTONE_4A) || + CheckKinstoneFused(KINSTONE_D)) { result = TRUE; } break; case 4: - if (CheckKinstoneFused(0x49) || CheckKinstoneFused(0x55) || CheckKinstoneFused(0x3c)) { + if (CheckKinstoneFused(KINSTONE_49) || CheckKinstoneFused(KINSTONE_55) || + CheckKinstoneFused(KINSTONE_3C)) { result = TRUE; } break; @@ -598,9 +596,9 @@ void sub_080882A8(FigurineDeviceEntity* this) { sub_08057044(this->unk_83, &gUnk_020227E8[1], 0x202020); ptr = (u8*)0x02000000; if (ptr[7] == 0) { - sub_0805F46C((u32)gUnk_08120AE4[super->type2], (Font*)&gUnk_08120AB4); // TODO convert data + ShowTextBox(gUnk_08120AE4[super->type2], (Font*)&gUnk_08120AB4); // TODO convert data } else { - sub_0805F46C((u32)gUnk_08120AE4[super->type2], (Font*)&gUnk_08120ACC); // TODO convert data + ShowTextBox(gUnk_08120AE4[super->type2], (Font*)&gUnk_08120ACC); // TODO convert data } gScreen.bg0.updated = 1; } diff --git a/src/object/fileScreenObjects.c b/src/object/fileScreenObjects.c index 43dde1a2..23233f96 100644 --- a/src/object/fileScreenObjects.c +++ b/src/object/fileScreenObjects.c @@ -88,7 +88,7 @@ void sub_0808E7F0(Entity* this) { void sub_0808E818(Entity* this) { u32 var0; - u32 var1; + u32 offset; if (!sub_0808E950()) { int var2 = -1; @@ -104,8 +104,8 @@ void sub_0808E818(Entity* this) { this->field_0x68.HWORD = CheckGlobalFlag(EZERO_1ST) == 0 ? 0x400 : 0x100; this->field_0x70.BYTES.byte0 = 4; this->animationState = 2; - var1 = gUnk_08133368[GetPlayerPalette(TRUE) - 22] & 0xFFFFFF; - LoadPalettes(&gGlobalGfxAndPalettes[var1], 31, 1); + offset = gUnk_08133368[GetPlayerPalette(TRUE) - 22] & 0xFFFFFF; + LoadPalettes(&gGlobalGfxAndPalettes[offset], 31, 1); } if (gUI.lastState == 0) { diff --git a/src/object/frozenOctorok.c b/src/object/frozenOctorok.c index 85fbb2c0..fe537c4b 100644 --- a/src/object/frozenOctorok.c +++ b/src/object/frozenOctorok.c @@ -307,7 +307,7 @@ void FrozenOctorok_Action1SubAction5(FrozenOctorokEntity* this) { void FrozenOctorok_Action1SubAction6(FrozenOctorokEntity* this) { LinearMoveUpdate(super); if ((gRoomControls.origin_y + 0x1c8) < super->y.HALF.HI) { - gRoomControls.unk5 = 4; + gRoomControls.scrollSpeed = 4; gRoomControls.camera_target = &gPlayerEntity; SetLocalFlag(0x9b); DeleteEntity(super->parent); diff --git a/src/object/gleerokParticle.c b/src/object/gleerokParticle.c index 0ab61153..5595ccda 100644 --- a/src/object/gleerokParticle.c +++ b/src/object/gleerokParticle.c @@ -9,6 +9,7 @@ #include "effects.h" #include "entity.h" #include "functions.h" +#include "hitbox.h" #include "object.h" #include "player.h" #include "room.h" @@ -23,8 +24,6 @@ typedef struct { union SplitWord unk84; } GleerokParticleEntity; -extern Hitbox gUnk_080FD2E8; - void GleerokParticle_Init(GleerokParticleEntity*); void GleerokParticle_Action1(GleerokParticleEntity*); void GleerokParticle_Action2(GleerokParticleEntity*); diff --git a/src/object/greatFairy.c b/src/object/greatFairy.c index eca04021..fa4266c5 100644 --- a/src/object/greatFairy.c +++ b/src/object/greatFairy.c @@ -60,10 +60,10 @@ void GreatFairy_CallBehavior(Entity* this) { if ((gPlayerEntity.y.HALF.HI - gRoomControls.origin_y) < 168) { gRoomControls.camera_target = this; - gRoomControls.unk5 = 2; + gRoomControls.scrollSpeed = 2; } else { gRoomControls.camera_target = &gPlayerEntity; - gRoomControls.unk5 = 2; + gRoomControls.scrollSpeed = 2; } } diff --git a/src/object/kinstoneSpark.c b/src/object/kinstoneSpark.c index 9feb4c66..89126c82 100644 --- a/src/object/kinstoneSpark.c +++ b/src/object/kinstoneSpark.c @@ -52,7 +52,7 @@ void KinstoneSpark(Entity* this) { this->spriteRendering.b3 = 1; this->spritePriority.b0 = 0; this->spriteOrientation.flipY = 1; - ChangeObjPalette(this, gUnk_080C9CBC[gFuseInfo._3].unk0); + ChangeObjPalette(this, gKinstoneWorldEvents[gFuseInfo.kinstoneId].objPalette); } GetNextFrame(this); } diff --git a/src/object/lightRay.c b/src/object/lightRay.c index c353a862..c1e58d1a 100644 --- a/src/object/lightRay.c +++ b/src/object/lightRay.c @@ -42,7 +42,7 @@ void LightRay_Type0(LightRayEntity* this) { super->timer = 60; super->subtimer = 0; gRoomControls.camera_target = super; - gRoomControls.unk5 = 1; + gRoomControls.scrollSpeed = 1; if (super->x.HALF.HI > gPlayerEntity.x.HALF.HI) { tmp = 2; } else { @@ -76,7 +76,7 @@ void LightRay_Type0(LightRayEntity* this) { case 2: if (--super->timer == 0) { gScreen.lcd.displayControl |= 0x4800; - gRoomControls.unk5 = 4; + gRoomControls.scrollSpeed = 4; (super->parent)->subAction = 1; DeleteThisEntity(); } @@ -116,7 +116,7 @@ void LightRay_Type1(LightRayEntity* this) { super->timer = 60; super->subtimer = 32; gRoomControls.camera_target = super; - gRoomControls.unk5 = 1; + gRoomControls.scrollSpeed = 1; if (super->x.HALF.HI > gPlayerEntity.x.HALF.HI) { tmp = 2; } else { @@ -148,7 +148,7 @@ void LightRay_Type1(LightRayEntity* this) { break; case 2: if (--super->timer == 0) { - gRoomControls.unk5 = 4; + gRoomControls.scrollSpeed = 4; gScreen.lcd.displayControl &= 0xd7ff; (super->parent)->subAction = 1; DeleteThisEntity(); @@ -167,7 +167,7 @@ void LightRay_Type2(LightRayEntity* this) { super->timer = 60; super->subtimer = 0; gRoomControls.camera_target = super; - gRoomControls.unk5 = 1; + gRoomControls.scrollSpeed = 1; if (super->x.HALF.HI > gPlayerEntity.x.HALF.HI) { tmp = 2; } else { @@ -214,12 +214,12 @@ void LightRay_Type2(LightRayEntity* this) { if (--super->timer == 0) { super->action = 4; gRoomControls.camera_target = &gPlayerEntity; - gRoomControls.unk5 = 2; + gRoomControls.scrollSpeed = 2; } break; case 4: if (sub_0809BE78(this)) { - gRoomControls.unk5 = 4; + gRoomControls.scrollSpeed = 4; (super->parent)->subAction = 1; SetRoomFlag(100); DeleteThisEntity(); @@ -237,7 +237,7 @@ void LightRay_Type3(LightRayEntity* this) { super->timer = 60; super->subtimer = 0; gRoomControls.camera_target = super; - gRoomControls.unk5 = 1; + gRoomControls.scrollSpeed = 1; if (super->x.HALF.HI > gPlayerEntity.x.HALF.HI) { tmp = 2; } else { @@ -293,7 +293,7 @@ void LightRay_Type4(LightRayEntity* this) { super->timer = 60; super->subtimer = 128; gRoomControls.camera_target = super; - gRoomControls.unk5 = 1; + gRoomControls.scrollSpeed = 1; if (super->x.HALF.HI > gPlayerEntity.x.HALF.HI) { tmp = 2; } else { @@ -319,7 +319,7 @@ void LightRay_Type4(LightRayEntity* this) { break; case 2: if (--super->timer == 0) { - gRoomControls.unk5 = 4; + gRoomControls.scrollSpeed = 4; (super->parent)->subAction = 1; DeleteThisEntity(); } diff --git a/src/object/linkHoldingItem.c b/src/object/linkHoldingItem.c index d3a98df9..61982614 100644 --- a/src/object/linkHoldingItem.c +++ b/src/object/linkHoldingItem.c @@ -19,12 +19,6 @@ typedef struct { /*0x68*/ u16 unk_68; } LinkHoldingItemEntity; -typedef struct { - u8 unk_0[6]; - u16 unk_6; -} struct_080FD964; -extern const struct_080FD964 gUnk_080FD964[]; - void LinkHoldingItem_Init(LinkHoldingItemEntity*); void LinkHoldingItem_Action1(LinkHoldingItemEntity*); void LinkHoldingItem_Action2(LinkHoldingItemEntity*); @@ -74,7 +68,7 @@ void LinkHoldingItem_Action1(LinkHoldingItemEntity* this) { break; case 2: GiveItem(super->type, super->type2); - this->unk_68 = gUnk_080FD964[super->type].unk_6; + this->unk_68 = gUnk_080FD964[super->type].gotItemMessageId; SoundReq(SFX_ITEM_GET); break; case 5: diff --git a/src/object/lockedDoor.c b/src/object/lockedDoor.c index eff9e1c2..1b704f50 100644 --- a/src/object/lockedDoor.c +++ b/src/object/lockedDoor.c @@ -223,7 +223,7 @@ void LockedDoor_Action8(Entity* this) { this->timer = 20; sub_08083658(this); SetFlag(this->field_0x86.HWORD); - sub_080526F8(-1); + ModDungeonKeys(-1); } void sub_08083638(Entity* this) { diff --git a/src/object/minecart.c b/src/object/minecart.c index eba55180..3a4c434e 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -134,7 +134,7 @@ void Minecart_Action3(MinecartEntity* this) { u32 iVar2; u32 uVar3; - gRoomControls.unk5 = 7; + gRoomControls.scrollSpeed = 7; if ((gPlayerState.flags & PL_IN_MINECART) == 0) { super->action = 1; return; diff --git a/src/object/objectA.c b/src/object/objectA.c index 9ecf5a80..f9db55e0 100644 --- a/src/object/objectA.c +++ b/src/object/objectA.c @@ -40,7 +40,7 @@ void ObjectA(Entity* this) { SetTileType(*(u16*)&this->field_0x70.HALF.LO, COORD_TO_TILE(this), this->collisionLayer); SetFlag(this->field_0x86.HWORD); CreateDust(this); - sub_080526F8(-1); + ModDungeonKeys(-1); DeleteThisEntity(); } } diff --git a/src/object/pushableGrave.c b/src/object/pushableGrave.c index da643ccb..1cb2ecdf 100644 --- a/src/object/pushableGrave.c +++ b/src/object/pushableGrave.c @@ -96,7 +96,7 @@ void PushableGrave_Action2(PushableGraveEntity* this) { super->subAction = 1; super->subtimer = 120; gRoomControls.camera_target = super; - gRoomControls.unk5 = 2; + gRoomControls.scrollSpeed = 2; } } else { if (--super->subtimer == 0) { @@ -122,7 +122,7 @@ void PushableGrave_Action3(PushableGraveEntity* this) { sub_080977F4(this); if (super->type == 0) { gRoomControls.camera_target = &gPlayerEntity; - gRoomControls.unk5 = 4; + gRoomControls.scrollSpeed = 4; } } } diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index 905bf7b8..d89c91fd 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -10,8 +10,8 @@ #include "hitbox.h" #include "object.h" -extern void sub_0807CAC8(u32); -extern u32 sub_0807CAEC(u32); +extern void EnableDungeonWarp(u32); +extern u32 IsDungeonWarpActive(u32); void WarpPoint_Init(Entity*); void WarpPoint_Action1(Entity*); @@ -50,7 +50,7 @@ void WarpPoint_Init(Entity* this) { if (CheckFlags(this->field_0x86.HWORD)) { sub_0808B830(this); } else { - if (AreaIsDungeon() && sub_0807CAEC(this->type)) { + if (AreaIsDungeon() && IsDungeonWarpActive(this->type)) { sub_0808B830(this); } } @@ -69,7 +69,7 @@ void WarpPoint_Action1(Entity* this) { if (CheckFlags(this->field_0x86.HWORD)) { sub_0808B830(this); if (AreaIsDungeon()) { - sub_0807CAC8(this->type); + EnableDungeonWarp(this->type); } this->action = 2; this->subtimer = 60; diff --git a/src/objectUtils.c b/src/objectUtils.c index dd78655a..1c78c451 100644 --- a/src/objectUtils.c +++ b/src/objectUtils.c @@ -13,6 +13,19 @@ extern const ObjectDefinition gObjectDefinitions[]; static Entity* CreateSpeechBubble(Entity*, u32, s32, s32); +const s8 gUnk_08126EE4[] = { + 0, -32, // + 22, -6, // + 0, 12, // + -22, -6, +}; +const s8 gUnk_08126EEC[] = { + 0, -13, // + 13, 0, // + 0, 16, // + -13, 0, +}; + Entity* CreateLinkAnimation(Entity* parent, u32 type, u32 type2) { Entity* e = CreateItemGetEntity(); if (e != NULL) { @@ -253,7 +266,8 @@ void CreateSparkle(Entity* entity) { } } -NONMATCH("asm/non_matching/objectUtils/sub_080A2BE4.inc", void SyncPlayerToPlatform(Entity* this, bool32 param_2)) { +NONMATCH("asm/non_matching/objectUtils/SyncPlayerToPlatform.inc", + void SyncPlayerToPlatform(Entity* this, bool32 param_2)) { s16 oldValue; s32 diff; u16 newValue; diff --git a/src/physics.c b/src/physics.c index 9c740228..16763375 100644 --- a/src/physics.c +++ b/src/physics.c @@ -167,9 +167,9 @@ void LinearMoveUpdate(Entity* ent) { } } -void sub_0806F704(Entity* ent, u32 a2) { - ent->x.HALF.HI = (((16 * a2) & 0x3F0) | 8) + gRoomControls.origin_x; - ent->y.HALF.HI = (((a2 >> 2) & 0x3F0) | 8) + gRoomControls.origin_y; +void sub_0806F704(Entity* this, u32 tilePos) { + this->x.HALF.HI = (((16 * tilePos) & 0x3F0) | 8) + gRoomControls.origin_x; + this->y.HALF.HI = (((tilePos >> 2) & 0x3F0) | 8) + gRoomControls.origin_y; } /** Calculates the tile position of the player but modifies it by the hitbox depending on the animation state. */ @@ -509,30 +509,30 @@ bool32 sub_0806FDA0(Entity* this) { return 0; } -u32 LoadExtraSpriteData(Entity* ent, const SpriteLoadData* data) { +bool32 LoadExtraSpriteData(Entity* entity, const SpriteLoadData* spriteData) { const SpriteLoadData* ptr; u32 index; struct_gUnk_020000C0_1* ptr2; - if (sub_0806FDA0(ent) == 0) - return 0; + if (sub_0806FDA0(entity) == 0) + return FALSE; - UnloadOBJPalette(ent); - ptr2 = gUnk_020000C0[ent->spriteAnimation[2]].unk_00; - ptr = data; + UnloadOBJPalette(entity); + ptr2 = gUnk_020000C0[entity->spriteAnimation[2]].unk_00; + ptr = spriteData; for (index = 0; index < 4 && (((u16*)ptr)[1] & 0x3ff); index++) { - u32 pal = LoadObjPalette(ent, ((*(u32*)ptr) << 0x16) >> 0x16); + u32 pal = LoadObjPalette(entity, ((*(u32*)ptr) << 0x16) >> 0x16); sub_0806FEE8(ptr2, (*(u32*)ptr << 6) >> 0x16, pal, (*(u32*)ptr << 0x10) >> 0x1a); if (((u8*)ptr)[3] & 4) { - sub_0806FEFC(ptr2, ent); + sub_0806FEFC(ptr2, entity); } ptr2++; ptr++; } - ent->spriteAnimation[1] = 0; - return 1; + entity->spriteAnimation[1] = 0; + return TRUE; } void UnloadOBJPalette2(Entity* ent) { diff --git a/src/playerItem/playerItemBow.c b/src/playerItem/playerItemBow.c index ee32b950..acde02b6 100644 --- a/src/playerItem/playerItemBow.c +++ b/src/playerItem/playerItemBow.c @@ -262,3 +262,69 @@ void sub_08019468(PlayerItemBowEntity* this) { CreateFx(super, FX_REFLECT5, 0); } } + +// Probably belongs to collision.c, but needs to be placed at the end of playerItemBow.c or start of +// playerItemSwordBeam.c +const u8 gUnk_080B3E80[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 0, 255, 255, 255, + 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 255, + 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 48, 34, 34, 36, 0, 0, 29, 29, 29, 255, 255, 29, + 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 255, 255, 255, 255, 255, 29, 29, 29, 255, 255, 29, 29, + 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 32, 32, + 15, 15, 15, 15, 0, 0, 0, 0, 21, 21, 20, 20, 95, 255, 255, 255, 255, 255, 255, 15, 41, 41, 41, + 41, 0, 36, 36, 36, 15, 15, 15, 15, 255, 255, 255, 255, 255, 255, 15, 15, 15, 15, 39, 39, 15, 15, + 15, 39, 15, 15, 35, 15, 15, 35, 15, 15, 15, 15, 15, 15, 15, 15, 15, 39, 15, 15, 39, 39, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 39, 15, 15, 255, 39, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 39, 39, 15, 15, 39, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 35, 15, 15, 35, + 35, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 35, 35, 15, 15, 35, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 15, 15, 15, 15, 15, 95, 255, 255, 15, 15, 21, 15, 0, 0, 0, 255, 12, 0, 0, 12, + 12, 66, 96, 15, 29, 255, 15, 15, 15, 0, 15, 15, 15, 15, 10, 5, 10, 5, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 5, 15, 10, 0, 0, 5, 15, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, + 10, 4, 12, 8, 0, 0, 0, 5, 0, 10, 4, 12, 8, 15, 15, 15, 15, 15, 16, 17, 17, 16, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 27, 25, 28, 26, 43, 43, 97, 23, 23, 84, 23, 23, + 23, 0, 0, 84, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 18, 15, 15, 19, 15, 15, 15, 15, + 15, 15, 15, 15, 5, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 1, 3, 2, 0, 0, 5, 15, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 71, 15, 15, 15, 1, 3, 2, 15, 15, 5, 15, 10, 15, + 15, 4, 0, 8, 15, 12, 12, 0, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 16, 15, 17, 15, 15, 15, 15, 15, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 15, 0, 0, 5, 15, 15, 15, 15, 15, 15, 15, 15, + 39, 15, 15, 39, 255, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 39, 15, 15, 39, 255, 15, 15, + 15, 15, 255, 255, 255, 255, 255, 255, 15, 39, 15, 15, 255, 39, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, + 0, 0, 0, 5, 0, 10, 4, 12, 8, 70, 75, 74, 72, 71, 96, 98, 97, 99, 100, 102, 15, 80, 48, + 48, 255, 0, 255, 0, 0, 0, 0, 255, 0, 0, 37, 15, 255, 255, 255, 255, 255, 255, 0, 0, 33, 33, + 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, + 33, 33, 33, 33, 33, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 255, 255, 255, 255, 255, + 40, 255, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 21, 20, 20, + 15, 15, 15, 15, 15, 15, 15, 15, 255, 1, 1, 1, 255, 255, 255, 255, 24, 24, 24, 24, 38, 15, 0, + 28, 26, 27, 25, 255, 0, 15, 21, 15, 15, 15, 19, 18, 15, 15, 15, 18, 19, 35, 39, 0, 0, 2, + 14, 13, 12, 3, 9, 6, 4, 8, 11, 7, 10, 5, 3, 107, 103, 106, 15, 12, 20, 21, 15, 0, 15, + 40, 95, 15, 5, 10, 16, 17, 18, 19, 71, 12, 13, 14, 71, 20, 92, 13, 5, 4, 8, 1, 2, 10, + 5, 10, 15, 4, 8, 15, 3, 2, 5, 15, 10, 4, 12, 8, 3, 2, 5, 15, 10, 4, 12, 8, 92, + 84, 81, 83, 81, 82, 83, 90, 87, 91, 95, 84, 88, 92, 85, 93, 94, 39, 88, 85, 10, 83, 90, 81, + 15, 89, 0, 0, 69, 71, 67, 70, 0, 3, 15, 1, 2, 3, 10, 12, 5, 4, 8, 4, 1, 3, 15, + 95, 97, 0, 3, 28, 27, 21, 69, 3, 96, 12, 102, 100, 101, 26, 25, 18, 17, 19, 16, 2, 4, 8, + 14, 15, 11, 84, 69, 68, 4, 13, 0, 0, 12, 12, 15, 15, 10, 5, 10, 5, 12, 97, 10, 5, 11, + 7, 67, 69, 1, 2, 4, 8, 13, 3, 3, 7, 15, 3, 0, 2, 84, 92, 88, 12, 67, 0, 0, 8, + 1, 2, 87, 95, 91, 82, 14, 18, 19, 10, 5, 0, 10, 5, 3, 63, 19, 18, 47, 46, 17, 16, 11, + 7, 15, 0, 3, 15, 15, 1, 8, 12, 12, 15, 1, 3, 2, 5, 10, 4, 12, 8, 9, 39, 2, 14, + 13, 12, 3, 6, 9, 4, 8, 11, 7, 10, 5, 34, 35, 4, 12, 3, 3, 1, 5, 10, 4, 8, 0, + 107, 103, 106, 18, 45, 44, 0, 15, 41, 40, 0, 0, 0, 0, 0, 0, 0, 20, 33, 39, 67, 4, 8, + 12, 3, 3, 1, 2, 0, 12, 3, 2, 5, 10, 14, 13, 4, 8, 11, 7, 12, 0, 0, 39, 1, 2, + 1, 2, 4, 12, 7, 11, 4, 8, 16, 17, 43, 43, 18, 19, 10, 5, 2, 1, 35, 1, 3, 2, 5, + 10, 14, 13, 11, 7, 4, 8, 10, 5, 10, 5, 13, 14, 8, 4, 7, 11, 0, 9, 6, 0, 15, 7, + 11, 3, 33, 33, 33, 33, 33, 33, 33, 15, 5, 10, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 3, 48, 48, 0, 0, 0, 0, 0, 0, 48, 48, + 33, 33, 0, 15, 83, 92, 85, 90, 96, 97, 95, 18, 19, 16, 10, 10, 35, 10, 5, 14, 13, 11, 7, + 10, 5, 14, 13, 11, 7, 0, 0, 3, 0, 39, 12, 12, 33, 0, 0, +}; diff --git a/src/playerItem/playerItemCellOverwriteSet.c b/src/playerItem/playerItemCellOverwriteSet.c index fbd53489..3c9e766a 100644 --- a/src/playerItem/playerItemCellOverwriteSet.c +++ b/src/playerItem/playerItemCellOverwriteSet.c @@ -4,6 +4,10 @@ #include "common.h" #include "asm.h" +extern const u8 gUnk_080B7910[]; +extern const u8 gUnk_080B79A7[]; +extern const u8 gUnk_080B7A3E[]; // TODO figure out type from arm_sub_080B1B84 and arm_sub_080B1BA4 + void PlayerItemCellOverwriteSet(Entity* this) { static const s8 gUnk_080B7B6C[] = { 0x0, -0x10, 0x10, 0x0, 0x0, 0x10, -0x10, 0x0 }; u32 tmp; diff --git a/src/playerItem/playerItemGustJar.c b/src/playerItem/playerItemGustJar.c index 2f4e574a..a63fdf3f 100644 --- a/src/playerItem/playerItemGustJar.c +++ b/src/playerItem/playerItemGustJar.c @@ -3,7 +3,11 @@ #include "functions.h" #include "sound.h" +extern const u8* gUnk_08132714[]; // Anim index lists? +// TODO spriteAnimations in here +// TODO sprite frame in here extern Hitbox gUnk_08132B28; + void sub_080ADC84(Entity*); void PlayerItemGustJar_Init(Entity*); void PlayerItemGustJar_Action1(Entity*); @@ -143,8 +147,6 @@ void sub_080ADC84(Entity* this) { this->spriteSettings.flipX = gPlayerEntity.spriteSettings.flipX; } -extern const u8* gUnk_08132714[]; - void sub_080ADCA0(Entity* this, u32 param_2) { const u8* pFVar1 = gUnk_08132714[(param_2 + (gPlayerEntity.animationState >> 1))]; const u8* pFVar2; diff --git a/src/playerItem/playerItemShield.c b/src/playerItem/playerItemShield.c index 74211ade..14f7a2aa 100644 --- a/src/playerItem/playerItemShield.c +++ b/src/playerItem/playerItemShield.c @@ -7,6 +7,8 @@ #include "collision.h" #include "playeritem.h" +const Hitbox gUnk_081271CC = { 0, 0, { 1, 0, 0, 1 }, 8, 8 }; + typedef struct { Entity base; u8 unk_68; @@ -17,9 +19,35 @@ typedef struct { u32 unk_78; u8* unk_7c; } PlayerItemShieldEntity; +void sub_080A2D98(PlayerItemShieldEntity*); +void sub_080A2E00(PlayerItemShieldEntity*); +void (*const gUnk_081271D4[])(PlayerItemShieldEntity*) = { + sub_080A2D98, + sub_080A2E00, +}; +const u8 gUnk_081271DC[] = { + 7, 60, 0, 0, 0, 2, 0, 0, 1, 2, 0, 0, 2, 2, 0, 0, 3, 2, 0, 0, 4, 2, 0, 0, 5, 2, 0, 0, 6, 2, 0, 0, 7, 20, + 0, 0, 0, 2, 0, 0, 1, 2, 0, 0, 2, 2, 0, 0, 3, 2, 0, 0, 4, 2, 0, 0, 5, 2, 0, 0, 6, 2, 0, 0, 255, 0, 0, 0, +}; +const u8 gUnk_08127220[] = { + 0, 1, 0, 0, 1, 2, 0, 0, 2, 4, 0, 0, 3, 2, 0, 0, 4, 3, 0, 0, 5, 2, 0, 0, 3, 2, 0, 0, 255, 0, 0, 0, +}; + +const Hitbox gUnk_08127250; +const Hitbox gUnk_08127258; +const Hitbox gUnk_08127260; +const Hitbox gUnk_08127268; +const Hitbox* const gUnk_08127240[] = { + &gUnk_08127250, + &gUnk_08127258, + &gUnk_08127260, + &gUnk_08127268, +}; +const Hitbox gUnk_08127250 = { 0, -7, { 0, 0, 0, 0 }, 6, 7 }; +const Hitbox gUnk_08127258 = { 5, -4, { 0, 0, 0, 0 }, 5, 7 }; +const Hitbox gUnk_08127260 = { 0, 0, { 0, 0, 0, 0 }, 6, 7 }; +const Hitbox gUnk_08127268 = { -5, -4, { 0, 0, 0, 0 }, 5, 7 }; -extern void (*const gUnk_081271D4[])(PlayerItemShieldEntity*); -extern u8 gUnk_081271DC[]; void sub_080A2E00(PlayerItemShieldEntity* this); void PlayerItemShield(PlayerItemShieldEntity* this) { @@ -38,7 +66,7 @@ void sub_080A2D98(PlayerItemShieldEntity* this) { this->unk_70 = 0x27; this->unk_78 = gUnk_081271DC[1]; this->unk_74 = 0; - this->unk_7c = gUnk_081271DC; + this->unk_7c = (u8*)gUnk_081271DC; } else { this->unk_70 = 0; } @@ -48,9 +76,6 @@ void sub_080A2D98(PlayerItemShieldEntity* this) { sub_080A2E00(this); } -extern Hitbox* gUnk_08127240[]; -extern u8 gUnk_08127220[]; - void sub_080A2E00(PlayerItemShieldEntity* this) { Entity* playerItem; u8* pbVar3; @@ -66,7 +91,7 @@ void sub_080A2E00(PlayerItemShieldEntity* this) { if ((gPlayerState.shield_status != 0) && (super == gPlayerState.item)) { if ((gPlayerState.shield_status & 0x80) != 0) { - super->hitbox = gUnk_08127240[super->animationState >> 1]; + super->hitbox = (Hitbox*)gUnk_08127240[super->animationState >> 1]; super->collisionFlags = (gPlayerEntity.collisionFlags + 1) | 0x20; COLLISION_ON(super); gPlayerState.shield_status &= ~0x80; @@ -84,7 +109,7 @@ void sub_080A2E00(PlayerItemShieldEntity* this) { } this->unk_78 = gUnk_08127220[1]; this->unk_74 = 0; - this->unk_7c = gUnk_08127220; + this->unk_7c = (u8*)gUnk_08127220; gPlayerState.shield_status |= 0x40; } if (this->bounceTimer == 0) { @@ -117,7 +142,7 @@ void sub_080A2E00(PlayerItemShieldEntity* this) { pbVar3 = &this->unk_7c[tmp2]; if (pbVar3[0] == 0xff) { if ((gPlayerState.shield_status & 0x40) != 0) { - this->unk_7c = gUnk_081271DC; + this->unk_7c = (u8*)gUnk_081271DC; gPlayerState.shield_status &= ~0x40; } this->unk_74 = 0; diff --git a/src/playerUtils.c b/src/playerUtils.c index 20dd5995..766da0ff 100644 --- a/src/playerUtils.c +++ b/src/playerUtils.c @@ -33,7 +33,6 @@ void sub_08079064(Entity*); extern u8 gMapData; extern const u8 gUnk_020176E0[]; -extern const s8* gUnk_0811C0E8[]; extern const u8 gUnk_0800851C[]; extern const u8 gUnk_080084BC[]; extern const u8 gUnk_0800845C[]; @@ -58,14 +57,7 @@ void sub_0807AAF8(Entity*, u32); void sub_0807A750(u32, u32, const u8*, u32); extern ItemDefinition gItemDefinitions[]; -extern void (*const gUnk_0811C27C[])(Entity*); -extern void (*const gUnk_0811C284[])(PlayerEntity*); -extern void (*const gUnk_0811C298[])(PlayerEntity*); -extern bool32 (*const gPlayerChargeActions[])(ChargeState*); -extern u8 gUnk_0811C000[]; -extern const u8 gUnk_0811C118[]; -extern void (*const gUnk_0811C120[])(Entity*); -extern u16 gUnk_0811C268[]; + extern ItemBehavior* (*const gCreateItemsFuncs[])(Item); extern void DeleteLoadedTileEntity(u32, u32); @@ -83,24 +75,15 @@ void sub_0807BFD0(void); void ForceSetPlayerState(u32 framestate); struct_03003DF8* sub_080784E4(void); -extern const u16 gUnk_0811C0F8[]; - u32 sub_08079778(void); u32 GetPlayerTilePos(void); -extern const u16 gUnk_0811C108[]; - -extern const u16 gUnk_0811C110[]; - extern const u16 gUnk_08007CAC[]; u32 sub_0807BEEC(u32 param_1, u32 param_2, u32 param_3); -extern const u16 gUnk_0811C466[]; bool32 sub_0807B434(u32 position, u32 layer); -extern const u16 gUnk_0811C2AC[]; - void sub_0807B820(u32); void sub_0807B8A8(u32); void sub_0807B930(u32); @@ -108,15 +91,10 @@ bool32 sub_0807B464(u32 param_1, u32 param_2); void sub_0807B55C(u32, u32, u16*); void sub_0807B480(u32, u32); -extern const s16 gUnk_0811C456[]; - bool32 sub_0807B600(u32); bool32 sub_0807B464(u32 tilePos, u32 param_2); -extern const u16 gUnk_0811C2CC[]; -extern const u16 gUnk_0811C2EC[]; - bool32 sub_0807B464(u32 param_1, u32 param_2); extern void CreateRandomWaterTrace(Entity* parent, int range); @@ -167,9 +145,6 @@ void sub_0807C5B0(void); extern u8 gUnk_080082DC[]; extern u32 sub_08004202(Entity*, u8*, u32); -extern s8* gUnk_0811C0B0[]; -extern u8 gUnk_0811C01C[]; - extern u32 gUnk_02022830[]; extern u16* gUnk_0800823C[]; @@ -294,6 +269,16 @@ bool32 IsTryingToPickupObject(void) { } } +ItemBehavior* CreateItemNone(Item); +ItemBehavior* CreateItem1(Item); +ItemBehavior* CreateItem2(Item); +ItemBehavior* CreateItem3(Item); +ItemBehavior* CreateItem4(Item); +ItemBehavior* CreateItem5(Item); +ItemBehavior* (*const gCreateItemsFuncs[])(Item) = { + CreateItemNone, CreateItem1, CreateItem2, CreateItem3, CreateItem4, CreateItem5, +}; + ItemBehavior* CreateItem(Item itemId) { if (((((gPlayerState.queued_action == PLAYER_ROLL) && (itemId != ITEM_TRY_PICKUP_OBJECT)) || (((gPlayerState.flags & (PL_ROLLING | PL_CLONING)) != 0 && (ITEM_FOURSWORD < itemId)))) || @@ -659,6 +644,215 @@ bool32 PlayerTryDropObject(ItemBehavior* this, u32 index) { // TODO move above into a itemUtils.c ? +const u8 gUnk_0811BFE0[] = { + 3, 10, 12, 3, 3, 14, 12, 3, +}; + +bool32 sub_08078008(ChargeState* state); +bool32 sub_08078124(ChargeState* state); +bool32 sub_08078140(ChargeState* state); +bool32 sub_08078070(ChargeState* state); +bool32 sub_080780E0(ChargeState* state); +bool32 sub_08078108(ChargeState* state); +bool32 (*const gPlayerChargeActions[])(ChargeState*) = { + sub_08078008, sub_08078124, sub_08078140, sub_08078070, sub_080780E0, sub_08078108, +}; + +const u8 gUnk_0811C000[] = { + 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; +const u8 gUnk_0811C00C[] = { + 0, 238, 14, 255, 0, 10, 241, 255, +}; +const u8 gUnk_0811C014[] = { + 0, 242, 10, 255, 0, 6, 245, 255, +}; +const u8 gUnk_0811C01C[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 3, 3, 4, 3, 0, 1, 2, 0, 3, 3, 4, 3, 10, 15, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 6, 5, 5, 5, 5, 5, 6, 6, 6, 5, 5, 5, 5, 11, 12, 5, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 8, 7, 9, 9, 7, 7, 8, 8, 8, 7, 9, 9, 7, 13, 14, 7, 0, 0, +}; + +const s8 gUnk_0811C070[] = { 0, 16, 0, 17, 0, 18, 0, 15, 0, 14, 25, -4, 25, -3, 0, -24, + 0, -23, 0, -25, 0, 10, 21, -4, 16, -4, 0, -18, 0, -14, 0, 6 }; +const s8 gUnk_0811C090[] = { 0, 18, 0, 19, 0, 20, 0, 17, 0, 16, 24, -2, 24, -1, 0, -22, + 0, -21, 0, -23, 0, 12, 20, -4, 15, -4, 0, -16, 0, -12, 0, 8 }; +const s8* const gUnk_0811C0B0[] = { + gUnk_0811C070, + gUnk_0811C090, +}; + +const s8 gUnk_0811C0B8[] = { 0, -9, 0, -15, 0, -16, 12, -3, 10, -9, 0, 7, 0, -17, 0, -18 }; +const s8 gUnk_0811C0C8[] = { 0, -5, 0, -11, 0, -15, 12, 1, 10, -5, 0, 11, 0, -17, 0, -18 }; +const s8 gUnk_0811C0D8[] = { 0, -19, 0, -19, 0, -24, 32, -7, 10, -13, 0, 26, 0, -25, 0, -26 }; +const s8* const gUnk_0811C0E8[] = { + gUnk_0811C0B8, + gUnk_0811C0D8, + gUnk_0811C0B8, + gUnk_0811C0C8, +}; + +const u16 gUnk_0811C0F8[] = { 1024, 256, 2048, 512 }; +const s8 gUnk_0811C100[] = { 0, -8, 8, 0, 0, 3, -8, 0 }; +const u16 gUnk_0811C108[] = { 6, 24576, 96, 1536 }; +const u16 gUnk_0811C110[] = { 6, 24576, 96, 1536 }; +const u8 gUnk_0811C118[] = { + 19, 18, 18, 16, 16, 17, 17, 19, +}; + +void SurfaceAction_DoNothing(Entity*); +void SurfaceAction_Pit(Entity*); +void SurfaceAction_SlopeGndGndVertical(Entity*); +void SurfaceAction_SlopeGndGndHorizontal(Entity*); +void SurfaceAction_6(Entity*); +void SurfaceAction_7(Entity*); +void SurfaceAction_MinishDoorFront(Entity*); +void SurfaceAction_MinishDoorBack(Entity*); +void SurfaceAction_A(Entity*); +void SurfaceAction_B(Entity*); +void SurfaceAction_SlopeGndWater(Entity*); +void SurfaceAction_ConveyerNorth(Entity*); +void SurfaceAction_ConveyerSouth(Entity*); +void SurfaceAction_ConveyerWest(Entity*); +void SurfaceAction_ConveyerEast(Entity*); +void SurfaceAction_Swamp(Entity*); +void SurfaceAction_14(Entity*); +void SurfaceAction_CloneTile(Entity*); +void SurfaceAction_16(Entity*); +void SurfaceAction_Ice(Entity*); +void SurfaceAction_ShallowWater(Entity*); +void SurfaceAction_Water(Entity*); +void SurfaceAction_Button(Entity*); +void SurfaceAction_1B(Entity*); +void SurfaceAction_1C(Entity*); +void SurfaceAction_Ladder(Entity*); +void SurfaceAction_20(Entity*); +void SurfaceAction_22(Entity*); +void SurfaceAction_Dust(Entity*); +void SurfaceAction_26(Entity*); +void SurfaceAction_Hole(Entity*); +void SurfaceAction_AutoLadder(Entity*); +void SurfaceAction_ClimbWall(Entity*); +void SurfaceAction_2C(Entity*); + +void (*const gUnk_0811C120[])(Entity*) = { + SurfaceAction_DoNothing, + SurfaceAction_Pit, + NULL, + NULL, + SurfaceAction_SlopeGndGndVertical, + SurfaceAction_SlopeGndGndHorizontal, + SurfaceAction_6, + SurfaceAction_7, + SurfaceAction_MinishDoorFront, + SurfaceAction_MinishDoorBack, + SurfaceAction_A, + SurfaceAction_B, + SurfaceAction_SlopeGndWater, + SurfaceAction_ConveyerNorth, + SurfaceAction_ConveyerSouth, + SurfaceAction_ConveyerWest, + SurfaceAction_ConveyerEast, + SurfaceAction_Swamp, + SurfaceAction_DoNothing, + SurfaceAction_DoNothing, + SurfaceAction_14, + SurfaceAction_CloneTile, + SurfaceAction_16, + SurfaceAction_Ice, + SurfaceAction_ShallowWater, + SurfaceAction_Water, + SurfaceAction_Button, + SurfaceAction_1B, + SurfaceAction_1C, + NULL, + SurfaceAction_Ladder, + NULL, + SurfaceAction_20, + SurfaceAction_16, + SurfaceAction_22, + SurfaceAction_6, + SurfaceAction_6, + SurfaceAction_Dust, + SurfaceAction_26, + SurfaceAction_Hole, + SurfaceAction_SlopeGndGndVertical, + SurfaceAction_SlopeGndGndHorizontal, + SurfaceAction_AutoLadder, + SurfaceAction_ClimbWall, + SurfaceAction_2C, + SurfaceAction_Dust, +}; + +const u16 gUnk_0811C240[]; +const u16 gUnk_0811C24A[]; +const u16 gUnk_0811C254[]; +const u16 gUnk_0811C25E[]; +const u16 gUnk_0811C1F8[]; +const u16 gUnk_0811C20A[]; +const u16 gUnk_0811C21C[]; +const u16 gUnk_0811C22E[]; + +const u16* const gUnk_0811C1D8[] = { + gUnk_0811C240, + gUnk_0811C24A, + gUnk_0811C254, + gUnk_0811C25E, +}; +const u16* const gUnk_0811C1E8[] = { + gUnk_0811C1F8, + gUnk_0811C20A, + gUnk_0811C21C, + gUnk_0811C22E, +}; + +const u16 gUnk_0811C1F8[] = { 43, 1, 65, 1, 78, 8, 76, 2, 0 }; +const u16 gUnk_0811C20A[] = { 44, 3, 66, 3, 76, 2, 77, 4, 0 }; +const u16 gUnk_0811C21C[] = { 42, 5, 64, 5, 79, 6, 77, 4, 0 }; +const u16 gUnk_0811C22E[] = { 45, 7, 67, 7, 78, 8, 79, 6, 0 }; +const u16 gUnk_0811C240[] = { 42, 1, 38, 1, 0 }; +const u16 gUnk_0811C24A[] = { 45, 1, 39, 1, 0 }; +const u16 gUnk_0811C254[] = { 43, 1, 38, 1, 0 }; +const u16 gUnk_0811C25E[] = { 44, 1, 39, 1, 0 }; +const u16 gUnk_0811C268[] = { 16, 1, 90, 1, 17, 1, 19, 1, 0, 0 }; +void sub_0807B114(PlayerEntity*); +void sub_0807B128(PlayerEntity*); +void (*const gUnk_0811C27C[])(PlayerEntity*) = { + sub_0807B114, + sub_0807B128, +}; +void sub_0807B1A8(PlayerEntity*); +void sub_0807B144(PlayerEntity*); +void nullsub_506(PlayerEntity*); +void sub_0807B178(PlayerEntity*); +void sub_0807B2F8(PlayerEntity*); + +void (*const gUnk_0811C284[])(PlayerEntity*) = { + sub_0807B1A8, sub_0807B144, nullsub_506, sub_0807B178, sub_0807B2F8, +}; +void sub_0807B1DC(PlayerEntity*); +void sub_0807B1EC(PlayerEntity*); +void sub_0807B21C(PlayerEntity*); +void sub_0807B264(PlayerEntity*); +void sub_0807B2B8(PlayerEntity*); +void (*const gUnk_0811C298[])(PlayerEntity*) = { + sub_0807B1DC, sub_0807B1EC, sub_0807B21C, sub_0807B264, sub_0807B2B8, +}; + +const u16 gUnk_0811C2AC[] = { 678, 693, 688, 685, 691, 692, 684, 682, 690, 687, 689, 681, 686, 683, 680, 679 }; +const u16 gUnk_0811C2CC[] = { 710, 747, 720, 717, 737, 744, 716, 714, 730, 719, 727, 713, 718, 715, 712, 711 }; +const u16 gUnk_0811C2EC[] = { + 694, 15, 0, 695, 0, 15, 696, 1, 14, 697, 4, 11, 698, 8, 7, 699, 2, 13, 700, 9, 6, 701, 12, 3, 702, 3, 12, + 703, 6, 9, 704, 13, 2, 705, 5, 10, 706, 7, 8, 707, 11, 4, 708, 10, 5, 709, 14, 1, 710, 0, 0, 711, 0, 15, + 712, 0, 14, 713, 0, 11, 714, 0, 7, 715, 0, 13, 716, 0, 6, 717, 0, 3, 718, 0, 12, 719, 0, 9, 720, 0, 2, + 721, 12, 2, 722, 5, 2, 723, 9, 2, 724, 4, 2, 725, 1, 2, 726, 8, 2, 727, 0, 10, 728, 4, 10, 729, 1, 10, + 730, 0, 8, 731, 6, 8, 732, 5, 8, 733, 3, 8, 734, 4, 8, 735, 1, 8, 736, 2, 8, 737, 0, 4, 738, 10, 4, + 739, 3, 4, 740, 9, 4, 741, 2, 4, 742, 8, 4, 743, 1, 4, 744, 0, 5, 745, 2, 5, 746, 8, 5, 747, 0, 1, + 748, 10, 1, 749, 6, 1, 750, 12, 1, 751, 2, 1, 752, 8, 1, 753, 4, 1, 0, +}; +const s16 gUnk_0811C456[] = { 0, -13, 13, 0, 0, 16, -13, 0 }; +const u16 gUnk_0811C466[] = { 803, 819, 822, 825, 820, 828, 826, 829, 821, 823, 831, 830, 824, 827, 832, 53, 0 }; + void sub_08077F84(void) { Entity* obj; @@ -1194,7 +1388,7 @@ void UpdateCarriedObject(void) { void sub_08078CD0(PlayerEntity* this) { Entity* entity; u32 tmp; - s8* ptr; + const s8* ptr; entity = this->unk_70; entity->z.HALF.HI = super->z.HALF.HI - 1; @@ -2610,8 +2804,8 @@ void sub_0807B0C8(void) { sub_0806FEBC(&gPlayerEntity, 3, 0); } -void PlayerWarp(Entity* player) { - gUnk_0811C27C[player->subAction](player); +void PlayerWarp(PlayerEntity* this) { + gUnk_0811C27C[super->subAction](this); } void sub_0807B114(PlayerEntity* this) { @@ -2632,7 +2826,7 @@ void sub_0807B144(PlayerEntity* this) { SetPlayerActionNormal(); } -void nullsub_506(void) { +void nullsub_506(PlayerEntity* this) { } void sub_0807B178(PlayerEntity* this) { @@ -3100,8 +3294,8 @@ void sub_0807BC84(void) { bool32 sub_0807BD14(Entity* this, u32 scrollDirection) { u32 room = sub_0807BEEC(this->x.HALF.HI, this->y.HALF.HI, scrollDirection); if (room != 0xff) { - gRoomControls.unk3 = 2; - gRoomControls.unk4 = 0; + gRoomControls.scrollAction = 2; + gRoomControls.scrollSubAction = 0; gRoomControls.reload_flags = 1; gRoomControls.room = room; gRoomControls.scroll_direction = scrollDirection; @@ -3696,12 +3890,12 @@ u32 SetInventoryValue(u32 item, u32 value) { return masked_value >> offset; } -void sub_0807CAC8(u32 param_1) { - gSave.unk47C[gArea.dungeon_idx] |= (1 << param_1); +void EnableDungeonWarp(u32 warp) { + gSave.dungeonWarps[gArea.dungeon_idx] |= (1 << warp); } -u32 sub_0807CAEC(u32 param_1) { - return gSave.unk47C[gArea.dungeon_idx] >> param_1 & 1; +u32 IsDungeonWarpActive(u32 warp) { + return gSave.dungeonWarps[gArea.dungeon_idx] >> warp & 1; } u32 CheckLocalFlagByBank(u32 bank, u32 flag) { diff --git a/src/projectile.c b/src/projectile.c index aaddbb1b..3cfe2511 100644 --- a/src/projectile.c +++ b/src/projectile.c @@ -50,8 +50,8 @@ const ProjectileDefinition gProjectileDefinitions[] = { { 16400, 288, { &gHitbox_0 }, 107, 2, { 0, 1, 1, 1 }, 4, 384, 3, 11 }, // TODO sprite index too high MULTI_FORM(gProjectileDefinition_14), { 16400, 1, { &gHitbox_0 }, SPRITE_SPIDERWEB, 0, { 0, 1, 1, 1 }, 65, 640, 159, 143 }, - { 0, 0, { &gHitbox_20 }, SPRITE_TORCHTRAPPROJECTILE_0, 0, { 0, 1, 1, 1 }, 66, 640, 146, 11 }, - { 399, 0, { &gHitbox_20 }, SPRITE_TORCHTRAPPROJECTILE_1, 0, { 0, 1, 1, 1 }, 65, 640, 10, 11 }, + { 0, 0, { (Hitbox*)&gHitbox_20 }, SPRITE_TORCHTRAPPROJECTILE_0, 0, { 0, 1, 1, 1 }, 66, 640, 146, 11 }, + { 399, 0, { (Hitbox*)&gHitbox_20 }, SPRITE_TORCHTRAPPROJECTILE_1, 0, { 0, 1, 1, 1 }, 65, 640, 10, 11 }, { 405, 0, { &gHitbox_0 }, SPRITE_V1DARKMAGICPROJECTILE, 0, { 3, 1, 1, 1 }, 66, 256, 46, 15 }, #ifdef EU { 401, 112, { &gHitbox_1 }, 488, 0, { 1, 1, 1, 1 }, 65, 640, 162, 11 }, // TODO sprite index too high @@ -64,8 +64,8 @@ const ProjectileDefinition gProjectileDefinitions[] = { MULTI_FORM(gProjectileDefinition_1D), MULTI_FORM(gProjectileDefinition_1E), MULTI_FORM(gProjectileDefinition_1F), - { 415, 4, { &gHitbox_20 }, SPRITE_V3HANDPROJECTILE, 0, { 1, 1, 1, 1 }, 66, 704, 60, 11 }, - { 415, 320, { &gHitbox_20 }, SPRITE_V3HANDPROJECTILE, 0, { 1, 1, 1, 1 }, 66, 512, 164, 11 }, + { 415, 4, { (Hitbox*)&gHitbox_20 }, SPRITE_V3HANDPROJECTILE, 0, { 1, 1, 1, 1 }, 66, 704, 60, 11 }, + { 415, 320, { (Hitbox*)&gHitbox_20 }, SPRITE_V3HANDPROJECTILE, 0, { 1, 1, 1, 1 }, 66, 512, 164, 11 }, MULTI_FORM(gProjectileDefinition_22), { 493, 0, { &gHitbox_22 }, SPRITE_GYORGMALEENERGYPROJECTILE, 0, { 0, 1, 1, 1 }, 66, 256, 31, 11 }, { 418, 1, { &gHitbox_22 }, SPRITE_WRATHEYE, 0, { 1, 1, 1, 1 }, 66, 512, 55, 11 }, @@ -113,18 +113,18 @@ const ProjectileDefinition gProjectileDefinition_F[] = { { 32992, 1, { &gHitbox_0 }, SPRITE_POT, 0, { 3, 1, 1, 1 }, 66, 384, 157, 11 }, }; const ProjectileDefinition gProjectileDefinition_10[] = { - { 33008, 1, { &gUnk_080FD3FC }, 167, 1, { 0, 0, 1, 0 }, 65, 640, 110, 4 }, - { 366, 0, { &gUnk_080FD3FC }, SPRITE_FLYINGSKULL, 0, { 0, 0, 1, 0 }, 65, 640, 110, 4 }, + { 33008, 1, { (Hitbox*)&gUnk_080FD3FC }, 167, 1, { 0, 0, 1, 0 }, 65, 640, 110, 4 }, + { 366, 0, { (Hitbox*)&gUnk_080FD3FC }, SPRITE_FLYINGSKULL, 0, { 0, 0, 1, 0 }, 65, 640, 110, 4 }, }; // TODO sprite index too high #ifdef EU const ProjectileDefinition gProjectileDefinition_14[] = { { 387, 20, { &gHitbox_2 }, 486, 0, { 0, 1, 1, 1 }, 65, 640, 110, 12 }, - { 387, 20, { &gUnk_080FD43C }, 486, 4, { 0, 1, 1, 1 }, 65, 640, 88, 5 }, + { 387, 20, { (Hitbox*)&gUnk_080FD43C }, 486, 4, { 0, 1, 1, 1 }, 65, 640, 88, 5 }, }; // TODO sprite index too high #else const ProjectileDefinition gProjectileDefinition_14[] = { { 387, 20, { &gHitbox_2 }, 487, 0, { 0, 1, 1, 1 }, 65, 640, 110, 12 }, - { 387, 20, { &gUnk_080FD43C }, 487, 4, { 0, 1, 1, 1 }, 65, 640, 88, 5 }, + { 387, 20, { (Hitbox*)&gUnk_080FD43C }, 487, 4, { 0, 1, 1, 1 }, 65, 640, 88, 5 }, }; // TODO sprite index too high #endif const ProjectileDefinition gProjectileDefinition_1B[] = { @@ -164,12 +164,12 @@ const ProjectileDefinition gProjectileDefinition_1F[] = { #ifdef EU const ProjectileDefinition gProjectileDefinition_22[] = { { 492, 372, { &gHitbox_1 }, 497, 0, { 0, 0, 1, 1 }, 65, 640, 29, 11 }, - { 491, 338, { &gHitbox_20 }, 496, 0, { 0, 1, 1, 1 }, 65, 640, 29, 11 }, + { 491, 338, { (Hitbox*)&gHitbox_20 }, 496, 0, { 0, 1, 1, 1 }, 65, 640, 29, 11 }, }; // TODO sprite index too high #else const ProjectileDefinition gProjectileDefinition_22[] = { { 492, 372, { &gHitbox_1 }, 498, 0, { 0, 0, 1, 1 }, 65, 640, 29, 11 }, - { 491, 338, { &gHitbox_20 }, 497, 0, { 0, 1, 1, 1 }, 65, 640, 29, 11 }, + { 491, 338, { (Hitbox*)&gHitbox_20 }, 497, 0, { 0, 1, 1, 1 }, 65, 640, 29, 11 }, }; // TODO sprite index too high #endif diff --git a/src/room.c b/src/room.c index 12abcc67..a8a877e8 100644 --- a/src/room.c +++ b/src/room.c @@ -11,7 +11,6 @@ static void sub_0804B058(EntityData* dat); extern void sub_0801AC98(void); extern u32 sub_08049D1C(u32); -extern void* GetRoomProperty(u32, u32, u32); extern void** gCurrentRoomProperties; extern void*** gAreaTable[]; @@ -374,7 +373,7 @@ void sub_0804B388(u32 a1, u32 a2) { e->collisionLayer = a2; sub_0806F704(e, a1); } - sub_080526F8(-1); + ModDungeonKeys(-1); } void sub_0804B3C4(TileEntity* tile) { diff --git a/src/roomInit.c b/src/roomInit.c index fe7340a7..c77091db 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -2724,7 +2724,7 @@ extern EntityData gUnk_080E3850; void sub_StateChange_FortressOfWindsTop_Main(void) { SetGlobalFlag(LV3_CLEAR); UpdateGlobalProgress(); - sub_0805B4D0(3); + LoadStaticBackground(3); if (!GetInventoryValue(ITEM_OCARINA) && CheckLocalFlag(0x45)) { LoadRoomEntityList(&gUnk_080E3850); } @@ -3609,7 +3609,7 @@ u32 sub_unk3_DarkHyruleCastleBridge_Main(void) { } void sub_StateChange_DarkHyruleCastleBridge_Main(void) { - sub_0805B4D0(6); + LoadStaticBackground(6); } u32 sub_unk3_VaatisArms_First(void) { @@ -3635,7 +3635,7 @@ extern EntityData gUnk_080EAD68; extern EntityData gUnk_080EADB8; void sub_StateChange_DarkHyruleCastleOutside_ZeldaStatuePlatform(void) { - sub_0805B4D0(4); + LoadStaticBackground(4); if (!CheckLocalFlag(0x77)) { LoadRoomEntityList(&gUnk_080EAD68); } else if (!CheckLocalFlag(0x79)) { @@ -4405,7 +4405,7 @@ void sub_StateChange_HyruleTown_0(void) { } else { LoadRoomEntityList(&gUnk_080EE9DC); } - if ((gSave.global_progress > 4) && !CheckKinstoneFused(0xb) && + if ((gSave.global_progress > 4) && !CheckKinstoneFused(KINSTONE_B) && (CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || CheckGlobalFlag(RENTED_HOUSE_FARORE))) { LoadRoomEntityList(&gUnk_080EEA5C); @@ -5543,7 +5543,7 @@ u32 sub_unk3_WindTribeTowerRoof_Main(void) { extern EntityData gUnk_080F66AC; void sub_StateChange_WindTribeTowerRoof_Main(void) { - sub_0805B4D0(5); + LoadStaticBackground(5); if (CheckGlobalFlag(LV5_CLEAR) && !CheckLocalFlagByBank(FLAG_BANK_1, 5)) { LoadRoomEntityList(&gUnk_080F66AC); } @@ -5972,7 +5972,7 @@ extern EntityData gUnk_080F8430; void sub_StateChange_HyruleField_WesternWoodsCenter(void) { CloudOverlayManager_Main(NULL); - if (CheckKinstoneFused(KINSTONE_21) && !CheckLocalFlagByBank(FLAG_BANK_2, 0x42)) { + if (CheckKinstoneFused(KINSTONE_21) && !CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE08_03)) { LoadRoomEntityList(&gUnk_080F8430); } } @@ -6261,7 +6261,7 @@ u32 sub_unk3_VeilFallsTop_Main(void) { } void sub_StateChange_VeilFallsTop_Main(void) { - sub_0805B4D0(2); + LoadStaticBackground(2); sub_0806D0B0(0); } @@ -6555,12 +6555,12 @@ void sub_StateChange_MtCrenel_MountainTop(void) { } else { LoadRoomEntityList(&gUnk_080FACB8); } - sub_0805B4D0(0); + LoadStaticBackground(0); sub_08059994(); } void sub_unk1_MtCrenel_MountainTop(void) { - sub_0805B4D0(0); + LoadStaticBackground(0); } u32 sub_unk3_MtCrenel_WallClimb(void) { @@ -6578,7 +6578,7 @@ extern EntityData gUnk_080FAFE4; extern EntityData gUnk_080FB004; void sub_StateChange_MtCrenel_CaveOfFlamesEntrance(void) { - sub_0805B4D0(1); + LoadStaticBackground(1); if (CheckGlobalFlag(LV2_CLEAR) && !CheckLocalFlag(LV1_CLEAR)) { LoadRoomEntityList(&gUnk_080FAFE4); } diff --git a/src/save.c b/src/save.c index 03d35709..46dcb0d3 100644 --- a/src/save.c +++ b/src/save.c @@ -46,7 +46,13 @@ const char gUnk_0811E470[4] = "LINK"; #if defined(DEMO_USA) || defined(DEMO_JP) const u8 demoUnknown0 = 0x0; #ifdef DEMO_USA -const u8 demoUnknown1[] = { 0x0f, 0x0a, 0x0a, 0x0f, 0x0f, 0x0f, 0x08, 0x05, 0x05, 0x00, 0x00 }; +const u8 demoUnknown1[] = { + // demo_timer for the three save files + 0x0f, 0x0a, 0x0a, // gUnk_02000010.field_0x7 == 0 + 0x0f, 0x0f, 0x0f, // gUnk_02000010.field_0x7 == 1 + 0x08, 0x05, 0x05, // gUnk_02000010.field_0x7 == 2 + 0x00, 0x00 +}; #else const u8 demoUnknown1[] = { 0 }; #endif diff --git a/src/script.c b/src/script.c index b59c8ef2..27bea866 100644 --- a/src/script.c +++ b/src/script.c @@ -10,7 +10,7 @@ #include "item.h" #include "ui.h" -void InitScriptExecutionContext(ScriptExecutionContext* context, u16* script); +void InitScriptExecutionContext(ScriptExecutionContext* context, Script* script); void sub_0807DE80(Entity*); void DisablePauseMenu(void); void ScriptCommandNop(Entity* entity, ScriptExecutionContext* context); @@ -149,7 +149,7 @@ void ScriptCommand_SetInventoryValue(Entity* entity, ScriptExecutionContext* con void ScriptCommand_InitItemGetSequence(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CameraTargetEntity(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CameraTargetPlayer(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807F0B4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetScrollSpeed(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807F0C8(Entity* entity, ScriptExecutionContext* context); typedef void (*ScriptCommand)(Entity*, ScriptExecutionContext*); @@ -185,7 +185,7 @@ void DestroyScriptExecutionContext(ScriptExecutionContext* context) { MemClear(context, sizeof(ScriptExecutionContext)); } -ScriptExecutionContext* StartCutscene(Entity* entity, u16* script) { +ScriptExecutionContext* StartCutscene(Entity* entity, Script* script) { ScriptExecutionContext* context; context = CreateScriptExecutionContext(); @@ -195,7 +195,7 @@ ScriptExecutionContext* StartCutscene(Entity* entity, u16* script) { return context; } -void InitScriptForEntity(Entity* entity, ScriptExecutionContext* context, u16* script) { +void InitScriptForEntity(Entity* entity, ScriptExecutionContext* context, Script* script) { entity->flags |= ENT_SCRIPTED; *(ScriptExecutionContext**)&entity->cutsceneBeh = context; InitScriptExecutionContext(context, script); @@ -209,7 +209,7 @@ void UnloadCutsceneData(Entity* entity) { } } -void StartPlayerScript(u16* script) { +void StartPlayerScript(Script* script) { Entity* player; MemClear(&gPlayerScriptExecutionContext, sizeof(gPlayerScriptExecutionContext)); @@ -222,7 +222,7 @@ void StartPlayerScript(u16* script) { gPlayerState.field_0x38 = 0; } -UNUSED ScriptExecutionContext* StartCutscene2(Entity* entity, u16* script) { +UNUSED ScriptExecutionContext* StartCutscene2(Entity* entity, Script* script) { ScriptExecutionContext* context; context = CreateScriptExecutionContext(); @@ -234,7 +234,7 @@ UNUSED ScriptExecutionContext* StartCutscene2(Entity* entity, u16* script) { return context; } -void InitScriptExecutionContext(ScriptExecutionContext* context, u16* script) { +void InitScriptExecutionContext(ScriptExecutionContext* context, Script* script) { MemClear(context, sizeof(ScriptExecutionContext)); context->scriptInstructionPointer = script; } @@ -325,7 +325,7 @@ void sub_0807DD64(Entity* entity) { entity->field_0x82.HWORD = 0; } -void sub_0807DD80(Entity* entity, u16* script) { +void sub_0807DD80(Entity* entity, Script* script) { InitScriptExecutionContext(*(ScriptExecutionContext**)&entity->cutsceneBeh, script); sub_0807DD64(entity); } @@ -597,7 +597,7 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { ScriptCommand_InitItemGetSequence, ScriptCommand_CameraTargetEntity, ScriptCommand_CameraTargetPlayer, - ScriptCommand_0807F0B4, + ScriptCommand_SetScrollSpeed, ScriptCommand_0807F0C8, }; @@ -1516,8 +1516,8 @@ void ScriptCommand_CameraTargetPlayer(Entity* entity, ScriptExecutionContext* co gRoomControls.camera_target = &gPlayerEntity; } -void ScriptCommand_0807F0B4(Entity* entity, ScriptExecutionContext* context) { - gRoomControls.unk5 = context->scriptInstructionPointer[1] & 7; +void ScriptCommand_SetScrollSpeed(Entity* entity, ScriptExecutionContext* context) { + gRoomControls.scrollSpeed = context->scriptInstructionPointer[1] & 7; } void ScriptCommand_0807F0C8(Entity* entity, ScriptExecutionContext* context) { diff --git a/src/scroll.c b/src/scroll.c index 8e4d4018..c4c73049 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -72,13 +72,13 @@ void UpdateScroll(void) { }; gRoomControls.scroll_flags &= 0xfb; - gUnk_0811E768[gRoomControls.unk3](&gRoomControls); + gUnk_0811E768[gRoomControls.scrollAction](&gRoomControls); } void sub_0807FC64(RoomControls* controls) { - controls->unk3 = 1; + controls->scrollAction = 1; controls->reload_flags = 0; - controls->unk5 = 4; + controls->scrollSpeed = 4; sub_0807FC7C(controls); UpdateIsDiggingCave(); } @@ -98,8 +98,8 @@ void sub_0807FC7C(RoomControls* controls) { uVar5 = controls->scroll_x & 7; if (uVar3 >= 1) { if (controls->origin_x < controls->scroll_x) { - if (controls->unk5 <= uVar3) { - uVar3 = controls->unk5; + if (controls->scrollSpeed <= uVar3) { + uVar3 = controls->scrollSpeed; controls->scroll_flags |= 4; } controls->scroll_x = controls->scroll_x - uVar3; @@ -113,8 +113,8 @@ void sub_0807FC7C(RoomControls* controls) { } else { uVar2 = controls->origin_x + controls->width - 0xf0; if (controls->scroll_x < uVar2) { - if (-controls->unk5 >= uVar3) { - uVar3 = -controls->unk5; + if (-controls->scrollSpeed >= uVar3) { + uVar3 = -controls->scrollSpeed; controls->scroll_flags |= 4; } controls->scroll_x -= uVar3; @@ -135,8 +135,8 @@ void sub_0807FC7C(RoomControls* controls) { uVar5 = controls->scroll_y & 7; if (uVar3 >= 1) { if (controls->origin_y < controls->scroll_y) { - if (controls->unk5 <= uVar3) { - uVar3 = controls->unk5; + if (controls->scrollSpeed <= uVar3) { + uVar3 = controls->scrollSpeed; controls->scroll_flags |= 4; } controls->scroll_y = controls->scroll_y - uVar3; @@ -150,8 +150,8 @@ void sub_0807FC7C(RoomControls* controls) { } else { uVar2 = controls->origin_y + controls->height - DISPLAY_HEIGHT; if (controls->scroll_y < uVar2) { - if (-controls->unk5 >= uVar3) { - uVar3 = -controls->unk5; + if (-controls->scrollSpeed >= uVar3) { + uVar3 = -controls->scrollSpeed; controls->scroll_flags |= 4; } controls->scroll_y -= uVar3; @@ -174,19 +174,19 @@ void sub_0807FDB0(RoomControls* controls) { sub_0807FDE4, sub_0807FDF8, }; - gUnk_0811E780[controls->unk4](controls); + gUnk_0811E780[controls->scrollSubAction](controls); } void sub_0807FDC8(RoomControls* controls) { gUpdateVisibleTiles = 1; UpdateScrollVram(); - controls->unk4 = 1; + controls->scrollSubAction = 1; gUpdateVisibleTiles = 0; } void sub_0807FDE4(RoomControls* controls) { - controls->unk4 = 2; - controls->filler2[0] = 0; + controls->scrollSubAction = 2; + controls->unk_18 = 0; gUpdateVisibleTiles = 2; } @@ -196,7 +196,7 @@ void sub_0807FDF8(RoomControls* controls) { s32 iVar3; gUpdateVisibleTiles = 2; - controls->filler2[0]++; + controls->unk_18++; switch (controls->scroll_direction) { case 0: controls->scroll_y -= 4; @@ -204,7 +204,7 @@ void sub_0807FDF8(RoomControls* controls) { if (pEVar2 == &gPlayerEntity) { pEVar2->y.WORD = gPlayerEntity.y.WORD - Q_16_16(0.375); } - if (controls->filler2[0] == 0x28) { + if (controls->unk_18 == 0x28) { sub_0807FEC8(controls); } break; @@ -213,7 +213,7 @@ void sub_0807FDF8(RoomControls* controls) { if (controls->camera_target == &gPlayerEntity) { gPlayerEntity.x.WORD += Q_16_16(0.25); } - if (controls->filler2[0] == 0x3c) { + if (controls->unk_18 == 0x3c) { sub_0807FEC8(controls); } break; @@ -223,7 +223,7 @@ void sub_0807FDF8(RoomControls* controls) { if (pEVar2 == &gPlayerEntity) { pEVar2->y.WORD = gPlayerEntity.y.WORD + Q_16_16(0.375); } - if (controls->filler2[0] == 0x28) { + if (controls->unk_18 == 0x28) { sub_0807FEC8(controls); } break; @@ -232,7 +232,7 @@ void sub_0807FDF8(RoomControls* controls) { if (controls->camera_target == &gPlayerEntity) { gPlayerEntity.x.WORD -= Q_16_16(0.25); } - if (controls->filler2[0] == 0x3c) { + if (controls->unk_18 == 0x3c) { sub_0807FEC8(controls); } break; @@ -242,11 +242,11 @@ void sub_0807FDF8(RoomControls* controls) { sub_08080BC4(); } -void sub_0807FEC8(RoomControls* this) { - this->unk3 = 0; +void sub_0807FEC8(RoomControls* controls) { + controls->scrollAction = 0; MemFill32(0xffffffff, gPlayerState.path_memory, sizeof(gPlayerState.path_memory)); - gPlayerState.startPosX = this->camera_target->x.HALF.HI; - gPlayerState.startPosY = this->camera_target->y.HALF.HI; + gPlayerState.startPosX = controls->camera_target->x.HALF.HI; + gPlayerState.startPosY = controls->camera_target->y.HALF.HI; } void sub_0807FEF0(RoomControls* controls) { @@ -254,20 +254,20 @@ void sub_0807FEF0(RoomControls* controls) { sub_0807FF08, sub_0807FF1C, }; - gUnk_0811E78C[controls->unk4](controls); + gUnk_0811E78C[controls->scrollSubAction](controls); } void sub_0807FF08(RoomControls* controls) { - controls->unk4 = 1; - controls->filler2[0] = 0; + controls->scrollSubAction = 1; + controls->unk_18 = 0; gUpdateVisibleTiles = 3; } void sub_0807FF1C(RoomControls* controls) { if ((gRoomTransition.frameCount & 1U) == 0) { gUpdateVisibleTiles = 3; - if (++controls->filler2[0] > 0x13) { - controls->unk3 = 0; + if (++controls->unk_18 > 0x13) { + controls->scrollAction = 0; ResetSystemPriority(); } } @@ -277,11 +277,11 @@ void sub_0807FF54(RoomControls* controls) { static void (*const gUnk_0811E794[])(RoomControls*) = { sub_0807FF6C, sub_0807FFE4, sub_08080040, sub_08080108, sub_08080198, sub_080801BC, }; - gUnk_0811E794[controls->unk4](controls); + gUnk_0811E794[controls->scrollSubAction](controls); } void sub_0807FF6C(RoomControls* controls) { - controls->unk4 = 1; + controls->scrollSubAction = 1; gScreen.lcd.displayControl |= DISPCNT_WIN1_ON; gScreen.controls.windowInsideControl = (u8)gScreen.controls.windowInsideControl | 0x1700; gScreen.controls.windowOutsideControl = (gScreen.controls.windowOutsideControl & 0xff00) | 7; @@ -298,8 +298,8 @@ void sub_0807FF6C(RoomControls* controls) { } void sub_0807FFE4(RoomControls* controls) { - controls->unk4 = 2; - controls->filler2[0] = sub_080803D0() + 6; + controls->scrollSubAction = 2; + controls->unk_18 = sub_080803D0() + 6; gUnk_0200B640 = sub_08080278(); sub_080197D4(*gUnk_08109194[gDiggingCaveEntranceTransition.entrance->type]); sub_0807C8B0(gMapTop.mapData, controls->width >> 4, controls->height >> 4); @@ -314,32 +314,32 @@ void sub_08080040(RoomControls* controls) { s32 iVar7; s32 temp; - controls->filler2[0] -= 6; - controls->filler2[1] = (controls->filler2[0] << 1) / 3; - if (0x2a < controls->filler2[0]) { + controls->unk_18 -= 6; + controls->unk_1a = (controls->unk_18 << 1) / 3; + if (0x2a < controls->unk_18) { iVar2 = controls->camera_target->x.HALF.HI - controls->scroll_x; - uVar6 = (iVar2 - controls->filler2[0]) + 8; + uVar6 = (iVar2 - controls->unk_18) + 8; if (uVar6 < 0) { uVar6 = 0; } - iVar7 = iVar2 + controls->filler2[0] - 8; + iVar7 = iVar2 + controls->unk_18 - 8; if (DISPLAY_WIDTH < iVar7) { iVar7 = DISPLAY_WIDTH; } temp = controls->camera_target->y.HALF.HI - controls->scroll_y; - uVar5 = (temp - controls->filler2[1]) + 8; + uVar5 = (temp - controls->unk_1a) + 8; if (uVar5 < 0) { uVar5 = 0; } - iVar3 = temp + controls->filler2[1] - 8; + iVar3 = temp + controls->unk_1a - 8; if (DISPLAY_HEIGHT < iVar3) { iVar3 = DISPLAY_HEIGHT; } gScreen.controls.window1HorizontalDimensions = ((uVar6 & 0xff) << 8) | (iVar7 & 0xff); gScreen.controls.window1VerticalDimensions = ((uVar5 & 0xff) << 8) | (iVar3 & 0xff); } - if (controls->filler2[0] == 0) { - controls->unk4 = 3; + if (controls->unk_18 == 0) { + controls->scrollSubAction = 3; DeleteSleepingEntities(); sub_0807C810(); sub_08080C80(*(gUnk_08109194[gDiggingCaveEntranceTransition.entrance->type] + 1)); @@ -349,7 +349,7 @@ void sub_08080040(RoomControls* controls) { } void sub_08080108(RoomControls* controls) { - controls->unk4 = 4; + controls->scrollSubAction = 4; MemCopy(gMapBottom.mapData, gMapBottom.mapDataClone, sizeof(gMapBottom.mapData)); MemCopy(gMapTop.mapData, gMapTop.mapDataClone, sizeof(gMapTop.mapData)); sub_08080368(); @@ -365,8 +365,8 @@ void sub_08080108(RoomControls* controls) { } void sub_08080198(RoomControls* controls) { - controls->unk4 = 5; - controls->filler2[2] = 0xff; + controls->scrollSubAction = 5; + controls->unk_1c = 0xff; LoadRoom(); CallRoomProp5And7(); gUpdateVisibleTiles = 0; @@ -381,32 +381,32 @@ void sub_080801BC(RoomControls* controls) { s32 iVar7; s32 temp; - controls->filler2[0] += 6; - controls->filler2[1] = (controls->filler2[0] << 1) / 3; - if (0x1e < controls->filler2[0]) { + controls->unk_18 += 6; + controls->unk_1a = (controls->unk_18 << 1) / 3; + if (0x1e < controls->unk_18) { iVar2 = controls->camera_target->x.HALF.HI - controls->scroll_x; - uVar6 = (iVar2 - controls->filler2[0]); + uVar6 = (iVar2 - controls->unk_18); if (uVar6 < 0) { uVar6 = 0; } - iVar7 = iVar2 + controls->filler2[0]; + iVar7 = iVar2 + controls->unk_18; if (DISPLAY_WIDTH < iVar7) { iVar7 = DISPLAY_WIDTH; } temp = controls->camera_target->y.HALF.HI - controls->scroll_y; - uVar5 = (temp - controls->filler2[1]); + uVar5 = (temp - controls->unk_1a); if (uVar5 < 0) { uVar5 = 0; } - iVar3 = temp + controls->filler2[1]; + iVar3 = temp + controls->unk_1a; if (DISPLAY_HEIGHT < iVar3) { iVar3 = DISPLAY_HEIGHT; } gScreen.controls.window1HorizontalDimensions = ((uVar6 & 0xff) << 8) | (iVar7 & 0xff); gScreen.controls.window1VerticalDimensions = ((uVar5 & 0xff) << 8) | (iVar3 & 0xff); } - if (controls->filler2[2] == 0) { - controls->unk3 = 0; + if (controls->unk_1c == 0) { + controls->scrollAction = 0; controls->reload_flags = 0; ResetSystemPriority(); gScreen.lcd.displayControl &= ~DISPCNT_WIN1_ON; @@ -414,7 +414,7 @@ void sub_080801BC(RoomControls* controls) { gScreen.controls.windowOutsideControl &= 0xff00; } else { gUpdateVisibleTiles = 4; - controls->filler2[2] = 0; + controls->unk_1c = 0; } } @@ -461,7 +461,7 @@ void UpdateIsDiggingCave(void) { void ClearTilemaps(void) { MemClear(&gRoomControls, sizeof(gRoomControls)); MemClear(&gDiggingCaveEntranceTransition, sizeof(gDiggingCaveEntranceTransition)); - gRoomControls.filler3 = 0xffff; + gRoomControls.unk_22 = 0xffff; gDiggingCaveEntranceTransition.previousArea = 0xff; gUnk_02034480.unk_00 = 0; MemClear(&gMapDataBottomSpecial, 0x8000); @@ -630,8 +630,8 @@ void sub_0808091C(const ScreenTransitionData* screenTransition, u32 transitionTy } void sub_08080930(u32 unused) { - gRoomControls.unk3 = 5; - gRoomControls.unk4 = 0; + gRoomControls.scrollAction = 5; + gRoomControls.scrollSubAction = 0; gRoomControls.reload_flags = 2; gRoomControls.scroll_direction = 0; SetInitializationPriority(); @@ -821,8 +821,8 @@ NONMATCH("asm/non_matching/scroll/sub_08080CB4.inc", void sub_08080CB4(Entity* t if (this->type != this->animIndex) { InitAnimationForceUpdate(this, this->type); if (this->type == 0x5c) { - const struct_080C9CBC* ptr = &gUnk_080C9CBC[this->type2]; - this->palette.raw = ((ptr->unk0 & 0xf) << 4) | ptr->unk0; + const KinstoneWorldEvent* ptr = &gKinstoneWorldEvents[this->type2]; + this->palette.raw = ((ptr->objPalette & 0xf) << 4) | ptr->objPalette; } } else { diff --git a/src/staffroll.c b/src/staffroll.c index 0d64b765..65d2ad5a 100644 --- a/src/staffroll.c +++ b/src/staffroll.c @@ -1,13 +1,18 @@ -#include "global.h" -#include "room.h" -#include "main.h" -#include "save.h" -#include "flags.h" -#include "fileselect.h" -#include "screen.h" +/** + * @file staffroll.c + * @ingroup Tasks + * + * @brief Staffroll task + */ #include "common.h" -#include "menu.h" +#include "fileselect.h" +#include "flags.h" #include "game.h" +#include "main.h" +#include "menu.h" +#include "room.h" +#include "save.h" +#include "screen.h" #include "subtask.h" typedef struct { @@ -125,7 +130,7 @@ void StaffrollTask_State1MenuType2(void) { switch (gStaffrollMenu.base.overlayType) { case 0: MemClear(&gBG1Buffer, sizeof(gBG1Buffer)); - sub_0805F46C(gStaffrollMenu.unk_10, (Font*)gUnk_081272E0[gStaffrollMenu.unk_19]); + ShowTextBox(gStaffrollMenu.unk_10, gUnk_081272E0[gStaffrollMenu.unk_19]); gScreen.bg1.updated = 1; gStaffrollMenu.base.overlayType++; gStaffrollMenu.unk_18 = 0; diff --git a/src/sub_08055E08.c b/src/sub_08055E08.c deleted file mode 100644 index 7f9b9438..00000000 --- a/src/sub_08055E08.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "global.h" -#include "menu.h" -#include "room.h" -#include "functions.h" -#include "screen.h" - -extern void (*const gUnk_080FF420[])(void); -extern void sub_0804B0B0(u32, u32); -extern void sub_08055B70(u32, u32, u32, u32); - -struct { - /*0x00*/ u8 unk0; - /*0x10*/ u8 filler1[0x1B]; - /*0x1c*/ u8 unk1C; - /*0x1d*/ u8 unk1D; - /*0x1e*/ u8 unk1E; - /*0x1f*/ u8 unk1F; -} gUpdateVisibleTiles; - -extern EntityData gUnk_080FF400; - -void sub_08055E08(void) { - gUnk_080FF420[gMenu.overlayType](); -} - -void sub_08055E24(void) { - gMenu.overlayType++; - gUpdateVisibleTiles.unk0 = 1; - sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); - LoadRoomEntityList(&gUnk_080FF400); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - SetFade(FADE_INSTANT, 0x10); -} - -void nullsub_493(void) { -} diff --git a/src/subtask.c b/src/subtask.c index 950e7f3f..054d0c05 100644 --- a/src/subtask.c +++ b/src/subtask.c @@ -1,857 +1,297 @@ -#include "asm.h" #include "common.h" -#include "effects.h" -#include "fade.h" +#include "fileselect.h" #include "flags.h" #include "functions.h" -#include "global.h" +#include "game.h" +#include "item.h" +#include "itemMetaData.h" #include "kinstone.h" -#include "manager/bombableWallManager.h" +#include "main.h" #include "menu.h" #include "message.h" -#include "object.h" -#include "room.h" #include "save.h" #include "screen.h" -#include "sound.h" +#include "subtask.h" +#include "ui.h" -extern void (*const gUnk_080FEEB8[])(void); +extern u8 gUnk_020350F0[]; +extern Screen gUnk_03001020; +extern u8 gPaletteBufferBackup[]; +extern u8 gUnk_03000420[]; -extern void sub_0801876C(u32, u32); +void sub_080A70AC(const KeyButtonLayout* layout); +void sub_080A5F48(u32, u32); -extern u8 gUpdateVisibleTiles; -void sub_08055B70(u32, u32, u32, u32); +extern void sub_0805E974(void); +extern bool32 sub_080A51F4(void); +extern u32 sub_0807CB24(u32, u32); -extern void sub_08054974(u32, u32); +extern void (*const gUnk_0812901C[])(void); -extern void (*const gUnk_080FEEC8[])(void); +void sub_080A74F4(void); -void sub_080553E0(u32); +extern void UpdateCarriedObject(void); -extern void (*const gUnk_080FEF34[])(void); +extern void (*const gSubtasks[])(void); -extern EntityData gUnk_080FEED4[]; +// subtaskUtils? menuUtils? -extern void (*const gUnk_080FEF3C[])(void); +u32 sub_080A6F40(void) { + extern u8 gUnk_08128F38[]; + int iVar1; + u8* pcVar2; + u32 uVar3; + u32 uVar4; -extern void sub_0804B0E8(u32, u32); - -extern void (*const gUnk_080FF120[])(void); - -extern EntityData* gUnk_080FF108[]; - -extern void (*const gUnk_080FF148[])(void); - -extern EntityData gUnk_080FF128[]; - -extern void (*const gUnk_080FF174[])(void); - -extern EntityData gUnk_080FF154[]; - -extern void (*const gUnk_080FF1CC[])(void); - -extern EntityData gUnk_080FF17C[]; - -extern void (*const gUnk_080FF1F4[])(void); - -extern const s16 gUnk_080FF1D4[]; - -extern const u16 gUnk_080FF204[]; - -extern void (*const gUnk_080FF228[])(void); - -extern void (*const gUnk_080FF238[])(void); - -extern void (*const gUnk_080FF254[])(void); - -extern void (*const gUnk_080FF284[])(void); - -extern const EntityData gUnk_080FF264[]; - -extern void (*const gUnk_080FF28C[])(void); - -extern void sub_08054A14(u32); - -extern const EntityData gUnk_080FEE48[]; - -extern void (*const gUnk_080FF2B8[])(void); - -extern const EntityData gUnk_080FF298[]; - -extern void (*const gUnk_080FF300[])(void); - -extern const EntityData gUnk_080FF2C0[]; - -extern void (*const gUnk_080FF328[])(void); - -extern const EntityData gUnk_080FF308[]; - -extern void (*const gUnk_080FF330[])(void); - -void sub_08055994(void); - -extern void (*const gUnk_080FF35C[])(void); - -extern const EntityData gUnk_080FF33C[]; - -extern void (*const gUnk_080FF36C[])(void); - -extern const EntityData gUnk_080FED18[]; - -extern const EntityData gUnk_080FF378[]; - -extern void (*const gUnk_080FF3F4[])(void); - -void sub_08054C04(void) { - gUnk_080FEEB8[gMenu.overlayType](); + for (uVar3 = 0, pcVar2 = gUnk_08128F38, uVar4 = 0; *pcVar2 != 0; uVar3++, pcVar2 += 2) { + uVar4 |= sub_0807CB24(*pcVar2, pcVar2[1]) << uVar3; + } + return ~uVar4; } -void sub_08054C20(void) { - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - sub_0801876C(gMenu.field_0x4, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); +void sub_080A6F6C(u32 textIndexOrPtr) { + extern Font gUnk_08128FA8; + if (gGenericMenu.unk2e.HWORD != textIndexOrPtr) { + gGenericMenu.unk2e.HWORD = textIndexOrPtr; + MemClear(gUnk_020350F0, 0x100); + if ((textIndexOrPtr & 0xff) != 0) { + ShowTextBox(textIndexOrPtr, &gUnk_08128FA8); + } + gScreen.bg0.updated = 1; + } + gScreen.bg0.yOffset = 2; } -void sub_08054C58(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 0x10); - gMenu.overlayType++; +void sub_080A6FB4(u32 param_1, u32 param_2) { + extern u16 gUnk_08128FF0[]; + extern Font gUnk_08128FD8; + extern Font gUnk_08128FC0; + u32 textIndexOrPtr; + Font* font; + + textIndexOrPtr = 0; + switch (param_2) { + case 0: + if ((gSave.windcrests & (1 << param_1)) == 0) + break; + case 2: + textIndexOrPtr = gUnk_08127F94[param_1]._6; + font = &gUnk_08128FC0; + break; + case 1: + textIndexOrPtr = gUnk_08128FF0[param_1]; + font = &gUnk_08128FD8; + break; + } + + if (gGenericMenu.unk2e.HWORD != textIndexOrPtr) { + gGenericMenu.unk2e.HWORD = textIndexOrPtr; + MemClear(&gUnk_020350F0, 0x100); + if ((textIndexOrPtr & 0xff) != 0) { + ShowTextBox(textIndexOrPtr, font); + } + gScreen.bg0.updated = 1; + } + gScreen.bg0.yOffset = 2; +} + +void sub_080A7040(u32 param_1) { + extern Font gUnk_08129004; + extern u8 gUnk_02022130[]; + if (gGenericMenu.unk2e.HWORD != param_1) { + gGenericMenu.unk2e.HWORD = param_1; + MemClear(gUnk_02022130, 0x300); + MemCopy(gUnk_02022130 - 0x200, (void*)0x600e000, 0x800); + if (GetInventoryValue(gUnk_08128D70[param_1].item) != 0) { + ShowTextBox(gUnk_08128D70[param_1].textIndex, &gUnk_08129004); + } + gScreen.bg1.yOffset = 3; + gScreen.bg1.updated = 1; } } -void sub_08054C88(void) { - if (gFadeControl.active == 0) { - sub_08054974(gMenu.field_0x4, 0); - SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 0x10); - SoundReq(SFX_SECRET_BIG); - gMenu.overlayType++; - gMenu.transitionTimer = 120; - } +void sub_080A70AC(const KeyButtonLayout* layout) { + MemClear(&gUnk_0200AF00.elements, 0x300); + gUnk_0200AF00.unk_13 = 0x7f; + gUnk_0200AF00.unk_14 = 0x7f; + gUnk_0200AF00.buttonX[0] = layout->aButtonX; + gUnk_0200AF00.buttonY[0] = (s8)layout->aButtonY; + gUnk_0200AF00.unk_30[0] = layout->aButtonText; + gUnk_0200AF00.buttonX[1] = layout->bButtonX; + gUnk_0200AF00.buttonY[1] = (s8)layout->bButtonY; + gUnk_0200AF00.unk_30[1] = layout->bButtonText; + gUnk_0200AF00.buttonX[2] = layout->rButtonX; + gUnk_0200AF00.buttonY[2] = (s8)layout->rButtonY; + gUnk_0200AF00.unk_32 = layout->rButtonText; + layout++; + do { + CreateUIElement(layout->aButtonX, layout->aButtonY); + layout = (KeyButtonLayout*)&layout->aButtonText; + } while ((s8)layout->aButtonX != -1); } -void sub_08054CC0(void) { - if ((gFadeControl.active == 0) && (--gMenu.transitionTimer == 0)) { - gMenu.menuType++; - } -} - -void sub_08054CE8(void) { - gUnk_080FEEC8[gMenu.overlayType](); -} - -void sub_08054D04(void) { - sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_08054D3C(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - sub_0801876C(gMenu.field_0x4, 1); - sub_080553E0(gMenu.field_0x4); - gMenu.overlayType++; - gMenu.transitionTimer = 120; - } -} - -void sub_08054D74(void) { - if (--gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_08054D90(void) { - gUnk_080FEF34[gMenu.overlayType](); -} - -void sub_08054DAC(void) { - sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); - LoadRoomEntityList(gUnk_080FEED4); - sub_0805B4D0(2); - sub_0806D0B0(NULL); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void nullsub_484(void) { -} - -void sub_08054E00(void) { - gUnk_080FEF3C[gMenu.overlayType](); -} - -void sub_08054E1C(void) { - u8* ptr = gMenu.field_0xc; - sub_0804B0B0(ptr[2], ptr[3]); - sub_0804B0E8(ptr[2], ptr[3]); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_08054E5C(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - gMenu.overlayType++; - gMenu.transitionTimer = 180; - SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 0x10); - sub_080553E0(gMenu.field_0x4); - sub_0801876C(gMenu.field_0x4, 1); - } -} - -void sub_08054E9C(void) { - if (--gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_08054EB8(Entity* this, ScriptExecutionContext* context) { - BombableWallManager* manager = (BombableWallManager*)GetEmptyManager(); - if (manager != NULL) { - manager->base.kind = MANAGER; - manager->base.id = BOMBABLE_WALL_MANAGER; - manager->x = this->x.HALF.HI - gRoomControls.origin_x; - manager->y = (this->y.HALF.HI - gRoomControls.origin_y) - 0x10; - manager->field_0x35 = 1; -#if defined(EU) || defined(JP) || defined(DEMO_JP) - manager->field_0x3e = 0x77; -#else - manager->field_0x3e = 0x79; -#endif - AppendEntityToList((Entity*)manager, 6); - } -} - -void sub_08054EFC(Entity* this) { - Entity* effect; - u32 tmp = COORD_TO_TILE(this) - 0x40; - SetTile(0x4074, tmp, 1); - this->collisionLayer = 2; - UpdateSpriteForCollisionLayer(this); - effect = CreateFx(this, FX_BIG_EXPLOSION, 0); - if (effect != NULL) { - effect->y.HALF.HI -= 0x10; - SortEntityBelow(this, effect); - } - SoundReq(SFX_ITEM_BOMB_EXPLODE); -} - -void sub_08054F64(Entity* this, ScriptExecutionContext* context) { - u32 tmp = this->type2; - if ((gActiveScriptInfo.syncFlags & tmp) != tmp) { - gActiveScriptInfo.commandSize = 0; - } else { - gActiveScriptInfo.syncFlags &= ~tmp; - gActiveScriptInfo.flags |= 1; - } -} - -void sub_08054F90(void) { - gUnk_080FF120[gMenu.overlayType](); -} - -void sub_08054FAC(void) { - u8* ptr; - u32 tmp; - - ptr = gMenu.field_0xc; - LoadRoomEntityList(gUnk_080FF108[ptr[1]]); - if (ptr[1] != 0) { - tmp = 3; - } else { - tmp = 0; - } - sub_08055B70(gMenu.field_0x4, tmp, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); - gMenu.field_0xa = 0; - if (CheckLocalFlagByBank(FLAG_BANK_4, 0x77) && (ptr[2] == 0x2f)) { - gMenu.field_0xa = 1; - } -} - -void sub_08055014(void) { - if (gMenu.field_0xa != 0) { - gMenu.field_0xa = 0; - SetTileType(0x74, 0x407, 1); - } -} - -void sub_08055038(void) { - gUnk_080FF148[gMenu.overlayType](); -} - -void sub_08055054(void) { - LoadRoomEntityList(gUnk_080FF128); - sub_08055B70(gMenu.field_0x4, 2, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_0805508C(void) { -} - -void sub_08055090(void) { -} - -void sub_08055094(void) { - gUnk_080FF174[gMenu.overlayType](); -} - -void sub_080550B0(void) { - sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); - LoadRoomEntityList(gUnk_080FF154); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void nullsub_487(void) { -} - -void sub_080550F8(void) { - gUnk_080FF1CC[gMenu.overlayType](); -} - -void sub_08055114(void) { - LoadRoomEntityList(gUnk_080FF17C); - if (gSave.global_progress != 9) { - sub_08018C58(0xdb4); - } - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void nullsub_488(void) { -} - -void sub_08055168(void) { - gUnk_080FF1F4[gMenu.overlayType](); -} - -void sub_08055184(void) { - const s16* ptr = &gUnk_080FF1D4[(gMenu.field_0xc[1] & 0xf) * 3]; - LoadGfxGroup(ptr[0]); - gScreen.bg3.xOffset = ptr[1]; - gScreen.bg3.yOffset = ptr[2]; - gScreen.bg3.control = 0x1e05; - gScreen.controls.layerFXControl = 0x3648; - gScreen.controls.alphaBlend = 0x10; - gScreen.lcd.displayControl |= 0x800; - sub_0801876C(gMenu.field_0x4, 1); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; +void SetMenuType(u32 menuType) { + gMenu.menuType = menuType; + gMenu.overlayType = 0; gMenu.storyPanelIndex = 0; - gMenu.transitionTimer = 60; - gMenu.field_0xa = 0; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); } -void sub_08055224(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - gMenu.overlayType++; - } +void ResetUI(void) { + MemClear(&gUI, sizeof(gUI)); } -void sub_0805524C(void) { - if (gMenu.storyPanelIndex == 0) { - gMenu.transitionTimer--; - if (gMenu.transitionTimer == 0) { - u32 tmp = gMenu.storyPanelIndex; - gMenu.storyPanelIndex = tmp + 1; - SoundReq(SFX_EVAPORATE); - } - } else if ((gRoomTransition.frameCount & 7U) == 0) { - if (gUnk_080FF204[gMenu.field_0xa] != 0xffff) { - gScreen.controls.alphaBlend = gUnk_080FF204[gMenu.field_0xa++]; - } else { - gScreen.lcd.displayControl &= 0xf7ff; - gScreen.controls.alphaBlend = 0x1000; - gMenu.transitionTimer = 120; - gMenu.overlayType++; -#ifndef EU - SoundReq(SFX_SECRET_BIG); -#endif - } - } -} - -void sub_080552E0(void) { - if (--gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_080552FC(void) { - gUnk_080FF228[gMenu.overlayType](); -} - -void sub_08055318(void) { - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - sub_0801876C(gMenu.field_0x4, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_08055350(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 0x10); - gMenu.overlayType++; - } -} - -void sub_08055380(void) { - if (gFadeControl.active == 0) { - sub_08054974(gMenu.field_0x4, 0); - SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 0x10); - SoundReq(SFX_SECRET_BIG); - gMenu.overlayType++; - gMenu.transitionTimer = 120; - } -} - -void sub_080553B8(void) { - if ((gFadeControl.active == 0) && (--gMenu.transitionTimer == 0)) { - gMenu.menuType++; - } -} - -void sub_080553E0(u32 param_1) { - u8* ptr = gMenu.field_0xc; - Entity* effect = CreateObject(SPECIAL_FX, FX_BIG_EXPLOSION2, 0); - if (effect != NULL) { - effect->x.HALF.HI = *(s16*)(ptr + 8) + gRoomControls.origin_x; - effect->y.HALF.HI = *(s16*)(ptr + 10) + gRoomControls.origin_y; - } -} - -void sub_08055414(void) { - gUnk_080FF238[gMenu.overlayType](); -} - -void sub_08055430(void) { - sub_0804B0E8(gMenu.field_0xc[2], gMenu.field_0xc[3]); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_08055468(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 0x10); - gMenu.overlayType++; - } -} - -void sub_08055498(void) { - if (gFadeControl.active == 0) { - sub_0801876C(gMenu.field_0x4, 1); - sub_080553E0(gMenu.field_0x4); - SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 0x10); - SoundReq(SFX_SECRET_BIG); - gMenu.overlayType++; - gMenu.transitionTimer = 120; - } -} - -void sub_080554D4(void) { - if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_080554FC(void) { - extern void (*const gUnk_080FF248[])(void); - gUnk_080FF248[gMenu.overlayType](); -} - -void sub_08055518(void) { - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_08055548(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - sub_0801876C(gMenu.field_0x4, 1); - sub_080553E0(gMenu.field_0x4); - gMenu.overlayType++; - gMenu.transitionTimer = 180; - } -} - -void sub_08055580(void) { - if (--gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_0805559C(void) { - gUnk_080FF254[gMenu.overlayType](); -} - -void sub_080555B8(void) { - u8* ptr = gMenu.field_0xc; - SetLocalFlagByBank(gLocalFlagBanks[gMenu.field_0xc[0x11]], (u32) * (u16*)(gMenu.field_0xc + 0x12)); - sub_0804B0E8(ptr[2], ptr[3]); - LoadGfxGroup(0x11); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_0805560C(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - gMenu.overlayType++; - } -} - -void sub_08055634(void) { - u8* ptr = gMenu.field_0xc; - Entity* obj = CreateObject(BEANSTALK, 0, 0); - if (obj != NULL) { - obj->x.HALF.HI = gRoomControls.origin_x + *(s16*)(ptr + 8); - obj->y.HALF.HI = gRoomControls.origin_y + *(s16*)(ptr + 10); - } - gMenu.overlayType++; - gMenu.transitionTimer = 390; -} - -void sub_08055674(void) { - if (--gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_08055690(void) { - gUnk_080FF284[gMenu.overlayType](); -} - -void sub_080556AC(void) { - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); - LoadRoomEntityList((EntityData*)gUnk_080FF264); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - SetFade(FADE_INSTANT, 0x10); -} - -void nullsub_489(void) { -} - -void sub_080556F4(void) { - gUnk_080FF28C[gMenu.overlayType](); -} - -void sub_08055710(void) { - Entity* entity; - - sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); - entity = LoadRoomEntity((EntityData*)gUnk_080FEE48); - if (entity != NULL) { - entity->type2 = 2; - entity->field_0x86.HWORD = 0x80ff; - } - sub_08054A14(gMenu.field_0x4); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_0805576C(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - gMenu.overlayType++; - gMenu.transitionTimer = 120; - } -} - -void sub_08055798(void) { - if (--gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_080557B4(void) { - gUnk_080FF2B8[gMenu.overlayType](); -} - -void sub_080557D0(void) { - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - sub_0804B0B0((u32)gMenu.field_0xc[2], gMenu.field_0xc[3]); - LoadRoomEntityList((EntityData*)gUnk_080FF298); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - SetFade(FADE_INSTANT, 0x10); -} - -void nullsub_490(void) { -} - -void sub_08055818(void) { - gUnk_080FF300[gMenu.overlayType](); -} - -void sub_08055834(void) { - LoadRoomEntityList((EntityData*)gUnk_080FF2C0); - if (gSave.global_progress != 9) { - sub_08018C58(0xdb4); - } - sub_08055B70(gMenu.field_0x4, 1, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void nullsub_491(void) { -} - -void sub_08055888(void) { - gUnk_080FF328[gMenu.overlayType](); -} - -void sub_080558A4(void) { - sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); - LoadRoomEntityList((EntityData*)gUnk_080FF308); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void nullsub_492(void) { -} - -void sub_080558EC(void) { - gUnk_080FF330[gMenu.overlayType](); -} - -void sub_08055908(void) { - u8* ptr = gMenu.field_0xc; - sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); - sub_0804B0E8(ptr[2], ptr[3]); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_08055948(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - sub_08055994(); - gMenu.overlayType++; - gMenu.transitionTimer = 120; - } -} - -void sub_08055978(void) { - if (--gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_08055994(void) { - u32 layer; - TileEntity* ptr = &gUnk_080FEAC8[gMenu.field_0x4]; - if ((ptr->_6 & 1) != 0) { - layer = 2; +void MenuFadeIn(u32 param_1, u32 param_2) { + if (gUI.nextToLoad == 0) { + MemClear(&gUI, sizeof(gUI)); + gUI.lastState = param_1; + gUI.field_0x3 = param_2; + gUI.pauseFadeIn = gMain.substate; } else { - layer = 1; + gUI.state = param_1; + gUI.field_0x5 = param_2; + gUI.nextToLoad = 1; // Subtask_Init } - SetTileType(0x73, (*(u16*)(gMenu.field_0xc + 8) >> 4 & 0x3f) | (*(u16*)(gMenu.field_0xc + 10) >> 4 & 0x3f) << 6, - layer); - sub_080553E0((u32)gMenu.field_0x4); - SoundReq(SFX_SECRET_BIG); + gUI.field_0x6 = 0; + gUI.fadeType = -1; + gUI.fadeInTime = 0x20; + gMain.substate = GAMEMAIN_SUBTASK; + SetFade(FADE_IN_OUT | FADE_INSTANT, 0x20); + gUnk_02018EB0.unk_0 = 0; + gUnk_02018EB0.unk_1 = 0; } -void sub_080559E0(void) { - gUnk_080FF35C[gMenu.overlayType](); -} - -void sub_080559FC(void) { - if (gMenu.field_0xc[1] != 0) { - LoadRoomEntityList((EntityData*)gUnk_080FF33C); +void sub_080A71A4(u32 param_1, u32 param_2, u32 param_3) { + if (gUI.nextToLoad == 0) { + gUI.unk_e = param_3; + } else { + gUI.unk_f = param_3; } - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); + MenuFadeIn(param_1, param_2); } -void sub_08055A3C(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 0x10); - gMenu.overlayType++; +void sub_080A71C4(u32 param_1, u32 param_2, u32 fadeType, u32 param_4) { + MenuFadeIn(param_1, param_2); + gUI.fadeType = fadeType; + gUI.fadeInTime = param_4; +} + +void Subtask_Exit(void) { + gUI.nextToLoad = 3; // Subtask_FadeOut + SetFade(FADE_IN_OUT | FADE_INSTANT, 0x20); +} + +// Used by Subtask_FastTravel and EnterPortalSubtask? +void sub_080A71F4(const ScreenTransitionData* exitTransition) { + if (exitTransition != NULL) { + DoExitTransition(exitTransition); } + DeleteAllEntities(); + sub_0805E974(); + DeleteAllEntities(); + gMain.state = GAMETASK_INIT; + gMain.substate = GAMEMAIN_INITROOM; } -void sub_08055A6C(void) { - if (gFadeControl.active == 0) { - sub_0801876C(gMenu.field_0x4, 1); - sub_080553E0(gMenu.field_0x4); - SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 0x10); - SoundReq(SFX_SECRET_BIG); - gMenu.overlayType++; - gMenu.transitionTimer = 120; - } -} - -void sub_08055AA8(void) { - if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_08055AD0(void) { - gUnk_080FF36C[gMenu.overlayType](); -} - -void sub_08055AEC(void) { - Entity* entity; - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - entity = LoadRoomEntity((EntityData*)&gUnk_080FED18[gMenu.field_0xc[1]]); - if (entity != NULL) { - entity->type2 = 1; - } - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_08055B38(void) { - if (gFadeControl.active == 0) { - gMenu.transitionTimer = 120; - } -} - -void sub_08055B54(void) { - if (--gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_08055B70(u32 param_1, u32 param_2, u32 param_3, u32 param_4) { - u8* ptr = gMenu.field_0xc; - Entity* entity = LoadRoomEntity((EntityData*)&gUnk_080FF378[param_2]); - if (entity != NULL) { - entity->x.HALF.HI = *(s16*)(ptr + 8) + param_3 + gRoomControls.origin_x; - entity->y.HALF.HI = *(s16*)(ptr + 10) + param_4 + gRoomControls.origin_y; - } -} - -void sub_08055BB0(void) { - extern void (*const gUnk_080FF3C8[])(void); - gUnk_080FF3C8[gMenu.overlayType](); -} - -void sub_08055BCC(void) { - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - sub_0801876C(gMenu.field_0x4, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_08055C04(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 0x10); - gMenu.overlayType++; - } -} - -void sub_08055C34(void) { - u8* ptr; - Entity* entity; - if (gFadeControl.active == 0) { - ptr = gMenu.field_0xc; - sub_080553E0((u32)gMenu.field_0x4); - if ((ptr[1] & 0x80) != 0) { - sub_08054974(gMenu.field_0x4, 0); - } else { - entity = FindEntity(OBJECT, TREE_THORNS, 6, 0, ptr[1] & 0x80); - if (entity != NULL) { - DeleteEntity(entity->child); - DeleteEntity(entity); - } +void GameMain_Subtask(void) { + if (gUI.nextToLoad < 3) { + if (gUI.state != 0) { + gUI.field_0x3 = gUI.field_0x5; + gUI.lastState = gUI.state; + gUI.state = 0; } - SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 0x10); - SoundReq(SFX_SECRET_BIG); - gMenu.overlayType++; - gMenu.transitionTimer = 120; + } + gUnk_0812901C[gUI.nextToLoad](); +} + +void Subtask_FadeIn(void) { + if (!gFadeControl.active) { + MemCopy(&gScreen, &gUnk_03001020, sizeof(Screen)); + MemCopy(gPaletteBuffer, gPaletteBufferBackup, 0x400); + MemCopy(&gGFXSlots, &gUI.gfxSlotList, sizeof(GfxSlotList)); + MemCopy(gPaletteList, gUI.palettes, sizeof(gUI.palettes)); + MemCopy(&gRoomControls, &gUI.roomControls, sizeof(RoomControls)); + MemCopy(gUnk_03000420, gUI.unk_2a8, sizeof(gUI.unk_2a8)); + MemCopy(&gActiveScriptInfo, &gUI.activeScriptInfo, sizeof(ActiveScriptInfo)); + sub_0805E958(); + gUI.unk_d = gRoomTransition.field_0x2c[2]; + gUI.controlMode = gPlayerState.controlMode; + gUI.currentRoomProperties = gCurrentRoomProperties; + gUI.mapBottomBgSettings = gMapBottom.bgSettings; + gUI.mapTopBgSettings = gMapTop.bgSettings; + gUI.nextToLoad = 1; // Subtask_Init } } -void sub_08055CB0(void) { - if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_08055CD8(void) { - extern void (*const gUnk_080FF3E8[])(void); - gUnk_080FF3E8[gMenu.overlayType](); -} - -void sub_08055CF4(void) { - sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); - sub_08055B70(gMenu.field_0x4, 0, 0, 0); - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_08055D2C(void) { - if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { - sub_0801876C(gMenu.field_0x4, 1); - sub_080553E0(gMenu.field_0x4); - gMenu.overlayType++; - gMenu.transitionTimer = 120; - } -} - -void sub_08055D64(void) { - if (--gMenu.transitionTimer == 0) { - gMenu.menuType++; - } -} - -void sub_08055D80(void) { - gUnk_080FF3F4[gMenu.overlayType](); -} - -void sub_08055D9C(void) { - gMenu.overlayType++; - gUpdateVisibleTiles = 1; - SetFade(FADE_INSTANT, 0x10); -} - -void sub_08055DC0(void) { +void Subtask_Init(void) { if (gFadeControl.active == 0) { - MessageFromTarget(TEXT_INDEX(TEXT_EMPTY, 0x01)); - gMenu.overlayType++; - gMenu.transitionTimer = 120; + DeleteAllEntities(); + MemClear(&gMenu, sizeof(FigurineMenu)); + MemClear(&gRoomControls, sizeof(gRoomControls)); + MemClear(gOAMControls.unk, 0x100); + MemClear(&gActiveScriptInfo, sizeof(gActiveScriptInfo)); + gActiveScriptInfo.fadeSpeed = 8; + DispReset(1); + MessageInitialize(); + ResetPalettes(); + ResetPaletteTable(0); + gGFXSlots.unk0 = 1; + gUI.nextToLoad = 2; // Subtask_Update + gRoomTransition.field_0x2c[3] = 1; } } -void sub_08055DEC(void) { - if (--gMenu.transitionTimer == 0) { - gMenu.menuType++; +void Subtask_FadeOut(void) { + if (!gFadeControl.active) { + DeleteAllEntities(); + sub_0805E974(); + gCurrentRoomProperties = gUI.currentRoomProperties; + gPlayerState.controlMode = gUI.controlMode; + gMapBottom.bgSettings = gUI.mapBottomBgSettings; + gMapTop.bgSettings = gUI.mapTopBgSettings; + MemCopy(&gUI.activeScriptInfo, &gActiveScriptInfo, sizeof(ActiveScriptInfo)); + MemCopy(gUI.unk_2a8, gUnk_03000420, sizeof(gUI.unk_2a8)); + MemCopy(gUI.palettes, gPaletteList, sizeof(gUI.palettes)); + MemCopy(&gUI.gfxSlotList, &gGFXSlots, sizeof(gGFXSlots)); + MemCopy(&gUI.roomControls, &gRoomControls, sizeof(RoomControls)); + MemCopy(&gUnk_03001020, &gScreen, sizeof(Screen)); + gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.area); + gArea.pCurrentRoomInfo = GetCurrentRoomInfo(); + RestoreGameTask(gUI.field_0x6); + sub_0801D000(gUI.unk_d != 0); + sub_080A74F4(); + if (gUI.fadeType != 0xffff) { + SetFade(gUI.fadeType, gUI.fadeInTime); + } else { + SetFadeInverted(gUI.fadeInTime); + } + gUI.nextToLoad = 4; // Subtask_Die + gRoomTransition.field_0x2c[3] = 0; } } + +void Subtask_Die(void) { + sub_080A74F4(); + if (gFadeControl.active == 0) { + gMain.substate = gUI.pauseFadeIn; + gUI.nextToLoad = gFadeControl.active; + gUI.lastState = gFadeControl.active; + ResetSystemPriority(); + } +} + +void sub_080A74F4(void) { + SetInitializationPriority(); + gMain.pad = 0; + FlushSprites(); + UpdateEntities(); + UpdateManagers(); + DrawUI(); + DrawUIElements(); + UpdateCarriedObject(); + DrawEntities(); + CopyOAM(); +} + +void Subtask_Update(void) { + gSubtasks[gUI.lastState](); +} diff --git a/src/subtask/subtaskAuxCutscene.c b/src/subtask/subtaskAuxCutscene.c new file mode 100644 index 00000000..f916ae62 --- /dev/null +++ b/src/subtask/subtaskAuxCutscene.c @@ -0,0 +1,157 @@ +/** + * @file subtaskAuxCutscene.c + * + * @brief Aux Cutscene Subtask + */ +#include "area.h" +#include "asm.h" +#include "common.h" +#include "fileselect.h" +#include "flags.h" +#include "functions.h" +#include "game.h" +#include "main.h" +#include "menu.h" +#include "message.h" +#include "room.h" +#include "screen.h" +#include "sound.h" +#include "subtask.h" + +typedef void(AuxCutsceneState)(void); +typedef void(CutsceneMainState)(void); + +static AuxCutsceneState AuxCutscene_Init; +static AuxCutsceneState AuxCutscene_Main; +static AuxCutsceneState AuxCutscene_Exit; + +CutsceneMainState CutsceneMain_Init; +CutsceneMainState CutsceneMain_Update; +CutsceneMainState CutsceneMain_Exit; + +typedef struct { + u8 area; + RoomID room : 8; + u8 _2; + u8 _3; + u16 x; + u16 y; +} CutsceneData; +static const CutsceneData sCutsceneData[]; + +void Subtask_AuxCutscene(void) { + static AuxCutsceneState* const sStates[] = { + AuxCutscene_Init, + AuxCutscene_Main, + AuxCutscene_Exit, + }; + + sStates[gMenu.menuType](); +} + +static void AuxCutscene_Init(void) { + const CutsceneData* p = &sCutsceneData[gUI.field_0x3]; + gRoomControls.area = p->area; + gRoomControls.room = p->room; + LoadGfxGroups(); + gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.area); + SetCurrentRoomPropertyList(p->area, p->room); + LoadAuxiliaryRoom(p->area, p->room); + gRoomControls.scroll_x = gRoomControls.origin_x + p->x; + gRoomControls.scroll_y = gRoomControls.origin_y + p->y; + gMenu.field_0x0 = p->_2; + gMenu.field_0x3 = p->_3 & 0xf; + gMenu.field_0xc = (void*)p; + gMenu.menuType++; + gMenu.overlayType = 0; + gMenu.transitionTimer = 300; + AuxCutscene_Main(); // init +} + +static void AuxCutscene_Main(void) { + static CutsceneMainState* const sStates[] = { + CutsceneMain_Init, + CutsceneMain_Update, + CutsceneMain_Exit, + }; + + sStates[gMenu.field_0x0](); + FlushSprites(); + UpdateEntities(); + DrawEntities(); + CopyOAM(); + UpdateScroll(); + UpdateBgAnimations(); + UpdateManagers(); + UpdateScrollVram(); +} + +static const CutsceneData sCutsceneData[] = { + { AREA_MINISH_WOODS, 0, 0, 0, 336, 528 }, + { AREA_HYRULE_FIELD, 1, 1, 0, 472, 312 }, + { AREA_HYRULE_CASTLE, 2, 1, 1, 16, 16 }, + { AREA_SANCTUARY, 2, 1, 2, 0, 0 }, + { AREA_EZLO_CUTSCENE, 0, 1, 3, 0, 0 }, + { AREA_HOUSE_INTERIORS_2, 16, 1, 4, 0, 0 }, + { AREA_DARK_HYRULE_CASTLE_OUTSIDE, 0, 1, 5, 0, 40 }, + { AREA_FORTRESS_OF_WINDS, 28, 2, 0, 0, 0 }, + { AREA_FORTRESS_OF_WINDS, 29, 2, 1, 0, 0 }, + { AREA_DARK_HYRULE_CASTLE, 14, 2, 2, 16, 16 }, +}; + +static void AuxCutscene_Exit(void) { + u32 flag = sCutsceneData[gUI.field_0x3]._3; + if (flag & 0xF0) { + MenuFadeIn(2, flag >> 4); + } else { + gUI.nextToLoad = 3; // Subtask_FadeOut + SetFadeInverted(0x10); + MessageInitialize(); + } +} + +// end of auxCutscene? + +void sub_08051F78(void) { + u32 idx = gUI.field_0x3; + const CutsceneData* p = &sCutsceneData[idx]; + sub_08051F9C(p->area, p->room, p->x, p->y); +} + +void sub_08051F9C(u32 a1, u32 a2, u32 a3, u32 a4) { + u32 tmp = gScreen.lcd.displayControl & (DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); + sub_08052FF4(a1, a2); + gRoomControls.scroll_x = gRoomControls.origin_x + a3; + gRoomControls.scroll_y = gRoomControls.origin_y + a4; + InitializeCamera(); + gUpdateVisibleTiles = 1; + gUsedPalettes = 0; + gScreen.lcd.displayControl |= tmp; +} + +void sub_08051FF0(void) { + sub_0804B0B0(gMenu.field_0xc[0], gMenu.field_0xc[1]); +} + +void sub_08052004(void) { + gMenu.menuType = 2; +} + +void sub_08052010(void) { + InitSoundPlayingInfo(); + MessageInitialize(); + DispReset(1); + MemClear(gBG1Buffer, sizeof(gBG1Buffer)); + MemClear(gBG2Buffer, sizeof(gBG2Buffer)); + sub_080A4D34(); + LoadPaletteGroup(0xA); + SetColor(0, 0); + LoadGfxGroup(4); + MemClear((void*)0x06000000, 0x20); + MemClear(&gGenericMenu, sizeof(gGenericMenu)); + gScreen.lcd.displayControl |= DISPCNT_OBJ_ON; + gScreen.bg1.control = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(28) | BGCNT_CHARBASE(0); + gScreen.bg2.control = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(29) | BGCNT_CHARBASE(1); + gScreen.bg1.updated = 1; + gScreen.bg2.updated = 1; +} diff --git a/src/subtask/subtaskFastTravel.c b/src/subtask/subtaskFastTravel.c new file mode 100644 index 00000000..0f657cb7 --- /dev/null +++ b/src/subtask/subtaskFastTravel.c @@ -0,0 +1,191 @@ +/** + * @file subtaskFastTravel.c + * @ingroup Subtasks + * + * @brief Fast Travel Subtask + */ +#include "subtask.h" +#include "common.h" +#include "menu.h" +#include "functions.h" +#include "message.h" +#include "sound.h" +#include "save.h" + +extern void (*const Subtask_FastTravel_Functions[])(void); +void sub_080A6E70(void); +u32 sub_080A6D74(u32); +void sub_080A6EE0(u32 param_1); + +extern const ScreenTransitionData gUnk_08128024[]; + +void Subtask_FastTravel(void) { + FlushSprites(); + Subtask_FastTravel_Functions[gMenu.menuType](); + if (gMenu.field_0x0 != 0) { + sub_080A6E70(); + } + sub_080A6498(); + CopyOAM(); +} + +void Subtask_FastTravel_0(void) { + sub_080A4D34(); + sub_080A4DB8(0xd); + sub_080A6290(); + gMenu.field_0x3 = sub_080A6D74(0); + SetMenuType(1); + SetFade(FADE_INSTANT, 8); +} + +void Subtask_FastTravel_1(void) { + u32 uVar1; + u32 uVar2; + + if (gFadeControl.active) { + return; + } + + gMenu.field_0x0 = 1; + uVar2 = 0; + + switch (gInput.newKeys) { + case DPAD_LEFT: + case DPAD_UP: + uVar2 = -1; + break; + case DPAD_RIGHT: + case DPAD_DOWN: + uVar2 = 1; + break; + case A_BUTTON: + case START_BUTTON: + gMenu.field_0x0 = 2; + SetMenuType(2); + MessageFromTarget(TEXT_INDEX(TEXT_WINDCRESTS, 0x04)); + break; + case B_BUTTON: + gMenu.field_0x0 = 3; + SetMenuType(3); + break; + } + + if (uVar2) { + uVar1 = sub_080A6D74(uVar2); + if (uVar1 != gMenu.field_0x3) { + gMenu.field_0x3 = uVar1; + SoundReq(SFX_TEXTBOX_CHOICE); + } + } +} + +u32 sub_080A6D74(u32 param_1) { + u32 uVar1; + u32 uVar2; + u32 uVar3; + + uVar3 = gSave.windcrests >> 0x18; + uVar2 = gMenu.field_0x3; + if (param_1 == 0) { + uVar2 = 0; + if ((uVar3 & 1) == 0) { + while (++uVar2 < 8 && ((1 << uVar2) & uVar3) == 0) {} + } + } else if (uVar3 != 0) { + do { + uVar2 = (uVar2 + param_1 + 8) & 7; + } while ((1 << uVar2 & uVar3) == 0); + } + return uVar2 & 7; +} + +void Subtask_FastTravel_2(void) { + u32 tmp; + switch (sub_08056338()) { +#ifdef EU + case 0: + gMenu.field_0x0 = 2; + break; + case 1: + gMenu.field_0x0 = 3; + tmp = 1; + break; + default: + return; + } + + if (tmp) { + SetMenuType(3); + } +#else + case 0: + gMenu.field_0x0 = 2; + tmp = 3; + break; + case 1: + tmp = 1; + break; + default: + return; + } + SetMenuType(tmp); +#endif +} + +void Subtask_FastTravel_3(void) { + if (gMenu.field_0x0 == 2) { + SetMenuType(4); + SetFade(FADE_IN_OUT | FADE_INSTANT, 8); + } else { + ResetPlayerAnimationAndAction(); + sub_080042D0(&gPlayerEntity, (u32)gPlayerEntity.animIndex, gPlayerEntity.spriteIndex); + Subtask_Exit(); + gPauseMenuOptions.disabled = 0; + SoundReq(SFX_MENU_CANCEL); + } +} + +void Subtask_FastTravel_4(void) { + if (gFadeControl.active == 0) { + sub_080A71F4(&gUnk_08128024[gMenu.field_0x3]); + } +} + +void sub_080A6E70(void) { + u32 frameIndex; + u32 i; + + gOamCmd._4 = 0; + gOamCmd._6 = 0; + gOamCmd._8 = 0x400; + gGenericMenu.unk2c++; + sub_080A6EE0(gMenu.field_0x3); + if ((gGenericMenu.unk2c & 0x10) != 0) { + frameIndex = 0x5d; + } else { + frameIndex = 0x5e; + } + + DrawDirect(DRAW_DIRECT_SPRITE_INDEX, frameIndex); + for (i = 0; i < 8; i++) { + if ((gSave.windcrests & (1 << (i + 0x18))) != 0) { + sub_080A6EE0(i); + DrawDirect(DRAW_DIRECT_SPRITE_INDEX, 0x5c); + } + } +} + +void sub_080A6EE0(u32 param_1) { + u32 x; + u32 y; + RoomHeader* roomHeader; + const ScreenTransitionData* ptr = &gUnk_08128024[param_1]; + + x = (u16)ptr->playerXPos; + y = (u16)ptr->playerYPos; + roomHeader = &gAreaRoomHeaders[ptr->area][ptr->room]; + x += roomHeader->map_x; + y += roomHeader->map_y; + gOamCmd.x = (s32)(x * DISPLAY_HEIGHT) / 0xf90 + 0x28; + gOamCmd.y = (s32)(y * DISPLAY_HEIGHT) / 0xf90 + 0xc; +} diff --git a/src/subtask/subtaskLocalMapHint.c b/src/subtask/subtaskLocalMapHint.c new file mode 100644 index 00000000..8f9bb133 --- /dev/null +++ b/src/subtask/subtaskLocalMapHint.c @@ -0,0 +1,96 @@ +/** + * @file subtaskLocalMapHint.c + * @ingroup Subtasks + * + * @brief Local Map Hint Subtask + */ +#include "menu.h" +#include "subtask.h" +#include "kinstone.h" +#include "functions.h" +#include "screen.h" +#include "sound.h" +#include "common.h" + +void Subtask_LocalMapHint() { + extern void (*const gUnk_08128F1C[])(void); + const struct_gUnk_08128E94* ptr; + FlushSprites(); + gUnk_08128F1C[gMenu.menuType](); + ptr = &gUnk_08128E94[gMenu.field_0x3]; + gScreen.bg1.yOffset = -ptr->unk5; + gScreen.bg2.yOffset = gMenu.field_0xa - (s8)ptr->unk6; + CopyOAM(); +} + +void sub_080A6B04(void) { + u32 bVar1; + u32 uVar2; + u32 uVar3; + u32 uVar4; + int uVar6; + u32 uVar7; + const KinstoneWorldEvent* ptr; + const WorldEvent* ptr2; + const struct_gUnk_08128E94* ptr3; + + sub_080A4D34(); + sub_080A4DB8(6); + ptr = &gKinstoneWorldEvents[gFuseInfo.kinstoneId]; + ptr2 = &gWorldEvents[ptr->worldEventId]; + bVar1 = ptr->unk7; + uVar3 = ptr2->_c; + uVar4 = ptr2->_e; + uVar2 = sub_080A6A80(uVar3, uVar4)->_4; + gMenu.field_0x3 = uVar2; + gGenericMenu.unk2b = 1; + sub_080A67C4(uVar2); + sub_080A6FB4(uVar2, 2); + SetColor(0, 0x475f); + SetColor(0x5f, 0x475f); + MemFill16(0x5001, &gBG3Buffer, sizeof(gBG3Buffer)); + if ((gPlayerState.flags & PL_NO_CAP) != 0) { + uVar7 = 101; + } else { + uVar7 = 100; + } + sub_080A698C(gRoomTransition.player_status.overworld_map_x, gRoomTransition.player_status.overworld_map_y, + DRAW_DIRECT_SPRITE_INDEX, uVar7 + 0x100); + sub_080A698C(uVar3, uVar4, DRAW_DIRECT_SPRITE_INDEX, bVar1 + 100); + uVar4 = sub_080A69E0(uVar3, uVar4) >> 0x10; + ptr3 = &gUnk_08128E94[gMenu.field_0x3]; + gMenu.field_0xa = 0; + if (ptr3->unk2 != 0) { + uVar6 = uVar4 - 0x3c; + if (uVar6 > 0) { + if (ptr3->unk2 < uVar6) { + uVar6 = ptr3->unk2; + } + gMenu.field_0xa = uVar6; + } + } + gMenu.transitionTimer = 30; + SetMenuType(1); + SetFade(FADE_INSTANT, 8); +} + +void sub_080A6C1C(void) { + if (!gFadeControl.active) { + switch (gMenu.transitionTimer) { + case 0: + sub_080A66D0(); + switch (gInput.newKeys) { + case A_BUTTON: + case B_BUTTON: + case START_BUTTON: + Subtask_Exit(); + break; + } + return; + case 1: + SoundReq(SFX_103); + break; + } + gMenu.transitionTimer--; + } +} diff --git a/src/subtask/subtaskMapHint.c b/src/subtask/subtaskMapHint.c new file mode 100644 index 00000000..2a802f2b --- /dev/null +++ b/src/subtask/subtaskMapHint.c @@ -0,0 +1,71 @@ +/** + * @file subtask.c + * @ingroup Subtasks + * + * @brief Map Hint Subtask + */ +#include "menu.h" +#include "functions.h" +#include "subtask.h" +#include "common.h" +#include "main.h" +#include "sound.h" +#include "save.h" +#include "flags.h" +#include "fileselect.h" +#include "kinstone.h" +#include "game.h" + +void sub_080A6438(); + +void Subtask_MapHint(void) { + extern void (*const Subtask_MapHint_Functions[])(void); + FlushSprites(); + Subtask_MapHint_Functions[gMenu.menuType](); + if ((gGenericMenu.unk2c & 0x20) != 0) { + sub_080A6438(); + } + sub_080A6498(); + CopyOAM(); +} + +void Subtask_MapHint_0(void) { + extern const u16 gUnk_08128F4C[]; + u32 val; + sub_080A4D34(); + sub_080A4DB8(4); + sub_080A6290(); + gScreen.lcd.displayControl = gScreen.lcd.displayControl & 0xf7ff; + SetColor(0, gPaletteBuffer[0x51]); + val = gUnk_08128F4C[gUI.field_0x3]; + gSave.field_0x20 |= val; + gGenericMenu.unk10.h[1] = val & gGenericMenu.unk10.h[0]; + gGenericMenu.unk10.h[0] = 0; + gMenu.transitionTimer = 60; + SetMenuType(1); + SetFade(FADE_INSTANT, 8); +} + +void Subtask_MapHint_1(void) { + if (!gFadeControl.active) { + gGenericMenu.unk2c++; + switch (gMenu.transitionTimer) { + case 0x1e: + gGenericMenu.unk10.h[0] = gGenericMenu.unk10.h[1]; + gGenericMenu.unk2c = 0x20; + SoundReq(SFX_103); + default: + gMenu.transitionTimer--; + break; + case 0: + switch (gInput.newKeys) { + case A_BUTTON: + case B_BUTTON: + case START_BUTTON: + Subtask_Exit(); + break; + } + break; + } + } +} diff --git a/src/subtask/subtaskWorldEvent.c b/src/subtask/subtaskWorldEvent.c new file mode 100644 index 00000000..bae3e921 --- /dev/null +++ b/src/subtask/subtaskWorldEvent.c @@ -0,0 +1,103 @@ +/** + * @file subtaskWorldEvent.c + * + * @brief World Event Subtask + */ +#include "area.h" +#include "asm.h" +#include "common.h" +#include "flags.h" +#include "functions.h" +#include "game.h" +#include "kinstone.h" +#include "main.h" +#include "menu.h" +#include "message.h" +#include "room.h" +#include "screen.h" +#include "subtask.h" + +void Subtask_WorldEvent_Update(void); + +extern void (*const gUnk_080FE2A0[])(void); +void Subtask_WorldEvent(void) { +#if !(defined(DEMO_USA) || defined(DEMO_JP)) + gUnk_080FE2A0[gMenu.menuType](); +#endif +} + +void Subtask_WorldEvent_Init(void) { + const WorldEvent* ptr = &gWorldEvents[gUI.field_0x3]; + gMenu.field_0x0 = ptr->type; + gMenu.field_0x3 = ptr->entity_idx; + gMenu.field_0x4 = gUI.field_0x3; + gMenu.field_0xc = (u8*)ptr; + gMenu.menuType++; + gMenu.overlayType = 0; + gMenu.transitionTimer = 300; + DispReset(0); + sub_08054974(gUI.field_0x3, 1); + sub_0806F364(); + ClearRoomFlag(0xff); + Subtask_WorldEvent_Update(); +} + +extern void (*const gWorldEventFunctions[])(void); + +void Subtask_WorldEvent_Update(void) { + gWorldEventFunctions[gMenu.field_0x0](); + FlushSprites(); + UpdateEntities(); + DrawEntities(); + CopyOAM(); + UpdateScroll(); + UpdateBgAnimations(); + UpdateScrollVram(); +} + +void Subtask_WorldEvent_End(void) { + MessageInitialize(); + sub_0806F38C(); + if (gKinstoneWorldEvents[gFuseInfo.kinstoneId].unk7 != 0) { + // Show the map hint. + MenuFadeIn(SUBTASK_LOCALMAPHINT, gUI.field_0x3); + } else { + gUI.nextToLoad = 3; // Subtask_FadeOut + SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 0x10); + } +} + +void sub_08054968(void) { + gMenu.menuType = 2; +} + +// Controls showing the world event cutscene? +void sub_08054974(u32 worldEventId, bool32 param_2) { + const WorldEvent* ptr = &gWorldEvents[worldEventId]; + SetCurrentRoomPropertyList(ptr->area, ptr->room); + gRoomControls.area = ptr->area; + gRoomControls.room = ptr->room; + LoadGfxGroups(); + gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.area); + if (param_2) { + LoadAuxiliaryRoom(ptr->area, ptr->room); + } else { + sub_08052FF4(ptr->area, ptr->room); + InitializeCamera(); + gUpdateVisibleTiles = 1; + } + gScreen.lcd.displayControl &= 0x1fff; + gRoomControls.scroll_x = gRoomControls.origin_x + ptr->offsetX; + gRoomControls.scroll_y = gRoomControls.origin_y + ptr->offsetY; + if (ptr->area == AREA_HYRULE_TOWN) { + TryLoadPrologueHyruleTown(); + } + sub_08018710(gUI.field_0x3); +} + +void sub_08054A14(s32 worldEventId) { + const WorldEvent* ptr = &gWorldEvents[worldEventId]; + if (ptr->bank < 0xe) { + SetLocalFlagByBank(gLocalFlagBanks[ptr->bank], ptr->flag); + } +} diff --git a/src/text.c b/src/text.c index 50d98a01..6cadf99c 100644 --- a/src/text.c +++ b/src/text.c @@ -7,21 +7,10 @@ #include "message.h" #include "fileselect.h" -extern u16 gUnk_081092D4; -extern u8 gUnk_081094CE; extern u8 gUnk_02036AD8; extern u8 gUnk_02036A58; -extern void* gUnk_081092AC[]; -typedef struct { - u8 filler0[12][16]; -} VStruct; - -extern VStruct gUnk_0810942E[]; -extern u32 gUnk_0810926C[]; extern u32* Translations[]; -extern u32 gUnk_08109244; - typedef struct { u8 unk0; u8 unk1; @@ -29,7 +18,7 @@ typedef struct { void sub_0805F820(WStruct* r0, u32* r1); bool32 sub_0805EF40(Token* tok, const u8*); -void sub_0805F440(Token*, u8*); +void InitToken(Token* token, u32 textIndexOrPtr); u32 sub_0805F6A4(Token*, WStruct*); u32 GetCharacter(Token* tok); u32 GetFontStrWith(Token*, u32); @@ -55,10 +44,19 @@ typedef struct { extern struct_gUnk_02034330 gUnk_02034330; extern WStruct gUnk_02036540[4]; -extern u32* gUnk_08109248[]; -extern u8* gUnk_08109230[]; + extern u32* gTranslations[]; -extern u32 gUnk_08109244; +extern u8* gUnk_08109230[]; // TODO needs to be u8, but then is not passed correctly? +extern u32 gUnk_08109244; // TODO structure? +extern u32* gUnk_08109248[]; +extern u32 gUnk_0810926C[]; +extern void* gUnk_081092AC[]; // TODO structure? +extern u16 gUnk_081092D4; // TODO array? +typedef struct { + u8 filler0[12][16]; +} VStruct; +extern VStruct gUnk_0810942E[]; // TODO structure? +extern u8 gUnk_081094CE; // TODO structure? array? void sub_0805EEB4(Token* token, u32 textIndex) { u32 langIndex; @@ -424,16 +422,16 @@ u32 GetFontStrWith(Token* param_1, u32 param_2) { return rv; } -void sub_0805F440(Token* param_1, u8* param_2) { - MemClear(param_1, sizeof(Token)); - if ((u32)param_2 >= 0x10000) { - sub_0805EF40(param_1, param_2); +void InitToken(Token* token, u32 textIndexOrPtr) { + MemClear(token, sizeof(Token)); + if (textIndexOrPtr >= 0x10000) { + sub_0805EF40(token, (u8*)textIndexOrPtr); } else { - sub_0805EEB4(param_1, (u32)param_2); + sub_0805EEB4(token, textIndexOrPtr); } } -u32 sub_0805F46C(u32 param_1, const Font* param_2) { +u32 ShowTextBox(u32 textIndexOrPtr, const Font* paramFont) { u32 uVar1; WStruct* pWVar4; u32 uVar5; @@ -450,8 +448,8 @@ u32 sub_0805F46C(u32 param_1, const Font* param_2) { pWVar4 = sub_0805F2C8(); if (pWVar4 != NULL) { - MemCopy(param_2, &font, sizeof(Font)); - sub_0805F440(&token, (u8*)param_1); + MemCopy(paramFont, &font, sizeof(Font)); + InitToken(&token, textIndexOrPtr); token.unk05 = font.stylized & 3; pWVar4->unk04 = font.stylized; pWVar4->unk4 = font.width; @@ -482,16 +480,16 @@ u32 sub_0805F46C(u32 param_1, const Font* param_2) { font.dest++; } uVar8 = uVar8 >> 3; - param_1 = font.gfx_src; - DispMessageFrame(puVar9, uVar8, iVar10, param_1); + textIndexOrPtr = font.gfx_src; + DispMessageFrame(puVar9, uVar8, iVar10, textIndexOrPtr); puVar9 = puVar9 + 1; font.gfx_src = font.gfx_src + 7; - param_1 = font.gfx_src - 1; + textIndexOrPtr = font.gfx_src - 1; while (iVar10-- > 0) { puVar9 += 0x20; puVar6 = puVar9; for (uVar5 = uVar8; (s32)uVar5-- > 0;) { - *puVar6++ = param_1; + *puVar6++ = textIndexOrPtr; } } } @@ -602,14 +600,12 @@ u32 sub_0805F6A4(Token* param_1, WStruct* param_2) { return iVar4; } -u32 sub_0805F76C(u8* param_1, WStruct* param_2) { - u32 uVar1; - Token local_38; +u32 sub_0805F76C(u32 textIdOrPtr, WStruct* param_2) { + Token stackToken; - sub_0805F440(&local_38, param_1); - local_38.unk05 = param_2->unk04 & 3; - uVar1 = sub_0805F6A4(&local_38, param_2); - return uVar1; + InitToken(&stackToken, textIdOrPtr); + stackToken.unk05 = param_2->unk04 & 3; + return sub_0805F6A4(&stackToken, param_2); } static u32 sub_0805F7A0(u32 param_1) { diff --git a/src/title.c b/src/title.c index 28aae607..4473b24b 100644 --- a/src/title.c +++ b/src/title.c @@ -175,11 +175,11 @@ static void HandleNintendoCapcomLogos(void) { advance = ADVANCE_NONE; #if defined(DEMO_USA) if (gUnk_02000010.listenForKeyPresses == 0) { - if ((gInput.heldKeys & 0x204) == 0x204) { // TODO + if ((gInput.heldKeys & (L_BUTTON | SELECT_BUTTON)) == (L_BUTTON | SELECT_BUTTON)) { gUnk_02000010.field_0x7 = 1; SoundReq(SFX_SECRET_BIG); } else { - if ((gInput.heldKeys & 0x104) == 0x104) { // TODO + if ((gInput.heldKeys & (R_BUTTON | SELECT_BUTTON)) == (R_BUTTON | SELECT_BUTTON)) { gUnk_02000010.field_0x7 = 2; SoundReq(SFX_TASK_COMPLETE); } else { diff --git a/src/ui.c b/src/ui.c index cf68578d..6388e564 100644 --- a/src/ui.c +++ b/src/ui.c @@ -312,7 +312,7 @@ void DrawRupees(void) { } case 1: DrawDigits(0x70, gUnk_0200AF00.rupees, - gWalletSizes[(u32)gSave.stats.walletType * 2] <= gUnk_0200AF00.rupees, 3); + (u16)gWalletSizes[(u32)gSave.stats.walletType * 2] <= gUnk_0200AF00.rupees, 3); cVar1 = gUnk_0200AF00.unk_c + 1; default: gUnk_0200AF00.unk_c = cVar1; @@ -584,10 +584,10 @@ void DrawKeys(void) { ptr2->unk_6 = temp + 3; gScreen.bg0.updated = 1; } - if ((gUnk_0200AF00.unk_12 != gSave.unk45C[gArea.dungeon_idx]) || (gUnk_0200AF00.unk_10 == 0)) { + if ((gUnk_0200AF00.dungeonKeys != gSave.dungeonKeys[gArea.dungeon_idx]) || (gUnk_0200AF00.unk_10 == 0)) { gUnk_0200AF00.unk_10 = 2; - gUnk_0200AF00.unk_12 = gSave.unk45C[gArea.dungeon_idx]; - DrawDigits(0x76, gUnk_0200AF00.unk_12, 0, 2); + gUnk_0200AF00.dungeonKeys = gSave.dungeonKeys[gArea.dungeon_idx]; + DrawDigits(0x76, gUnk_0200AF00.dungeonKeys, 0, 2); } } } diff --git a/src/worldEvent/worldEvent0.c b/src/worldEvent/worldEvent0.c new file mode 100644 index 00000000..ac6d3bef --- /dev/null +++ b/src/worldEvent/worldEvent0.c @@ -0,0 +1,41 @@ +/** + * @file worldEvent0.c + * @ingroup WorldEvents + * + * @brief World Event 0 + */ +#include "fade.h" +#include "menu.h" +#include "message.h" + +void WorldEvent_0_0(void); +void WorldEvent_0_1(void); +void WorldEvent_0_2(void); +void (*const WorldEvent_0_Functions[])(void) = { + WorldEvent_0_0, + WorldEvent_0_1, + WorldEvent_0_2, +}; +void WorldEvent_0(void) { + WorldEvent_0_Functions[gMenu.overlayType](); +} + +void WorldEvent_0_0(void) { + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_0_1(void) { + if (gFadeControl.active == 0) { + MessageFromTarget(TEXT_INDEX(TEXT_EMPTY, 0x01)); + gMenu.overlayType++; + gMenu.transitionTimer = 120; + } +} + +void WorldEvent_0_2(void) { + if (--gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} diff --git a/src/worldEvent/worldEvent1.c b/src/worldEvent/worldEvent1.c new file mode 100644 index 00000000..92a17ddd --- /dev/null +++ b/src/worldEvent/worldEvent1.c @@ -0,0 +1,54 @@ +/** + * @file worldEvent1.c + * @ingroup WorldEvents + * + * @brief World Event 1 + */ +#include "asm.h" +#include "fade.h" +#include "flags.h" +#include "menu.h" +#include "physics.h" +#include "room.h" +#include "script.h" +#include "sound.h" +#include "subtask.h" + +void WorldEvent_1_0(void); +void WorldEvent_1_1(void); +void WorldEvent_1_2(void); +void (*const WorldEvent_1_Functions[])(void) = { + WorldEvent_1_0, + WorldEvent_1_1, + WorldEvent_1_2, +}; + +void WorldEvent_1(void) { + WorldEvent_1_Functions[gMenu.overlayType](); +} + +void WorldEvent_1_0(void) { + u8* ptr = gMenu.field_0xc; + sub_0804B0B0(ptr[2], ptr[3]); + sub_0804B0E8(ptr[2], ptr[3]); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_1_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + gMenu.overlayType++; + gMenu.transitionTimer = 180; + SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 0x10); + sub_080553E0(gMenu.field_0x4); + sub_0801876C(gMenu.field_0x4, 1); + } +} + +void WorldEvent_1_2(void) { + if (--gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} diff --git a/src/worldEvent/worldEvent10.c b/src/worldEvent/worldEvent10.c new file mode 100644 index 00000000..69d7691e --- /dev/null +++ b/src/worldEvent/worldEvent10.c @@ -0,0 +1,58 @@ +/** + * @file worldEvent10.c + * @ingroup WorldEvents + * + * @brief World Event 10 + */ +#include "fade.h" +#include "menu.h" +#include "object.h" +#include "subtask.h" + +void WorldEvent_Beanstalk_0(void); +void WorldEvent_Beanstalk_1(void); +void WorldEvent_Beanstalk_2(void); +void WorldEvent_Beanstalk_3(void); +void (*const WorldEvent_Beanstalk_Functions[])(void) = { + WorldEvent_Beanstalk_0, + WorldEvent_Beanstalk_1, + WorldEvent_Beanstalk_2, + WorldEvent_Beanstalk_3, +}; +void WorldEvent_Beanstalk(void) { + WorldEvent_Beanstalk_Functions[gMenu.overlayType](); +} + +void WorldEvent_Beanstalk_0(void) { + u8* ptr = gMenu.field_0xc; + SetLocalFlagByBank(gLocalFlagBanks[gMenu.field_0xc[0x11]], (u32) * (u16*)(gMenu.field_0xc + 0x12)); + sub_0804B0E8(ptr[2], ptr[3]); + LoadGfxGroup(0x11); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_Beanstalk_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + gMenu.overlayType++; + } +} + +void WorldEvent_Beanstalk_2(void) { + u8* ptr = gMenu.field_0xc; + Entity* obj = CreateObject(BEANSTALK, 0, 0); + if (obj != NULL) { + obj->x.HALF.HI = gRoomControls.origin_x + *(s16*)(ptr + 8); + obj->y.HALF.HI = gRoomControls.origin_y + *(s16*)(ptr + 10); + } + gMenu.overlayType++; + gMenu.transitionTimer = 390; +} + +void WorldEvent_Beanstalk_3(void) { + if (--gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} diff --git a/src/worldEvent/worldEvent11.c b/src/worldEvent/worldEvent11.c new file mode 100644 index 00000000..06771f10 --- /dev/null +++ b/src/worldEvent/worldEvent11.c @@ -0,0 +1,45 @@ +/** + * @file worldEvent11.c + * @ingroup WorldEvents + * + * @brief World Event 11 + */ +#include "fade.h" +#include "flags.h" +#include "menu.h" +#include "subtask.h" + +void WorldEvent_11_0(void); +void WorldEvent_11_1(void); +void WorldEvent_11_2(void); +void (*const WorldEvent_11_Functions[])(void) = { + WorldEvent_11_0, + WorldEvent_11_1, + WorldEvent_11_2, +}; + +void WorldEvent_11(void) { + WorldEvent_11_Functions[gMenu.overlayType](); +} + +void WorldEvent_11_0(void) { + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_11_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + sub_0801876C(gMenu.field_0x4, 1); + sub_080553E0(gMenu.field_0x4); + gMenu.overlayType++; + gMenu.transitionTimer = 180; + } +} + +void WorldEvent_11_2(void) { + if (--gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} diff --git a/src/worldEvent/worldEvent12.c b/src/worldEvent/worldEvent12.c new file mode 100644 index 00000000..3fa18c50 --- /dev/null +++ b/src/worldEvent/worldEvent12.c @@ -0,0 +1,47 @@ +/** + * @file worldEvent12.c + * @ingroup WorldEvents + * + * @brief World Event 12 + */ +#include "fade.h" +#include "kinstone.h" +#include "menu.h" +#include "npc.h" +#include "object.h" +#include "room.h" +#include "script.h" +#include "subtask.h" + +extern Script script_GormanFirstAppearance; +const EntityData gUnk_080FF2C0[] = { + // TODO what are these kinds? + { 0x10 + OBJECT, 15, HOUSE_DOOR_EXT, 0, 2, 0x2b8, 0x36b, 0 }, + { NPC, 79, GORMAN, 0, 0, 0x2f8, 0x308, (u32)&script_GormanFirstAppearance }, + { 0x10 + NPC, 15, NPC_UNK_4F, 0, 0, 0x2f8, 0x360, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +void WorldEvent_12_0(void); +void WorldEvent_12_1(void); +void (*const WorldEvent_12_Functions[])(void) = { + WorldEvent_12_0, + WorldEvent_12_1, +}; + +void WorldEvent_12(void) { + WorldEvent_12_Functions[gMenu.overlayType](); +} + +void WorldEvent_12_0(void) { + LoadRoomEntityList((EntityData*)gUnk_080FF2C0); + if (gSave.global_progress != 9) { + sub_08018C58(0xdb4); + } + sub_08055B70(gMenu.field_0x4, 1, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_12_1(void) { +} diff --git a/src/worldEvent/worldEvent13.c b/src/worldEvent/worldEvent13.c new file mode 100644 index 00000000..d531e718 --- /dev/null +++ b/src/worldEvent/worldEvent13.c @@ -0,0 +1,39 @@ +/** + * @file worldEvent13.c + * @ingroup WorldEvents + * + * @brief World Event 13 + */ +#include "fade.h" +#include "menu.h" +#include "npc.h" +#include "room.h" +#include "script.h" +#include "subtask.h" + +extern Script script_MutohKinstone; +const EntityData gUnk_080FF154[] = { + { NPC, 79, MUTOH, 0, 0, 0x78, 0x70, (u32)&script_MutohKinstone }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +void WorldEvent_13_0(void); +void WorldEvent_13_1(void); +void (*const WorldEvent_13_Functions[])(void) = { + WorldEvent_13_0, + WorldEvent_13_1, +}; +void WorldEvent_13(void) { + WorldEvent_13_Functions[gMenu.overlayType](); +} + +void WorldEvent_13_0(void) { + sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); + LoadRoomEntityList(gUnk_080FF154); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_13_1(void) { +} diff --git a/src/worldEvent/worldEvent14.c b/src/worldEvent/worldEvent14.c new file mode 100644 index 00000000..249a7774 --- /dev/null +++ b/src/worldEvent/worldEvent14.c @@ -0,0 +1,48 @@ +/** + * @file worldEvent14.c + * @ingroup WorldEvents + * + * @brief World Event 14 + */ +#include "fade.h" +#include "kinstone.h" +#include "menu.h" +#include "npc.h" +#include "object.h" +#include "room.h" +#include "script.h" +#include "subtask.h" + +extern Script script_GhostBrotherKinstone; +const EntityData gUnk_080FF17C[] = { + { NPC, 79, GHOST_BROTHERS, 1, 0, 0x388, 0x338, (u32)&script_GhostBrotherKinstone }, + // TODO what are these kinds? + { 0x10 + OBJECT, 15, HOUSE_DOOR_EXT, 0, 2, 0x348, 0x303, 0 }, + { 0x10 + OBJECT, 15, HOUSE_DOOR_EXT, 0, 2, 0x3b8, 0x363, 0 }, + { 0x10 + NPC, 15, NPC_UNK_4F, 0, 0, 0x2f8, 0x360, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +void WorldEvent_14_0(void); +void WorldEvent_14_1(void); +void (*const WorldEvent_14_Functions[])(void) = { + WorldEvent_14_0, + WorldEvent_14_1, +}; + +void WorldEvent_14(void) { + WorldEvent_14_Functions[gMenu.overlayType](); +} + +void WorldEvent_14_0(void) { + LoadRoomEntityList(gUnk_080FF17C); + if (gSave.global_progress != 9) { + sub_08018C58(0xdb4); + } + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_14_1(void) { +} diff --git a/src/worldEvent/worldEvent15.c b/src/worldEvent/worldEvent15.c new file mode 100644 index 00000000..f79420b9 --- /dev/null +++ b/src/worldEvent/worldEvent15.c @@ -0,0 +1,56 @@ +/** + * @file worldEvent15.c + * @ingroup WorldEvents + * + * @brief World Event 15 + */ +#include "fade.h" +#include "flags.h" +#include "menu.h" +#include "room.h" +#include "subtask.h" + +extern void sub_08054A14(u32); +extern const EntityData gUnk_080FEE48[]; + +void WorldEvent_15_0(void); +void WorldEvent_15_1(void); +void WorldEvent_15_2(void); +void (*const WorldEvent_15_Functions[])(void) = { + WorldEvent_15_0, + WorldEvent_15_1, + WorldEvent_15_2, +}; + +void WorldEvent_15(void) { + WorldEvent_15_Functions[gMenu.overlayType](); +} + +void WorldEvent_15_0(void) { + Entity* entity; + + sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); + entity = LoadRoomEntity((EntityData*)gUnk_080FEE48); + if (entity != NULL) { + entity->type2 = 2; + entity->field_0x86.HWORD = 0x80ff; + } + sub_08054A14(gMenu.field_0x4); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_15_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + gMenu.overlayType++; + gMenu.transitionTimer = 120; + } +} + +void WorldEvent_15_2(void) { + if (--gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} diff --git a/src/worldEvent/worldEvent16.c b/src/worldEvent/worldEvent16.c new file mode 100644 index 00000000..4cdae208 --- /dev/null +++ b/src/worldEvent/worldEvent16.c @@ -0,0 +1,44 @@ +/** + * @file worldEvent16.c + * @ingroup WorldEvents + * + * @brief World Event 16 + */ +#include "fade.h" +#include "menu.h" +#include "npc.h" +#include "room.h" +#include "script.h" +#include "subtask.h" + +extern Script script_GoronMerchantArriving; +const EntityData gUnk_080FF128[] = { + { NPC, 79, GORON_MERCHANT, 0, 0, 0x410, 0xf8, (u32)&script_GoronMerchantArriving }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +void WorldEvent_16_0(void); +void WorldEvent_16_1(void); +void WorldEvent_16_2(void); +void (*const WorldEvent_16_Functions[])(void) = { + WorldEvent_16_0, + WorldEvent_16_1, + WorldEvent_16_2, +}; + +void WorldEvent_16(void) { + WorldEvent_16_Functions[gMenu.overlayType](); +} + +void WorldEvent_16_0(void) { + LoadRoomEntityList(gUnk_080FF128); + sub_08055B70(gMenu.field_0x4, 2, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_16_1(void) { +} + +void WorldEvent_16_2(void) { +} diff --git a/src/worldEvent/worldEvent17.c b/src/worldEvent/worldEvent17.c new file mode 100644 index 00000000..9b96ecb4 --- /dev/null +++ b/src/worldEvent/worldEvent17.c @@ -0,0 +1,161 @@ +/** + * @file worldEvent17.c + * @ingroup WorldEvents + * + * @brief World Event 17 + */ +#include "fade.h" +#include "manager.h" +#include "menu.h" +#include "npc.h" +#include "room.h" +#include "script.h" +#include "subtask.h" +#include "manager/bombableWallManager.h" + +// Called Goron Kinstone Fusion Script +void sub_08054EB8(Entity* this, ScriptExecutionContext* context) { + BombableWallManager* manager = (BombableWallManager*)GetEmptyManager(); + if (manager != NULL) { + manager->base.kind = MANAGER; + manager->base.id = BOMBABLE_WALL_MANAGER; + manager->x = this->x.HALF.HI - gRoomControls.origin_x; + manager->y = (this->y.HALF.HI - gRoomControls.origin_y) - 0x10; + manager->field_0x35 = 1; +#if defined(EU) || defined(JP) || defined(DEMO_JP) + manager->field_0x3e = 0x77; +#else + manager->field_0x3e = 0x79; +#endif + AppendEntityToList((Entity*)manager, 6); + } +} + +void sub_08054EFC(Entity* this, ScriptExecutionContext* context) { + Entity* effect; + u32 tmp = COORD_TO_TILE(this) - 0x40; + SetTile(0x4074, tmp, 1); + this->collisionLayer = 2; + UpdateSpriteForCollisionLayer(this); + effect = CreateFx(this, FX_BIG_EXPLOSION, 0); + if (effect != NULL) { + effect->y.HALF.HI -= 0x10; + SortEntityBelow(this, effect); + } + SoundReq(SFX_ITEM_BOMB_EXPLODE); +} + +void sub_08054F64(Entity* this, ScriptExecutionContext* context) { + u32 tmp = this->type2; + if ((gActiveScriptInfo.syncFlags & tmp) != tmp) { + gActiveScriptInfo.commandSize = 0; + } else { + gActiveScriptInfo.syncFlags &= ~tmp; + gActiveScriptInfo.flags |= 1; + } +} + +extern Script script_GoronKinstone; +const EntityData gUnk_080FEF48[] = { + { NPC, 79, GORON, 0, 0, 0x88, 0x368, (u32)&script_GoronKinstone }, +#if defined(USA) || defined(DEMO_USA) + // TODO 0x7c is a flag? + { MANAGER, 15, MOVEABLE_OBJECT_MANAGER, 0, 0x10e82e00, 0xd8, 0x388, 0x7c1388 }, +#else + { MANAGER, 15, MOVEABLE_OBJECT_MANAGER, 0, 0x10e82e00, 0xd8, 0x388, 0x7a1388 }, +#endif + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +extern Script script_Goron1Kinstone2; +extern Script script_Goron2Kinstone2; +const EntityData gUnk_080FEF78[] = { + { NPC, 79, GORON, 0, 0, 0x68, 0x228, (u32)&script_Goron1Kinstone2 }, + { NPC, 79, GORON, 0, 0, 0x88, 0x288, (u32)&script_Goron2Kinstone2 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +extern Script script_Goron1Kinstone3; +extern Script script_Goron2Kinstone3; +extern Script script_Goron3Kinstone3; +const EntityData gUnk_080FEFA8[] = { + { NPC, 79, GORON, 0, 4, 0x48, 0x178, (u32)&script_Goron1Kinstone3 }, + { NPC, 79, GORON, 0, 8, 0x68, 0x178, (u32)&script_Goron2Kinstone3 }, + { NPC, 79, GORON, 0, 2, 0x88, 0x1e8, (u32)&script_Goron3Kinstone3 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +extern Script script_Goron1Kinstone4; +extern Script script_Goron2Kinstone4; +extern Script script_Goron4Kinstone4; +const EntityData gUnk_080FEFE8[] = { + { NPC, 79, GORON, 0, 4, 0x48, 0x178, (u32)&script_Goron1Kinstone4 }, + { NPC, 79, GORON, 0, 8, 0x68, 0x178, (u32)&script_Goron2Kinstone4 }, + { NPC, 79, GORON, 0, 16, 0x88, 0x178, (u32)&script_Goron2Kinstone4 }, + { NPC, 79, GORON, 0, 2, 0x88, 0x1e8, (u32)&script_Goron4Kinstone4 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +extern Script script_Goron1Kinstone5; +extern Script script_Goron2Kinstone5; +extern Script script_Goron5Kinstone5; +const EntityData gUnk_080FF038[] = { + { NPC, 79, GORON, 0, 4, 0x28, 0xd8, (u32)&script_Goron1Kinstone5 }, + { NPC, 79, GORON, 0, 8, 0x48, 0xd8, (u32)&script_Goron2Kinstone5 }, + { NPC, 79, GORON, 0, 16, 0x68, 0xd8, (u32)&script_Goron2Kinstone5 }, + { NPC, 79, GORON, 0, 32, 0x88, 0xd8, (u32)&script_Goron2Kinstone5 }, + { NPC, 79, GORON, 0, 2, 0x98, 0x178, (u32)&script_Goron5Kinstone5 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +extern Script script_Goron1Kinstone6; +extern Script script_Goron2Kinstone6; +extern Script script_Goron6Kindstone6; +const EntityData gUnk_080FF098[] = { + { NPC, 79, GORON, 0, 4, 0x28, 0xd8, (u32)&script_Goron1Kinstone6 }, + { NPC, 79, GORON, 0, 8, 0x48, 0xd8, (u32)&script_Goron2Kinstone6 }, + { NPC, 79, GORON, 0, 16, 0x68, 0xd8, (u32)&script_Goron2Kinstone6 }, + { NPC, 79, GORON, 0, 32, 0x88, 0xd8, (u32)&script_Goron2Kinstone6 }, + { NPC, 79, GORON, 0, 64, 0xa8, 0xd8, (u32)&script_Goron2Kinstone6 }, + { NPC, 79, GORON, 0, 2, 0x98, 0x178, (u32)&script_Goron6Kindstone6 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +const EntityData* const gUnk_080FF108[] = { + gUnk_080FEF48, gUnk_080FEF78, gUnk_080FEFA8, gUnk_080FEFE8, gUnk_080FF038, gUnk_080FF098, +}; + +void WorldEvent_17_0(void); +void WorldEvent_17_1(void); +void (*const WorldEvent_17_Functions[])(void) = { + WorldEvent_17_0, + WorldEvent_17_1, +}; + +void WorldEvent_17(void) { + WorldEvent_17_Functions[gMenu.overlayType](); +} + +void WorldEvent_17_0(void) { + u8* ptr; + u32 tmp; + + ptr = gMenu.field_0xc; + LoadRoomEntityList(gUnk_080FF108[ptr[1]]); + if (ptr[1] != 0) { + tmp = 3; + } else { + tmp = 0; + } + sub_08055B70(gMenu.field_0x4, tmp, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); + gMenu.field_0xa = 0; + if (CheckLocalFlagByBank(FLAG_BANK_4, GORON_DOUKUTU_01_T1) && (ptr[2] == 0x2f)) { + gMenu.field_0xa = 1; + } +} + +void WorldEvent_17_1(void) { + if (gMenu.field_0xa != 0) { + gMenu.field_0xa = 0; + SetTileType(0x74, 0x407, 1); + } +} diff --git a/src/worldEvent/worldEvent19.c b/src/worldEvent/worldEvent19.c new file mode 100644 index 00000000..12437991 --- /dev/null +++ b/src/worldEvent/worldEvent19.c @@ -0,0 +1,49 @@ +/** + * @file worldEvent19.c + * @ingroup WorldEvents + * + * @brief World Event 19 + */ +#include "fade.h" +#include "functions.h" +#include "menu.h" +#include "npc.h" +#include "room.h" +#include "script.h" +#include "subtask.h" + +extern Script script_BigGoronKinstone1; +extern Script script_BigGoronKinstone2; +extern Script script_BigGoronKinstone3; +const EntityData gUnk_080FEED4[] = { + { NPC, 79, BIG_GORON, 0, 0, 0x140, 0xf8, (u32)&script_BigGoronKinstone1 }, + { NPC, 79, BIG_GORON, 5, 0, 0xd0, 0xc8, (u32)&script_BigGoronKinstone2 }, + { NPC, 79, BIG_GORON, 10, 0, 0x1b0, 0x108, (u32)&script_BigGoronKinstone3 }, + { NPC, 15, BIG_GORON, 1, 0, 0x108, 0x88, 0 }, + { NPC, 15, BIG_GORON, 2, 0, 0x108, 0x88, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +void WorldEvent_19_0(void); +void WorldEvent_19_1(void); +void (*const WorldEvent_19_Functions[])(void) = { + WorldEvent_19_0, + WorldEvent_19_1, +}; + +void WorldEvent_19(void) { + WorldEvent_19_Functions[gMenu.overlayType](); +} + +void WorldEvent_19_0(void) { + sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); + LoadRoomEntityList(gUnk_080FEED4); + LoadStaticBackground(2); + sub_0806D0B0(NULL); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_19_1(void) { +} diff --git a/src/worldEvent/worldEvent2.c b/src/worldEvent/worldEvent2.c new file mode 100644 index 00000000..aa347001 --- /dev/null +++ b/src/worldEvent/worldEvent2.c @@ -0,0 +1,65 @@ +/** + * @file worldEvent2.c + * @ingroup WorldEvents + * + * @brief World Event 2 + */ +#include "fade.h" +#include "flags.h" +#include "menu.h" +#include "room.h" +#include "sound.h" +#include "subtask.h" + +void sub_08055994(void); + +void WorldEvent_2_0(void); +void WorldEvent_2_1(void); +void WorldEvent_2_2(void); +void (*const WorldEvent_2_Functions[])(void) = { + WorldEvent_2_0, + WorldEvent_2_1, + WorldEvent_2_2, +}; + +void WorldEvent_2(void) { + WorldEvent_2_Functions[gMenu.overlayType](); +} + +void WorldEvent_2_0(void) { + u8* ptr = gMenu.field_0xc; + sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); + sub_0804B0E8(ptr[2], ptr[3]); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_2_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + sub_08055994(); + gMenu.overlayType++; + gMenu.transitionTimer = 120; + } +} + +void WorldEvent_2_2(void) { + if (--gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} + +void sub_08055994(void) { + u32 layer; + TileEntity* ptr = &gUnk_080FEAC8[gMenu.field_0x4]; + if ((ptr->_6 & 1) != 0) { + layer = 2; + } else { + layer = 1; + } + SetTileType(0x73, (*(u16*)(gMenu.field_0xc + 8) >> 4 & 0x3f) | (*(u16*)(gMenu.field_0xc + 10) >> 4 & 0x3f) << 6, + layer); + sub_080553E0((u32)gMenu.field_0x4); + SoundReq(SFX_SECRET_BIG); +} diff --git a/src/worldEvent/worldEvent20.c b/src/worldEvent/worldEvent20.c new file mode 100644 index 00000000..b81833d1 --- /dev/null +++ b/src/worldEvent/worldEvent20.c @@ -0,0 +1,40 @@ +/** + * @file worldEvent20.c + * @ingroup WorldEvents + * + * @brief World Event 20 + */ +#include "fade.h" +#include "menu.h" +#include "npc.h" +#include "room.h" +#include "script.h" +#include "subtask.h" + +extern Script script_SyrupKinstone; +const EntityData gUnk_080FF308[] = { + { NPC, 79, SYRUP, 0, 0, 0x78, 0x38, (u32)&script_SyrupKinstone }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +void WorldEvent_20_0(void); +void WorldEvent_20_1(void); +void (*const WorldEvent_20_Functions[])(void) = { + WorldEvent_20_0, + WorldEvent_20_1, +}; + +void WorldEvent_20(void) { + WorldEvent_20_Functions[gMenu.overlayType](); +} + +void WorldEvent_20_0(void) { + sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); + LoadRoomEntityList((EntityData*)gUnk_080FF308); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_20_1(void) { +} diff --git a/src/worldEvent/worldEvent21.c b/src/worldEvent/worldEvent21.c new file mode 100644 index 00000000..e5540fa9 --- /dev/null +++ b/src/worldEvent/worldEvent21.c @@ -0,0 +1,39 @@ +/** + * @file worldEvent21.c + * @ingroup WorldEvents + * + * @brief World Event 21 + */ +#include "fade.h" +#include "menu.h" +#include "npc.h" +#include "room.h" +#include "subtask.h" + +extern Script script_CarlovKinstone; +const EntityData gUnk_080FF264[] = { + { NPC, 79, CARLOV, 1, 0, 0x78, 0x48, (u32)&script_CarlovKinstone }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +void WorldEvent_21_0(void); +void WorldEvent_21_1(void); +void (*const WorldEvent_21_Functions[])(void) = { + WorldEvent_21_0, + WorldEvent_21_1, +}; + +void WorldEvent_21(void) { + WorldEvent_21_Functions[gMenu.overlayType](); +} + +void WorldEvent_21_0(void) { + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); + LoadRoomEntityList((EntityData*)gUnk_080FF264); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_21_1(void) { +} diff --git a/src/worldEvent/worldEvent22.c b/src/worldEvent/worldEvent22.c new file mode 100644 index 00000000..367c47da --- /dev/null +++ b/src/worldEvent/worldEvent22.c @@ -0,0 +1,43 @@ +/** + * @file worldEvent.c + * @ingroup WorldEvents + * + * @brief World Event 22 + */ +#include "functions.h" +#include "menu.h" +#include "npc.h" +#include "room.h" +#include "screen.h" + +extern void sub_0804B0B0(u32, u32); +extern void sub_08055B70(u32, u32, u32, u32); + +extern u8 gUpdateVisibleTiles; +extern Script script_StampKinstone; +const EntityData gUnk_080FF400[] = { + { NPC, 79, STAMP, 0, 0, 0x48, 0x38, (u32)&script_StampKinstone }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +void WorldEvent_22_0(void); +void WorldEvent_22_1(void); +void (*const WorldEvent_22_Functions[])(void) = { + WorldEvent_22_0, + WorldEvent_22_1, +}; + +void WorldEvent_22(void) { + WorldEvent_22_Functions[gMenu.overlayType](); +} + +void WorldEvent_22_0(void) { + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); + LoadRoomEntityList(gUnk_080FF400); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_22_1(void) { +} diff --git a/src/worldEvent/worldEvent23.c b/src/worldEvent/worldEvent23.c new file mode 100644 index 00000000..90f7dbcc --- /dev/null +++ b/src/worldEvent/worldEvent23.c @@ -0,0 +1,37 @@ +/** + * @file worldEvent23.c + * @ingroup WorldEvents + * + * @brief World Event 23 + */ +#include "fade.h" +#include "menu.h" +#include "npc.h" +#include "subtask.h" + +const EntityData gUnk_080FF298[] = { + { NPC, 15, FOREST_MINISH, 0, 513, 0x78, 0x58, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; +void WorldEvent_23_0(void); +void WorldEvent_23_1(void); +void (*const WorldEvent_23_Functions[])(void) = { + WorldEvent_23_0, + WorldEvent_23_1, +}; + +void WorldEvent_23(void) { + WorldEvent_23_Functions[gMenu.overlayType](); +} + +void WorldEvent_23_0(void) { + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + sub_0804B0B0((u32)gMenu.field_0xc[2], gMenu.field_0xc[3]); + LoadRoomEntityList((EntityData*)gUnk_080FF298); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_23_1(void) { +} diff --git a/src/worldEvent/worldEvent24.c b/src/worldEvent/worldEvent24.c new file mode 100644 index 00000000..7f065152 --- /dev/null +++ b/src/worldEvent/worldEvent24.c @@ -0,0 +1,47 @@ +/** + * @file worldEvent24.c + * @ingroup WorldEvents + * + * @brief World Event 24 + */ +#include "fade.h" +#include "flags.h" +#include "menu.h" +#include "room.h" +#include "subtask.h" + +void WorldEvent_24_0(void); +void WorldEvent_24_1(void); +void WorldEvent_24_2(void); +void (*const WorldEvent_24_Functions[])(void) = { + WorldEvent_24_0, + WorldEvent_24_1, + WorldEvent_24_2, +}; + +void WorldEvent_24(void) { + WorldEvent_24_Functions[gMenu.overlayType](); +} + +void WorldEvent_24_0(void) { + sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_24_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + sub_0801876C(gMenu.field_0x4, 1); + sub_080553E0(gMenu.field_0x4); + gMenu.overlayType++; + gMenu.transitionTimer = 120; + } +} + +void WorldEvent_24_2(void) { + if (--gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} diff --git a/src/worldEvent/worldEvent25.c b/src/worldEvent/worldEvent25.c new file mode 100644 index 00000000..b50b5ce8 --- /dev/null +++ b/src/worldEvent/worldEvent25.c @@ -0,0 +1,71 @@ +/** + * @file worldEvent25.c + * @ingroup WorldEvents + * + * @brief World Event 25 + */ +#include "fade.h" +#include "menu.h" +#include "object.h" +#include "script.h" +#include "subtask.h" + +void WorldEvent_25_0(void); +void WorldEvent_25_1(void); +void WorldEvent_25_2(void); +void (*const WorldEvent_25_Functions[])(void) = { + WorldEvent_25_0, + WorldEvent_25_1, + WorldEvent_25_2, +}; + +extern Script script_KinstoneSparkKinstoneSpark; +extern Script script_KinstoneSparkKinstoneSparkFromBottom; +extern Script script_KinstoneSparkKinstoneSparkGoronMerchang; +extern Script script_KinstoneSparkKinstoneSparkGoron; +const EntityData gUnk_080FF378[] = { + { OBJECT, 79, KINSTONE_SPARK, 0, 0, 0x0, 0x0, (u32)&script_KinstoneSparkKinstoneSpark }, + { OBJECT, 79, KINSTONE_SPARK, 0, 0, 0x0, 0x0, (u32)&script_KinstoneSparkKinstoneSparkFromBottom }, + { OBJECT, 79, KINSTONE_SPARK, 0, 0, 0x0, 0x0, (u32)&script_KinstoneSparkKinstoneSparkGoronMerchang }, + { OBJECT, 79, KINSTONE_SPARK, 0, 0, 0x0, 0x0, (u32)&script_KinstoneSparkKinstoneSparkGoron }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +extern const EntityData gUnk_080FED18[]; + +void WorldEvent_25(void) { + WorldEvent_25_Functions[gMenu.overlayType](); +} + +void WorldEvent_25_0(void) { + Entity* entity; + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + entity = LoadRoomEntity((EntityData*)&gUnk_080FED18[gMenu.field_0xc[1]]); + if (entity != NULL) { + entity->type2 = 1; + } + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_25_1(void) { + if (gFadeControl.active == 0) { + gMenu.transitionTimer = 120; + } +} + +void WorldEvent_25_2(void) { + if (--gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} + +void sub_08055B70(u32 param_1, u32 param_2, u32 param_3, u32 param_4) { + u8* ptr = gMenu.field_0xc; + Entity* entity = LoadRoomEntity((EntityData*)&gUnk_080FF378[param_2]); + if (entity != NULL) { + entity->x.HALF.HI = *(s16*)(ptr + 8) + param_3 + gRoomControls.origin_x; + entity->y.HALF.HI = *(s16*)(ptr + 10) + param_4 + gRoomControls.origin_y; + } +} diff --git a/src/worldEvent/worldEvent3.c b/src/worldEvent/worldEvent3.c new file mode 100644 index 00000000..adb20f68 --- /dev/null +++ b/src/worldEvent/worldEvent3.c @@ -0,0 +1,47 @@ +/** + * @file worldEvent3.c + * @ingroup WorldEvents + * + * @brief World Event 3 + */ +#include "fade.h" +#include "flags.h" +#include "functions.h" +#include "menu.h" +#include "subtask.h" + +void WorldEvent_3_0(void); +void WorldEvent_3_1(void); +void WorldEvent_3_2(void); +void (*const WorldEvent_3_Functions[])(void) = { + WorldEvent_3_0, + WorldEvent_3_1, + WorldEvent_3_2, +}; + +void WorldEvent_3(void) { + WorldEvent_3_Functions[gMenu.overlayType](); +} + +void WorldEvent_3_0(void) { + sub_0804B0B0(gMenu.field_0xc[2], gMenu.field_0xc[3]); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_3_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + sub_0801876C(gMenu.field_0x4, 1); + sub_080553E0(gMenu.field_0x4); + gMenu.overlayType++; + gMenu.transitionTimer = 120; + } +} + +void WorldEvent_3_2(void) { + if (--gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} diff --git a/src/worldEvent/worldEvent4.c b/src/worldEvent/worldEvent4.c new file mode 100644 index 00000000..114cec1c --- /dev/null +++ b/src/worldEvent/worldEvent4.c @@ -0,0 +1,62 @@ +/** + * @file worldEvent4.c + * @ingroup WorldEvents + * + * @brief World Event 4 + */ +#include "fade.h" +#include "flags.h" +#include "functions.h" +#include "kinstone.h" +#include "menu.h" +#include "screen.h" +#include "sound.h" +#include "subtask.h" + +void sub_08055B70(u32, u32, u32, u32); + +void WorldEvent_4_0(void); +void WorldEvent_4_1(void); +void WorldEvent_4_2(void); +void WorldEvent_4_3(void); +void (*const WorldEvent_4_Functions[])(void) = { + WorldEvent_4_0, + WorldEvent_4_1, + WorldEvent_4_2, + WorldEvent_4_3, +}; + +void WorldEvent_4(void) { + WorldEvent_4_Functions[gMenu.overlayType](); +} + +void WorldEvent_4_0(void) { + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + sub_0801876C(gMenu.field_0x4, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_4_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 0x10); + gMenu.overlayType++; + } +} + +void WorldEvent_4_2(void) { + if (gFadeControl.active == 0) { + sub_08054974(gMenu.field_0x4, 0); + SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 0x10); + SoundReq(SFX_SECRET_BIG); + gMenu.overlayType++; + gMenu.transitionTimer = 120; + } +} + +void WorldEvent_4_3(void) { + if ((gFadeControl.active == 0) && (--gMenu.transitionTimer == 0)) { + gMenu.menuType++; + } +} diff --git a/src/worldEvent/worldEvent5.c b/src/worldEvent/worldEvent5.c new file mode 100644 index 00000000..1032b3bc --- /dev/null +++ b/src/worldEvent/worldEvent5.c @@ -0,0 +1,94 @@ +/** + * @file worldEvent5.c + * @ingroup WorldEvents + * + * @brief World Event 5 + */ +#include "common.h" +#include "fade.h" +#include "flags.h" +#include "menu.h" +#include "room.h" +#include "screen.h" +#include "sound.h" +#include "subtask.h" + +const s16 gUnk_080FF1D4[] = { 19, 192, 224, // + 18, 176, 216, // + 18, 208, 216, // + 18, 240, 216, // + 19, 176, 224, // + 0 }; + +void WorldEvent_5_0(void); +void WorldEvent_5_1(void); +void WorldEvent_5_2(void); +void WorldEvent_5_3(void); +void (*const WorldEvent_5_Functions[])(void) = { + WorldEvent_5_0, + WorldEvent_5_1, + WorldEvent_5_2, + WorldEvent_5_3, +}; + +const u16 gUnk_080FF204[] = { 0x10, 0x10f, 0x20e, 0x30d, 0x40c, 0x50b, 0x60a, 0x709, 0x808, + 0x907, 0xa06, 0xb05, 0xc04, 0xd03, 0xe02, 0xf01, 0x1000, 0xffff }; + +void WorldEvent_5(void) { + WorldEvent_5_Functions[gMenu.overlayType](); +} + +void WorldEvent_5_0(void) { + // Doesn't work when put into a packed struct? + const s16* ptr = &gUnk_080FF1D4[(gMenu.field_0xc[1] & 0xf) * 3]; + LoadGfxGroup(ptr[0]); + gScreen.bg3.xOffset = ptr[1]; + gScreen.bg3.yOffset = ptr[2]; + gScreen.bg3.control = 0x1e05; + gScreen.controls.layerFXControl = 0x3648; + gScreen.controls.alphaBlend = 0x10; + gScreen.lcd.displayControl |= 0x800; + sub_0801876C(gMenu.field_0x4, 1); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gMenu.storyPanelIndex = 0; + gMenu.transitionTimer = 60; + gMenu.field_0xa = 0; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_5_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + gMenu.overlayType++; + } +} + +void WorldEvent_5_2(void) { + if (gMenu.storyPanelIndex == 0) { + gMenu.transitionTimer--; + if (gMenu.transitionTimer == 0) { + u32 tmp = gMenu.storyPanelIndex; + gMenu.storyPanelIndex = tmp + 1; + SoundReq(SFX_EVAPORATE); + } + } else if ((gRoomTransition.frameCount & 7U) == 0) { + if (gUnk_080FF204[gMenu.field_0xa] != 0xffff) { + gScreen.controls.alphaBlend = gUnk_080FF204[gMenu.field_0xa++]; + } else { + gScreen.lcd.displayControl &= 0xf7ff; + gScreen.controls.alphaBlend = 0x1000; + gMenu.transitionTimer = 120; + gMenu.overlayType++; +#ifndef EU + SoundReq(SFX_SECRET_BIG); +#endif + } + } +} + +void WorldEvent_5_3(void) { + if (--gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} diff --git a/src/worldEvent/worldEvent6.c b/src/worldEvent/worldEvent6.c new file mode 100644 index 00000000..bfc96630 --- /dev/null +++ b/src/worldEvent/worldEvent6.c @@ -0,0 +1,66 @@ +/** + * @file worldEvent6.c + * @ingroup WorldEvents + * + * @brief World Event 6 + */ +#include "fade.h" +#include "menu.h" +#include "object.h" +#include "sound.h" +#include "subtask.h" + +void WorldEvent_6_0(void); +void WorldEvent_6_1(void); +void WorldEvent_6_2(void); +void WorldEvent_6_3(void); +void (*const WorldEvent_6_Functions[])(void) = { + WorldEvent_6_0, + WorldEvent_6_1, + WorldEvent_6_2, + WorldEvent_6_3, +}; + +void WorldEvent_6(void) { + WorldEvent_6_Functions[gMenu.overlayType](); +} + +void WorldEvent_6_0(void) { + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + sub_0801876C(gMenu.field_0x4, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_6_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 0x10); + gMenu.overlayType++; + } +} + +void WorldEvent_6_2(void) { + if (gFadeControl.active == 0) { + sub_08054974(gMenu.field_0x4, 0); + SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 0x10); + SoundReq(SFX_SECRET_BIG); + gMenu.overlayType++; + gMenu.transitionTimer = 120; + } +} + +void WorldEvent_6_3(void) { + if ((gFadeControl.active == 0) && (--gMenu.transitionTimer == 0)) { + gMenu.menuType++; + } +} + +void sub_080553E0(u32 param_1) { + u8* ptr = gMenu.field_0xc; + Entity* effect = CreateObject(SPECIAL_FX, FX_BIG_EXPLOSION2, 0); + if (effect != NULL) { + effect->x.HALF.HI = *(s16*)(ptr + 8) + gRoomControls.origin_x; + effect->y.HALF.HI = *(s16*)(ptr + 10) + gRoomControls.origin_y; + } +} diff --git a/src/worldEvent/worldEvent7.c b/src/worldEvent/worldEvent7.c new file mode 100644 index 00000000..601990ad --- /dev/null +++ b/src/worldEvent/worldEvent7.c @@ -0,0 +1,65 @@ +/** + * @file worldEvent7.c + * @ingroup WorldEvents + * + * @brief World Event 7 + */ +#include "fade.h" +#include "menu.h" +#include "object.h" +#include "sound.h" +#include "subtask.h" + +void WorldEvent_7_0(void); +void WorldEvent_7_1(void); +void WorldEvent_7_2(void); +void WorldEvent_7_3(void); +void (*const WorldEvent_7_Functions[])(void) = { WorldEvent_7_0, WorldEvent_7_1, WorldEvent_7_2, WorldEvent_7_3 }; +const u32 unused[] = { 0xff, 0, 0, 0 }; + +void WorldEvent_7(void) { + WorldEvent_7_Functions[gMenu.overlayType](); +} + +void WorldEvent_7_0(void) { + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + sub_0801876C(gMenu.field_0x4, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_7_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 0x10); + gMenu.overlayType++; + } +} + +void WorldEvent_7_2(void) { + u8* ptr; + Entity* entity; + if (gFadeControl.active == 0) { + ptr = gMenu.field_0xc; + sub_080553E0((u32)gMenu.field_0x4); + if ((ptr[1] & 0x80) != 0) { + sub_08054974(gMenu.field_0x4, 0); + } else { + entity = FindEntity(OBJECT, TREE_THORNS, 6, 0, ptr[1] & 0x80); + if (entity != NULL) { + DeleteEntity(entity->child); + DeleteEntity(entity); + } + } + SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 0x10); + SoundReq(SFX_SECRET_BIG); + gMenu.overlayType++; + gMenu.transitionTimer = 120; + } +} + +void WorldEvent_7_3(void) { + if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} diff --git a/src/worldEvent/worldEvent8.c b/src/worldEvent/worldEvent8.c new file mode 100644 index 00000000..53193bd7 --- /dev/null +++ b/src/worldEvent/worldEvent8.c @@ -0,0 +1,58 @@ +/** + * @file worldEvent8.c + * @ingroup WorldEvents + * + * @brief World Event 8 + */ +#include "fade.h" +#include "flags.h" +#include "menu.h" +#include "sound.h" +#include "subtask.h" + +void WorldEvent_8_0(void); +void WorldEvent_8_1(void); +void WorldEvent_8_2(void); +void WorldEvent_8_3(void); +void (*const WorldEvent_8_Functions[])(void) = { + WorldEvent_8_0, + WorldEvent_8_1, + WorldEvent_8_2, + WorldEvent_8_3, +}; + +void WorldEvent_8(void) { + WorldEvent_8_Functions[gMenu.overlayType](); +} + +void WorldEvent_8_0(void) { + sub_0804B0E8(gMenu.field_0xc[2], gMenu.field_0xc[3]); + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_8_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 0x10); + gMenu.overlayType++; + } +} + +void WorldEvent_8_2(void) { + if (gFadeControl.active == 0) { + sub_0801876C(gMenu.field_0x4, 1); + sub_080553E0(gMenu.field_0x4); + SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 0x10); + SoundReq(SFX_SECRET_BIG); + gMenu.overlayType++; + gMenu.transitionTimer = 120; + } +} + +void WorldEvent_8_3(void) { + if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +} diff --git a/src/worldEvent/worldEvent9.c b/src/worldEvent/worldEvent9.c new file mode 100644 index 00000000..24a29dff --- /dev/null +++ b/src/worldEvent/worldEvent9.c @@ -0,0 +1,67 @@ +/** + * @file worldEvent9.c + * @ingroup WorldEvents + * + * @brief World Event 9 + */ +#include "fade.h" +#include "flags.h" +#include "menu.h" +#include "object.h" +#include "room.h" +#include "sound.h" +#include "subtask.h" + +const EntityData gUnk_080FF33C[] = { + { 0x10 + OBJECT, 15, HOUSE_DOOR_EXT, 0, 2, 0x98, 0x173, 0 }, + { 0xff, 0, 0, 0, 0, 0x0, 0x0, 0 }, +}; + +void WorldEvent_9_0(void); +void WorldEvent_9_1(void); +void WorldEvent_9_2(void); +void WorldEvent_9_3(void); +void (*const WorldEvent_9_Functions[])(void) = { + WorldEvent_9_0, + WorldEvent_9_1, + WorldEvent_9_2, + WorldEvent_9_3, +}; + +void WorldEvent_9(void) { + WorldEvent_9_Functions[gMenu.overlayType](); +} + +void WorldEvent_9_0(void) { + if (gMenu.field_0xc[1] != 0) { + LoadRoomEntityList((EntityData*)gUnk_080FF33C); + } + sub_08055B70(gMenu.field_0x4, 0, 0, 0); + gMenu.overlayType++; + gUpdateVisibleTiles = 1; + SetFade(FADE_INSTANT, 0x10); +} + +void WorldEvent_9_1(void) { + if ((gFadeControl.active == 0) && CheckRoomFlag(0xff)) { + SetFade(FADE_IN_OUT | FADE_BLACK_WHITE | FADE_INSTANT, 0x10); + gMenu.overlayType++; + } +} + +void WorldEvent_9_2(void) { + if (gFadeControl.active == 0) { + sub_0801876C(gMenu.field_0x4, 1); + sub_080553E0(gMenu.field_0x4); + SetFade(FADE_BLACK_WHITE | FADE_INSTANT, 0x10); + SoundReq(SFX_SECRET_BIG); + gMenu.overlayType++; + gMenu.transitionTimer = 120; + } +} + +void WorldEvent_9_3(void) { + if ((gFadeControl.active == 0) && --gMenu.transitionTimer == 0) { + gMenu.menuType++; + } +}