summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/src/code_08003FC4.s16
-rw-r--r--asm/src/code_080043E8.s8
-rw-r--r--asm/src/enemy.s10
-rw-r--r--assets/assets.json54
-rw-r--r--data/const/manager/holeManager.s189
-rw-r--r--data/scripts/CreateDustFromScript.inc2
-rw-r--r--data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok1.inc2
-rw-r--r--data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok2.inc2
-rw-r--r--data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok3.inc2
-rw-r--r--data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok4.inc2
-rw-r--r--data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite1.inc2
-rw-r--r--data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite2.inc2
-rw-r--r--data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite3.inc2
-rw-r--r--data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite4.inc2
-rw-r--r--data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc2
-rw-r--r--include/affine.h21
-rw-r--r--include/area.h2
-rw-r--r--include/asm.h20
-rw-r--r--include/backgroundAnimations.h3
-rw-r--r--include/beanstalkSubtask.h32
-rw-r--r--include/collision.h2
-rw-r--r--include/color.h2
-rw-r--r--include/common.h2
-rw-r--r--include/effects.h19
-rw-r--r--include/enemy.h16
-rw-r--r--include/enemy/armos.h8
-rw-r--r--include/entity.h16
-rw-r--r--include/fade.h6
-rw-r--r--include/fileselect.h19
-rw-r--r--include/functions.h101
-rw-r--r--include/game.h4
-rw-r--r--include/gba/defines.h6
-rw-r--r--include/gfx.h8
-rw-r--r--include/item.h12
-rw-r--r--include/itemDefinitions.h20
-rw-r--r--include/kinstone.h1
-rw-r--r--include/main.h16
-rw-r--r--include/manager.h5
-rw-r--r--include/manager/flagAndOperatorManager.h4
-rw-r--r--include/manager/holeManager.h16
-rw-r--r--include/manager/horizontalMinishPathBackgroundManager.h2
-rw-r--r--include/manager/hyruleTownTileSetManager.h8
-rw-r--r--include/manager/lightManager.h2
-rw-r--r--include/manager/manager29.h2
-rw-r--r--include/manager/minishRaftersBackgroundManager.h2
-rw-r--r--include/manager/miscManager.h7
-rw-r--r--include/manager/staticBackgroundManager.h2
-rw-r--r--include/manager/templeOfDropletsManager.h4
-rw-r--r--include/manager/verticalMinishPathBackgroundManager.h3
-rw-r--r--include/message.h64
-rw-r--r--include/npc.h15
-rw-r--r--include/npc/bigGoron.h8
-rw-r--r--include/object.h50
-rw-r--r--include/object/cutsceneMiscObject.h8
-rw-r--r--include/object/itemOnGround.h2
-rw-r--r--include/object/lockedDoor.h8
-rw-r--r--include/object/pot.h8
-rw-r--r--include/object/pushableFurniture.h2
-rw-r--r--include/pauseMenu.h16
-rw-r--r--include/physics.h3
-rw-r--r--include/player.h47
-rw-r--r--include/playeritem.h4
-rw-r--r--include/room.h20
-rw-r--r--include/save.h13
-rw-r--r--include/screen.h12
-rw-r--r--include/screenTransitions.h64
-rw-r--r--include/script.h3
-rw-r--r--include/scroll.h13
-rw-r--r--include/structures.h374
-rw-r--r--include/subtask.h5
-rw-r--r--include/transitions.h32
-rw-r--r--include/ui.h99
-rw-r--r--include/vram.h81
-rw-r--r--linker.ld1
-rw-r--r--src/affine.c3
-rw-r--r--src/backgroundAnimations.c3
-rw-r--r--src/beanstalkSubtask.c20
-rw-r--r--src/code_08049CD4.c1
-rw-r--r--src/code_08049DF4.c2
-rw-r--r--src/code_0805EC04.c2
-rw-r--r--src/collision.c5
-rw-r--r--src/color.c17
-rw-r--r--src/common.c46
-rw-r--r--src/cutscene.c9
-rw-r--r--src/data/screenTransitions.c102
-rw-r--r--src/data/transitions.c2994
-rw-r--r--src/debug.c3
-rw-r--r--src/demo.c5
-rw-r--r--src/droptables.c1
-rw-r--r--src/enemy/acroBandits.c6
-rw-r--r--src/enemy/armos.c18
-rw-r--r--src/enemy/ballChainSoldier.c6
-rw-r--r--src/enemy/beetle.c6
-rw-r--r--src/enemy/bladeTrap.c4
-rw-r--r--src/enemy/bobomb.c8
-rw-r--r--src/enemy/bombPeahat.c2
-rw-r--r--src/enemy/bombarossa.c5
-rw-r--r--src/enemy/bowMoblin.c6
-rw-r--r--src/enemy/businessScrub.c14
-rw-r--r--src/enemy/businessScrubPrologue.c10
-rw-r--r--src/enemy/chaser.c4
-rw-r--r--src/enemy/chuchu.c6
-rw-r--r--src/enemy/chuchuBoss.c14
-rw-r--r--src/enemy/cloudPiranha.c6
-rw-r--r--src/enemy/crow.c4
-rw-r--r--src/enemy/cuccoAggr.c8
-rw-r--r--src/enemy/cuccoChickAggr.c5
-rw-r--r--src/enemy/curtain.c2
-rw-r--r--src/enemy/darkNut.c5
-rw-r--r--src/enemy/doorMimic.c8
-rw-r--r--src/enemy/dust.c6
-rw-r--r--src/enemy/enemy4D.c6
-rw-r--r--src/enemy/enemy50.c6
-rw-r--r--src/enemy/enemy64.c11
-rw-r--r--src/enemy/enemyE.c2
-rw-r--r--src/enemy/eyegore.c15
-rw-r--r--src/enemy/fallingBoulder.c7
-rw-r--r--src/enemy/fireballGuy.c6
-rw-r--r--src/enemy/flyingPot.c4
-rw-r--r--src/enemy/flyingSkull.c7
-rw-r--r--src/enemy/ghini.c5
-rw-r--r--src/enemy/gibdo.c6
-rw-r--r--src/enemy/gleerok.c12
-rw-r--r--src/enemy/gyorgChild.c4
-rw-r--r--src/enemy/gyorgFemale.c29
-rw-r--r--src/enemy/gyorgFemaleEye.c5
-rw-r--r--src/enemy/gyorgMale.c5
-rw-r--r--src/enemy/gyorgMaleEye.c6
-rw-r--r--src/enemy/hangingSeed.c3
-rw-r--r--src/enemy/helmasaur.c7
-rw-r--r--src/enemy/keaton.c6
-rw-r--r--src/enemy/keese.c3
-rw-r--r--src/enemy/lakitu.c4
-rw-r--r--src/enemy/lakituCloud.c1
-rw-r--r--src/enemy/leever.c1
-rw-r--r--src/enemy/likeLike.c9
-rw-r--r--src/enemy/madderpillar.c7
-rw-r--r--src/enemy/mazaalBracelet.c9
-rw-r--r--src/enemy/mazaalHead.c16
-rw-r--r--src/enemy/mazaalMacro.c8
-rw-r--r--src/enemy/miniFireballGuy.c5
-rw-r--r--src/enemy/miniSlime.c3
-rw-r--r--src/enemy/moldorm.c3
-rw-r--r--src/enemy/moldworm.c8
-rw-r--r--src/enemy/mulldozer.c3
-rw-r--r--src/enemy/octorok.c4
-rw-r--r--src/enemy/octorokBoss.c11
-rw-r--r--src/enemy/octorokGolden.c5
-rw-r--r--src/enemy/peahat.c5
-rw-r--r--src/enemy/pesto.c9
-rw-r--r--src/enemy/puffstool.c7
-rw-r--r--src/enemy/rockChuchu.c3
-rw-r--r--src/enemy/rollobite.c2
-rw-r--r--src/enemy/rope.c3
-rw-r--r--src/enemy/ropeGolden.c4
-rw-r--r--src/enemy/rupeeLike.c9
-rw-r--r--src/enemy/scissorsBeetle.c4
-rw-r--r--src/enemy/sensorBladeTrap.c1
-rw-r--r--src/enemy/slime.c3
-rw-r--r--src/enemy/sluggula.c3
-rw-r--r--src/enemy/smallPesto.c3
-rw-r--r--src/enemy/spark.c2
-rw-r--r--src/enemy/spearMoblin.c7
-rw-r--r--src/enemy/spikedBeetle.c6
-rw-r--r--src/enemy/spinyBeetle.c7
-rw-r--r--src/enemy/spinyChuchu.c5
-rw-r--r--src/enemy/stalfos.c8
-rw-r--r--src/enemy/takkuri.c24
-rw-r--r--src/enemy/tektite.c3
-rw-r--r--src/enemy/tektiteGolden.c4
-rw-r--r--src/enemy/torchTrap.c24
-rw-r--r--src/enemy/treeItem.c8
-rw-r--r--src/enemy/vaatiArm.c13
-rw-r--r--src/enemy/vaatiBall.c8
-rw-r--r--src/enemy/vaatiEyesMacro.c8
-rw-r--r--src/enemy/vaatiProjectile.c7
-rw-r--r--src/enemy/vaatiRebornEnemy.c9
-rw-r--r--src/enemy/vaatiTransfigured.c9
-rw-r--r--src/enemy/vaatiTransfiguredEye.c3
-rw-r--r--src/enemy/vaatiWrath.c17
-rw-r--r--src/enemy/vaatiWrathEye.c7
-rw-r--r--src/enemy/wallMaster.c6
-rw-r--r--src/enemy/wallMaster2.c6
-rw-r--r--src/enemy/waterDrop.c8
-rw-r--r--src/enemy/wisp.c7
-rw-r--r--src/enemy/wizzrobeFire.c6
-rw-r--r--src/enemy/wizzrobeIce.c6
-rw-r--r--src/enemy/wizzrobeWind.c8
-rw-r--r--src/enemyUtils.c12
-rw-r--r--src/enterPortalSubtask.c11
-rw-r--r--src/entity.c6
-rw-r--r--src/fade.c13
-rw-r--r--src/fileselect.c11
-rw-r--r--src/game.c20
-rw-r--r--src/gameData.c1
-rw-r--r--src/gameOverTask.c2
-rw-r--r--src/gameUtils.c28
-rw-r--r--src/interrupts.c11
-rw-r--r--src/item/itemBomb.c2
-rw-r--r--src/item/itemBoomerang.c2
-rw-r--r--src/item/itemBow.c2
-rw-r--r--src/item/itemGustJar.c1
-rw-r--r--src/item/itemJarEmpty.c2
-rw-r--r--src/item/itemLantern.c5
-rw-r--r--src/item/itemMoleMitts.c5
-rw-r--r--src/item/itemOcarina.c3
-rw-r--r--src/item/itemPacciCane.c3
-rw-r--r--src/item/itemPegasusBoots.c1
-rw-r--r--src/item/itemRocsCape.c1
-rw-r--r--src/item/itemShield.c3
-rw-r--r--src/item/itemSword.c4
-rw-r--r--src/item/itemTryPickupObject.c4
-rw-r--r--src/itemDefinitions.c2
-rw-r--r--src/itemUtils.c6
-rw-r--r--src/main.c9
-rw-r--r--src/manager/angryStatueManager.c6
-rw-r--r--src/manager/armosInteriorManager.c3
-rw-r--r--src/manager/bombableWallManager.c3
-rw-r--r--src/manager/bridgeManager.c2
-rw-r--r--src/manager/cloudOverlayManager.c17
-rw-r--r--src/manager/cloudStaircaseTransitionManager.c3
-rw-r--r--src/manager/delayedEntityLoadManager.c4
-rw-r--r--src/manager/diggingCaveEntranceManager.c3
-rw-r--r--src/manager/enterRoomTextboxManager.c3
-rw-r--r--src/manager/entitySpawnManager.c2
-rw-r--r--src/manager/ezloHintManager.c2
-rw-r--r--src/manager/fallingItemManager.c2
-rw-r--r--src/manager/flagAndOperatorManager.c6
-rw-r--r--src/manager/flameManager.c3
-rw-r--r--src/manager/goronMerchantShopManager.c1
-rw-r--r--src/manager/holeManager.c325
-rw-r--r--src/manager/horizontalMinishPathBackgroundManager.c28
-rw-r--r--src/manager/hyruleTownTileSetManager.c224
-rw-r--r--src/manager/lightLevelSetManager.c6
-rw-r--r--src/manager/lightManager.c3
-rw-r--r--src/manager/lightRayManager.c10
-rw-r--r--src/manager/manager29.c8
-rw-r--r--src/manager/minishPortalManager.c9
-rw-r--r--src/manager/minishRaftersBackgroundManager.c9
-rw-r--r--src/manager/minishSizedEntranceManager.c3
-rw-r--r--src/manager/minishVillageTileSetManager.c272
-rw-r--r--src/manager/miscManager.c45
-rw-r--r--src/manager/moveableObjectManager.c1
-rw-r--r--src/manager/powBackgroundManager.c11
-rw-r--r--src/manager/pushableFurnitureManager.c1
-rw-r--r--src/manager/rollingBarrelManager.c13
-rw-r--r--src/manager/secretManager.c1
-rw-r--r--src/manager/specialWarpManager.c3
-rw-r--r--src/manager/staticBackgroundManager.c9
-rw-r--r--src/manager/steamOverlayManager.c15
-rw-r--r--src/manager/templeOfDropletsManager.c39
-rw-r--r--src/manager/tileChangeObserveManager.c2
-rw-r--r--src/manager/tilePuzzleManager.c3
-rw-r--r--src/manager/vaati3BackgroundManager.c12
-rw-r--r--src/manager/vaati3InsideArmManager.c3
-rw-r--r--src/manager/vaati3StartManager.c13
-rw-r--r--src/manager/vaatiAppearingManager.c2
-rw-r--r--src/manager/verticalMinishPathBackgroundManager.c9
-rw-r--r--src/manager/waterfallBottomManager.c4
-rw-r--r--src/manager/weatherChangeManager.c14
-rw-r--r--src/menu/figurineMenu.c18
-rw-r--r--src/menu/kinstoneMenu.c26
-rw-r--r--src/menu/pauseMenu.c7
-rw-r--r--src/menu/pauseMenuScreen6.c2
-rw-r--r--src/message.c88
-rw-r--r--src/movement.c1
-rw-r--r--src/npc.c1
-rw-r--r--src/npc/anju.c2
-rw-r--r--src/npc/beedle.c1
-rw-r--r--src/npc/bigGoron.c11
-rw-r--r--src/npc/bladeBrothers.c5
-rw-r--r--src/npc/brocco.c3
-rw-r--r--src/npc/carlov.c1
-rw-r--r--src/npc/carpenter.c4
-rw-r--r--src/npc/castleMaid.c3
-rw-r--r--src/npc/castorWildsStatue.c12
-rw-r--r--src/npc/cat.c5
-rw-r--r--src/npc/clothesRack.c3
-rw-r--r--src/npc/cow.c4
-rw-r--r--src/npc/cucco.c5
-rw-r--r--src/npc/cuccoChick.c5
-rw-r--r--src/npc/dampe.c2
-rw-r--r--src/npc/din.c7
-rw-r--r--src/npc/dog.c9
-rw-r--r--src/npc/drLeft.c7
-rw-r--r--src/npc/emma.c2
-rw-r--r--src/npc/epona.c3
-rw-r--r--src/npc/ezlo.c5
-rw-r--r--src/npc/farmers.c2
-rw-r--r--src/npc/farore.c6
-rw-r--r--src/npc/festari.c4
-rw-r--r--src/npc/forestMinish.c13
-rw-r--r--src/npc/gentari.c3
-rw-r--r--src/npc/ghostBrothers.c4
-rw-r--r--src/npc/gina.c5
-rw-r--r--src/npc/gorman.c7
-rw-r--r--src/npc/goron.c5
-rw-r--r--src/npc/goronMerchant.c4
-rw-r--r--src/npc/gregal.c4
-rw-r--r--src/npc/guard.c3
-rw-r--r--src/npc/guardWithSpear.c16
-rw-r--r--src/npc/hurdyGurdyMan.c6
-rw-r--r--src/npc/kid.c9
-rw-r--r--src/npc/kingDaltus.c4
-rw-r--r--src/npc/kingGustaf.c2
-rw-r--r--src/npc/librari.c3
-rw-r--r--src/npc/librarians.c1
-rw-r--r--src/npc/mailbox.c1
-rw-r--r--src/npc/malon.c2
-rw-r--r--src/npc/mama.c2
-rw-r--r--src/npc/marcy.c2
-rw-r--r--src/npc/mayorHagen.c4
-rw-r--r--src/npc/melari.c6
-rw-r--r--src/npc/ministerPotho.c2
-rw-r--r--src/npc/moblinLady.c1
-rw-r--r--src/npc/mountainMinish.c5
-rw-r--r--src/npc/mutoh.c3
-rw-r--r--src/npc/nayru.c8
-rw-r--r--src/npc/npc23.c5
-rw-r--r--src/npc/npc26.c2
-rw-r--r--src/npc/npc4E.c15
-rw-r--r--src/npc/npc4F.c1
-rw-r--r--src/npc/npc5.c8
-rw-r--r--src/npc/npc9.c1
-rw-r--r--src/npc/percy.c9
-rw-r--r--src/npc/phonograph.c6
-rw-r--r--src/npc/picolyteBottle.c8
-rw-r--r--src/npc/pina.c5
-rw-r--r--src/npc/pita.c5
-rw-r--r--src/npc/postman.c8
-rw-r--r--src/npc/rem.c8
-rw-r--r--src/npc/simon.c4
-rw-r--r--src/npc/sittingPerson.c8
-rw-r--r--src/npc/smallTownMinish.c2
-rw-r--r--src/npc/smith.c9
-rw-r--r--src/npc/stamp.c4
-rw-r--r--src/npc/stockwell.c8
-rw-r--r--src/npc/sturgeon.c10
-rw-r--r--src/npc/syrup.c6
-rw-r--r--src/npc/talon.c5
-rw-r--r--src/npc/teachers.c2
-rw-r--r--src/npc/tingleSiblings.c9
-rw-r--r--src/npc/townMinish.c6
-rw-r--r--src/npc/townsperson.c9
-rw-r--r--src/npc/vaati.c2
-rw-r--r--src/npc/vaatiReborn.c6
-rw-r--r--src/npc/wheaton.c2
-rw-r--r--src/npc/windTribespeople.c5
-rw-r--r--src/npc/zelda.c7
-rw-r--r--src/npc/zeldaFollower.c4
-rw-r--r--src/npcDefinitions.c1
-rw-r--r--src/npcUtils.c7
-rw-r--r--src/object.c2
-rw-r--r--src/object/ambientClouds.c4
-rw-r--r--src/object/backgroundCloud.c3
-rw-r--r--src/object/bakerOven.c6
-rw-r--r--src/object/barrelSpiderweb.c10
-rw-r--r--src/object/beanstalk.c8
-rw-r--r--src/object/bedCover.c2
-rw-r--r--src/object/bench.c3
-rw-r--r--src/object/bigBarrel.c2
-rw-r--r--src/object/bigIceBlock.c15
-rw-r--r--src/object/bigPushableLever.c6
-rw-r--r--src/object/bigVortex.c11
-rw-r--r--src/object/bird.c10
-rw-r--r--src/object/blockPushed.c7
-rw-r--r--src/object/board.c1
-rw-r--r--src/object/bollard.c1
-rw-r--r--src/object/book.c14
-rw-r--r--src/object/bossDoor.c22
-rw-r--r--src/object/bush.c7
-rw-r--r--src/object/button.c16
-rw-r--r--src/object/cameraTarget.c3
-rw-r--r--src/object/carlovObject.c11
-rw-r--r--src/object/chestSpawner.c32
-rw-r--r--src/object/chuchuBossCutscene.c5
-rw-r--r--src/object/chuchuBossStartParticle.c7
-rw-r--r--src/object/cloud.c9
-rw-r--r--src/object/crackingGround.c6
-rw-r--r--src/object/crenelBeanSprout.c10
-rw-r--r--src/object/cuccoMinigame.c7
-rw-r--r--src/object/cutsceneMiscObject.c16
-rw-r--r--src/object/cutsceneOrchestrator.c2
-rw-r--r--src/object/deathFx.c6
-rw-r--r--src/object/dirtParticle.c5
-rw-r--r--src/object/doubleBookshelf.c16
-rw-r--r--src/object/elementsBackground.c1
-rw-r--r--src/object/enemyItem.c13
-rw-r--r--src/object/evilSpirit.c5
-rw-r--r--src/object/ezloCap.c6
-rw-r--r--src/object/ezloCapFlying.c6
-rw-r--r--src/object/fairy.c15
-rw-r--r--src/object/fan.c6
-rw-r--r--src/object/fanWind.c3
-rw-r--r--src/object/figurineDevice.c17
-rw-r--r--src/object/fileScreenObjects.c6
-rw-r--r--src/object/fireballChain.c2
-rw-r--r--src/object/fireplace.c11
-rw-r--r--src/object/flame.c11
-rw-r--r--src/object/floatingPlatform.c4
-rw-r--r--src/object/fourElements.c10
-rw-r--r--src/object/frozenOctorok.c12
-rw-r--r--src/object/frozenWaterElement.c8
-rw-r--r--src/object/furniture.c6
-rw-r--r--src/object/gentariCurtain.c2
-rw-r--r--src/object/giantBookLadder.c12
-rw-r--r--src/object/giantLeaf.c2
-rw-r--r--src/object/giantTwig.c7
-rw-r--r--src/object/gleerokParticle.c2
-rw-r--r--src/object/graveyardKey.c3
-rw-r--r--src/object/greatFairy.c7
-rw-r--r--src/object/guruguruBar.c3
-rw-r--r--src/object/gyorgBossObject.c16
-rw-r--r--src/object/heartContainer.c11
-rw-r--r--src/object/hiddenLadderDown.c8
-rw-r--r--src/object/hittableLever.c6
-rw-r--r--src/object/houseDoorExterior.c4
-rw-r--r--src/object/houseDoorInterior.c3
-rw-r--r--src/object/itemForSale.c7
-rw-r--r--src/object/itemOnGround.c28
-rw-r--r--src/object/jailBars.c8
-rw-r--r--src/object/japaneseSubtitle.c2
-rw-r--r--src/object/jarPortal.c10
-rw-r--r--src/object/keyStealingTakkuri.c8
-rw-r--r--src/object/kinstoneSpark.c5
-rw-r--r--src/object/ladderUp.c1
-rw-r--r--src/object/lavaPlatform.c7
-rw-r--r--src/object/lightDoor.c9
-rw-r--r--src/object/lightRay.c6
-rw-r--r--src/object/lightableSwitch.c22
-rw-r--r--src/object/lilypadLarge.c23
-rw-r--r--src/object/lilypadLargeFalling.c1
-rw-r--r--src/object/lilypadSmall.c4
-rw-r--r--src/object/linkAnimation.c5
-rw-r--r--src/object/linkEmptyingBottle.c6
-rw-r--r--src/object/linkFire.c3
-rw-r--r--src/object/linkHoldingItem.c4
-rw-r--r--src/object/litArea.c5
-rw-r--r--src/object/lockedDoor.c32
-rw-r--r--src/object/macroAcorn.c2
-rw-r--r--src/object/macroBook.c4
-rw-r--r--src/object/macroDecorations.c1
-rw-r--r--src/object/macroMushroomStalk.c3
-rw-r--r--src/object/macroPlayer.c3
-rw-r--r--src/object/mask.c17
-rw-r--r--src/object/mazaalBossObject.c9
-rw-r--r--src/object/metalDoor.c12
-rw-r--r--src/object/minecart.c7
-rw-r--r--src/object/minecartDoor.c14
-rw-r--r--src/object/mineralWaterSource.c2
-rw-r--r--src/object/minishEmoticon.c3
-rw-r--r--src/object/minishPortalCloseup.c5
-rw-r--r--src/object/minishPortalStone.c20
-rw-r--r--src/object/minishSizedEntrance.c5
-rw-r--r--src/object/minishVillageObject.c8
-rw-r--r--src/object/moleMittsParticle.c5
-rw-r--r--src/object/object1F.c4
-rw-r--r--src/object/object30.c4
-rw-r--r--src/object/object37.c6
-rw-r--r--src/object/object53.c4
-rw-r--r--src/object/object63.c5
-rw-r--r--src/object/object70.c4
-rw-r--r--src/object/objectA.c11
-rw-r--r--src/object/objectA2.c10
-rw-r--r--src/object/objectA8.c15
-rw-r--r--src/object/objectBlockingStairs.c4
-rw-r--r--src/object/objectOnPillar.c8
-rw-r--r--src/object/objectOnSpinyBeetle.c5
-rw-r--r--src/object/octorokBossObject.c6
-rw-r--r--src/object/palaceArchway.c2
-rw-r--r--src/object/paper.c4
-rw-r--r--src/object/pinwheel.c13
-rw-r--r--src/object/playerClone.c2
-rw-r--r--src/object/pot.c14
-rw-r--r--src/object/pressurePlate.c5
-rw-r--r--src/object/pullableLever.c5
-rw-r--r--src/object/pullableMushroom.c7
-rw-r--r--src/object/pushableFurniture.c12
-rw-r--r--src/object/pushableGrave.c8
-rw-r--r--src/object/pushableLever.c6
-rw-r--r--src/object/pushableRock.c6
-rw-r--r--src/object/pushableStatue.c8
-rw-r--r--src/object/railtrack.c20
-rw-r--r--src/object/rotatingTrapdoor.c2
-rw-r--r--src/object/rupee.c3
-rw-r--r--src/object/shrinkingHieroglyphs.c3
-rw-r--r--src/object/smallIceBlock.c16
-rw-r--r--src/object/smoke.c2
-rw-r--r--src/object/smokeParticle.c7
-rw-r--r--src/object/specialFx.c9
-rw-r--r--src/object/steam.c1
-rw-r--r--src/object/stoneTablet.c2
-rw-r--r--src/object/swordParticle.c6
-rw-r--r--src/object/swordsmanNewsletter.c1
-rw-r--r--src/object/thunderbolt.c6
-rw-r--r--src/object/titleScreenObject.c2
-rw-r--r--src/object/trapdoor.c4
-rw-r--r--src/object/treeHidingPortal.c11
-rw-r--r--src/object/treeThorns.c1
-rw-r--r--src/object/unusedSkull.c14
-rw-r--r--src/object/vaati3PlayerObject.c2
-rw-r--r--src/object/warpPoint.c13
-rw-r--r--src/object/waterDropObject.c1
-rw-r--r--src/object/waterElement.c1
-rw-r--r--src/object/waterfallOpening.c3
-rw-r--r--src/object/well.c2
-rw-r--r--src/object/whirlwind.c8
-rw-r--r--src/object/whiteTriangleEffect.c3
-rw-r--r--src/object/windTribeFlag.c1
-rw-r--r--src/object/windTribeTeleporter.c7
-rw-r--r--src/object/windcrest.c1
-rw-r--r--src/objectUtils.c70
-rw-r--r--src/physics.c23
-rw-r--r--src/player.c10
-rw-r--r--src/playerItem.c1
-rw-r--r--src/playerItem/playerItemBoomerang.c5
-rw-r--r--src/playerItem/playerItemBottle.c6
-rw-r--r--src/playerItem/playerItemBow.c6
-rw-r--r--src/playerItem/playerItemDashSword.c4
-rw-r--r--src/playerItem/playerItemFireRodProjectile.c4
-rw-r--r--src/playerItem/playerItemGust.c4
-rw-r--r--src/playerItem/playerItemGustBig.c4
-rw-r--r--src/playerItem/playerItemGustJar.c3
-rw-r--r--src/playerItem/playerItemHeldObject.c5
-rw-r--r--src/playerItem/playerItemLantern.c5
-rw-r--r--src/playerItem/playerItemPacciCane.c6
-rw-r--r--src/playerItem/playerItemPacciCaneProjectile.c6
-rw-r--r--src/playerItem/playerItemShield.c3
-rw-r--r--src/playerItem/playerItemSpiralBeam.c6
-rw-r--r--src/playerItem/playerItemSword.c6
-rw-r--r--src/playerItem/playerItemSwordBeam.c7
-rw-r--r--src/playerItemDefinitions.c1
-rw-r--r--src/playerItemUtils.c3
-rw-r--r--src/playerUtils.c69
-rw-r--r--src/projectile/arrowProjectile.c9
-rw-r--r--src/projectile/ballAndChain.c2
-rw-r--r--src/projectile/boneProjectile.c5
-rw-r--r--src/projectile/cannonballProjectile.c11
-rw-r--r--src/projectile/dekuSeedProjectile.c7
-rw-r--r--src/projectile/dirtBallProjectile.c6
-rw-r--r--src/projectile/fireProjectile.c5
-rw-r--r--src/projectile/gleerokProjectile.c6
-rw-r--r--src/projectile/guardLineOfSight.c2
-rw-r--r--src/projectile/gyorgMaleEnergyProjectile.c3
-rw-r--r--src/projectile/gyorgTail.c1
-rw-r--r--src/projectile/iceProjectile.c5
-rw-r--r--src/projectile/keatonDagger.c4
-rw-r--r--src/projectile/lakituCloudProjectile.c6
-rw-r--r--src/projectile/lakituLightning.c4
-rw-r--r--src/projectile/mandiblesProjectile.c9
-rw-r--r--src/projectile/moblinSpear.c2
-rw-r--r--src/projectile/octorokBossProjectile.c8
-rw-r--r--src/projectile/projectile5.c1
-rw-r--r--src/projectile/removableDust.c6
-rw-r--r--src/projectile/rockProjectile.c6
-rw-r--r--src/projectile/spiderWeb.c13
-rw-r--r--src/projectile/spikedRollers.c2
-rw-r--r--src/projectile/stalfosProjectile.c6
-rw-r--r--src/projectile/torchTrapProjectile.c4
-rw-r--r--src/projectile/v1DarkMagicProjectile.c6
-rw-r--r--src/projectile/v1EyeLaser.c3
-rw-r--r--src/projectile/v1FireProjectile.c5
-rw-r--r--src/projectile/v2Projectile.c11
-rw-r--r--src/projectile/v3ElectricProjectile.c4
-rw-r--r--src/projectile/v3HandProjectile.c5
-rw-r--r--src/projectile/v3TennisBallProjectile.c5
-rw-r--r--src/projectile/windProjectile.c5
-rw-r--r--src/projectile/winder.c4
-rw-r--r--src/projectileUtils.c4
-rw-r--r--src/room.c3
-rw-r--r--src/roomInit.c57
-rw-r--r--src/save.c2
-rw-r--r--src/script.c15
-rw-r--r--src/scroll.c268
-rw-r--r--src/staffroll.c19
-rw-r--r--src/subtask.c10
-rw-r--r--src/subtask/subtaskAuxCutscene.c5
-rw-r--r--src/subtask/subtaskFastTravel.c13
-rw-r--r--src/subtask/subtaskLocalMapHint.c5
-rw-r--r--src/subtask/subtaskMapHint.c7
-rw-r--r--src/subtask/subtaskWorldEvent.c4
-rw-r--r--src/text.c5
-rw-r--r--src/title.c11
-rw-r--r--src/ui.c6
-rw-r--r--src/vram.c4
-rw-r--r--src/worldEvent/worldEvent1.c4
-rw-r--r--src/worldEvent/worldEvent10.c3
-rw-r--r--src/worldEvent/worldEvent12.c1
-rw-r--r--src/worldEvent/worldEvent14.c1
-rw-r--r--src/worldEvent/worldEvent17.c5
-rw-r--r--src/worldEvent/worldEvent19.c3
-rw-r--r--src/worldEvent/worldEvent21.c1
-rw-r--r--src/worldEvent/worldEvent22.c4
-rw-r--r--src/worldEvent/worldEvent25.c1
-rw-r--r--src/worldEvent/worldEvent3.c1
-rw-r--r--src/worldEvent/worldEvent4.c3
-rw-r--r--src/worldEvent/worldEvent6.c3
-rw-r--r--src/worldEvent/worldEvent7.c1
-rw-r--r--tools/src/asset_processor/offsets.cpp4
599 files changed, 5473 insertions, 4042 deletions
diff --git a/asm/src/code_08003FC4.s b/asm/src/code_08003FC4.s
index d244179e..34d4b52f 100644
--- a/asm/src/code_08003FC4.s
+++ b/asm/src/code_08003FC4.s
@@ -621,23 +621,23 @@ _0800439C: .4byte gSpritePtrs
_080043A0: .4byte gSpritePtrs
_080043A4: .4byte gGFXSlots+4
- thumb_func_start CreateDrownFX
-CreateDrownFX: @ 0x080043A8
+ thumb_func_start CreateDrownFx
+CreateDrownFx: @ 0x080043A8
movs r1, #0xb // FX_WATER_SPLASH
b create_fx
- thumb_func_start CreateLavaDrownFX
-CreateLavaDrownFX: @ 0x080043AC
+ thumb_func_start CreateLavaDrownFx
+CreateLavaDrownFx: @ 0x080043AC
movs r1, #0xc // FX_LAVA_SPLASH
b create_fx
- thumb_func_start CreateSwampDrownFX
-CreateSwampDrownFX: @ 0x080043AC
+ thumb_func_start CreateSwampDrownFx
+CreateSwampDrownFx: @ 0x080043AC
movs r1, #0x52 // FX_GREEN_SPLASH
b create_fx
- thumb_func_start CreatePitFallFX
-CreatePitFallFX: @ 0x080043B4
+ thumb_func_start CreatePitFallFx
+CreatePitFallFx: @ 0x080043B4
movs r1, #0 // FX_FALL_DOWN
create_fx:
diff --git a/asm/src/code_080043E8.s b/asm/src/code_080043E8.s
index 8442e031..6193ca01 100644
--- a/asm/src/code_080043E8.s
+++ b/asm/src/code_080043E8.s
@@ -62,10 +62,10 @@ sub_0800442E: @ 0x0800442E
not_hazard:
movs r0, #0
pop {r1, pc}
-_0800444C: .4byte CreatePitFallFX
-_08004450: .4byte CreateDrownFX
-_08004454: .4byte CreateLavaDrownFX
-_08004458: .4byte CreateSwampDrownFX
+_0800444C: .4byte CreatePitFallFx
+_08004450: .4byte CreateDrownFx
+_08004454: .4byte CreateLavaDrownFx
+_08004458: .4byte CreateSwampDrownFx
thumb_func_start sub_0800445C
sub_0800445C: @ 0x0800445C
diff --git a/asm/src/enemy.s b/asm/src/enemy.s
index d2dcd5ff..d8149fdf 100644
--- a/asm/src/enemy.s
+++ b/asm/src/enemy.s
@@ -71,7 +71,7 @@ _08001230:
ldr r3, _0800135C @ =UpdateAnimationVariableFrames
bx r3
_0800123E:
- ldr r3, _08001360 @ =CreatePitFallFX
+ ldr r3, _08001360 @ =CreatePitFallFx
bx r3
non_word_aligned_thumb_func_start GenericConfused
@@ -155,9 +155,9 @@ _080012BA:
gUnk_080012C8::
.4byte 0x00000000
_080012CC: .4byte sub_08001214
-_080012D0: .4byte CreateDrownFX
-_080012D4: .4byte CreateLavaDrownFX
-_080012D8: .4byte CreateSwampDrownFX
+_080012D0: .4byte CreateDrownFx
+_080012D4: .4byte CreateLavaDrownFx
+_080012D8: .4byte CreateSwampDrownFx
thumb_func_start sub_080012DC
sub_080012DC: @ 0x080012DC
@@ -241,7 +241,7 @@ _08001352:
.align 2, 0
_08001358: .4byte gEnemyFunctions
_0800135C: .4byte UpdateAnimationVariableFrames
-_08001360: .4byte CreatePitFallFX
+_08001360: .4byte CreatePitFallFx
_08001364: .4byte 0x00001800
_08001368: .4byte gUnk_080012C8
_0800136C: .4byte gUnk_080012C8
diff --git a/assets/assets.json b/assets/assets.json
index 26253504..a73ad3ba 100644
--- a/assets/assets.json
+++ b/assets/assets.json
@@ -13037,137 +13037,137 @@
"size": 8
},
{
- "path": "holeManager/gUnk_08108764.bin",
+ "path": "holeManager/gHoleTransitions.bin",
"start": 1083236,
"size": 32
},
{
- "path": "holeManager/gUnk_08108764_1.bin",
+ "path": "holeManager/gHoleTransitions_1.bin",
"start": 1083272,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_2.bin",
+ "path": "holeManager/gHoleTransitions_2.bin",
"start": 1083292,
"size": 20
},
{
- "path": "holeManager/gUnk_08108764_3.bin",
+ "path": "holeManager/gHoleTransitions_3.bin",
"start": 1083316,
"size": 12
},
{
- "path": "holeManager/gUnk_08108764_4.bin",
+ "path": "holeManager/gHoleTransitions_4.bin",
"start": 1083332,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_5.bin",
+ "path": "holeManager/gHoleTransitions_5.bin",
"start": 1083352,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_6.bin",
+ "path": "holeManager/gHoleTransitions_6.bin",
"start": 1083372,
"size": 40
},
{
- "path": "holeManager/gUnk_08108764_7.bin",
+ "path": "holeManager/gHoleTransitions_7.bin",
"start": 1083416,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_8.bin",
+ "path": "holeManager/gHoleTransitions_8.bin",
"start": 1083436,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_9.bin",
+ "path": "holeManager/gHoleTransitions_9.bin",
"start": 1083456,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_10.bin",
+ "path": "holeManager/gHoleTransitions_10.bin",
"start": 1083476,
"size": 32
},
{
- "path": "holeManager/gUnk_08108764_11.bin",
+ "path": "holeManager/gHoleTransitions_11.bin",
"start": 1083512,
"size": 440
},
{
- "path": "holeManager/gUnk_08108764_12.bin",
+ "path": "holeManager/gHoleTransitions_12.bin",
"start": 1083956,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_13.bin",
+ "path": "holeManager/gHoleTransitions_13.bin",
"start": 1083976,
"size": 36
},
{
- "path": "holeManager/gUnk_08108764_14.bin",
+ "path": "holeManager/gHoleTransitions_14.bin",
"start": 1084016,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_15.bin",
+ "path": "holeManager/gHoleTransitions_15.bin",
"start": 1084036,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_16.bin",
+ "path": "holeManager/gHoleTransitions_16.bin",
"start": 1084056,
"size": 36
},
{
- "path": "holeManager/gUnk_08108764_17.bin",
+ "path": "holeManager/gHoleTransitions_17.bin",
"start": 1084096,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_18.bin",
+ "path": "holeManager/gHoleTransitions_18.bin",
"start": 1084116,
"size": 36
},
{
- "path": "holeManager/gUnk_08108764_19.bin",
+ "path": "holeManager/gHoleTransitions_19.bin",
"start": 1084156,
"size": 36
},
{
- "path": "holeManager/gUnk_08108764_20.bin",
+ "path": "holeManager/gHoleTransitions_20.bin",
"start": 1084196,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_21.bin",
+ "path": "holeManager/gHoleTransitions_21.bin",
"start": 1084216,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_22.bin",
+ "path": "holeManager/gHoleTransitions_22.bin",
"start": 1084236,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_23.bin",
+ "path": "holeManager/gHoleTransitions_23.bin",
"start": 1084256,
"size": 32
},
{
- "path": "holeManager/gUnk_08108764_24.bin",
+ "path": "holeManager/gHoleTransitions_24.bin",
"start": 1084292,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_25.bin",
+ "path": "holeManager/gHoleTransitions_25.bin",
"start": 1084312,
"size": 16
},
{
- "path": "holeManager/gUnk_08108764_26.bin",
+ "path": "holeManager/gHoleTransitions_26.bin",
"start": 1084332,
"size": 124
},
diff --git a/data/const/manager/holeManager.s b/data/const/manager/holeManager.s
index 1ad9d330..d721bc55 100644
--- a/data/const/manager/holeManager.s
+++ b/data/const/manager/holeManager.s
@@ -3,192 +3,3 @@
.section .rodata
.align 2
-
-HoleManager_Actions:: @ 08108668
- .4byte sub_0805B048
- .4byte sub_0805B168
-
-gUnk_08108670:: @ 08108670
-.ifdef EU
- @ TODO only small differences
- .incbin "holeManager/gUnk_08108670_EU.bin"
-.else
- .incbin "holeManager/gUnk_08108670_1_USA-JP-DEMO_USA-DEMO_JP.bin"
-.endif
-
-gUnk_0810867C:: @ 0810867C
-.ifdef EU
- @ TODO only small differences
- .incbin "holeManager/gUnk_0810867C_EU.bin"
-.else
- .incbin "holeManager/gUnk_0810867C_1_USA-JP-DEMO_USA-DEMO_JP.bin"
-.endif
-
-gUnk_08108688:: @ 08108688
-.ifdef EU
- @ TODO only small differences
- .incbin "holeManager/gUnk_08108688_EU.bin"
-.else
- .incbin "holeManager/gUnk_08108688_1_USA-JP-DEMO_USA-DEMO_JP.bin"
-.endif
-
-gUnk_08108694:: @ 08108694
-.ifdef EU
- @ TODO only small differences
- .incbin "holeManager/gUnk_08108694_EU.bin"
-.else
- .incbin "holeManager/gUnk_08108694_1_USA-JP-DEMO_USA-DEMO_JP.bin"
-.endif
-
-gUnk_081086A0:: @ 081086A0
-.ifdef EU
- @ TODO only small differences
- .incbin "holeManager/gUnk_081086A0_EU.bin"
-.else
- .incbin "holeManager/gUnk_081086A0_1_USA-JP-DEMO_USA-DEMO_JP.bin"
-.endif
- .incbin "holeManager/gUnk_081086A0_2.bin"
-
-gUnk_081086AC:: @ 081086AC
-.ifdef EU
- @ TODO only small differences
- .incbin "holeManager/gUnk_081086AC_EU.bin"
-.else
- .incbin "holeManager/gUnk_081086AC_1_USA-JP-DEMO_USA-DEMO_JP.bin"
-.endif
-
-gUnk_081086B8:: @ 081086B8
-.ifdef EU
- @ TODO only small differences
- .incbin "holeManager/gUnk_081086B8_EU.bin"
-.else
- .incbin "holeManager/gUnk_081086B8_1_USA-JP-DEMO_USA-DEMO_JP.bin"
-.endif
-
-gUnk_081086C4:: @ 081086C4
-.ifdef EU
- @ TODO only small differences
- .incbin "holeManager/gUnk_081086C4_EU.bin"
-.else
- .incbin "holeManager/gUnk_081086C4_1_USA-JP-DEMO_USA-DEMO_JP.bin"
-.endif
-
-gUnk_081086D0:: @ 081086D0
-.ifdef EU
- @ TODO only small differences
- .incbin "holeManager/gUnk_081086D0_EU.bin"
-.else
- .incbin "holeManager/gUnk_081086D0_1_USA-JP-DEMO_USA-DEMO_JP.bin"
-.endif
-.ifdef EU
- @ TODO only small differences
- .incbin "holeManager/gUnk_081086D0_2_EU.bin"
-.else
- .incbin "holeManager/gUnk_081086D0_3_USA-JP-DEMO_USA-DEMO_JP.bin"
-.endif
-
-gUnk_081086DC:: @ 081086DC
- .incbin "holeManager/gUnk_081086DC.bin"
-
-gUnk_081086E4:: @ 081086E4
- .incbin "holeManager/gUnk_081086E4.bin"
-
-gUnk_081086EC:: @ 081086EC
- .incbin "holeManager/gUnk_081086EC.bin"
-
-gUnk_081086F4:: @ 081086F4
- .incbin "holeManager/gUnk_081086F4.bin"
-
-gUnk_081086FC:: @ 081086FC
- .incbin "holeManager/gUnk_081086FC.bin"
-
-gUnk_08108704:: @ 08108704
- .incbin "holeManager/gUnk_08108704.bin"
-
-gUnk_0810870C:: @ 0810870C
- .incbin "holeManager/gUnk_0810870C.bin"
-
-gUnk_08108714:: @ 08108714
- .incbin "holeManager/gUnk_08108714.bin"
-
-gUnk_0810871C:: @ 0810871C
- .incbin "holeManager/gUnk_0810871C.bin"
-
-gUnk_08108724:: @ 08108724
- .incbin "holeManager/gUnk_08108724.bin"
-
-gUnk_0810872C:: @ 0810872C
- .incbin "holeManager/gUnk_0810872C.bin"
-
-gUnk_08108734:: @ 08108734
- .incbin "holeManager/gUnk_08108734.bin"
-
-gUnk_0810873C:: @ 0810873C
- .incbin "holeManager/gUnk_0810873C.bin"
-
-gUnk_08108744:: @ 08108744
- .incbin "holeManager/gUnk_08108744.bin"
-
-gUnk_0810874C:: @ 0810874C
- .incbin "holeManager/gUnk_0810874C.bin"
-
-gUnk_08108754:: @ 08108754
- .incbin "holeManager/gUnk_08108754.bin"
-
-gUnk_0810875C:: @ 0810875C
- .incbin "holeManager/gUnk_0810875C.bin"
-
-gUnk_08108764:: @ 08108764
- .incbin "holeManager/gUnk_08108764.bin"
- .4byte gUnk_08108670
- .incbin "holeManager/gUnk_08108764_1.bin"
- .4byte gUnk_08108688
- .incbin "holeManager/gUnk_08108764_2.bin"
- .4byte gUnk_0810875C
- .incbin "holeManager/gUnk_08108764_3.bin"
- .4byte gUnk_08108694
- .incbin "holeManager/gUnk_08108764_4.bin"
- .4byte gUnk_081086A0
- .incbin "holeManager/gUnk_08108764_5.bin"
- .4byte gUnk_081086AC
- .incbin "holeManager/gUnk_08108764_6.bin"
- .4byte gUnk_081086DC
- .incbin "holeManager/gUnk_08108764_7.bin"
- .4byte gUnk_081086E4
- .incbin "holeManager/gUnk_08108764_8.bin"
- .4byte gUnk_081086EC
- .incbin "holeManager/gUnk_08108764_9.bin"
- .4byte gUnk_081086F4
- .incbin "holeManager/gUnk_08108764_10.bin"
- .4byte gUnk_0810867C
- .incbin "holeManager/gUnk_08108764_11.bin"
- .4byte gUnk_081086FC
- .incbin "holeManager/gUnk_08108764_12.bin"
- .4byte gUnk_08108704
- .incbin "holeManager/gUnk_08108764_13.bin"
- .4byte gUnk_0810870C
- .incbin "holeManager/gUnk_08108764_14.bin"
- .4byte gUnk_08108714
- .incbin "holeManager/gUnk_08108764_15.bin"
- .4byte gUnk_0810871C
- .incbin "holeManager/gUnk_08108764_16.bin"
- .4byte gUnk_08108724
- .incbin "holeManager/gUnk_08108764_17.bin"
- .4byte gUnk_0810872C
- .incbin "holeManager/gUnk_08108764_18.bin"
- .4byte gUnk_08108734
- .incbin "holeManager/gUnk_08108764_19.bin"
- .4byte gUnk_0810873C
- .incbin "holeManager/gUnk_08108764_20.bin"
- .4byte gUnk_08108744
- .incbin "holeManager/gUnk_08108764_21.bin"
- .4byte gUnk_0810874C
- .incbin "holeManager/gUnk_08108764_22.bin"
- .4byte gUnk_08108754
- .incbin "holeManager/gUnk_08108764_23.bin"
- .4byte gUnk_081086B8
- .incbin "holeManager/gUnk_08108764_24.bin"
- .4byte gUnk_081086C4
- .incbin "holeManager/gUnk_08108764_25.bin"
- .4byte gUnk_081086D0
- .incbin "holeManager/gUnk_08108764_26.bin"
diff --git a/data/scripts/CreateDustFromScript.inc b/data/scripts/CreateDustFromScript.inc
index 859b127f..c4804328 100644
--- a/data/scripts/CreateDustFromScript.inc
+++ b/data/scripts/CreateDustFromScript.inc
@@ -1,5 +1,5 @@
thumb_func_start CreateDustFromScript
CreateDustFromScript:
push {lr}
- bl CreateDust
+ bl CreateDeathFx
pop {pc}
diff --git a/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok1.inc b/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok1.inc
index bd05025c..d3c6348e 100644
--- a/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok1.inc
+++ b/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok1.inc
@@ -6,7 +6,7 @@ SCRIPT_START script_CutsceneMiscObjectOctorok1
SetAnimation 0x0001
EndBlock
WaitForSyncFlagAndClear 0x00000001
- Call CreateDust
+ Call CreateDeathFx
DoPostScriptAction 0x0006
SCRIPT_END
.2byte 0x0000
diff --git a/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok2.inc b/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok2.inc
index 895d4380..769c3789 100644
--- a/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok2.inc
+++ b/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok2.inc
@@ -6,7 +6,7 @@ SCRIPT_START script_CutsceneMiscObjectOctorok2
SetAnimation 0x0002
EndBlock
WaitForSyncFlagAndClear 0x00000002
- Call CreateDust
+ Call CreateDeathFx
DoPostScriptAction 0x0006
SCRIPT_END
.2byte 0x0000
diff --git a/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok3.inc b/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok3.inc
index a82a9f9a..55a985c4 100644
--- a/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok3.inc
+++ b/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok3.inc
@@ -6,7 +6,7 @@ SCRIPT_START script_CutsceneMiscObjectOctorok3
SetAnimation 0x0000
EndBlock
WaitForSyncFlagAndClear 0x00000004
- Call CreateDust
+ Call CreateDeathFx
DoPostScriptAction 0x0006
SCRIPT_END
.2byte 0x0000
diff --git a/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok4.inc b/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok4.inc
index 6c524c65..7f233dbb 100644
--- a/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok4.inc
+++ b/data/scripts/cutscene/outro/script_CutsceneMiscObjectOctorok4.inc
@@ -6,7 +6,7 @@ SCRIPT_START script_CutsceneMiscObjectOctorok4
SetAnimation 0x0003
EndBlock
WaitForSyncFlagAndClear 0x00000008
- Call CreateDust
+ Call CreateDeathFx
DoPostScriptAction 0x0006
SCRIPT_END
.2byte 0x0000
diff --git a/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite1.inc b/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite1.inc
index b555f6a6..03dd568f 100644
--- a/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite1.inc
+++ b/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite1.inc
@@ -6,7 +6,7 @@ SCRIPT_START script_CutsceneMiscObjectTektite1
SetAnimation 0x0000
EndBlock
WaitForSyncFlagAndClear 0x00000001
- Call CreateDust
+ Call CreateDeathFx
DoPostScriptAction 0x0006
SCRIPT_END
.2byte 0x0000
diff --git a/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite2.inc b/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite2.inc
index 0b83e353..fdfef66c 100644
--- a/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite2.inc
+++ b/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite2.inc
@@ -6,7 +6,7 @@ SCRIPT_START script_CutsceneMiscObjectTektite2
SetAnimation 0x0000
EndBlock
WaitForSyncFlagAndClear 0x00000002
- Call CreateDust
+ Call CreateDeathFx
DoPostScriptAction 0x0006
SCRIPT_END
.2byte 0x0000
diff --git a/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite3.inc b/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite3.inc
index bc2a4e2f..dc4e6b22 100644
--- a/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite3.inc
+++ b/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite3.inc
@@ -6,7 +6,7 @@ SCRIPT_START script_CutsceneMiscObjectTektite3
SetAnimation 0x0000
EndBlock
WaitForSyncFlagAndClear 0x00000004
- Call CreateDust
+ Call CreateDeathFx
DoPostScriptAction 0x0006
SCRIPT_END
.2byte 0x0000
diff --git a/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite4.inc b/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite4.inc
index 517fb04b..8e8cd0ce 100644
--- a/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite4.inc
+++ b/data/scripts/cutscene/outro/script_CutsceneMiscObjectTektite4.inc
@@ -6,7 +6,7 @@ SCRIPT_START script_CutsceneMiscObjectTektite4
SetAnimation 0x0000
EndBlock
WaitForSyncFlagAndClear 0x00000008
- Call CreateDust
+ Call CreateDeathFx
DoPostScriptAction 0x0006
SCRIPT_END
.2byte 0x0000
diff --git a/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc b/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc
index 91afc910..1b7d5df7 100644
--- a/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc
+++ b/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc
@@ -39,7 +39,7 @@ SCRIPT_START script_MinishEzloGoodbye
Wait 0x001e
SetSyncFlag 0x00000020
StopBgm
- Call CreateDust
+ Call CreateDeathFx
Call sub_0806305C
Call sub_080630A4
_0807EF3C 0x0000, 0x0020
diff --git a/include/affine.h b/include/affine.h
new file mode 100644
index 00000000..ae8d2ddb
--- /dev/null
+++ b/include/affine.h
@@ -0,0 +1,21 @@
+#ifndef AFFINE_H
+#define AFFINE_H
+
+#include "gba/types.h"
+
+typedef struct {
+ s16 x;
+ s16 y;
+ u16 _4;
+ u16 _6;
+ u16 _8;
+} OAMCommand;
+extern OAMCommand gOamCmd;
+
+extern void FlushSprites(void);
+extern void CopyOAM(void);
+extern void DrawEntities(void);
+extern void sub_080ADA04(OAMCommand*, void*);
+extern void DrawDirect(u32 spriteIndex, u32 frameIndex);
+
+#endif // AFFINE_H
diff --git a/include/area.h b/include/area.h
index 0bfbf919..8c49e393 100644
--- a/include/area.h
+++ b/include/area.h
@@ -83,7 +83,7 @@ typedef struct {
u16 pixel_width;
u16 pixel_height;
u16 tileSet_id;
-} FORCE_WORD_ALIGNED RoomHeader;
+} PACKED ALIGNED(2) RoomHeader;
static_assert(sizeof(RoomHeader) == 0xa);
extern RoomHeader* gAreaRoomHeaders[];
diff --git a/include/asm.h b/include/asm.h
index dbf374d2..20a57c35 100644
--- a/include/asm.h
+++ b/include/asm.h
@@ -11,10 +11,7 @@ extern void SetTile(u32 tileIndex, u32 tilePos, u32 layer);
extern void UpdateScrollVram(void);
extern u32 sub_080B1BA4(u32, u32, u32);
-extern void LoadResourceAsync(const void* src, u32 dest, u32 size);
-extern void GenericConfused(struct Entity_*);
-extern void sub_08001290(struct Entity_*, u32);
-extern void GenericKnockback(struct Entity_*);
+extern void LoadResourceAsync(const void* src, void* dest, u32 size);
extern u32 GetFuserId(struct Entity_*);
#define GetFuserIdAndFuserTextId(ent) ((union SplitDWord)(*(MultiReturnTypeSingleEntityArg)(&GetFuserId))(ent))
extern u32 CheckPlayerInRegion(u32 centerX, u32 centerY, u32 radiusX, u32 radiusY);
@@ -39,12 +36,9 @@ extern void sub_08004596(struct Entity_*, u32);
extern u32 sub_080045B4(struct Entity_*, u32, u32);
extern u32 CalculateDirectionTo(u32, u32, u32, u32);
extern u32 CalculateDirectionFromOffsets(s32, s32);
-extern u32 sub_080086B4(u32, u32, const u8*);
-extern u32 ResolveCollisionLayer(struct Entity_*);
extern void sub_0800417E(struct Entity_*, u32);
extern u32 sub_0800442E(struct Entity_*);
extern void SoundReqClipped(struct Entity_*, u32);
-extern u32 sub_0800132C(struct Entity_*, struct Entity_*);
extern u32 sub_0800445C(struct Entity_*);
extern u32 CheckRectOnScreen(s32, s32, u32, u32);
@@ -106,4 +100,16 @@ typedef struct {
*/
extern u32 FindValueForKey(u32 key, const KeyValuePair* keyValuePairList);
+extern u32 GetTileIndex(u32 tilePos, u32 layer);
+extern void LinearMoveDirectionOLD(struct Entity_*, u32, u32);
+extern void sub_080028E0(struct Entity_*);
+extern void SnapToTile(struct Entity_*);
+extern u32 sub_0800419C(struct Entity_*, struct Entity_*, u32, u32);
+extern u32 sub_080041DC(struct Entity_*, u32, u32);
+extern void sub_080042BA(struct Entity_*, u32);
+extern void sub_080042D0(struct Entity_*, u32, u16);
+extern void sub_080044AE(struct Entity_*, u32, u32);
+extern void sub_0800451C(struct Entity_*);
+extern void sub_08004542(struct Entity_*);
+
#endif // ASM_H
diff --git a/include/backgroundAnimations.h b/include/backgroundAnimations.h
index 4c3ad5c8..180105f0 100644
--- a/include/backgroundAnimations.h
+++ b/include/backgroundAnimations.h
@@ -32,4 +32,7 @@ extern BgAnimation gBgAnimations[MAX_BG_ANIMATIONS];
extern const u16* const gUnk_080B755C[];
extern const u16 gUnk_080B77C0[];
+extern void LoadBgAnimations(u16*);
+extern void ClearBgAnimations(void);
+
#endif // BACKGROUNDANIMATIONS_H
diff --git a/include/beanstalkSubtask.h b/include/beanstalkSubtask.h
index f7bebbaf..3a91465e 100644
--- a/include/beanstalkSubtask.h
+++ b/include/beanstalkSubtask.h
@@ -28,4 +28,36 @@ void LoadMapData(MapDataDefinition* dataDefinition);
*/
void RenderMapLayerToSubTileMap(u16* tileMap, MapLayer* mapLayer);
+extern void sub_0801AFE4(void);
+extern void SetBGDefaults(void);
+
+typedef struct {
+ s16 tileIndex;
+ s16 tilePosOffset;
+} TileData;
+
+/**
+ * @brief Sets multiple tiles at once
+ *
+ * @param tileData [u16 tileIndex, s16 positionOffset], ends with 0xffff
+ * @param basePosition the position the offsets in tileData are based on
+ * @param layer the tile layer
+ */
+extern void SetMultipleTiles(const TileData* tileData, u32 basePosition, u32 layer);
+
+typedef struct {
+ u8 unk_0;
+ u8 unk_1;
+ u8 unk_2[2];
+ u16 unk_4;
+ u8 filler[12];
+ struct Entity_* unk_14;
+ u8 unk_18;
+ u8 unk_19;
+ u8 unk_1a;
+ u8 unk_1b;
+} struct_02018EB0;
+
+extern struct_02018EB0 gUnk_02018EB0;
+
#endif // BEANSTALKSUBTASK_H
diff --git a/include/collision.h b/include/collision.h
index f2d50367..068c3ecd 100644
--- a/include/collision.h
+++ b/include/collision.h
@@ -67,4 +67,6 @@ u32 sub_080176E4(Entity*);
extern const u8 gMapTileTypeToActTile[]; // actTile for tileType?
+extern u32 sub_0801766C(Entity*);
+
#endif // COLLISION_H
diff --git a/include/color.h b/include/color.h
index eaebb6a6..06c6662c 100644
--- a/include/color.h
+++ b/include/color.h
@@ -23,7 +23,7 @@ typedef struct {
u16 unk_02;
union SplitWord unk_04;
union SplitWord unk_08;
- u32 unk_0C;
+ void* unk_0C;
} struct_gUnk_020000C0_1;
typedef struct {
diff --git a/include/common.h b/include/common.h
index 5f620c23..f9182284 100644
--- a/include/common.h
+++ b/include/common.h
@@ -143,4 +143,6 @@ typedef struct {
u32 mapDataOffset;
} DungeonLayout;
+extern void sub_0801E104(void);
+
#endif // COMMON_H
diff --git a/include/effects.h b/include/effects.h
index 88f04fa4..99998c97 100644
--- a/include/effects.h
+++ b/include/effects.h
@@ -115,4 +115,23 @@ typedef enum {
FX_6C
} Effect;
+Entity* CreateFx(Entity* parent, Effect type, u32 type2);
+void CreateDeathFx(Entity* parent);
+void CreateDeathFxAt(s32 xOff, s32 yOff, u32 layer);
+void CreateDashFx(Entity* parent);
+void CreateExplosionBrokenFx(Entity* parent);
+void CreateWaterSplashFx(Entity* parent);
+Entity* CreateRippleFx(Entity* parent);
+void CreateRippleFxRandom(Entity* parent, s32 range);
+Entity* CreateLargeRippleFx(Entity* parent);
+void CreateLargeRippleFxRandom(Entity* parent, s32 minDistance, s32 maxDistance);
+void CreateSparkleFx(Entity* parent);
+
+extern void CreateDrownFx(Entity*);
+extern void CreateLavaDrownFx(Entity* parent);
+extern void CreateSwampDrownFx(Entity* parent);
+extern void CreatePitFallFx(Entity* parent);
+
+void CreateMagicSparklesFxAt(u32 baseX, u32 baseY, u32 layer);
+
#endif // EFFECTS_H
diff --git a/include/enemy.h b/include/enemy.h
index 84c2d1e0..cc67a457 100644
--- a/include/enemy.h
+++ b/include/enemy.h
@@ -2,15 +2,7 @@
#define ENEMY_H
#include "global.h"
-#include "asm.h"
-
-#include "sound.h"
-#include "effects.h"
-#include "flags.h"
-#include "common.h"
-
#include "entity.h"
-#include "projectile.h"
#define EM_FLAG_BOSS (1 << 0)
#define EM_FLAG_BOSS_KILLED (1 << 1)
@@ -76,6 +68,14 @@ bool32 sub_08049F1C(Entity*, Entity*, s32);
bool32 PlayerInRange(Entity*, u32, s32);
void EnemyCopyParams(Entity*, Entity*);
void GenericKnockback2(Entity*);
+extern void GenericConfused(struct Entity_*);
+
+extern void sub_08001318(Entity*);
+extern void sub_08001290(Entity*, u32);
+extern u32 sub_0800132C(struct Entity_*, struct Entity_*);
+
+extern void StealRupees(Entity*);
+extern void EnemyDisableRespawn(Enemy*);
enum {
/*0x00*/ OCTOROK,
diff --git a/include/enemy/armos.h b/include/enemy/armos.h
new file mode 100644
index 00000000..277f80ca
--- /dev/null
+++ b/include/enemy/armos.h
@@ -0,0 +1,8 @@
+#ifndef ARMOS_H
+#define ARMOS_H
+
+#include "gba/types.h"
+
+void Armos_SetFlagFromTransition(u32 armosId);
+
+#endif // ARMOS_H
diff --git a/include/entity.h b/include/entity.h
index d1d08517..7361d119 100644
--- a/include/entity.h
+++ b/include/entity.h
@@ -3,7 +3,6 @@
#define ENTITY_H
#include "global.h"
-#include "color.h"
#include "sprite.h"
#define MAX_ENTITIES 72
@@ -325,10 +324,7 @@ bool32 ProcessMovement0(Entity*);
Entity* GetEmptyEntity(void);
Entity* CreateEnemy(u32 id, u32 type);
Entity* CreateNPC(u32 id, u32 type, u32 type2);
-Entity* CreateObject(u32 id, u32 type, u32 type2);
-Entity* CreateObjectWithParent(Entity* parent, u32 id, u32 type, u32 type2);
Entity* CreateAuxPlayerEntity(void);
-Entity* CreateFx(Entity* parent, u32 type, u32 type2);
/// @}
/**
@@ -540,6 +536,16 @@ typedef struct {
} CarriedEntity;
extern CarriedEntity gCarriedEntity;
+typedef struct {
+ u8 event_priority; /**< system requested priority @see Priority */
+ u8 ent_priority; /**< entity requested priority @see Priority */
+ u8 queued_priority; /**< @see Priority */
+ u8 queued_priority_reset; /**< @see Priority */
+ Entity* requester;
+ u16 priority_timer;
+} PriorityHandler;
+extern PriorityHandler gPriorityHandler;
+
/**
* Current number of entities.
* @see Entity
@@ -560,7 +566,7 @@ extern u8 gManagerCount;
#define TILE(x, y) (((((x)-gRoomControls.origin_x) >> 4) & 0x3F) | ((((y)-gRoomControls.origin_y) >> 4) & 0x3F) << 6)
// Calculate tilePos from x and y coordinates where x and y are already relative to the current room.
#define TILE_LOCAL(x, y) ((((x) >> 4) & 0x3F) | (((y) >> 4) & 0x3F) << 6)
-#define TILE_POS(x, y) (x + (y << 6))
+#define TILE_POS(x, y) ((x) + ((y) << 6))
#define TILE_POS_X_COMPONENT 0x3f
#define TILE_POS_Y_COMPONENT 0xfc0
#define COORD_TO_TILE(entity) TILE((entity)->x.HALF.HI, (entity)->y.HALF.HI)
diff --git a/include/fade.h b/include/fade.h
index c9b30e10..aa7c86e1 100644
--- a/include/fade.h
+++ b/include/fade.h
@@ -100,4 +100,10 @@ void FadeVBlank(void);
*/
void ResetFadeMask(void);
+extern u32 gUsedPalettes;
+#define USE_PALETTE(i) \
+ do { \
+ gUsedPalettes |= 1 << (i); \
+ } while (0)
+
#endif // FADE_H
diff --git a/include/fileselect.h b/include/fileselect.h
index 704fb1b1..5544c60d 100644
--- a/include/fileselect.h
+++ b/include/fileselect.h
@@ -1,9 +1,9 @@
#ifndef FILESELECT_H
#define FILESELECT_H
-#include "sound.h"
#include "global.h"
#include "save.h"
+#include "message.h"
typedef struct {
/*0x00*/ u8 unk_0x0;
@@ -23,19 +23,6 @@ static_assert(sizeof(ChooseFileState) == 0x30);
// TODO: This occupies the same memory region as gMenu
extern ChooseFileState gChooseFileState;
-// typedef struct {
-// u8 unk00 : 4;
-// u8 unk04 : 4;
-// u8 unk1;
-// u8 charColor;
-// u8 bgColor;
-// u16 unk4;
-// u16 unk6;
-// u8* unk8;
-// } struct_02036540;
-
-extern struct_020227E8 gUnk_020227E8[];
-
typedef struct {
/*0x00*/ u8 isTransitioning;
/*0x01*/ u8 unk1;
@@ -51,13 +38,9 @@ typedef struct {
extern struct_02019EE0 gMapDataBottomSpecial;
// TODO size: 0x8000 from ClearTileMaps?
-extern void sub_08056FEC(u32, struct_020227E8*);
extern u32 ShowTextBox(u32 textIndexOrPtr, const Font* font);
extern void ClearTileMaps(void);
extern void ResetSaveFile(u32);
-extern WStruct* sub_0805F2C8(void);
-extern u32 sub_0805F7DC(u32, WStruct*);
-extern void sub_0805F300(WStruct*);
extern void sub_08050A64(u32);
extern void sub_08050AFC(u32);
extern void sub_08050384();
diff --git a/include/functions.h b/include/functions.h
index d0eace75..e5b9e565 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -2,105 +2,8 @@
#define FUNCTIONS_H
#include "global.h"
-#include "entity.h"
-#include "manager.h"
-#include "physics.h"
-#include "player.h"
-#include "room.h"
-#include "structures.h"
-#include "script.h"
-#include "map.h"
-// Identified - to be sorted into header files
-extern u32 CheckRegionOnScreen(u32, u32, u32, u32);
-extern void CopyOAM(void);
-extern void CreateLavaDrownFX(Entity*);
-extern Entity* CreateGroundItem(Entity*, u32, u32);
-extern Entity* CreateGroundItemWithFlags(Entity*, u32, u32, u32);
-extern void CreatePitFallFX(Entity*);
-extern void CreateMagicSparkles(u32, u32, u32);
-extern void CreateMinishEntrance(u32 tile);
-extern u32 CreateRandomItemDrop(Entity*, u32);
-extern void DrawDirect(u32 spriteIndex, u32 frameIndex);
-extern void DrawEntities(void);
-extern void FlushSprites(void);
-extern u32 GetTileIndex(u32 tilePos, u32 layer);
-extern u32 GiveItem(u32, u32);
-extern bool32 LoadFixedGFX(Entity*, u32);
-extern void LoadResources(void);
-extern bool32 LoadSwapGFX(Entity*, u16, u32);
-extern void MenuFadeIn(u32, u32);
-extern void SetDirtTile(u32);
-/**
- * @brief Sets multiple tiles at once
- *
- * @param tileData [u16 tileIndex, s16 positionOffset], ends with 0xffff
- * @param basePosition the position the offsets in tileData are based on
- * @param layer the tile layer
- */
-extern void SetMultipleTiles(const TileData* tileData, u32 basePosition, u32 layer);
-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 s32 sub_080012DC(Entity*);
-extern void sub_08001318(Entity*);
-extern void LinearMoveDirectionOLD(Entity*, u32, u32);
-extern void sub_080028E0(Entity*);
-extern u32 sub_080040A2(Entity*);
-extern u32 sub_080040D8(Entity*, u8*, s32, s32);
-extern void SnapToTile(Entity*);
-extern u32 sub_0800419C(Entity*, Entity*, u32, u32);
-extern u32 sub_080041DC(Entity*, u32, u32);
-extern void sub_080042BA(Entity*, u32);
-extern void sub_080042D0(Entity*, u32, u16);
-extern void CreateDrownFX(Entity*);
-extern u32 sub_0800445C(Entity*);
-extern void sub_080044AE(Entity*, u32, u32);
-extern u32 BounceUpdate(Entity*, u32);
-extern void sub_0800451C(Entity*);
-extern void sub_08004542(Entity*);
-extern void sub_080085B0(Entity*);
-extern u16* DoTileInteraction(Entity*, u32, u32, u32);
-extern void UpdateCollisionLayer(Entity*);
-extern u32 sub_0801766C(Entity*);
-extern void sub_0801AFE4(void);
-extern void UpdateUIElements(void);
-extern void sub_0801E104(void);
-extern void sub_08030118(u32);
-extern void sub_0803C0AC(Entity*);
-extern void EnemyDisableRespawn(Entity*);
-extern u32 sub_0804A024(Entity*, u32, u32);
-extern u32 IsMinishItem(u32);
-extern void DisableRandomDrops();
-extern void EnableRandomDrops(void);
-extern s32 sub_08056338(void);
-extern void sub_080575C8(u32);
-extern void sub_08057688(void);
-extern void sub_080580B0(u32);
-extern void sub_08058324(u32);
-extern void sub_08059278(void);
-extern void LoadStaticBackground(u32);
-extern void sub_0805BC4C(void);
-extern void sub_0805EC60(Entity*);
-extern void InitPlayerMacro(PlayerMacroEntry*);
-extern u32* sub_0805F25C(u32);
-extern void sub_0805F8E4(u32 r0, WStruct* r1);
-extern void sub_0806D0B0(Entity*);
-extern bool32 sub_080806BC(u32, u32, u32, u32);
-extern void sub_0808091C(const ScreenTransitionData* screenTransition, u32 transitionType);
-extern void sub_080809D4(void);
-extern void sub_08080CB4(Entity*);
-extern u32 sub_0808288C(Entity*, u32, u32, u32);
-extern bool32 sub_08083734(Entity*, u32);
-extern void sub_08095C48(Entity*);
-extern void sub_080A57F4(void);
-extern void sub_080A71C4(u32, u32, u32, u32);
-extern void sub_080ADD70(void);
-extern void sub_080AF284(void);
+extern u32 sub_0804A024(struct Entity_*, u32, u32);
+extern void sub_0805EC60(struct Entity_*);
#endif // FUNCTIONS_H
diff --git a/include/game.h b/include/game.h
index 9e1bc655..20d8088c 100644
--- a/include/game.h
+++ b/include/game.h
@@ -3,7 +3,7 @@
#include "global.h"
#include "area.h"
-#include "structures.h"
+#include "message.h"
/**
* Change the light level of the room.
@@ -200,7 +200,7 @@ void InitParachuteRoom(void);
* @param onEnter Room enter callback.
* @param onExit Room exit callback.
*/
-void RegisterTransitionManager(void* mgr, void (*onEnter)(void*), void (*onExit)(void*));
+void RegisterTransitionHandler(void* mgr, void (*onEnter)(), void (*onExit)());
/**
* Call the room exit callback.
diff --git a/include/gba/defines.h b/include/gba/defines.h
index a135969e..73802774 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -16,9 +16,13 @@
#define NAKED __attribute__((naked))
#define UNUSED __attribute__((unused))
+#ifdef __CLION_IDE__
+#define PACKED
+#define ALIGNED(n)
+#else
#define PACKED __attribute__((packed))
-
#define ALIGNED(n) __attribute__((aligned(n)))
+#endif
#define SOUND_INFO_PTR (*(struct SoundInfo**)0x3007FF0)
#define INTR_CHECK (*(u16*)0x3007FF8)
diff --git a/include/gfx.h b/include/gfx.h
new file mode 100644
index 00000000..2620debc
--- /dev/null
+++ b/include/gfx.h
@@ -0,0 +1,8 @@
+#ifndef GFX_H
+#define GFX_H
+
+#include "global.h"
+
+extern const u8 gGlobalGfxAndPalettes[];
+
+#endif // GFX_H
diff --git a/include/item.h b/include/item.h
index ec20160d..5aa1913c 100644
--- a/include/item.h
+++ b/include/item.h
@@ -5,6 +5,12 @@
#include "entity.h"
#include "player.h"
+extern u32 GiveItem(u32, u32);
+extern u32 CreateRandomItemDrop(Entity*, u32);
+extern void DisableRandomDrops();
+extern void EnableRandomDrops(void);
+extern u32 IsMinishItem(u32);
+
void CreateItemEntity(u32, u32, u32);
extern void ExecuteItemFunction(ItemBehavior* this, u32 index);
@@ -153,7 +159,11 @@ typedef enum {
} Item;
/** Slot that the item is equipped in. */
-typedef enum { EQUIP_SLOT_A, EQUIP_SLOT_B, EQUIP_SLOT_NONE } EquipSlot;
+typedef enum {
+ EQUIP_SLOT_A,
+ EQUIP_SLOT_B,
+ EQUIP_SLOT_NONE,
+} EquipSlot;
/** Function used to create the item. */
typedef enum {
diff --git a/include/itemDefinitions.h b/include/itemDefinitions.h
new file mode 100644
index 00000000..e5816dd5
--- /dev/null
+++ b/include/itemDefinitions.h
@@ -0,0 +1,20 @@
+#ifndef ITEMDEFINITIONS_H
+#define ITEMDEFINITIONS_H
+
+#include "global.h"
+
+typedef struct {
+ /*0x00*/ bool8 isOnlyActiveFirstFrame; /**< Is the behavior for this item only created on the first frame */
+ /*0x01*/ u8 priority;
+ /*0x02*/ u8 createFunc;
+ /*0x03*/ u8 playerItemId; /**< Id for the corresponsing PlayerItem. */
+ /*0x04*/ u16 frameIndex;
+ /*0x06*/ u8 animPriority;
+ /*0x07*/ bool8 isChangingAttackStatus;
+ /*0x08*/ bool8 isUseableAsMinish;
+ /*0x09*/ u8 pad[3];
+} ItemDefinition;
+
+static_assert(sizeof(ItemDefinition) == 0xc);
+
+#endif // ITEMDEFINITIONS_H
diff --git a/include/kinstone.h b/include/kinstone.h
index c50ba857..0c994b24 100644
--- a/include/kinstone.h
+++ b/include/kinstone.h
@@ -4,6 +4,7 @@
#include "global.h"
#include "entity.h"
+extern void CreateMinishEntrance(u32 tile);
extern void sub_08018C58(u32);
typedef enum {
diff --git a/include/main.h b/include/main.h
index f2a229ea..03356134 100644
--- a/include/main.h
+++ b/include/main.h
@@ -2,10 +2,11 @@
#define MAIN_H
#include "global.h"
-#include "structures.h"
#include "room.h"
#include "script.h"
#include "screen.h"
+#include "vram.h"
+#include "color.h"
/** File signature */
#define SIGNATURE 'MCZ3'
@@ -101,6 +102,18 @@ static_assert(sizeof(UI) == 0x3b4);
extern Main gMain; /**< Main instance. */
extern UI gUI; /**< UI instance. */
+typedef struct {
+ s32 signature;
+ u8 field_0x4;
+ u8 listenForKeyPresses;
+ u8 field_0x6;
+ u8 field_0x7;
+ u8 pad[24];
+} struct_02000010;
+static_assert(sizeof(struct_02000010) == 0x20);
+
+extern struct_02000010 gUnk_02000010;
+
/**
* Program entry point.
*/
@@ -158,6 +171,7 @@ extern void DemoTask(void);
extern u8 gUnk_03003DE4[0xC];
extern u16 gPaletteBuffer[];
+extern u32 CheckRegionOnScreen(u32, u32, u32, u32);
extern u32 CheckRegionsOnScreen(const u16* arr);
#endif // MAIN_H
diff --git a/include/manager.h b/include/manager.h
index c96a1785..322510c7 100644
--- a/include/manager.h
+++ b/include/manager.h
@@ -152,11 +152,6 @@ extern void (*const gMiscManagerunctions[58])();
Manager* GetEmptyManager(void);
-/**
- * @brief Set manager responsible for handling room changes
- */
-extern void RegisterTransitionManager(void* mgr, void (*onEnter)(), void (*onExit)());
-
extern u32 sub_0805ACC0(Entity*);
extern void sub_0801855C(void);
extern void SetNextAreaHint(u32 textId);
diff --git a/include/manager/flagAndOperatorManager.h b/include/manager/flagAndOperatorManager.h
index f41a129a..352cbf8f 100644
--- a/include/manager/flagAndOperatorManager.h
+++ b/include/manager/flagAndOperatorManager.h
@@ -6,8 +6,8 @@
typedef struct FlagAndOperatorManager {
Manager base;
u8 unk_20[0x1C];
- u16 unk_3c;
- u16 unk_3e;
+ u16 setFlag;
+ u16 checkFlags;
} FlagAndOperatorManager;
#endif // FLAGANDOPERATORMANAGER_H
diff --git a/include/manager/holeManager.h b/include/manager/holeManager.h
index 59bb8d66..6bf14c93 100644
--- a/include/manager/holeManager.h
+++ b/include/manager/holeManager.h
@@ -5,15 +5,15 @@
typedef struct {
Manager base;
- s16 unk_20;
- s16 unk_22;
- u16 unk_24;
- u16 unk_26;
+ s16 x;
+ s16 y;
+ u16 width;
+ u16 height;
u8 unk_28[8];
- u16 unk_30;
- u16 unk_32;
- u16 unk_34;
- u16 unk_36;
+ u16 persistance_x;
+ u16 persistance_y;
+ u16 persistance_offset_x;
+ u16 persistance_offset_y;
u8 unk_38[7];
u8 unk_3f;
} HoleManager;
diff --git a/include/manager/horizontalMinishPathBackgroundManager.h b/include/manager/horizontalMinishPathBackgroundManager.h
index f67d4841..3835f6c2 100644
--- a/include/manager/horizontalMinishPathBackgroundManager.h
+++ b/include/manager/horizontalMinishPathBackgroundManager.h
@@ -11,4 +11,6 @@ typedef struct {
u32 unk_3c;
} HorizontalMinishPathBackgroundManager;
+extern void sub_080580B0(u32);
+
#endif // HORIZONTALMINISHPATHBACKGROUNDMANAGER_H
diff --git a/include/manager/hyruleTownTileSetManager.h b/include/manager/hyruleTownTileSetManager.h
index ee908238..7e43bb2c 100644
--- a/include/manager/hyruleTownTileSetManager.h
+++ b/include/manager/hyruleTownTileSetManager.h
@@ -5,9 +5,11 @@
typedef struct {
Manager base;
- u8 field_0x20;
- u8 field_0x21;
- u8 field_0x22;
+ u8 gfxGroup0;
+ u8 gfxGroup1;
+ u8 gfxGroup2;
} HyruleTownTileSetManager;
+extern void TryLoadPrologueHyruleTown(void);
+
#endif // HYRULETOWNTILESETMANAGER_H
diff --git a/include/manager/lightManager.h b/include/manager/lightManager.h
index 9bbb1c6b..4a49d488 100644
--- a/include/manager/lightManager.h
+++ b/include/manager/lightManager.h
@@ -8,4 +8,6 @@ typedef struct {
s32 unk20;
} LightManager;
+extern void UnDarkRoom(void);
+
#endif // LIGHTMANAGER_H
diff --git a/include/manager/manager29.h b/include/manager/manager29.h
index c7d99b69..da4c96b2 100644
--- a/include/manager/manager29.h
+++ b/include/manager/manager29.h
@@ -16,7 +16,7 @@ typedef struct {
s16 unk_38;
u16 unk_3a;
u16 unk_3c;
- u16 unk_3e;
+ u16 flag;
} Manager29;
#endif // MANAGER29_H
diff --git a/include/manager/minishRaftersBackgroundManager.h b/include/manager/minishRaftersBackgroundManager.h
index 1c746870..4c034ab1 100644
--- a/include/manager/minishRaftersBackgroundManager.h
+++ b/include/manager/minishRaftersBackgroundManager.h
@@ -9,4 +9,6 @@ typedef struct {
u32 unk_3c;
} MinishRaftersBackgroundManager;
+extern void sub_08058324(u32);
+
#endif // MINISHRAFTERSBACKGROUNDMANAGER_H
diff --git a/include/manager/miscManager.h b/include/manager/miscManager.h
index 44047584..592f1878 100644
--- a/include/manager/miscManager.h
+++ b/include/manager/miscManager.h
@@ -8,8 +8,11 @@ typedef struct {
u8 unk_20[0x18];
s16 x;
s16 y;
- u16 unk_3c;
- u16 flags;
+ u16 flag1;
+ u16 flag2;
} MiscManager;
+extern void sub_08059278(void);
+extern void SetDirtTile(u32);
+
#endif // MISCMANAGER_H
diff --git a/include/manager/staticBackgroundManager.h b/include/manager/staticBackgroundManager.h
index f2cab28a..46e8ca0f 100644
--- a/include/manager/staticBackgroundManager.h
+++ b/include/manager/staticBackgroundManager.h
@@ -8,4 +8,6 @@ typedef struct {
u32 field_0x20;
} StaticBackgroundManager;
+extern void LoadStaticBackground(u32);
+
#endif // STATICBACKGROUNDMANAGER_H
diff --git a/include/manager/templeOfDropletsManager.h b/include/manager/templeOfDropletsManager.h
index da1e8f66..43355eee 100644
--- a/include/manager/templeOfDropletsManager.h
+++ b/include/manager/templeOfDropletsManager.h
@@ -18,8 +18,8 @@ typedef struct {
s16 unk_36;
s16 unk_38;
s16 unk_3a;
- u16 unk_3c;
- u16 unk_3e; // used
+ u16 flag;
+ u16 localFlag; // used
} TempleOfDropletsManager;
#endif // TEMPLEOFDROPLETSMANAGER_H
diff --git a/include/manager/verticalMinishPathBackgroundManager.h b/include/manager/verticalMinishPathBackgroundManager.h
index 34a80080..42e51b30 100644
--- a/include/manager/verticalMinishPathBackgroundManager.h
+++ b/include/manager/verticalMinishPathBackgroundManager.h
@@ -10,4 +10,7 @@ typedef struct {
void* field_0x3c;
} VerticalMinishPathBackgroundManager;
+extern void sub_080575C8(u32);
+extern void sub_08057688(void);
+
#endif // VERTICALMINISHPATHBACKGROUNDMANAGER_H
diff --git a/include/message.h b/include/message.h
index b25e9df5..dbb5ac55 100644
--- a/include/message.h
+++ b/include/message.h
@@ -3,11 +3,55 @@
#include "global.h"
#include "entity.h"
-#include "structures.h"
#define MESSAGE_ACTIVE 0x7f
typedef struct {
+ u8 unk00 : 1;
+ u8 unk01 : 3;
+ u8 unk04 : 4;
+ u8 unk1;
+ u8 charColor;
+ u8 bgColor;
+ u16 unk4;
+ u16 unk6;
+ void* unk8;
+} WStruct;
+
+static_assert(sizeof(WStruct) == 12);
+
+typedef union {
+ char s[8];
+ u32 w[2];
+} String8;
+
+extern String8 gUnk_020227E8[];
+extern u32 NumberToAscii(u32, String8*);
+extern WStruct* sub_0805F2C8(void);
+extern u32 sub_0805F7DC(u32, WStruct*);
+extern void sub_0805F300(WStruct*);
+extern void sub_0805F8E4(u32 r0, WStruct* r1);
+extern s32 sub_08056338(void);
+
+typedef struct {
+ u16* dest;
+ void* gfx_dest;
+ void* buffer_loc;
+ u32 _c;
+ u16 gfx_src;
+ u8 width;
+ u8 right_align : 1;
+ u8 sm_border : 1;
+ u8 unused : 1;
+ u8 draw_border : 1;
+ u8 border_type : 4;
+ u8 fill_type;
+ u8 charColor;
+ u8 _16;
+ u8 stylized;
+} Font;
+
+typedef struct {
u8 state;
u8 unk;
u8 textSpeed;
@@ -45,9 +89,11 @@ typedef struct {
Token curToken;
WStruct _50;
char player_name[10];
- u8 _66[0x10];
- u8 _76;
- u8 _77[0x11];
+ u8 _66[2];
+ String8 _68;
+ String8 _70;
+ String8 _78;
+ String8 _80;
u8 msgStatus;
u8 renderStatus;
u8 newlineDelay;
@@ -81,6 +127,14 @@ typedef struct {
extern TextRender gTextRender;
static_assert(sizeof(TextRender) == 0xa8);
+typedef struct {
+ u8 unk_00;
+ u8 unk_01;
+ u8 unk_02[0xE];
+} struct_02000040;
+
+extern struct_02000040 gUnk_02000040;
+
/**
* @brief Initialize the message system.
*/
@@ -138,7 +192,7 @@ void MessageClose(void);
void DispMessageFrame(u16*, s32, s32, u32);
-void sub_08057044(u32, struct_020227E8*, u32);
+void NumberToAsciiPad3Digits(u32, String8*, u32);
typedef enum {
TEXT_SAVE,
diff --git a/include/npc.h b/include/npc.h
index 525cc5d1..b3adc9f8 100644
--- a/include/npc.h
+++ b/include/npc.h
@@ -2,22 +2,7 @@
#define NPC_H
#include "global.h"
-#include "asm.h"
-#include "common.h"
-
-#include "sound.h"
-#include "effects.h"
-#include "room.h"
-#include "flags.h"
-#include "physics.h"
-#include "message.h"
-#include "script.h"
-#include "save.h"
-
#include "entity.h"
-#include "player.h"
-
-#include "structures.h"
typedef enum {
DIALOG_ROOM_FLAG,
diff --git a/include/npc/bigGoron.h b/include/npc/bigGoron.h
new file mode 100644
index 00000000..568c420b
--- /dev/null
+++ b/include/npc/bigGoron.h
@@ -0,0 +1,8 @@
+#ifndef BIGGORON_H
+#define BIGGORON_H
+
+#include "global.h"
+
+extern void sub_0806D0B0(struct Entity_*);
+
+#endif // BIGGORON_H
diff --git a/include/object.h b/include/object.h
index 67c000cf..231f7239 100644
--- a/include/object.h
+++ b/include/object.h
@@ -1,37 +1,8 @@
#ifndef OBJECT_H
#define OBJECT_H
-#include "global.h"
-#include "asm.h"
-#include "common.h"
-
-#include "sound.h"
-#include "flags.h"
-#include "effects.h"
-#include "room.h"
-#include "physics.h"
-
+#include "definitions.h"
#include "entity.h"
-#include "player.h"
-
-void AddInteractablePedestal(Entity*);
-void AddInteractableCheckableObject(Entity*);
-void sub_0808C650(Entity*, u32);
-u32 sub_0808C67C(void);
-void sub_0808C688(void);
-void SyncPlayerToPlatform(Entity*, bool32);
-void UpdateRailMovement(Entity*, u16**, u16*);
-void sub_080A2AF4(Entity*, s32, s32);
-Entity* CreateLargeWaterTrace(Entity*);
-void CreateSparkle(Entity*);
-
-void CreateDust(Entity* parent);
-void CreateDustAt(s32, s32, u32);
-void CreateDustSmall(Entity* parent);
-Entity* CreateWaterTrace(Entity*);
-Entity* CreateSpeechBubbleQuestionMark(Entity*, s32, s32);
-Entity* CreateSpeechBubbleExclamationMark(Entity*, s32, s32);
-Entity* CreateSpeechBubbleSleep(Entity*, s32, s32);
typedef enum {
GROUND_ITEM,
@@ -230,6 +201,25 @@ typedef enum {
LINK_ANIMATION,
} Object;
+Entity* CreateLinkAnimation(Entity* parent, u32 type, u32 type2);
+void ObjectInit(Entity* this);
+u32 LoadObjectSprite(Entity* this, s32 type, const ObjectDefinition* definition);
+Entity* CreateObject(Object id, u32 type, u32 type2);
+Entity* CreateObjectWithParent(Entity* parent, Object id, u32 type, u32 type2);
+extern Entity* CreateGroundItem(Entity*, u32 item, u32 subvalue);
+extern Entity* CreateGroundItemWithFlags(Entity*, u32 item, u32 subvalue, u32 flags);
+void SyncPlayerToPlatform(Entity* this, bool32 param_2);
+void UpdateRailMovement(Entity* this, u16** param_2, u16* param_3);
+Entity* CreateSpeechBubbleExclamationMark(Entity* parent, s32 offsetX, s32 offsetY);
+Entity* CreateSpeechBubbleQuestionMark(Entity* parent, s32 offsetX, s32 offsetY);
+Entity* CreateSpeechBubbleSleep(Entity* parent, s32 offsetX, s32 offsetY);
+
+void AddInteractablePedestal(Entity*);
+void AddInteractableCheckableObject(Entity*);
+void sub_0808C650(Entity*, u32);
+u32 sub_0808C67C(void);
+void sub_0808C688(void);
+
void ItemOnGround();
void DeathFx();
void ItemForSale();
diff --git a/include/object/cutsceneMiscObject.h b/include/object/cutsceneMiscObject.h
new file mode 100644
index 00000000..49772846
--- /dev/null
+++ b/include/object/cutsceneMiscObject.h
@@ -0,0 +1,8 @@
+#ifndef CUTSCENEMISCOBJECT_H
+#define CUTSCENEMISCOBJECT_H
+
+#include "global.h"
+
+extern void sub_08095C48(struct Entity_*);
+
+#endif // CUTSCENEMISCOBJECT_H
diff --git a/include/object/itemOnGround.h b/include/object/itemOnGround.h
index 47ab89a8..151dcc28 100644
--- a/include/object/itemOnGround.h
+++ b/include/object/itemOnGround.h
@@ -12,7 +12,7 @@ typedef struct {
/*0x6c*/ u16 unk_6c;
/*0x6e*/ u16 unk_6e;
/*0x70*/ u8 unused2[22];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} ItemOnGroundEntity;
#endif // ITEMONGROUND_H
diff --git a/include/object/lockedDoor.h b/include/object/lockedDoor.h
new file mode 100644
index 00000000..8bbca19c
--- /dev/null
+++ b/include/object/lockedDoor.h
@@ -0,0 +1,8 @@
+#ifndef LOCKEDDOOR_H
+#define LOCKEDDOOR_H
+
+#include "global.h"
+
+extern bool32 sub_08083734(struct Entity_*, u32);
+
+#endif // LOCKEDDOOR_H
diff --git a/include/object/pot.h b/include/object/pot.h
new file mode 100644
index 00000000..65429388
--- /dev/null
+++ b/include/object/pot.h
@@ -0,0 +1,8 @@
+#ifndef POT_H
+#define POT_H
+
+#include "global.h"
+
+extern u32 sub_0808288C(struct Entity_*, u32, u32, u32);
+
+#endif // POT_H
diff --git a/include/object/pushableFurniture.h b/include/object/pushableFurniture.h
index db693183..c17ff6ce 100644
--- a/include/object/pushableFurniture.h
+++ b/include/object/pushableFurniture.h
@@ -19,7 +19,7 @@ typedef struct {
/*0x82*/ u8 unk_82;
/*0x83*/ u8 unk_83;
/*0x84*/ u8 unk_84[0x2];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} PushableFurnitureEntity;
#endif // PUSHABLEFURNITURE_H
diff --git a/include/pauseMenu.h b/include/pauseMenu.h
index 1197b2f3..aba00a4a 100644
--- a/include/pauseMenu.h
+++ b/include/pauseMenu.h
@@ -40,4 +40,20 @@ typedef enum {
PauseMenuScreen_19,
} PauseMenuScreen;
+typedef struct {
+ u8 disabled;
+ u8 screen;
+ u8 unk2[0xf]; // cursor positions on the different screens
+ u8 unk11;
+ u8 unk12;
+ u8 unk13;
+ s8 screen2;
+ u8 unk15;
+ s8 unk16;
+ u8 unk17;
+} PauseMenuOptions;
+
+extern PauseMenuOptions gPauseMenuOptions;
+static_assert(sizeof(PauseMenuOptions) == 0x18);
+
#endif // PAUSEMENU_H
diff --git a/include/physics.h b/include/physics.h
index dc6460cc..9c1a8206 100644
--- a/include/physics.h
+++ b/include/physics.h
@@ -55,8 +55,11 @@ extern bool32 ProcessMovement4(Entity*);
extern bool32 ProcessMovement5(Entity*);
extern bool32 ProcessMovement6(Entity*);
extern bool32 ProcessMovementInternal(Entity*, s32, s32, u32);
+extern void sub_080AF284(void);
extern const s16 gSineTable[64];
extern const s16 gCosineTable[256];
+extern u32 BounceUpdate(Entity*, u32);
+
#endif // PHYSICS_H
diff --git a/include/player.h b/include/player.h
index 05f550d3..3248f04f 100644
--- a/include/player.h
+++ b/include/player.h
@@ -609,6 +609,17 @@ typedef struct {
/*0x18*/ Entity* field_0x18;
} ItemBehavior;
+typedef enum { ACTIVE_ITEM_0, ACTIVE_ITEM_1, ACTIVE_ITEM_2, ACTIVE_ITEM_LANTERN, MAX_ACTIVE_ITEMS } ActiveItemIndex;
+/**
+ * Currently active items.
+ * 0: Active items?
+ * 1: Boots, Cape
+ * 2: would be used by CreateItem1 if gActiveItems[1] was already filled
+ * 3: Lamp
+ */
+extern ItemBehavior gActiveItems[MAX_ACTIVE_ITEMS];
+static_assert(sizeof(gActiveItems) == 0x70);
+
extern void (*const gPlayerItemFunctions[])(Entity*);
typedef struct {
@@ -665,6 +676,37 @@ typedef enum {
INTERACTION_NULL = 0xFF,
} InteractionType;
+typedef struct {
+ s8 x;
+ s8 y;
+ s8 width;
+ s8 height;
+} Rect;
+
+typedef struct {
+ /*0x00*/ u8 ignoreLayer; /* if bit 0 set, skip layer check for collision */
+ /*0x01*/ u8 type;
+ /*0x02*/ u8 interactDirections; /* lower 4 bits determine Link's allowed facing directions to interact, 0 to allow
+ (0000WSEN) */
+ /*0x03*/ u8 kinstoneId;
+ /*0x04*/ const Rect* customHitbox; /* optional custom rectangle */
+ /*0x08*/ Entity* entity;
+} InteractableObject;
+
+typedef struct {
+ /*0x00*/ u8 isUpdated;
+ /*0x01*/ u8 unused;
+ /*0x02*/ u8 kinstoneId;
+ /*0x03*/ u8 currentIndex; /* index of currentObject in candidate list, or 0xFF */
+ /*0x04*/ InteractableObject* currentObject;
+ /*0x08*/ InteractableObject
+ candidates[0x20]; /* contains the loaded NPCs, key doors, windcrests and other objects */
+} PossibleInteraction;
+
+static_assert(sizeof(PossibleInteraction) == 0x188);
+
+extern PossibleInteraction gPossibleInteraction;
+
typedef enum {
R_ACTION_NONE,
R_ACTION_CANCEL,
@@ -778,6 +820,8 @@ bool32 HasSwordEquipped();
u32 GetPlayerPalette(bool32 use);
void PlayerShrinkByRay(void);
+extern void InitPlayerMacro(PlayerMacroEntry*);
+
// player.s
extern u32 PlayerCheckNEastTile();
extern u32* DoTileInteractionHere(Entity*, u32);
@@ -786,6 +830,9 @@ extern void sub_08008AC6(Entity*);
extern void sub_08008926(Entity*);
extern void sub_08008AC6(Entity*);
extern void sub_08008AA0(Entity*);
+extern void sub_080085B0(Entity*);
+extern u32 sub_080086B4(u32, u32, const u8*);
+extern u16* DoTileInteraction(struct Entity_*, u32, u32, u32);
// zelda.c
void SetZeldaFollowTarget(Entity* target);
diff --git a/include/playeritem.h b/include/playeritem.h
index 3736cb31..40695872 100644
--- a/include/playeritem.h
+++ b/include/playeritem.h
@@ -1,6 +1,8 @@
#ifndef PLAYERITEM_H
#define PLAYERITEM_H
+#include "global.h"
+
typedef enum {
PLAYER_ITEM_NONE,
PLAYER_ITEM_SWORD,
@@ -29,4 +31,6 @@ typedef enum {
PLAYER_ITEM_CELL_OVERWRITE_SET2,
} PlayerItem;
+extern u32 sub_080040D8(struct Entity_*, u8*, s32, s32);
+
#endif // PLAYERITEM_H
diff --git a/include/room.h b/include/room.h
index 09d2b2fb..1802a934 100644
--- a/include/room.h
+++ b/include/room.h
@@ -3,7 +3,7 @@
#include "entity.h"
#include "droptables.h"
-#include "map.h"
+#include "transitions.h"
enum RoomTransition {
TRANSITION_DEFAULT,
@@ -189,20 +189,6 @@ static_assert(sizeof(RoomTransition) == 0xB0);
extern RoomTransition gRoomTransition;
typedef struct {
- u16 type;
- u8 field_0x2[4];
- s16 playerXPos;
- s16 playerYPos;
- u8 field_0xa;
- u8 area;
- u8 room;
- u8 playerLayer;
- u8 spawn_type;
- u8 playerState;
- u16 transitionSFX;
-} ScreenTransitionData;
-
-typedef struct {
u8 type;
u8 localFlag;
u8 _2;
@@ -246,11 +232,9 @@ Entity* LoadRoomEntity(const EntityData*);
void LoadRoomEntityList(const EntityData* listPtr);
void* GetRoomProperty(u32 area, u32 room, u32 property);
-bool32 LoadFixedGFX(Entity*, u32);
-void UnloadGFXSlots(Entity*);
void LoadSmallChestTile2(TileEntity*);
void sub_0804B0B0(u32 arg0, u32 arg1);
-void DoExitTransition(const ScreenTransitionData* data);
+void DoExitTransition(const Transition* data);
#endif // ROOM_H
diff --git a/include/save.h b/include/save.h
index bc966efc..6269380a 100644
--- a/include/save.h
+++ b/include/save.h
@@ -3,11 +3,22 @@
#include "global.h"
#include "player.h"
-#include "structures.h"
#include "room.h"
#define FILENAME_LENGTH 6
+typedef struct {
+ int signature;
+ u8 saveFileId;
+ u8 msg_speed;
+ u8 brightness;
+ u8 language;
+ u8 name[6];
+ u8 invalid;
+ u8 initialized;
+} SaveHeader;
+#define gSaveHeader ((SaveHeader*)(0x2000000))
+
typedef enum {
SAVE_BUSY = 0,
SAVE_OK = 1,
diff --git a/include/screen.h b/include/screen.h
index a1391401..fd0dd0b7 100644
--- a/include/screen.h
+++ b/include/screen.h
@@ -2,7 +2,6 @@
#define SCREEN_H
#include "global.h"
-#include "fade.h"
typedef struct {
/*0x00*/ u16 displayControl;
@@ -76,17 +75,6 @@ typedef struct {
// /*0x78*/ u32 _78;
} Screen;
-typedef struct {
- s16 x;
- s16 y;
- u16 _4;
- u16 _6;
- u16 _8;
-} OAMCommand;
-
extern Screen gScreen;
-extern OAMCommand gOamCmd;
-
-extern void sub_080ADA04(OAMCommand*, void*);
#endif // SCREEN_H
diff --git a/include/screenTransitions.h b/include/screenTransitions.h
index fa1d98b5..2a28b04f 100644
--- a/include/screenTransitions.h
+++ b/include/screenTransitions.h
@@ -1,37 +1,37 @@
#ifndef SCREENTRANSITIONS_H
#define SCREENTRANSITIONS_H
-#include "room.h"
+#include "transitions.h"
-extern const ScreenTransitionData* const gWallMasterScreenTransitions[];
-extern const ScreenTransitionData gUnk_0813AB58;
-extern const ScreenTransitionData gUnk_0813AB6C;
-extern const ScreenTransitionData gUnk_0813AB80;
-extern const ScreenTransitionData gUnk_0813AB94;
-extern const ScreenTransitionData gUnk_0813ABA8;
-extern const ScreenTransitionData gUnk_0813ABBC;
-extern const ScreenTransitionData gUnk_0813ABD0;
-extern const ScreenTransitionData gUnk_0813ABE4;
-extern const ScreenTransitionData gUnk_0813ABF8;
-extern const ScreenTransitionData gUnk_0813AC0C;
-extern const ScreenTransitionData gUnk_0813AC20;
-extern const ScreenTransitionData gUnk_0813AC34;
-extern const ScreenTransitionData gUnk_0813AC48;
-extern const ScreenTransitionData gUnk_0813AC5C;
-extern const ScreenTransitionData gUnk_0813AC70;
-extern const ScreenTransitionData gUnk_0813AC84;
-extern const ScreenTransitionData gUnk_0813AC98;
-extern const ScreenTransitionData gUnk_0813ACAC;
-extern const ScreenTransitionData gUnk_0813ACC0;
-extern const ScreenTransitionData gUnk_0813ACD4;
-extern const ScreenTransitionData gUnk_0813ACE8;
-extern const ScreenTransitionData gUnk_0813ACFC;
-extern const ScreenTransitionData gUnk_0813AD10; // w
-extern const ScreenTransitionData gUnk_0813AD24; // m
-extern const ScreenTransitionData gUnk_0813AD38; // l
-extern const ScreenTransitionData gUnk_0813AD4C;
-extern const ScreenTransitionData gUnk_0813AD60;
-extern const ScreenTransitionData gUnk_0813AD74;
-extern const ScreenTransitionData gUnk_0813AD88[];
-extern const ScreenTransitionData gUnk_0813ADEC[];
+extern const Transition* const gWallMasterScreenTransitions[];
+extern const Transition gUnk_0813AB58;
+extern const Transition gUnk_0813AB6C;
+extern const Transition gUnk_0813AB80;
+extern const Transition gUnk_0813AB94;
+extern const Transition gUnk_0813ABA8;
+extern const Transition gUnk_0813ABBC;
+extern const Transition gUnk_0813ABD0;
+extern const Transition gUnk_0813ABE4;
+extern const Transition gUnk_0813ABF8;
+extern const Transition gUnk_0813AC0C;
+extern const Transition gUnk_0813AC20;
+extern const Transition gUnk_0813AC34;
+extern const Transition gUnk_0813AC48;
+extern const Transition gUnk_0813AC5C;
+extern const Transition gUnk_0813AC70;
+extern const Transition gUnk_0813AC84;
+extern const Transition gUnk_0813AC98;
+extern const Transition gUnk_0813ACAC;
+extern const Transition gUnk_0813ACC0;
+extern const Transition gUnk_0813ACD4;
+extern const Transition gUnk_0813ACE8;
+extern const Transition gUnk_0813ACFC;
+extern const Transition gUnk_0813AD10; // w
+extern const Transition gUnk_0813AD24; // m
+extern const Transition gUnk_0813AD38; // l
+extern const Transition gUnk_0813AD4C;
+extern const Transition gUnk_0813AD60;
+extern const Transition gUnk_0813AD74;
+extern const Transition gUnk_0813AD88[];
+extern const Transition gUnk_0813ADEC[];
#endif // SCREENTRANSITIONS_H
diff --git a/include/script.h b/include/script.h
index 6a0688d6..de391faf 100644
--- a/include/script.h
+++ b/include/script.h
@@ -64,4 +64,7 @@ void ExecuteScriptAndHandleAnimation(Entity* entity, void (*postScriptCallback)(
ScriptExecutionContext* CreateScriptExecutionContext(void);
void InitScriptForEntity(Entity* entity, ScriptExecutionContext* context, Script* script);
+extern u32 ResolveCollisionLayer(struct Entity_*);
+extern void UpdateCollisionLayer(struct Entity_*);
+
#endif // SCRIPT_H
diff --git a/include/scroll.h b/include/scroll.h
index 3f6d47b4..486814f2 100644
--- a/include/scroll.h
+++ b/include/scroll.h
@@ -2,8 +2,21 @@
#define SCROLL_H
#include "global.h"
+#include "transitions.h"
+
+typedef struct {
+ u16 unk_00;
+ u8 unk_02[0xE];
+} struct_02034480;
+extern struct_02034480 gUnk_02034480;
+
+extern bool32 DoApplicableTransition(u32, u32, u32, u32);
+extern void DoExitTransitionWithType(const Transition* screenTransition, u32 transitionType);
void UpdateIsDiggingCave(void);
void sub_08080930(u32);
+extern void sub_080809D4(void);
+extern void sub_08080CB4(struct Entity_*);
+
#endif // SCROLL_H
diff --git a/include/structures.h b/include/structures.h
index 97233eea..811bae31 100644
--- a/include/structures.h
+++ b/include/structures.h
@@ -2,306 +2,6 @@
#define STRUCTURES_H
#include "global.h"
-#include "entity.h"
-#include "player.h"
-
-typedef struct {
- int signature;
- u8 saveFileId;
- u8 msg_speed;
- u8 brightness;
- u8 language;
- u8 name[6];
- u8 invalid;
- u8 initialized;
-} SaveHeader;
-#define gSaveHeader ((SaveHeader*)(0x2000000))
-
-typedef struct {
- u8 unk_00;
- u8 unk_01;
- u8 unk_02[0xE];
-} struct_02000040;
-
-extern struct_02000040 gUnk_02000040;
-
-typedef struct {
- s32 signature;
- u8 field_0x4;
- u8 listenForKeyPresses;
- u8 field_0x6;
- u8 field_0x7;
- u8 pad[24];
-} struct_02000010;
-static_assert(sizeof(struct_02000010) == 0x20);
-
-extern struct_02000010 gUnk_02000010;
-
-typedef struct {
- u8 unk0;
- u8 unk1;
- u16 unk2;
-} struct_020354C0;
-extern struct_020354C0 gUnk_020354C0[0x20];
-
-#define MAX_UI_ELEMENTS 24
-
-typedef enum {
- UI_ELEMENT_BUTTON_A,
- UI_ELEMENT_BUTTON_B,
- UI_ELEMENT_BUTTON_R,
- UI_ELEMENT_ITEM_A,
- UI_ELEMENT_ITEM_B,
- UI_ELEMENT_TEXT_R,
- UI_ELEMENT_HEART,
- UI_ELEMENT_EZLONAGSTART,
- UI_ELEMENT_EZLONAGACTIVE,
- UI_ELEMENT_TEXT_A,
- UI_ELEMENT_TEXT_B
-} UIElementType;
-
-/**
- * @brief Floating UI element
- */
-typedef struct {
- u8 used : 1;
- u8 unk_0_1 : 1;
- u8 unk_0_2 : 2; // Load data into VRAM? 0: do not load, 1: ready to load 2: loaded
- u8 unk_0_4 : 4;
- u8 type; /**< @see UIElementType */
- u8 type2; // Subtype
- u8 buttonElementId; /**< Id of the button UI element this text is attached to */
- u8 action;
- u8 unk_5;
- u8 unk_6;
- u8 unk_7;
- u8 unk_8;
- u8 unk_9[3];
- u16 x;
- u16 y;
- u8 frameIndex;
- u8 duration;
- u8 spriteSettings;
- u8 frameSettings;
- Frame* framePtr;
- u8 unk_18;
- u8 numTiles;
- u16 unk_1a; // TODO oam id? VRAM target (element->unk_1a * 0x20 + 0x6010000)
- u32* firstTile;
-} UIElement;
-
-typedef enum {
- HUD_HIDE_NONE,
- HUD_HIDE_1 = 0x1, // A
- HUD_HIDE_2 = 0x2, // B
- HUD_HIDE_4 = 0x4, // R
- HUD_HIDE_8 = 0x8,
- HUD_HIDE_HEARTS = 0x10,
- HUD_HIDE_CHARGE_BAR = 0x20,
- HUD_HIDE_RUPEES = 0x40,
- HUD_HIDE_KEYS = 0x80,
-
- HUD_HIDE_ALL = 0xff
-} HUDHideFlags;
-
-typedef struct {
- u8 unk_0;
- u8 hideFlags;
- u8 unk_2;
- u8 health;
- u8 maxHealth;
- u8 unk_5;
- u8 unk_6;
- u8 unk_7;
- u8 unk_8;
- u8 unk_9;
- u8 unk_a;
- u8 unk_b;
- u8 unk_c;
- u8 unk_d;
- u16 rupees;
- u8 unk_10; // TODO drawing keys dirty flag or something?
- u8 unk_11;
- u8 dungeonKeys;
- s8 unk_13;
- s8 unk_14;
- u8 unk_15;
- u16 buttonX[3]; /**< X coordinates for the button UI elements */
- u16 buttonY[3]; /**< Y coordinates for the button UI elements */
- u8 filler22[0x2];
- u8 ezloNagFuncIndex;
- u8 filler25[7];
- u8 rActionInteractObject; // used as R button UI frame index
- u8 rActionInteractTile;
- u8 rActionGrabbing;
- u8 rActionPlayerState; // if not 0, overrides other R actions
- u8 buttonText[3];
- u8 unk_33;
- UIElement elements[MAX_UI_ELEMENTS];
-} HUD;
-extern HUD gHUD;
-
-#define MAX_GFX_SLOTS 44
-
-typedef enum {
- GFX_SLOT_FREE,
- GFX_SLOT_UNLOADED, // some sort of free? no longer in use?
- GFX_SLOT_STATUS2, // some sort of free?
- GFX_SLOT_FOLLOWER, // Set by SetGFXSlotStatus for the following slots
- GFX_SLOT_RESERVED, // maybe ready to be loaded?
- GFX_SLOT_GFX,
- GFX_SLOT_PALETTE
-} GfxSlotStatus;
-
-typedef enum {
- GFX_VRAM_0,
- GFX_VRAM_1, // uploaded to vram?
- GFX_VRAM_2,
- GFX_VRAM_3, // not yet uploaded to vram?
-} GfxSlotVramStatus;
-
-typedef struct {
- /*0x00*/ u8 status : 4;
- /*0x00*/ u8 vramStatus : 4; // Whether the gfx was uploaded to the vram?
- /*0x01*/ u8 slotCount;
- /*0x02*/ u8 referenceCount; /**< How many entities use this gfx slot */
- /*0x03*/ u8 unk_3;
- /*0x04*/ u16 gfxIndex;
- /*0x06*/ u16 paletteIndex;
- /*0x08*/ const void* palettePointer;
-} GfxSlot;
-
-typedef struct {
- /*0x00*/ u8 unk0;
- /*0x01*/ u8 unk_1;
- /*0x02*/ u8 unk_2;
- /*0x03*/ u8 unk_3;
- /*0x04*/ GfxSlot slots[MAX_GFX_SLOTS];
-} GfxSlotList;
-extern GfxSlotList gGFXSlots;
-
-static_assert(sizeof(GfxSlotList) == 0x214);
-
-typedef struct {
- u16 unk_00;
- u8 unk_02[0xE];
-} struct_02034480;
-extern struct_02034480 gUnk_02034480;
-
-extern u16 gBG0Buffer[0x400];
-extern u16 gBG1Buffer[0x400];
-extern u16 gBG2Buffer[0x400];
-extern u16 gBG3Buffer[0x800];
-
-typedef enum { ACTIVE_ITEM_0, ACTIVE_ITEM_1, ACTIVE_ITEM_2, ACTIVE_ITEM_LANTERN, MAX_ACTIVE_ITEMS } ActiveItemIndex;
-/**
- * Currently active items.
- * 0: Active items?
- * 1: Boots, Cape
- * 2: would be used by CreateItem1 if gActiveItems[1] was already filled
- * 3: Lamp
- */
-extern ItemBehavior gActiveItems[MAX_ACTIVE_ITEMS];
-static_assert(sizeof(gActiveItems) == 0x70);
-
-typedef struct {
- u8 event_priority; // system requested priority
- u8 ent_priority; // entity requested priority
- u8 queued_priority;
- u8 queued_priority_reset;
- Entity* requester;
- u16 priority_timer;
-} PriorityHandler;
-extern PriorityHandler gPriorityHandler;
-
-typedef struct {
- u8 disabled;
- u8 screen;
- u8 unk2[0xf]; // cursor positions on the different screens
- u8 unk11;
- u8 unk12;
- u8 unk13;
- s8 screen2;
- u8 unk15;
- s8 unk16;
- u8 unk17;
-} PauseMenuOptions;
-
-extern PauseMenuOptions gPauseMenuOptions;
-static_assert(sizeof(PauseMenuOptions) == 0x18);
-
-typedef struct {
- u8 unk00 : 1;
- u8 unk01 : 3;
- u8 unk04 : 4;
- u8 unk1;
- u8 charColor;
- u8 bgColor;
- u16 unk4;
- u16 unk6;
- void* unk8;
-} WStruct;
-
-static_assert(sizeof(WStruct) == 12);
-
-typedef struct {
- u8 unk0;
- u8 unk1;
- u16 unk2;
- u8 unk4;
- u8 unk5;
- u8 unk6;
- u8 unk7;
-} OAMObj;
-
-typedef struct {
- u8 field_0x0;
- u8 field_0x1;
- u8 spritesOffset;
- u8 updated;
- u16 _4;
- u16 _6;
- u8 _0[0x18];
- struct OamData oam[0x80];
- OAMObj unk[0xA0]; /* todo: affine */
-} OAMControls;
-extern OAMControls gOAMControls;
-
-typedef struct {
- union SplitWord _0;
- union SplitWord _4;
-} struct_020227E8;
-
-typedef struct {
- s8 x;
- s8 y;
- s8 width;
- s8 height;
-} Rect;
-
-typedef struct {
- /*0x00*/ u8 ignoreLayer; /* if bit 0 set, skip layer check for collision */
- /*0x01*/ u8 type;
- /*0x02*/ u8 interactDirections; /* lower 4 bits determine Link's allowed facing directions to interact, 0 to allow
- (0000WSEN) */
- /*0x03*/ u8 kinstoneId;
- /*0x04*/ const Rect* customHitbox; /* optional custom rectangle */
- /*0x08*/ Entity* entity;
-} InteractableObject;
-
-typedef struct {
- /*0x00*/ u8 isUpdated;
- /*0x01*/ u8 unused;
- /*0x02*/ u8 kinstoneId;
- /*0x03*/ u8 currentIndex; /* index of currentObject in candidate list, or 0xFF */
- /*0x04*/ InteractableObject* currentObject;
- /*0x08*/ InteractableObject
- candidates[0x20]; /* contains the loaded NPCs, key doors, windcrests and other objects */
-} PossibleInteraction;
-
-static_assert(sizeof(PossibleInteraction) == 0x188);
-
-extern PossibleInteraction gPossibleInteraction;
typedef struct {
u8 numTiles;
@@ -316,83 +16,11 @@ typedef struct {
u32 pad;
} SpritePtr;
-extern SpritePtr gSpritePtrs[];
-
-typedef struct {
- u16* dest;
- void* gfx_dest;
- void* buffer_loc;
- u32 _c;
- u16 gfx_src;
- u8 width;
- u8 right_align : 1;
- u8 sm_border : 1;
- u8 unused : 1;
- u8 draw_border : 1;
- u8 border_type : 4;
- u8 fill_type;
- u8 charColor;
- u8 _16;
- u8 stylized;
-} Font;
-
-typedef struct {
- u8 unk_0;
- u8 unk_1;
- u8 unk_2[2];
- u16 unk_4;
- u8 filler[12];
- Entity* unk_14;
- u8 unk_18;
- u8 unk_19;
- u8 unk_1a;
- u8 unk_1b;
-} struct_02018EB0;
-
-extern struct_02018EB0 gUnk_02018EB0;
-
-typedef struct {
- s16 tileIndex;
- s16 tilePosOffset;
-} TileData;
-
-typedef struct {
- /*0x00*/ bool8 isOnlyActiveFirstFrame; /**< Is the behavior for this item only created on the first frame */
- /*0x01*/ u8 priority;
- /*0x02*/ u8 createFunc;
- /*0x03*/ u8 playerItemId; /**< Id for the corresponsing PlayerItem. */
- /*0x04*/ u16 frameIndex;
- /*0x06*/ u8 animPriority;
- /*0x07*/ bool8 isChangingAttackStatus;
- /*0x08*/ bool8 isUseableAsMinish;
- /*0x09*/ u8 pad[3];
-} ItemDefinition;
-
-static_assert(sizeof(ItemDefinition) == 0xc);
+extern const SpritePtr gSpritePtrs[];
typedef struct {
u8 frame;
u8 frameIndex;
} PACKED FrameStruct;
-typedef struct {
- /*0x0*/ u8 menuType;
- /*0x1*/ u16 font;
- /*0x3*/ u8 unk_3; // TODO padding?
- /*0x4*/ u16 transitionTimer;
- /*0x6*/ u16 gfxEntry;
- /*0x8*/ u16 bg2XOffset;
- /*0xa*/ u16 sm_unk_14;
-} PACKED StaffrollEntry;
-
-static_assert(sizeof(StaffrollEntry) == 0xc);
-
-typedef struct {
- u8 paletteGroup;
- u8 gfxGroup;
-} PACKED StaffrollGfxEntry;
-
-extern const u8 gGlobalGfxAndPalettes[];
-extern u32 gUsedPalettes;
-
#endif // STRUCTURES_H
diff --git a/include/subtask.h b/include/subtask.h
index e1d98a16..c1c4894f 100644
--- a/include/subtask.h
+++ b/include/subtask.h
@@ -95,7 +95,7 @@ u32 sub_080A6F40();
s32 sub_080A69E0();
const OverworldLocation* GetOverworldLocation(u32 x, u32 y);
void sub_080A6498(void);
-void sub_080A71F4(const ScreenTransitionData* exitTransition);
+void sub_080A71F4(const Transition* exitTransition);
void sub_080A6F6C(u32 textIndexOrPtr);
typedef struct {
@@ -117,4 +117,7 @@ extern const struct_gUnk_08128E94 gUnk_08128E94[];
#define DRAW_DIRECT_SPRITE_INDEX 0x1fb
#endif
+extern void MenuFadeIn(u32, u32);
+extern void sub_080A71C4(u32, u32, u32, u32);
+
#endif // SUBTASK_H
diff --git a/include/transitions.h b/include/transitions.h
index 3da9d77e..dd4dfc30 100644
--- a/include/transitions.h
+++ b/include/transitions.h
@@ -7,7 +7,9 @@
typedef enum {
WARP_TYPE_BORDER,
WARP_TYPE_AREA,
- WARP_TYPE_END_OF_LIST = -1,
+ WARP_TYPE_BORDER2,
+ WARP_TYPE_AREA2,
+ WARP_TYPE_END_OF_LIST = 0xffff,
} WarpType;
typedef enum {
@@ -26,9 +28,28 @@ typedef enum {
TRANSITION_TYPE_FLY_IN,
} TransitionType;
+typedef enum {
+ TRANSITION_SHAPE_AREA_12x12,
+ TRANSITION_SHAPE_AREA_12x28,
+ TRANSITION_SHAPE_AREA_28x12,
+ TRANSITION_SHAPE_AREA_44x12,
+
+ TRANSITION_SHAPE_BORDER_NORTH_WEST = 0x01,
+ TRANSITION_SHAPE_BORDER_NORTH_EAST = 0x02,
+ TRANSITION_SHAPE_BORDER_NORTH = 0x03,
+ TRANSITION_SHAPE_BORDER_EAST_NORTH = 0x04,
+ TRANSITION_SHAPE_BORDER_EAST_SOUTH = 0x08,
+ TRANSITION_SHAPE_BORDER_EAST = 0x0c,
+ TRANSITION_SHAPE_BORDER_SOUTH_WEST = 0x10,
+ TRANSITION_SHAPE_BORDER_SOUTH_EAST = 0x20,
+ TRANSITION_SHAPE_BORDER_SOUTH = 0x30,
+ TRANSITION_SHAPE_BORDER_WEST_NORTH = 0x40,
+ TRANSITION_SHAPE_BORDER_WEST_SOUTH = 0x80,
+ TRANSITION_SHAPE_BORDER_WEST = 0xc0,
+} TransitionShape;
+
typedef struct Transition {
- WarpType warp_type : 8;
- u8 subtype;
+ u16 warp_type; /**< @see WarpType */
u16 startX;
u16 startY;
u16 endX;
@@ -36,11 +57,10 @@ typedef struct Transition {
u8 shape;
u8 area;
RoomID room : 8;
- u8 height;
+ u8 layer;
TransitionType transition_type : 8;
u8 facing_direction; // 0-4
- u8 unk0;
- u8 unk1;
+ u16 transitionSFX;
u8 unk2;
u8 unk3;
} Transition;
diff --git a/include/ui.h b/include/ui.h
index 2a4994ee..77c27f4a 100644
--- a/include/ui.h
+++ b/include/ui.h
@@ -2,8 +2,107 @@
#define UI_H
#include "global.h"
+#include "sprite.h"
+
+#define MAX_UI_ELEMENTS 24
+
+typedef enum {
+ UI_ELEMENT_BUTTON_A,
+ UI_ELEMENT_BUTTON_B,
+ UI_ELEMENT_BUTTON_R,
+ UI_ELEMENT_ITEM_A,
+ UI_ELEMENT_ITEM_B,
+ UI_ELEMENT_TEXT_R,
+ UI_ELEMENT_HEART,
+ UI_ELEMENT_EZLONAGSTART,
+ UI_ELEMENT_EZLONAGACTIVE,
+ UI_ELEMENT_TEXT_A,
+ UI_ELEMENT_TEXT_B
+} UIElementType;
+
+/**
+ * @brief Floating UI element
+ */
+typedef struct {
+ u8 used : 1;
+ u8 unk_0_1 : 1;
+ u8 unk_0_2 : 2; // Load data into VRAM? 0: do not load, 1: ready to load 2: loaded
+ u8 unk_0_4 : 4;
+ u8 type; /**< @see UIElementType */
+ u8 type2; // Subtype
+ u8 buttonElementId; /**< Id of the button UI element this text is attached to */
+ u8 action;
+ u8 unk_5;
+ u8 unk_6;
+ u8 unk_7;
+ u8 unk_8;
+ u8 unk_9[3];
+ u16 x;
+ u16 y;
+ u8 frameIndex;
+ u8 duration;
+ u8 spriteSettings;
+ u8 frameSettings;
+ Frame* framePtr;
+ u8 unk_18;
+ u8 numTiles;
+ u16 unk_1a; // TODO oam id? VRAM target (element->unk_1a * 0x20 + 0x6010000)
+ u32* firstTile;
+} UIElement;
+
+typedef enum {
+ HUD_HIDE_NONE,
+ HUD_HIDE_1 = 0x1, // A
+ HUD_HIDE_2 = 0x2, // B
+ HUD_HIDE_4 = 0x4, // R
+ HUD_HIDE_8 = 0x8,
+ HUD_HIDE_HEARTS = 0x10,
+ HUD_HIDE_CHARGE_BAR = 0x20,
+ HUD_HIDE_RUPEES = 0x40,
+ HUD_HIDE_KEYS = 0x80,
+
+ HUD_HIDE_ALL = 0xff
+} HUDHideFlags;
+
+typedef struct {
+ u8 unk_0;
+ u8 hideFlags;
+ u8 unk_2;
+ u8 health;
+ u8 maxHealth;
+ u8 unk_5;
+ u8 unk_6;
+ u8 unk_7;
+ u8 unk_8;
+ u8 unk_9;
+ u8 unk_a;
+ u8 unk_b;
+ u8 unk_c;
+ u8 unk_d;
+ u16 rupees;
+ u8 unk_10; // TODO drawing keys dirty flag or something?
+ u8 unk_11;
+ u8 dungeonKeys;
+ s8 unk_13;
+ s8 unk_14;
+ u8 unk_15;
+ u16 buttonX[3]; /**< X coordinates for the button UI elements */
+ u16 buttonY[3]; /**< Y coordinates for the button UI elements */
+ u8 filler22[0x2];
+ u8 ezloNagFuncIndex;
+ u8 filler25[7];
+ u8 rActionInteractObject; // used as R button UI frame index
+ u8 rActionInteractTile;
+ u8 rActionGrabbing;
+ u8 rActionPlayerState; // if not 0, overrides other R actions
+ u8 buttonText[3];
+ u8 unk_33;
+ UIElement elements[MAX_UI_ELEMENTS];
+} HUD;
+extern HUD gHUD;
extern void DrawUIElements(void);
+extern void UpdateUIElements(void);
extern void CreateUIElement(u32, u32);
extern void sub_0801C2F0(u32, u32);
extern void sub_0801C25C(void);
diff --git a/include/vram.h b/include/vram.h
new file mode 100644
index 00000000..26fa4412
--- /dev/null
+++ b/include/vram.h
@@ -0,0 +1,81 @@
+#ifndef VRAM_H
+#define VRAM_H
+
+#include "global.h"
+#include "entity.h"
+
+#define MAX_GFX_SLOTS 44
+
+typedef enum {
+ GFX_SLOT_FREE,
+ GFX_SLOT_UNLOADED, // some sort of free? no longer in use?
+ GFX_SLOT_STATUS2, // some sort of free?
+ GFX_SLOT_FOLLOWER, // Set by SetGFXSlotStatus for the following slots
+ GFX_SLOT_RESERVED, // maybe ready to be loaded?
+ GFX_SLOT_GFX,
+ GFX_SLOT_PALETTE
+} GfxSlotStatus;
+
+typedef enum {
+ GFX_VRAM_0,
+ GFX_VRAM_1, // uploaded to vram?
+ GFX_VRAM_2,
+ GFX_VRAM_3, // not yet uploaded to vram?
+} GfxSlotVramStatus;
+
+typedef struct {
+ /*0x00*/ u8 status : 4;
+ /*0x00*/ u8 vramStatus : 4; // Whether the gfx was uploaded to the vram?
+ /*0x01*/ u8 slotCount;
+ /*0x02*/ u8 referenceCount; /**< How many entities use this gfx slot */
+ /*0x03*/ u8 unk_3;
+ /*0x04*/ u16 gfxIndex;
+ /*0x06*/ u16 paletteIndex;
+ /*0x08*/ const void* palettePointer;
+} GfxSlot;
+
+typedef struct {
+ /*0x00*/ u8 unk0;
+ /*0x01*/ u8 unk_1;
+ /*0x02*/ u8 unk_2;
+ /*0x03*/ u8 unk_3;
+ /*0x04*/ GfxSlot slots[MAX_GFX_SLOTS];
+} GfxSlotList;
+extern GfxSlotList gGFXSlots;
+
+static_assert(sizeof(GfxSlotList) == 0x214);
+
+extern bool32 LoadFixedGFX(Entity*, u32);
+extern bool32 LoadSwapGFX(Entity*, u32, u32);
+extern void UnloadGFXSlots(Entity*);
+extern void sub_080ADD70(void);
+
+extern u16 gBG0Buffer[0x400];
+extern u16 gBG1Buffer[0x400];
+extern u16 gBG2Buffer[0x400];
+extern u16 gBG3Buffer[0x800];
+
+typedef struct {
+ u8 unk0;
+ u8 unk1;
+ u16 unk2;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ u8 unk7;
+} OAMObj;
+
+typedef struct {
+ u8 field_0x0;
+ u8 field_0x1;
+ u8 spritesOffset;
+ u8 updated;
+ u16 _4;
+ u16 _6;
+ u8 _0[0x18];
+ struct OamData oam[0x80];
+ OAMObj unk[0xA0]; /* todo: affine */
+} OAMControls;
+extern OAMControls gOAMControls;
+
+#endif // VRAM_H
diff --git a/linker.ld b/linker.ld
index d06a86b0..c4e15128 100644
--- a/linker.ld
+++ b/linker.ld
@@ -1145,6 +1145,7 @@ SECTIONS {
src/manager/templeOfDropletsManager.o(.rodata);
src/manager/fallingItemManager.o(.rodata);
src/manager/cloudOverlayManager.o(.rodata);
+ src/manager/holeManager.o(.rodata);
data/const/manager/holeManager.o(.rodata);
src/manager/staticBackgroundManager.o(.rodata);
src/manager/rainfallManager.o(.rodata);
diff --git a/src/affine.c b/src/affine.c
index 04c0be86..cf14f46b 100644
--- a/src/affine.c
+++ b/src/affine.c
@@ -1,8 +1,7 @@
+#include "affine.h"
#include "global.h"
-#include "structures.h"
#include "main.h"
#include "room.h"
-#include "screen.h"
extern u32 gFrameObjLists[];
diff --git a/src/backgroundAnimations.c b/src/backgroundAnimations.c
index c944b205..f32770b3 100644
--- a/src/backgroundAnimations.c
+++ b/src/backgroundAnimations.c
@@ -8,7 +8,8 @@
#include "asm.h"
#include "assets/gfx_offsets.h"
#include "common.h"
-#include "functions.h"
+#include "gfx.h"
+#include "fade.h"
void LoadBgAnimationGfx(const BgAnimationGfx*);
u32 GetBgAnimationTimer(const s32*);
diff --git a/src/beanstalkSubtask.c b/src/beanstalkSubtask.c
index 9da2f7eb..c18bd945 100644
--- a/src/beanstalkSubtask.c
+++ b/src/beanstalkSubtask.c
@@ -4,7 +4,6 @@
#include "collision.h"
#include "common.h"
#include "fade.h"
-#include "functions.h"
#include "game.h"
#include "item.h"
#include "main.h"
@@ -12,10 +11,16 @@
#include "manager/diggingCaveEntranceManager.h"
#include "menu.h"
#include "object.h"
+#include "asm.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
#include "screen.h"
#include "scroll.h"
-#include "structures.h"
#include "tiles.h"
+#include "affine.h"
+#include "subtask.h"
+#include "ui.h"
extern void sub_0807C898(void);
extern void sub_0805BB74(s32);
@@ -63,7 +68,7 @@ extern void sub_0804B388(u32 a1, u32 a2);
extern u32 sub_080A7CFC(u32 a1, u32 tmp); // TODO does this really have a second param?
extern void OpenSmallChest(u32 pos, u32 layer);
extern bool32 sub_08079778();
-extern Transition* sub_08080734(u32, u32);
+extern Transition* FindApplicableAreaTransition(u32, u32);
extern const s16 gUnk_080B4490[];
extern const s16 gUnk_080B4468[];
@@ -206,8 +211,8 @@ u32 UpdatePlayerCollision(void) {
gPlayerEntity.base.collisionLayer) == COLLISION_DATA_255) {
if ((((gPlayerState.flags & (PL_FLAGS10000 | PL_FLAGS2)) != 0) ||
((gPlayerState.sword_state & 0x10) != 0)) ||
- ((sub_080806BC(gPlayerEntity.base.x.HALF.HI - gRoomControls.origin_x,
- gPlayerEntity.base.y.HALF.HI - gRoomControls.origin_y, index, 5) == 0 &&
+ ((DoApplicableTransition(gPlayerEntity.base.x.HALF.HI - gRoomControls.origin_x,
+ gPlayerEntity.base.y.HALF.HI - gRoomControls.origin_y, index, 5) == 0 &&
(((gPlayerState.heldObject != 0 || ((gPlayerState.gustJarState & 0xf) != 0)) ||
(sub_0807BD14(&gPlayerEntity.base, index) == 0)))))) {
return 3;
@@ -269,8 +274,9 @@ u32 UpdatePlayerCollision(void) {
}
ptr1 = &gUnk_080B4478[gPlayerEntity.base.animationState & 6];
- transition = sub_08080734((gPlayerEntity.base.x.HALF.HI - gRoomControls.origin_x) + ptr1[0],
- (gPlayerEntity.base.y.HALF.HI - gRoomControls.origin_y) + ptr1[1]);
+ transition =
+ FindApplicableAreaTransition((gPlayerEntity.base.x.HALF.HI - gRoomControls.origin_x) + ptr1[0],
+ (gPlayerEntity.base.y.HALF.HI - gRoomControls.origin_y) + ptr1[1]);
if (transition == NULL) {
return 0;
}
diff --git a/src/code_08049CD4.c b/src/code_08049CD4.c
index 077c5745..c0ddc189 100644
--- a/src/code_08049CD4.c
+++ b/src/code_08049CD4.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "room.h"
#include "enemy.h"
+#include "common.h"
extern void MemFill32(u32, void*, u32);
diff --git a/src/code_08049DF4.c b/src/code_08049DF4.c
index 2852df19..02200846 100644
--- a/src/code_08049DF4.c
+++ b/src/code_08049DF4.c
@@ -1,7 +1,7 @@
#include "asm.h"
#include "global.h"
#include "entity.h"
-#include "functions.h"
+
#include "map.h"
#include "player.h"
#include "room.h"
diff --git a/src/code_0805EC04.c b/src/code_0805EC04.c
index 09b0c6dd..2adb5251 100644
--- a/src/code_0805EC04.c
+++ b/src/code_0805EC04.c
@@ -2,7 +2,7 @@
#include "entity.h"
#include "player.h"
#include "room.h"
-#include "structures.h"
+#include "vram.h"
const u8 gUnk_08109202[] = {
255, 8, 24, 255, 0, 4, 28, 255, 16, 12, 20, 255, 255, 255, 255, 255, 0, 0,
diff --git a/src/collision.c b/src/collision.c
index a13d28cf..8f063d14 100644
--- a/src/collision.c
+++ b/src/collision.c
@@ -2,12 +2,13 @@
#include "collision.h"
#include "common.h"
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "entity.h"
-#include "functions.h"
-#include "game.h"
#include "global.h"
#include "item.h"
#include "object.h"
+#include "physics.h"
#include "player.h"
#include "save.h"
#include "tiles.h"
diff --git a/src/color.c b/src/color.c
index 26afadf3..7f1b8e97 100644
--- a/src/color.c
+++ b/src/color.c
@@ -3,14 +3,13 @@
#include "common.h"
#include "color.h"
#include "room.h"
-#include "global.h"
-#include "fileselect.h"
#include "main.h"
-#include "physics.h"
+#include "gfx.h"
+#include "fade.h"
extern Palette gUnk_02001A3C;
-void LoadObjPaletteAtIndex(u32 a1, u32 a2);
+void LoadObjPaletteAtIndex(u32 a1, u32 paletteIndex);
void CleanUpObjPalettes();
u32 FindFreeObjPalette(u32);
void SetEntityObjPalette(Entity*, s32);
@@ -237,21 +236,21 @@ void ChangeObjPalette(Entity* entity, u32 objPaletteId) {
LoadObjPalette(entity, objPaletteId);
}
-void LoadObjPaletteAtIndex(u32 objPaletteId, u32 a2) {
+void LoadObjPaletteAtIndex(u32 objPaletteId, u32 paletteIndex) {
u16* buffer;
- gUsedPalettes |= 1 << (a2 + 16);
+ USE_PALETTE(paletteIndex + 16);
if (objPaletteId > 5) {
if (objPaletteId == 0x15) {
buffer = gPaletteBuffer;
- MemFill16(buffer[0x3C], buffer + (a2 + 16) * 16, 0x20);
+ MemFill16(buffer[0x3C], buffer + (paletteIndex + 16) * 16, 0x20);
} else if (objPaletteId < 0x15) {
- LoadPalettes((u8*)(gPaletteBuffer + (objPaletteId - 6) * 16), a2 + 16, 1);
+ LoadPalettes((u8*)(gPaletteBuffer + (objPaletteId - 6) * 16), paletteIndex + 16, 1);
} else {
u32 offset = gUnk_08133368[(objPaletteId - 0x16)].WORD_U;
u32 numPalettes = (offset >> 0x18) & 0xf;
offset &= 0xffffff;
- LoadPalettes(gGlobalGfxAndPalettes + offset, a2 + 16, numPalettes);
+ LoadPalettes(&gGlobalGfxAndPalettes[offset], paletteIndex + 16, numPalettes);
}
}
}
diff --git a/src/common.c b/src/common.c
index 8c863d85..0cb0da73 100644
--- a/src/common.c
+++ b/src/common.c
@@ -1,10 +1,11 @@
#include "common.h"
#include "assets/map_offsets.h"
+#include "assets/gfx_offsets.h"
#include "area.h"
#include "asm.h"
#include "flags.h"
-#include "functions.h"
+#include "physics.h"
#include "game.h"
#include "global.h"
#include "item.h"
@@ -15,7 +16,8 @@
#include "save.h"
#include "screen.h"
#include "sound.h"
-#include "structures.h"
+#include "subtask.h"
+#include "fade.h"
extern u8 gUnk_03003DE0;
extern u8 gzHeap[0x1000];
@@ -97,9 +99,7 @@ typedef struct {
u8 y;
} PACKED DungeonMapObject;
-// More like PrepareTileEntitesForDungeonMap or so
-
-u32 DecToHex(u32 value) {
+u32 EncodeBCD(u32 value) {
u32 result;
FORCE_REGISTER(u32 r1, r1);
@@ -244,7 +244,7 @@ void LoadPalettes(const u8* src, s32 destPaletteNum, s32 numPalettes) {
u32 size = numPalettes * 32;
u32 usedPalettesMask = 1 << destPaletteNum;
while (--numPalettes > 0) {
- usedPalettesMask |= (usedPalettesMask << 1);
+ usedPalettesMask |= usedPalettesMask << 1;
}
gUsedPalettes |= usedPalettesMask;
dest = &gPaletteBuffer[destPaletteNum * 16];
@@ -253,7 +253,7 @@ void LoadPalettes(const u8* src, s32 destPaletteNum, s32 numPalettes) {
void SetColor(u32 colorIndex, u32 color) {
gPaletteBuffer[colorIndex] = color;
- gUsedPalettes |= 1 << (colorIndex / 16);
+ USE_PALETTE(colorIndex / 16);
}
void SetFillColor(u32 color, u32 disable_layers) {
@@ -596,7 +596,7 @@ void sub_0801DD58(u32 area, u32 room) {
}
void LoadDungeonMap(void) {
- LoadResourceAsync(gDungeonMap, 0x6006000, sizeof(gDungeonMap));
+ LoadResourceAsync(gDungeonMap, BG_SCREEN_ADDR(12), sizeof(gDungeonMap));
}
void DrawDungeonFeatures(u32 floor, void* data, u32 size) {
@@ -1923,19 +1923,23 @@ const KinstoneWorldEvent gKinstoneWorldEvents[] = {
#endif
// For sub_080A4418
-// TODO these are gGlobalGfxAndPalettes offsets with the size of 0x80
-#ifdef EU
-const u32 gUnk_080CA06C[] = { 139744, 139744, 140256, 140768, 141280, 141792, 142304, 142816, 143840, 144864, 145888,
- 146912, 147936, 148960, 149984, 151008, 152032, 153056, 154080, 155104, 156128, 157152,
- 158176, 159200, 160224, 161248, 143328, 144352, 145376, 146400, 147424, 148448, 149472,
- 150496, 151520, 152544, 153568, 154592, 155616, 156640, 157664, 158688, 159712, 160736 };
-#else
-const u32 gUnk_080CA06C[] = { 139808, 139808, 140320, 140832, 141344, 141856, 142368, 142880, 143904, 144928, 145952,
- 146976, 148000, 149024, 150048, 151072, 152096, 153120, 154144, 155168, 156192, 157216,
- 158240, 159264, 160288, 161312, 143392, 144416, 145440, 146464, 147488, 148512, 149536,
- 150560, 151584, 152608, 153632, 154656, 155680, 156704, 157728, 158752, 159776, 160800 };
-#endif
-
+const u32 gUnk_080CA06C[] = {
+ offset_gUnk_data3_085C4FE0 + 0xC0, offset_gUnk_data3_085C4FE0 + 0xC0, offset_gUnk_data3_085C4FE0 + 0x2C0,
+ offset_gUnk_data3_085C4FE0 + 0x4C0, offset_gUnk_data3_085C4FE0 + 0x6C0, offset_gUnk_data3_085C4FE0 + 0x8C0,
+ offset_gUnk_data3_085C4FE0 + 0xAC0, offset_gUnk_data3_085C4FE0 + 0xCC0, offset_gUnk_data3_085C4FE0 + 0x10C0,
+ offset_gUnk_data3_085C4FE0 + 0x14C0, offset_gUnk_data3_085C4FE0 + 0x18C0, offset_gUnk_data3_085C4FE0 + 0x1CC0,
+ offset_gUnk_data3_085C4FE0 + 0x20C0, offset_gUnk_data3_085C4FE0 + 0x24C0, offset_gUnk_data3_085C4FE0 + 0x28C0,
+ offset_gUnk_data3_085C4FE0 + 0x2CC0, offset_gUnk_data3_085C4FE0 + 0x30C0, offset_gUnk_data3_085C4FE0 + 0x34C0,
+ offset_gUnk_data3_085C4FE0 + 0x38C0, offset_gUnk_data3_085C4FE0 + 0x3CC0, offset_gUnk_data3_085C4FE0 + 0x40C0,
+ offset_gUnk_data3_085C4FE0 + 0x44C0, offset_gUnk_data3_085C4FE0 + 0x48C0, offset_gUnk_data3_085C4FE0 + 0x4CC0,
+ offset_gUnk_data3_085C4FE0 + 0x50C0, offset_gUnk_data3_085C4FE0 + 0x54C0, offset_gUnk_data3_085C4FE0 + 0xEC0,
+ offset_gUnk_data3_085C4FE0 + 0x12C0, offset_gUnk_data3_085C4FE0 + 0x16C0, offset_gUnk_data3_085C4FE0 + 0x1AC0,
+ offset_gUnk_data3_085C4FE0 + 0x1EC0, offset_gUnk_data3_085C4FE0 + 0x22C0, offset_gUnk_data3_085C4FE0 + 0x26C0,
+ offset_gUnk_data3_085C4FE0 + 0x2AC0, offset_gUnk_data3_085C4FE0 + 0x2EC0, offset_gUnk_data3_085C4FE0 + 0x32C0,
+ offset_gUnk_data3_085C4FE0 + 0x36C0, offset_gUnk_data3_085C4FE0 + 0x3AC0, offset_gUnk_data3_085C4FE0 + 0x3EC0,
+ offset_gUnk_data3_085C4FE0 + 0x42C0, offset_gUnk_data3_085C4FE0 + 0x46C0, offset_gUnk_data3_085C4FE0 + 0x4AC0,
+ offset_gUnk_data3_085C4FE0 + 0x4EC0, offset_gUnk_data3_085C4FE0 + 0x52C0,
+};
const u8 SharedFusions[] = {
0x18, 0x2D, 0x35, 0x36, 0x37, 0x39, 0x3C, 0x44, 0x46, 0x47, 0x4E, 0x50, 0x53, 0x55, 0x56, 0x58, 0x5F, 0x60, 0, 0,
};
diff --git a/src/cutscene.c b/src/cutscene.c
index ef5a0ef6..f76d8482 100644
--- a/src/cutscene.c
+++ b/src/cutscene.c
@@ -6,16 +6,23 @@
#include "cutscene.h"
#include "enemy.h"
+#include "sound.h"
+#include "flags.h"
+#include "common.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 "room.h"
#include "screen.h"
+#include "subtask.h"
+#include "beanstalkSubtask.h"
#include "tiles.h"
+#include "backgroundAnimations.h"
+#include "manager/staticBackgroundManager.h"
void sub_08051F78(void);
void sub_08051FF0(void);
diff --git a/src/data/screenTransitions.c b/src/data/screenTransitions.c
index bec9e562..d81eeb21 100644
--- a/src/data/screenTransitions.c
+++ b/src/data/screenTransitions.c
@@ -4,72 +4,72 @@
// clang-format off
-const ScreenTransitionData gUnk_0813AA54 = { 1, { 0, 0, 0, 0 }, 0x98, 0xa8, 0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MAIN_CART, 1, 2, 0, 0 };
-const ScreenTransitionData gUnk_0813AA68 = { 1, { 0, 0, 0, 0 }, 0xa8, 0xb8, 0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE, 1, 2, 0, 0 };
-const ScreenTransitionData gUnk_0813AA7C = { 1, { 0, 0, 0, 0 }, 0x98, 0xa8, 0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MAIN_CART, 1, 2, 0, 0 };
-const ScreenTransitionData gUnk_0813AA90 = { 1, { 0, 0, 0, 0 }, 0x78, 0xa8, 0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_CENTER_STAIRS_1F, 1, 2, 0, 0 };
-const ScreenTransitionData gUnk_0813AAA4 = { 1, { 0, 0, 0, 0 }, 0x108, 0xf8, 0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ENTRANCE, 1, 2, 0, 0 };
-const ScreenTransitionData gUnk_0813AAB8 = { 1, { 0, 0, 0, 0 }, 0x238, 0x58, 0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_ENTRANCE_ROOM, 1, 2, 6, 0 };
-const ScreenTransitionData gUnk_0813AACC = { 1, { 0, 0, 0, 0 }, 0x198, 0x1d8, 0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE, 1, 2, 0, 0 };
-const ScreenTransitionData gUnk_0813AAE0 = { 1, { 0, 0, 0, 0 }, 0x88, 0x78, 0, AREA_ROYAL_CRYPT, ROOM_ROYAL_CRYPT_ENTRANCE, 1, 2, 0, 0 };
-const ScreenTransitionData gUnk_0813AB08 = { 1, { 0, 0, 0, 0 }, 0x98, 0xa8, 0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MAIN_CART, 1, 2, 0, 0 };
-const ScreenTransitionData gUnk_0813AAF4 = { 1, { 0, 0, 0, 0 }, 0x98, 0xa8, 0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MAIN_CART, 1, 2, 0, 0 };
+const Transition gUnk_0813AA54 = { WARP_TYPE_AREA, 0, 0, 0x98, 0xa8, 0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MAIN_CART, 1, 2, 0, 0 };
+const Transition gUnk_0813AA68 = { WARP_TYPE_AREA, 0, 0, 0xa8, 0xb8, 0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE, 1, 2, 0, 0 };
+const Transition gUnk_0813AA7C = { WARP_TYPE_AREA, 0, 0, 0x98, 0xa8, 0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MAIN_CART, 1, 2, 0, 0 };
+const Transition gUnk_0813AA90 = { WARP_TYPE_AREA, 0, 0, 0x78, 0xa8, 0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_CENTER_STAIRS_1F, 1, 2, 0, 0 };
+const Transition gUnk_0813AAA4 = { WARP_TYPE_AREA, 0, 0, 0x108, 0xf8, 0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ENTRANCE, 1, 2, 0, 0 };
+const Transition gUnk_0813AAB8 = { WARP_TYPE_AREA, 0, 0, 0x238, 0x58, 0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_ENTRANCE_ROOM, 1, 2, 6, 0 };
+const Transition gUnk_0813AACC = { WARP_TYPE_AREA, 0, 0, 0x198, 0x1d8, 0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE, 1, 2, 0, 0 };
+const Transition gUnk_0813AAE0 = { WARP_TYPE_AREA, 0, 0, 0x88, 0x78, 0, AREA_ROYAL_CRYPT, ROOM_ROYAL_CRYPT_ENTRANCE, 1, 2, 0, 0 };
+const Transition gUnk_0813AB08 = { WARP_TYPE_AREA, 0, 0, 0x98, 0xa8, 0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MAIN_CART, 1, 2, 0, 0 };
+const Transition gUnk_0813AAF4 = { WARP_TYPE_AREA, 0, 0, 0x98, 0xa8, 0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MAIN_CART, 1, 2, 0, 0 };
-const ScreenTransitionData* const gWallMasterScreenTransitions[] = {
+const Transition* const gWallMasterScreenTransitions[] = {
&gUnk_0813AA54, &gUnk_0813AA68, &gUnk_0813AA7C, &gUnk_0813AA90, &gUnk_0813AAA4,
&gUnk_0813AAB8, &gUnk_0813AACC, &gUnk_0813AAE0, &gUnk_0813AB08, &gUnk_0813AAF4,
};
-const ScreenTransitionData unusedScreenTransition = { 1, { 0, 0, 0, 0 }, 0x48, 0x68, 0, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1, 0, 2, 0 };
+const Transition unusedScreenTransition = { WARP_TYPE_AREA, 0, 0, 0x48, 0x68, 0, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1, 0, 2, 0 };
-const ScreenTransitionData gUnk_0813AB58 = { 1, { 0, 0, 0, 0 }, 0x108, 0xc8, 0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ENTRANCE, 2, 2, 4, 0 };
-const ScreenTransitionData gUnk_0813AB6C = { 1, { 0, 0, 0, 0 }, 0x198, 0x68, 0, AREA_RUINS, ROOM_RUINS_FORTRESS_ENTRANCE, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813AB80 = { 1, { 0, 0, 0, 0 }, 0xc8, 0x48, 0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_4, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813AB94 = { 1, { 0, 0, 0, 0 }, 0xb8, 0x5c, 0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAZAAL, 1, 1, 4, 0 };
-const ScreenTransitionData gUnk_0813ABA8 = { 1, { 0, 0, 0, 0 }, 0xb8, 0x78, 0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAZAAL, 1, 0, 0, 0 };
-const ScreenTransitionData gUnk_0813ABBC = { 1, { 0, 0, 0, 0 }, 0xf0, 0xbc, 0, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813ABD0 = { 1, { 0, 0, 0, 0 }, 0x1d8, 0xd8, 0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GYORG_TORNADO, 2, 2, 4, 0 };
-const ScreenTransitionData gUnk_0813ABE4 = { 1, { 0, 0, 0, 0 }, 0x198, 0x168, 0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE, 1, 0, 4, 0 };
+const Transition gUnk_0813AB58 = { WARP_TYPE_AREA, 0, 0, 0x108, 0xc8, 0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ENTRANCE, 2, 2, 4, 0 };
+const Transition gUnk_0813AB6C = { WARP_TYPE_AREA, 0, 0, 0x198, 0x68, 0, AREA_RUINS, ROOM_RUINS_FORTRESS_ENTRANCE, 1, 0, 4, 0 };
+const Transition gUnk_0813AB80 = { WARP_TYPE_AREA, 0, 0, 0xc8, 0x48, 0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_4, 1, 0, 4, 0 };
+const Transition gUnk_0813AB94 = { WARP_TYPE_AREA, 0, 0, 0xb8, 0x5c, 0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAZAAL, 1, 1, 4, 0 };
+const Transition gUnk_0813ABA8 = { WARP_TYPE_AREA, 0, 0, 0xb8, 0x78, 0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAZAAL, 1, 0, 0, 0 };
+const Transition gUnk_0813ABBC = { WARP_TYPE_AREA, 0, 0, 0xf0, 0xbc, 0, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, 0, 4, 0 };
+const Transition gUnk_0813ABD0 = { WARP_TYPE_AREA, 0, 0, 0x1d8, 0xd8, 0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GYORG_TORNADO, 2, 2, 4, 0 };
+const Transition gUnk_0813ABE4 = { WARP_TYPE_AREA, 0, 0, 0x198, 0x168, 0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE, 1, 0, 4, 0 };
#if defined(EU) || defined(JP)
-const ScreenTransitionData gUnk_0813ABF8 = { 1, { 0, 0, 0, 0 }, 0x128, 0x1a8, 0, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1, 0, 0, 0 };
+const Transition gUnk_0813ABF8 = { WARP_TYPE_AREA, 0, 0, 0x128, 0x1a8, 0, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1, 0, 0, 0 };
#else
-const ScreenTransitionData gUnk_0813ABF8 = { 1, { 0, 0, 0, 0 }, 0x128, 0x1b0, 0, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1, 0, 0, 0 };
+const Transition gUnk_0813ABF8 = { WARP_TYPE_AREA, 0, 0, 0x128, 0x1b0, 0, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1, 0, 0, 0 };
#endif
-const ScreenTransitionData gUnk_0813AC0C = { 1, { 0, 0, 0, 0 }, 0xb0, 0xd8, 0, AREA_VAATI_2, ROOM_VAATI_2_0, 2, 0, 0, 0 };
-const ScreenTransitionData gUnk_0813AC20 = { 1, { 0, 0, 0, 0 }, 0xa8, 0x78, 0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_TRIPLE_DARKNUT, 1, 0, 0, 0 };
-const ScreenTransitionData gUnk_0813AC34 = { 1, { 0, 0, 0, 0 }, 0xb0, 0x88, 0, AREA_VAATI_3, ROOM_VAATI_3_0, 1, 0, 0, 0 };
-const ScreenTransitionData gUnk_0813AC48 = { 1, { 0, 0, 0, 0 }, 0xb0, 0x88, 0, AREA_VAATI_3, ROOM_VAATI_3_0, 1, 1, 4, 0 };
-const ScreenTransitionData gUnk_0813AC5C = { 1, { 0, 0, 0, 0 }, 0xa8, 0x88, 0, AREA_DARK_HYRULE_CASTLE_OUTSIDE, ROOM_DARK_HYRULE_CASTLE_OUTSIDE_GARDEN, 1, 0, 6, 0 };
-const ScreenTransitionData gUnk_0813AC70 = { 1, { 0, 0, 0, 0 }, 0x0, 0x0, 0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_THRONE_ROOM, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813AC84 = { 1, { 0, 0, 0, 0 }, 0x0, 0x0, 0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_2, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813AC98 = { 1, { 0, 0, 0, 0 }, 0x0, 0x0, 0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813ACAC = { 1, { 0, 0, 0, 0 }, 0x0, 0x0, 0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_0, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813ACC0 = { 1, { 0, 0, 0, 0 }, 0x0, 0x0, 0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_1, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813ACD4 = { 1, { 0, 0, 0, 0 }, 0x0, 0x0, 0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813ACE8 = { 1, { 0, 0, 0, 0 }, 0x0, 0x0, 0, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813ACFC = { 1, { 0, 0, 0, 0 }, 0xa8, 0x88, 0, AREA_SANCTUARY_ENTRANCE, ROOM_SANCTUARY_ENTRANCE_MAIN, 1, 0, 6, 0 };
-const ScreenTransitionData gUnk_0813AD10 = { 1, { 0, 0, 0, 0 }, 0x50, 0x38, 0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_WEST_ROOM, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813AD24 = { 1, { 0, 0, 0, 0 }, 0x50, 0x38, 0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_MIDDLE_ROOM, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813AD38 = { 1, { 0, 0, 0, 0 }, 0x60, 0x38, 0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_EAST_ROOM, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813AD4C = { 1, { 0, 0, 0, 0 }, 0x78, 0x68, 0, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BORLOV_ENTRANCE, 1, 0, 0, 0 };
-const ScreenTransitionData gUnk_0813AD60 = { 1, { 0, 0, 0, 0 }, 0x98, 0x88, 0, AREA_SIMONS_SIMULATION, ROOM_SIMONS_SIMULATION_0, 1, 2, 4, 0 };
-const ScreenTransitionData gUnk_0813AD74 = { 1, { 0, 0, 0, 0 }, 0x50, 0x48, 0, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_SIMON, 1, 0, 4, 0 };
+const Transition gUnk_0813AC0C = { WARP_TYPE_AREA, 0, 0, 0xb0, 0xd8, 0, AREA_VAATI_2, ROOM_VAATI_2_0, 2, 0, 0, 0 };
+const Transition gUnk_0813AC20 = { WARP_TYPE_AREA, 0, 0, 0xa8, 0x78, 0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_TRIPLE_DARKNUT, 1, 0, 0, 0 };
+const Transition gUnk_0813AC34 = { WARP_TYPE_AREA, 0, 0, 0xb0, 0x88, 0, AREA_VAATI_3, ROOM_VAATI_3_0, 1, 0, 0, 0 };
+const Transition gUnk_0813AC48 = { WARP_TYPE_AREA, 0, 0, 0xb0, 0x88, 0, AREA_VAATI_3, ROOM_VAATI_3_0, 1, 1, 4, 0 };
+const Transition gUnk_0813AC5C = { WARP_TYPE_AREA, 0, 0, 0xa8, 0x88, 0, AREA_DARK_HYRULE_CASTLE_OUTSIDE, ROOM_DARK_HYRULE_CASTLE_OUTSIDE_GARDEN, 1, 0, 6, 0 };
+const Transition gUnk_0813AC70 = { WARP_TYPE_AREA, 0, 0, 0x0, 0x0, 0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_THRONE_ROOM, 1, 0, 4, 0 };
+const Transition gUnk_0813AC84 = { WARP_TYPE_AREA, 0, 0, 0x0, 0x0, 0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_2, 1, 0, 4, 0 };
+const Transition gUnk_0813AC98 = { WARP_TYPE_AREA, 0, 0, 0x0, 0x0, 0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE, 1, 0, 4, 0 };
+const Transition gUnk_0813ACAC = { WARP_TYPE_AREA, 0, 0, 0x0, 0x0, 0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_0, 1, 0, 4, 0 };
+const Transition gUnk_0813ACC0 = { WARP_TYPE_AREA, 0, 0, 0x0, 0x0, 0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_1, 1, 0, 4, 0 };
+const Transition gUnk_0813ACD4 = { WARP_TYPE_AREA, 0, 0, 0x0, 0x0, 0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, 0, 4, 0 };
+const Transition gUnk_0813ACE8 = { WARP_TYPE_AREA, 0, 0, 0x0, 0x0, 0, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 1, 0, 4, 0 };
+const Transition gUnk_0813ACFC = { WARP_TYPE_AREA, 0, 0, 0xa8, 0x88, 0, AREA_SANCTUARY_ENTRANCE, ROOM_SANCTUARY_ENTRANCE_MAIN, 1, 0, 6, 0 };
+const Transition gUnk_0813AD10 = { WARP_TYPE_AREA, 0, 0, 0x50, 0x38, 0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_WEST_ROOM, 1, 0, 4, 0 };
+const Transition gUnk_0813AD24 = { WARP_TYPE_AREA, 0, 0, 0x50, 0x38, 0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_MIDDLE_ROOM, 1, 0, 4, 0 };
+const Transition gUnk_0813AD38 = { WARP_TYPE_AREA, 0, 0, 0x60, 0x38, 0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_EAST_ROOM, 1, 0, 4, 0 };
+const Transition gUnk_0813AD4C = { WARP_TYPE_AREA, 0, 0, 0x78, 0x68, 0, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BORLOV_ENTRANCE, 1, 0, 0, 0 };
+const Transition gUnk_0813AD60 = { WARP_TYPE_AREA, 0, 0, 0x98, 0x88, 0, AREA_SIMONS_SIMULATION, ROOM_SIMONS_SIMULATION_0, 1, 2, 4, 0 };
+const Transition gUnk_0813AD74 = { WARP_TYPE_AREA, 0, 0, 0x50, 0x48, 0, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_SIMON, 1, 0, 4, 0 };
-const ScreenTransitionData gUnk_0813AD88[] = {
- { 1, { 0, 0, 0, 0 }, 0x128, 0x188, 0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, 9, 4, 0},
- { 1, { 0, 0, 0, 0 }, 0x190, 0x1c0, 0, AREA_CLOUD_TOPS, ROOM_CLOUD_TOPS_CLOUD_BOTTOMS, 1, 10, 4, 0},
- { 1, { 0, 0, 0, 0 }, 0x1e8, 0x1f0, 0, AREA_CLOUD_TOPS, ROOM_CLOUD_TOPS_CLOUD_TOPS, 1, 10, 4, 0},
- { 1, { 0, 0, 0, 0 }, 0x268, 0x58, 0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_ENTRANCE_ROOM, 1, 10, 6, 0},
+const Transition gUnk_0813AD88[] = {
+ { WARP_TYPE_AREA, 0, 0, 0x128, 0x188, 0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, 9, 4, 0},
+ { WARP_TYPE_AREA, 0, 0, 0x190, 0x1c0, 0, AREA_CLOUD_TOPS, ROOM_CLOUD_TOPS_CLOUD_BOTTOMS, 1, 10, 4, 0},
+ { WARP_TYPE_AREA, 0, 0, 0x1e8, 0x1f0, 0, AREA_CLOUD_TOPS, ROOM_CLOUD_TOPS_CLOUD_TOPS, 1, 10, 4, 0},
+ { WARP_TYPE_AREA, 0, 0, 0x268, 0x58, 0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_ENTRANCE_ROOM, 1, 10, 6, 0},
#if defined(EU)
- { 1, { 0, 0, 0, 0 }, 0x200, 0x350, 0, AREA_PALACE_OF_WINDS_BOSS, ROOM_PALACE_OF_WINDS_BOSS_0, 2, 10, 4, 0},
+ { WARP_TYPE_AREA, 0, 0, 0x200, 0x350, 0, AREA_PALACE_OF_WINDS_BOSS, ROOM_PALACE_OF_WINDS_BOSS_0, 2, 10, 4, 0},
#else
- { 1, { 0, 0, 0, 0 }, 0x200, 0x300, 0, AREA_PALACE_OF_WINDS_BOSS, ROOM_PALACE_OF_WINDS_BOSS_0, 2, 10, 4, 0},
+ { WARP_TYPE_AREA, 0, 0, 0x200, 0x300, 0, AREA_PALACE_OF_WINDS_BOSS, ROOM_PALACE_OF_WINDS_BOSS_0, 2, 10, 4, 0},
#endif
};
-const ScreenTransitionData gUnk_0813ADEC[] = {
- { 1, { 0, 0, 0, 0 }, 0xb8, 0x58, 0, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_ENTRANCE, 1, 0, 4, 0},
- { 1, { 0, 0, 0, 0 }, 0x248, 0x108, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD, 1, 0, 4, 0},
+const Transition gUnk_0813ADEC[] = {
+ { WARP_TYPE_AREA, 0, 0, 0xb8, 0x58, 0, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_ENTRANCE, 1, 0, 4, 0},
+ { WARP_TYPE_AREA, 0, 0, 0x248, 0x108, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD, 1, 0, 4, 0},
};
// clang-format on
diff --git a/src/data/transitions.c b/src/data/transitions.c
index 38f0ae33..aaf9f991 100644
--- a/src/data/transitions.c
+++ b/src/data/transitions.c
@@ -5,7 +5,7 @@
// clang-format off
// this terminates a list of Transitions
-#define TransitionListEnd { WARP_TYPE_END_OF_LIST, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+#define TransitionListEnd { -1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
const Transition gExitList_NoExitList[] = { TransitionListEnd };
const Transition* const gExitLists_NoExit[] = {
@@ -25,34 +25,34 @@ const Transition* const gExitLists_NoExit[] = {
};
const Transition gExitList_MinishWoods_Main[] = {
- { WARP_TYPE_AREA, 0x00, 0x0138, 0x0318, 0x0078, 0x0078, 0x00, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_MINISH_WOODS_BOMB, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x01c8, 0x0258, 0x00a8, 0x00d8, 0x00, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x03a8, 0x0010, 0x0078, 0x0088, 0x02, AREA_BEANSTALKS, ROOM_BEANSTALKS_EASTERN_HILLS,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0210, 0x01c8, 0x0078, 0x0078, 0x02, AREA_TREE_INTERIORS,
- ROOM_TREE_INTERIORS_MINISH_WOODS_BUSINESS_SCRUB, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0070, 0x0048, 0x0078, 0x0078, 0x02, AREA_TREE_INTERIORS,
- ROOM_TREE_INTERIORS_MINISH_WOODS_GREAT_FAIRY, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x02c0, 0x0048, 0x0078, 0x0088, 0x02, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_WITCH_HUT,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x03b8, 0x0038, 0x0078, 0x0108, 0x00, AREA_MINISH_CAVES,
- ROOM_MINISH_CAVES_MINISH_WOODS_NORTH_1, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0048, 0x0218, 0x0058, 0x0118, 0x00, AREA_MINISH_CAVES,
- ROOM_MINISH_CAVES_MINISH_WOODS_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0068, 0x0218, 0x0138, 0x0118, 0x00, AREA_MINISH_CAVES,
- ROOM_MINISH_CAVES_MINISH_WOODS_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0088, 0x0218, 0x0218, 0x0118, 0x00, AREA_MINISH_CAVES,
- ROOM_MINISH_CAVES_MINISH_WOODS_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_BORDER, 0x00, 0x0000, 0x0000, 0x01d8, 0x0fff, 0x40, AREA_HYRULE_FIELD,
- ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH, 1, TRANSITION_TYPE_NORMAL, 0x06, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_BORDER, 0x00, 0x0000, 0x0000, 0x01d8, 0x00a0, 0x80, AREA_HYRULE_FIELD,
- ROOM_HYRULE_FIELD_EASTERN_HILLS_SOUTH, 1, TRANSITION_TYPE_NORMAL, 0x06, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_BORDER, 0x00, 0x0000, 0x0000, 0x0fff, 0x03b8, 0x01, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_BORDER, 0x00, 0x0000, 0x0000, 0x0fff, 0x03ac, 0x02, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1,
- TRANSITION_TYPE_INSTANT_MINISH, 0x00, 0x00, 0x00, 0x00, 0x00 },
+ { WARP_TYPE_AREA, 0x0138, 0x0318, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_MINISH_WOODS_BOMB, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x01c8, 0x0258, 0x00a8, 0x00d8, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x03a8, 0x0010, 0x0078, 0x0088, TRANSITION_SHAPE_AREA_28x12, AREA_BEANSTALKS, ROOM_BEANSTALKS_EASTERN_HILLS,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0210, 0x01c8, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS,
+ ROOM_TREE_INTERIORS_MINISH_WOODS_BUSINESS_SCRUB, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0070, 0x0048, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS,
+ ROOM_TREE_INTERIORS_MINISH_WOODS_GREAT_FAIRY, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x02c0, 0x0048, 0x0078, 0x0088, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_WITCH_HUT,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x03b8, 0x0038, 0x0078, 0x0108, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_CAVES,
+ ROOM_MINISH_CAVES_MINISH_WOODS_NORTH_1, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0048, 0x0218, 0x0058, 0x0118, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_CAVES,
+ ROOM_MINISH_CAVES_MINISH_WOODS_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0068, 0x0218, 0x0138, 0x0118, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_CAVES,
+ ROOM_MINISH_CAVES_MINISH_WOODS_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0088, 0x0218, 0x0218, 0x0118, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_CAVES,
+ ROOM_MINISH_CAVES_MINISH_WOODS_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x01d8, 0x0fff, TRANSITION_SHAPE_BORDER_WEST_NORTH, AREA_HYRULE_FIELD,
+ ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH, 1, TRANSITION_TYPE_NORMAL, 0x06, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x01d8, 0x00a0, TRANSITION_SHAPE_BORDER_WEST_SOUTH, AREA_HYRULE_FIELD,
+ ROOM_HYRULE_FIELD_EASTERN_HILLS_SOUTH, 1, TRANSITION_TYPE_NORMAL, 0x06, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x0fff, 0x03b8, TRANSITION_SHAPE_BORDER_NORTH_WEST, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x0fff, 0x03ac, TRANSITION_SHAPE_BORDER_NORTH_EAST, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1,
+ TRANSITION_TYPE_INSTANT_MINISH, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_MinishWoods[] = {
@@ -60,35 +60,35 @@ const Transition* const gExitLists_MinishWoods[] = {
};
const Transition gExitList_LakeHylia_Main[] = {
- { WARP_TYPE_AREA, 0, 0x02a0, 0x0378, 0x0078, 0x00a0, 0x02, AREA_HOUSE_INTERIORS_4,
- ROOM_HOUSE_INTERIORS_4_MAYOR_LAKE_CABIN, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0, 0x0120, 0x0038, 0x0078, 0x0078, 0x02, AREA_HOUSE_INTERIORS_2,
- ROOM_HOUSE_INTERIORS_2_STOCKWELL_LAKE_HOUSE, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0, 0x0100, 0x02b8, 0x0078, 0x0078, 0x02, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_WAVEBLADE,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0, 0x00c8, 0x0198, 0x0078, 0x0078, 0x00, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_LAKE_HYLIA_OCARINA, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0, 0x01e8, 0x01a8, 0x0078, 0x0078, 0x00, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_LIBRARI, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0, 0x02b8, 0x0058, 0x0188, 0x01a8, 0x00, AREA_MINISH_CAVES, ROOM_MINISH_CAVES_LAKE_HYLIA_NORTH,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0, 0x0148, 0x0374, 0x0248, 0x01a8, 0x00, AREA_LAKE_WOODS_CAVE, ROOM_LAKE_WOODS_CAVE_MAIN,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_BORDER, 0, 0x0000, 0x0000, 0x02c8, 0x0fff, 0xc0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
- 1, TRANSITION_TYPE_NORMAL, 0x06, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_BORDER, 0, 0x0000, 0x0000, 0x0fff, 0x0010, 0x10, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN,
- 1, TRANSITION_TYPE_NORMAL, 0x04, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_BORDER, 0, 0x0000, 0x0000, 0x0fff, 0x0024, 0x20, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x04, 0x00, 0x00, 0x00, 0x00 },
+ { WARP_TYPE_AREA, 0x02a0, 0x0378, 0x0078, 0x00a0, TRANSITION_SHAPE_AREA_28x12, AREA_HOUSE_INTERIORS_4,
+ ROOM_HOUSE_INTERIORS_4_MAYOR_LAKE_CABIN, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0120, 0x0038, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_28x12, AREA_HOUSE_INTERIORS_2,
+ ROOM_HOUSE_INTERIORS_2_STOCKWELL_LAKE_HOUSE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0100, 0x02b8, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_WAVEBLADE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x00c8, 0x0198, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_LAKE_HYLIA_OCARINA, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x01e8, 0x01a8, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_LIBRARI, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x02b8, 0x0058, 0x0188, 0x01a8, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_CAVES, ROOM_MINISH_CAVES_LAKE_HYLIA_NORTH,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0148, 0x0374, 0x0248, 0x01a8, TRANSITION_SHAPE_AREA_12x12, AREA_LAKE_WOODS_CAVE, ROOM_LAKE_WOODS_CAVE_MAIN,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x02c8, 0x0fff, TRANSITION_SHAPE_BORDER_WEST, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x06, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x0fff, 0x0010, TRANSITION_SHAPE_BORDER_SOUTH_WEST, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN,
+ 1, TRANSITION_TYPE_NORMAL, 0x04, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x0fff, 0x0024, TRANSITION_SHAPE_BORDER_SOUTH_EAST, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x04, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_LakeHylia_Beanstalk[] = {
- { WARP_TYPE_AREA, 0, 0x0208, 0x94, 0x248, 0x88, 0, AREA_HYLIA_DIG_CAVES, ROOM_HYLIA_DIG_CAVES_1, 1, TRANSITION_TYPE_NORMAL,
- 0, 0, 0, 0, 0 },
- { WARP_TYPE_AREA, 0, 0x0308, 0x94, 0x308, 0x88, 0, AREA_HYLIA_DIG_CAVES, ROOM_HYLIA_DIG_CAVES_1, 1, TRANSITION_TYPE_NORMAL,
- 0, 0, 0, 0, 0 },
- { WARP_TYPE_AREA, 0, 0x0388, 0x64, 0x398, 0x68, 0, AREA_HYLIA_DIG_CAVES, ROOM_HYLIA_DIG_CAVES_1, 1, TRANSITION_TYPE_NORMAL,
- 0, 0, 0, 0, 0 },
+ { WARP_TYPE_AREA, 0x0208, 0x94, 0x248, 0x88, TRANSITION_SHAPE_AREA_12x12, AREA_HYLIA_DIG_CAVES, ROOM_HYLIA_DIG_CAVES_1, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0308, 0x94, 0x308, 0x88, TRANSITION_SHAPE_AREA_12x12, AREA_HYLIA_DIG_CAVES, ROOM_HYLIA_DIG_CAVES_1, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0388, 0x64, 0x398, 0x68, TRANSITION_SHAPE_AREA_12x12, AREA_HYLIA_DIG_CAVES, ROOM_HYLIA_DIG_CAVES_1, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_LakeHylia[] = {
@@ -97,24 +97,24 @@ const Transition* const gExitLists_LakeHylia[] = {
};
const Transition gExitList_CastorWilds_Main[] = {
- { WARP_TYPE_AREA, 0, 0x0248, 0x0032, 0x0038, 0x0078, 0x00, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_NORTH,
- 1, TRANSITION_TYPE_NORMAL, 0, 0, 0, 0, 0 },
- { WARP_TYPE_AREA, 0, 0x0288, 0x0032, 0x0128, 0x0078, 0x00, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_NORTH,
- 1, TRANSITION_TYPE_NORMAL, 0, 0, 0, 0, 0 },
- { WARP_TYPE_AREA, 0, 0x01a8, 0x01a2, 0x0088, 0x0078, 0x00, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_DARKNUT,
- 1, TRANSITION_TYPE_NORMAL, 0, 0, 0, 0, 0 },
- { WARP_TYPE_AREA, 0, 0x02d8, 0x0382, 0x0078, 0x0098, 0x00, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_SOUTH,
- 1, TRANSITION_TYPE_NORMAL, 0, 0, 0, 0, 0 },
- { WARP_TYPE_AREA, 0, 0x03c8, 0x0038, 0x0078, 0x0078, 0x00, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_HEART_PIECE,
- 1, TRANSITION_TYPE_NORMAL, 0, 0, 0, 0, 0 },
- { WARP_TYPE_AREA, 0, 0x0038, 0x02d4, 0x0078, 0x0088, 0x00, AREA_DOJOS, ROOM_DOJOS_SWIFTBLADE_I, 1, TRANSITION_TYPE_NORMAL,
- 0, 0, 0, 0, 0 },
- { WARP_TYPE_AREA, 0, 0x03b8, 0x02f8, 0x0078, 0x01f8, 0x00, AREA_MINISH_CAVES, ROOM_MINISH_CAVES_SOUTHEAST_WATER_1,
- 1, TRANSITION_TYPE_NORMAL, 0, 0, 0, 0, 0 },
- { WARP_TYPE_BORDER, 0, 0x0000, 0x0000, 0x0008, 0x0fff, 0x08, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH,
- 1, TRANSITION_TYPE_NORMAL, 2, 0, 0, 0, 0 },
- { WARP_TYPE_BORDER, 0, 0x0000, 0x0000, 0x0fff, 0x0010, 0x10, AREA_RUINS, ROOM_RUINS_ENTRANCE, 1, TRANSITION_TYPE_NORMAL, 4, 0,
- 0, 0, 0 },
+ { WARP_TYPE_AREA, 0x0248, 0x0032, 0x0038, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_NORTH,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0288, 0x0032, 0x0128, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_NORTH,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x01a8, 0x01a2, 0x0088, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_DARKNUT,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x02d8, 0x0382, 0x0078, 0x0098, TRANSITION_SHAPE_AREA_12x12, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_SOUTH,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x03c8, 0x0038, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_HEART_PIECE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0038, 0x02d4, 0x0078, 0x0088, TRANSITION_SHAPE_AREA_12x12, AREA_DOJOS, ROOM_DOJOS_SWIFTBLADE_I, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x03b8, 0x02f8, 0x0078, 0x01f8, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_CAVES, ROOM_MINISH_CAVES_SOUTHEAST_WATER_1,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x0008, 0x0fff, TRANSITION_SHAPE_BORDER_EAST_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH,
+ 1, TRANSITION_TYPE_NORMAL, 2, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x0fff, 0x0010, TRANSITION_SHAPE_BORDER_SOUTH_WEST, AREA_RUINS, ROOM_RUINS_ENTRANCE, 1, TRANSITION_TYPE_NORMAL, 4, 0x0,
+ 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_CastorWilds[] = {
@@ -122,23 +122,23 @@ const Transition* const gExitLists_CastorWilds[] = {
};
const Transition gExitList_Ruins_Entrance[] = {
- { WARP_TYPE_BORDER, 0, 0x00, 0x00, 0x0fff, 0x3b8, 0x01, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0, 0, 0, 0, 0 },
- { WARP_TYPE_AREA, 0, 0xc8, 0x38, 0x0078, 0x078, 0x00, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_WIND_RUINS,
- 1, TRANSITION_TYPE_NORMAL, 0, 0, 0, 0, 0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x0fff, 0x3b8, TRANSITION_SHAPE_BORDER_NORTH_WEST, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xc8, 0x38, 0x0078, 0x078, TRANSITION_SHAPE_AREA_12x12, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_WIND_RUINS,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Ruins_Beanstalk[] = {
TransitionListEnd,
};
const Transition gExitList_Ruins_LadderToTektites[] = {
- { WARP_TYPE_AREA, 0, 0x38, 0x08, 0x148, 0xb8, 0, AREA_MINISH_CAVES, ROOM_MINISH_CAVES_RUINS, 1, TRANSITION_TYPE_NORMAL, 0,
- 0, 0, 0, 0 },
+ { WARP_TYPE_AREA, 0x38, 0x08, 0x148, 0xb8, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_CAVES, ROOM_MINISH_CAVES_RUINS, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Ruins_FortressEntrance[] = {
- { WARP_TYPE_BORDER, 0, 0, 0, 0x1d8, 0xb0, 3, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_ENTRANCE_HALL,
- 1, TRANSITION_TYPE_NORMAL, 0, 0, 0, 0, 0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1d8, 0xb0, TRANSITION_SHAPE_BORDER_NORTH, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_ENTRANCE_HALL,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_Ruins[] = {
@@ -151,76 +151,76 @@ const Transition* const gExitLists_Ruins[] = {
};
const Transition gExitList_HyruleTown_0[] = {
- { WARP_TYPE_AREA, 0x00, 0x02c8, 0x0138, 0x0068, 0x0098, 0x00, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_MAYOR,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0308, 0x0120, 0x00e8, 0x0070, 0x01, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_MAYOR,
- 1, TRANSITION_TYPE_NORMAL, 0x06, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0048, 0x00a8, 0x0078, 0x0090, 0x00, AREA_HOUSE_INTERIORS_1,
- ROOM_HOUSE_INTERIORS_1_POST_OFFICE, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0138, 0x0048, 0x0078, 0x0088, 0x00, AREA_HOUSE_INTERIORS_1,
- ROOM_HOUSE_INTERIORS_1_LIBRARY_2F, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0168, 0x00a8, 0x00e8, 0x00d8, 0x00, AREA_HOUSE_INTERIORS_1,
- ROOM_HOUSE_INTERIORS_1_LIBRARY_1F, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0388, 0x0258, 0x0068, 0x0078, 0x00, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0368, 0x01b8, 0x0068, 0x0078, 0x00, AREA_HOUSE_INTERIORS_1,
- ROOM_HOUSE_INTERIORS_1_INN_WEST_2F, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x03a8, 0x0218, 0x0048, 0x01a8, 0x00, AREA_HOUSE_INTERIORS_1,
- ROOM_HOUSE_INTERIORS_1_INN_EAST_2F, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x02c8, 0x0098, 0x0078, 0x00c8, 0x00, AREA_HOUSE_INTERIORS_1,
- ROOM_HOUSE_INTERIORS_1_SCHOOL_WEST, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0328, 0x0068, 0x00d8, 0x0088, 0x00, AREA_HOUSE_INTERIORS_1,
- ROOM_HOUSE_INTERIORS_1_SCHOOL_EAST, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0258, 0x02e8, 0x0078, 0x00a8, 0x00, AREA_HOUSE_INTERIORS_3,
- ROOM_HOUSE_INTERIORS_3_STOCKWELL_SHOP, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0198, 0x02e8, 0x0078, 0x00a8, 0x00, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_CAFE,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0178, 0x0210, 0x00c8, 0x0060, 0x01, AREA_HOUSE_INTERIORS_3,
- ROOM_HOUSE_INTERIORS_3_REM_SHOE_SHOP, 1, TRANSITION_TYPE_NORMAL, 0x06, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0278, 0x01f0, 0x0028, 0x0090, 0x01, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BAKERY,
- 1, TRANSITION_TYPE_NORMAL, 0x02, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0178, 0x0250, 0x00c8, 0x0070, 0x01, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_SIMON,
- 1, TRANSITION_TYPE_NORMAL, 0x06, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0178, 0x0290, 0x00c8, 0x0060, 0x01, AREA_HOUSE_INTERIORS_3,
- ROOM_HOUSE_INTERIORS_3_FIGURINE_HOUSE, 1, TRANSITION_TYPE_NORMAL, 0x06, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0138, 0x0290, 0x0028, 0x0060, 0x01, AREA_HOUSE_INTERIORS_3,
- ROOM_HOUSE_INTERIORS_3_FIGURINE_HOUSE, 1, TRANSITION_TYPE_NORMAL, 0x02, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0298, 0x0258, 0x0078, 0x0088, 0x00, AREA_HOUSE_INTERIORS_3,
- ROOM_HOUSE_INTERIORS_3_BORLOV_ENTRANCE, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0090, 0x02c8, 0x0078, 0x0098, 0x02, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_CARPENTER,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0098, 0x0168, 0x0078, 0x0078, 0x00, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_STRANGER,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0038, 0x0248, 0x0078, 0x0098, 0x00, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_DR_LEFT,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x02e8, 0x02f0, 0x0078, 0x0078, 0x00, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_ROMIO,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0348, 0x02f8, 0x0078, 0x0098, 0x00, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_JULIETTA,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x03b8, 0x0358, 0x0078, 0x0078, 0x00, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_CUCCO,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0138, 0x0388, 0x0078, 0x0098, 0x00, AREA_HOUSE_INTERIORS_4,
- ROOM_HOUSE_INTERIORS_4_SWIFTBLADE, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0038, 0x01a8, 0x0078, 0x0078, 0x00, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_HYRULE_TOWN, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0050, 0x0378, 0x0078, 0x0078, 0x02, AREA_TREE_INTERIORS,
- ROOM_TREE_INTERIORS_STAIRS_TO_CARLOV, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x00f0, 0x0188, 0x0078, 0x0078, 0x02, AREA_CAVES, ROOM_CAVES_HYRULE_TOWN_WATERFALL,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0040, 0x01b8, 0x0078, 0x0098, 0x02, AREA_HOUSE_INTERIORS_2,
- ROOM_HOUSE_INTERIORS_2_WEST_ORACLE, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x02b8, 0x0360, 0x0078, 0x0078, 0x00, AREA_HOUSE_INTERIORS_2,
- ROOM_HOUSE_INTERIORS_2_EAST_ORACLE, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_AREA, 0x00, 0x0338, 0x0134, 0x0288, 0x0118, 0x00, AREA_HYRULE_TOWN_UNDERGROUND,
- ROOM_HYRULE_TOWN_UNDERGROUND_0, 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_BORDER, 0x00, 0x0000, 0x0000, 0x01f8, 0x0318, 0x03, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_BORDER, 0x00, 0x0000, 0x0000, 0x01d8, 0x0230, 0x40, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
- 1, TRANSITION_TYPE_NORMAL, 0x06, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_BORDER, 0x00, 0x0000, 0x0000, 0x0008, 0x0230, 0x04, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
- 1, TRANSITION_TYPE_NORMAL, 0x02, 0x00, 0x00, 0x00, 0x00 },
- { WARP_TYPE_BORDER, 0x00, 0x0000, 0x0000, 0x01f8, 0x0010, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x04, 0x00, 0x00, 0x00, 0x00 },
+ { WARP_TYPE_AREA, 0x02c8, 0x0138, 0x0068, 0x0098, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_MAYOR,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0308, 0x0120, 0x00e8, 0x0070, TRANSITION_SHAPE_AREA_12x28, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_MAYOR,
+ 1, TRANSITION_TYPE_NORMAL, 0x06, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0048, 0x00a8, 0x0078, 0x0090, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1,
+ ROOM_HOUSE_INTERIORS_1_POST_OFFICE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0138, 0x0048, 0x0078, 0x0088, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1,
+ ROOM_HOUSE_INTERIORS_1_LIBRARY_2F, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0168, 0x00a8, 0x00e8, 0x00d8, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1,
+ ROOM_HOUSE_INTERIORS_1_LIBRARY_1F, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0388, 0x0258, 0x0068, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0368, 0x01b8, 0x0068, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1,
+ ROOM_HOUSE_INTERIORS_1_INN_WEST_2F, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x03a8, 0x0218, 0x0048, 0x01a8, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1,
+ ROOM_HOUSE_INTERIORS_1_INN_EAST_2F, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x02c8, 0x0098, 0x0078, 0x00c8, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1,
+ ROOM_HOUSE_INTERIORS_1_SCHOOL_WEST, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0328, 0x0068, 0x00d8, 0x0088, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1,
+ ROOM_HOUSE_INTERIORS_1_SCHOOL_EAST, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0258, 0x02e8, 0x0078, 0x00a8, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_3,
+ ROOM_HOUSE_INTERIORS_3_STOCKWELL_SHOP, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0198, 0x02e8, 0x0078, 0x00a8, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_CAFE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0178, 0x0210, 0x00c8, 0x0060, TRANSITION_SHAPE_AREA_12x28, AREA_HOUSE_INTERIORS_3,
+ ROOM_HOUSE_INTERIORS_3_REM_SHOE_SHOP, 1, TRANSITION_TYPE_NORMAL, 0x06, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0278, 0x01f0, 0x0028, 0x0090, TRANSITION_SHAPE_AREA_12x28, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BAKERY,
+ 1, TRANSITION_TYPE_NORMAL, 0x02, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0178, 0x0250, 0x00c8, 0x0070, TRANSITION_SHAPE_AREA_12x28, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_SIMON,
+ 1, TRANSITION_TYPE_NORMAL, 0x06, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0178, 0x0290, 0x00c8, 0x0060, TRANSITION_SHAPE_AREA_12x28, AREA_HOUSE_INTERIORS_3,
+ ROOM_HOUSE_INTERIORS_3_FIGURINE_HOUSE, 1, TRANSITION_TYPE_NORMAL, 0x06, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0138, 0x0290, 0x0028, 0x0060, TRANSITION_SHAPE_AREA_12x28, AREA_HOUSE_INTERIORS_3,
+ ROOM_HOUSE_INTERIORS_3_FIGURINE_HOUSE, 1, TRANSITION_TYPE_NORMAL, 0x02, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0298, 0x0258, 0x0078, 0x0088, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_3,
+ ROOM_HOUSE_INTERIORS_3_BORLOV_ENTRANCE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0090, 0x02c8, 0x0078, 0x0098, TRANSITION_SHAPE_AREA_28x12, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_CARPENTER,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0098, 0x0168, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_STRANGER,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0038, 0x0248, 0x0078, 0x0098, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_DR_LEFT,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x02e8, 0x02f0, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_ROMIO,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0348, 0x02f8, 0x0078, 0x0098, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_JULIETTA,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x03b8, 0x0358, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_CUCCO,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0138, 0x0388, 0x0078, 0x0098, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_4,
+ ROOM_HOUSE_INTERIORS_4_SWIFTBLADE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0038, 0x01a8, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_HYRULE_TOWN, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0050, 0x0378, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS,
+ ROOM_TREE_INTERIORS_STAIRS_TO_CARLOV, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x00f0, 0x0188, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_28x12, AREA_CAVES, ROOM_CAVES_HYRULE_TOWN_WATERFALL,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0040, 0x01b8, 0x0078, 0x0098, TRANSITION_SHAPE_AREA_28x12, AREA_HOUSE_INTERIORS_2,
+ ROOM_HOUSE_INTERIORS_2_WEST_ORACLE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x02b8, 0x0360, 0x0078, 0x0078, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_2,
+ ROOM_HOUSE_INTERIORS_2_EAST_ORACLE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x0338, 0x0134, 0x0288, 0x0118, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_TOWN_UNDERGROUND,
+ ROOM_HYRULE_TOWN_UNDERGROUND_0, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x01f8, 0x0318, TRANSITION_SHAPE_BORDER_NORTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x01d8, 0x0230, TRANSITION_SHAPE_BORDER_WEST_NORTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
+ 1, TRANSITION_TYPE_NORMAL, 0x06, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x0008, 0x0230, TRANSITION_SHAPE_BORDER_EAST_NORTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x02, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0000, 0x0000, 0x01f8, 0x0010, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x04, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_HyruleTown[] = {
@@ -228,8 +228,8 @@ const Transition* const gExitLists_HyruleTown[] = {
};
const Transition gExitList_HyruleTown_1[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x318, 0x3, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x318, TRANSITION_SHAPE_BORDER_NORTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_FestivalTown[] = {
@@ -237,70 +237,70 @@ const Transition* const gExitLists_FestivalTown[] = {
};
const Transition gExitList_MtCrenel_MountainTop[] = {
- { WARP_TYPE_AREA, 0x0, 0x328, 0x34, 0x1a8, 0x28, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BLOCK_PUSHING,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x18, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_WALL_CLIMB, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x328, 0x34, 0x1a8, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BLOCK_PUSHING,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_WALL_CLIMB, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MtCrenel_WallClimb[] = {
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x58, 0x78, 0x78, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_HERMIT, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x148, 0x1e8, 0x78, 0xf8, 0x0, AREA_GREAT_FAIRIES, ROOM_GREAT_FAIRIES_CRENEL, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0xd8, 0x3, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x58, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_HERMIT, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x148, 0x1e8, 0x78, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_GREAT_FAIRIES, ROOM_GREAT_FAIRIES_CRENEL, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0xd8, TRANSITION_SHAPE_BORDER_NORTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MtCrenel_CaveOfFlamesEntrance[] = {
- { WARP_TYPE_AREA, 0x0, 0x128, 0x18, 0x58, 0x1b8, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BLOCK_PUSHING,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x208, 0x18, 0x298, 0x1b8, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BLOCK_PUSHING,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1d8, 0xb8, 0xb8, 0x88, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_PILLAR_CAVE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x238, 0xb8, 0x48, 0x1c8, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BRIDGE_SWITCH,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x188, 0xf8, 0xb8, 0x98, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_EXIT_TO_MINES,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x208, 0x148, 0x78, 0xf0, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_TO_GRAYBLADE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1e8, 0x1d8, 0x78, 0x78, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_GRIP_RING,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x68, 0x72, 0x88, 0xa8, 0x0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x128, 0x18, 0x58, 0x1b8, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BLOCK_PUSHING,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x208, 0x18, 0x298, 0x1b8, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BLOCK_PUSHING,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1d8, 0xb8, 0xb8, 0x88, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_PILLAR_CAVE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x238, 0xb8, 0x48, 0x1c8, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BRIDGE_SWITCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x188, 0xf8, 0xb8, 0x98, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_EXIT_TO_MINES,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x208, 0x148, 0x78, 0xf0, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_TO_GRAYBLADE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1e8, 0x1d8, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_GRIP_RING,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x72, 0x88, 0xa8, TRANSITION_SHAPE_AREA_12x12, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MtCrenel_GustJarShortcut[] = {
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x48, 0x78, 0x78, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_FAIRY_FOUNTAIN,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x2f8, 0x28, 0x38, 0x98, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_SPINY_CHU_PUZZLE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x348, 0x58, 0xb8, 0x88, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_CHUCHU_POT_CHEST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0x108, 0x78, 0x118, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_WATER_HEART_PIECE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x48, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_FAIRY_FOUNTAIN,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x2f8, 0x28, 0x38, 0x98, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_SPINY_CHU_PUZZLE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x348, 0x58, 0xb8, 0x88, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_CHUCHU_POT_CHEST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x108, 0x78, 0x118, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_WATER_HEART_PIECE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MtCrenel_Entrance[] = {
- { WARP_TYPE_AREA, 0x0, 0x298, 0x28, 0x78, 0x78, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_RUPEE_FAIRY_FOUINTAIN,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x198, 0xd8, 0x1f8, 0x78, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_HELMASAUR_HALLWAY,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x138, 0x138, 0xb8, 0x138, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_MUSHROOM_KEESE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x2d8, 0x188, 0x78, 0x88, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_LADDER_TO_SPRING_WATER,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x198, 0x78, 0x78, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BOMB_BUSINESS_SCRUB,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x3b8, 0x168, 0x78, 0x78, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_HINT_SCRUB,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1c8, 0x18, 0x98, 0x1a8, 0x0, AREA_MINISH_CAVES, ROOM_MINISH_CAVES_BEAN_PESTO,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x2d8, 0x154, 0x78, 0x38, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_LADDER_TO_SPRING_WATER,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x8, 0xfff, 0x8, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
- 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x298, 0x28, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_RUPEE_FAIRY_FOUINTAIN,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x198, 0xd8, 0x1f8, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_HELMASAUR_HALLWAY,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x138, 0x138, 0xb8, 0x138, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_MUSHROOM_KEESE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x2d8, 0x188, 0x78, 0x88, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_LADDER_TO_SPRING_WATER,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x198, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BOMB_BUSINESS_SCRUB,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x3b8, 0x168, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_HINT_SCRUB,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1c8, 0x18, 0x98, 0x1a8, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_CAVES, ROOM_MINISH_CAVES_BEAN_PESTO,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x2d8, 0x154, 0x78, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_LADDER_TO_SPRING_WATER,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x8, 0xfff, TRANSITION_SHAPE_BORDER_EAST_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
+ 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_MtCrenel[] = {
@@ -312,135 +312,135 @@ const Transition* const gExitLists_MtCrenel[] = {
};
const Transition gExitList_HyruleField_WesternWoodSouth[] = {
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x28, 0x78, 0x78, 0x0, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_HYRULE_FIELD_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x28, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_HYRULE_FIELD_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleField_SouthHyruleField[] = {
- { WARP_TYPE_AREA, 0x0, 0x290, 0x188, 0x78, 0x78, 0x2, AREA_HOUSE_INTERIORS_2,
- ROOM_HOUSE_INTERIORS_2_LINKS_HOUSE_ENTRANCE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x3a0, 0x228, 0x78, 0x78, 0x2, AREA_TREE_INTERIORS,
- ROOM_TREE_INTERIORS_SOUTH_HYRULE_FIELD_HEART_PIECE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x118, 0xa8, 0x78, 0x78, 0x0, AREA_CAVES, ROOM_CAVES_SOUTH_HYRULE_FIELD_FAIRY_FOUNTAIN,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x58, 0x118, 0x78, 0x78, 0x0, AREA_CAVES, ROOM_CAVES_SOUTH_HYRULE_FIELD_RUPEE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x178, 0xd8, 0x78, 0xb8, 0x0, AREA_MINISH_CAVES, ROOM_MINISH_CAVES_OUTSIDE_LINKS_HOUSE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x48, 0x1c8, 0x78, 0x78, 0x0, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_SOUTH_HYRULE_FIELD, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1f8, 0x3b8, 0x3, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x290, 0x188, 0x78, 0x78, TRANSITION_SHAPE_AREA_28x12, AREA_HOUSE_INTERIORS_2,
+ ROOM_HOUSE_INTERIORS_2_LINKS_HOUSE_ENTRANCE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x3a0, 0x228, 0x78, 0x78, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS,
+ ROOM_TREE_INTERIORS_SOUTH_HYRULE_FIELD_HEART_PIECE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x118, 0xa8, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_SOUTH_HYRULE_FIELD_FAIRY_FOUNTAIN,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x118, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_SOUTH_HYRULE_FIELD_RUPEE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x178, 0xd8, 0x78, 0xb8, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_CAVES, ROOM_MINISH_CAVES_OUTSIDE_LINKS_HOUSE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x48, 0x1c8, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_SOUTH_HYRULE_FIELD, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1f8, 0x3b8, TRANSITION_SHAPE_BORDER_NORTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleField_EasternHillsSouth[] = {
- { WARP_TYPE_AREA, 0x0, 0x38, 0x28, 0x78, 0x78, 0x0, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_HYRULE_FIELD_EXIT, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x8, 0x3c8, 0x8, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x28, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_HYRULE_FIELD_EXIT, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x8, 0x3c8, TRANSITION_SHAPE_BORDER_EAST_SOUTH, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleField_EasternHillsCenter[] = {
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x98, 0x78, 0x78, 0x0, AREA_CAVES, ROOM_CAVES_HILLS_KEESE_CHEST, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x98, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_HILLS_KEESE_CHEST, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleField_EasternHillsNorth[] = {
- { WARP_TYPE_AREA, 0x0, 0x40, 0x48, 0x78, 0x88, 0x2, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_FARM_HOUSE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x8, 0xfff, 0xc, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x40, 0x48, 0x78, 0x88, TRANSITION_SHAPE_AREA_28x12, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_FARM_HOUSE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x8, 0xfff, TRANSITION_SHAPE_BORDER_EAST, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleField_LonLonRanch[] = {
- { WARP_TYPE_AREA, 0x0, 0x158, 0x278, 0x68, 0x78, 0x0, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_RANCH_HOUSE_WEST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x188, 0x278, 0x78, 0x78, 0x0, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_RANCH_HOUSE_EAST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xe8, 0x1b4, 0xa8, 0xd8, 0x0, AREA_CAVES, ROOM_CAVES_LON_LON_RANCH, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1f8, 0x208, 0x78, 0x78, 0x0, AREA_CAVES, ROOM_CAVES_LON_LON_RANCH_WALLET, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0x354, 0x78, 0x78, 0x0, AREA_GORON_CAVE, ROOM_GORON_CAVE_STAIRS, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x154, 0x38, 0x28, 0x0, AREA_CAVES, ROOM_CAVES_LON_LON_RANCH, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x3e8, 0x1, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1c8, 0x3e8, 0x2, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x8, 0xfff, 0xc, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x2,
+ { WARP_TYPE_AREA, 0x158, 0x278, 0x68, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_RANCH_HOUSE_WEST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x188, 0x278, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_RANCH_HOUSE_EAST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xe8, 0x1b4, 0xa8, 0xd8, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_LON_LON_RANCH, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1f8, 0x208, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_LON_LON_RANCH_WALLET, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x354, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_GORON_CAVE, ROOM_GORON_CAVE_STAIRS, 1, TRANSITION_TYPE_NORMAL,
0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3e8, 0xf0, 0x80, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x154, 0x38, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_LON_LON_RANCH, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x3e8, TRANSITION_SHAPE_BORDER_NORTH_WEST, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1c8, 0x3e8, TRANSITION_SHAPE_BORDER_NORTH_EAST, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x8, 0xfff, TRANSITION_SHAPE_BORDER_EAST, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x2,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3e8, 0xf0, TRANSITION_SHAPE_BORDER_WEST_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleField_NorthHyruleField[] = {
- { WARP_TYPE_AREA, 0x0, 0x1f8, 0x38, 0x1f8, 0x208, 0x3, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1b0, 0x128, 0x78, 0x78, 0x2, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_NORTHWEST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x240, 0x128, 0x78, 0x78, 0x2, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_NORTHEAST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1b0, 0x188, 0x78, 0x78, 0x2, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_SOUTHWEST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x240, 0x188, 0x78, 0x78, 0x2, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_SOUTHEAST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x2f0, 0x138, 0x78, 0x78, 0x2, AREA_TREE_INTERIORS,
- ROOM_TREE_INTERIORS_NORTH_HYRULE_FIELD_FAIRY_FOUNTAIN, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1f8, 0x154, 0xa8, 0xd8, 0x0, AREA_CAVES, ROOM_CAVES_BOOMERANG, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x108, 0x138, 0x108, 0xd8, 0x0, AREA_CAVES, ROOM_CAVES_TO_GRAVEYARD, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x138, 0x1e8, 0x78, 0xc8, 0x0, AREA_CAVES, ROOM_CAVES_HEART_PIECE_HALLWAY, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0xf4, 0x38, 0x58, 0x0, AREA_CAVES, ROOM_CAVES_TO_GRAVEYARD, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x118, 0xf4, 0x118, 0x58, 0x0, AREA_CAVES, ROOM_CAVES_TO_GRAVEYARD, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x208, 0x3, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1f8, 0x18, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x8, 0xfff, 0x4, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x2,
+ { WARP_TYPE_AREA, 0x1f8, 0x38, 0x1f8, 0x208, TRANSITION_SHAPE_AREA_44x12, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1b0, 0x128, 0x78, 0x78, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_NORTHWEST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x240, 0x128, 0x78, 0x78, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_NORTHEAST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1b0, 0x188, 0x78, 0x78, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_SOUTHWEST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x240, 0x188, 0x78, 0x78, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_SOUTHEAST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x2f0, 0x138, 0x78, 0x78, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS,
+ ROOM_TREE_INTERIORS_NORTH_HYRULE_FIELD_FAIRY_FOUNTAIN, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1f8, 0x154, 0xa8, 0xd8, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_BOOMERANG, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x108, 0x138, 0x108, 0xd8, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_TO_GRAVEYARD, 1, TRANSITION_TYPE_NORMAL,
0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1d8, 0x260, 0x40, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x138, 0x1e8, 0x78, 0xc8, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_HEART_PIECE_HALLWAY, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0xf4, 0x38, 0x58, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_TO_GRAVEYARD, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x118, 0xf4, 0x118, 0x58, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_TO_GRAVEYARD, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x208, TRANSITION_SHAPE_BORDER_NORTH, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1f8, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x8, 0xfff, TRANSITION_SHAPE_BORDER_EAST_NORTH, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x2,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1d8, 0x260, TRANSITION_SHAPE_BORDER_WEST_NORTH, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleField_TrilbyHighlands[] = {
- { WARP_TYPE_AREA, 0x0, 0x40, 0x388, 0x78, 0x78, 0x2, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_PERCYS_TREEHOUSE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0x222, 0x78, 0x78, 0x0, AREA_CAVES, ROOM_CAVES_TRILBY_KEESE_CHEST, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0x2a8, 0x78, 0x78, 0x0, AREA_CAVES, ROOM_CAVES_TRILBY_RUPEE, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ { WARP_TYPE_AREA, 0x40, 0x388, 0x78, 0x78, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_PERCYS_TREEHOUSE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x222, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_TRILBY_KEESE_CHEST, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x2a8, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_TRILBY_RUPEE, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x198, 0x2b2, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_TRILBY_FAIRY_FOUNTAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x94, 0x88, 0x68, TRANSITION_SHAPE_AREA_12x12, AREA_DIG_CAVES, ROOM_DIG_CAVES_TRILBY_HIGHLANDS, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x98, 0x284, 0x38, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_TRILBY_HIGHLANDS, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x118, 0x284, 0x128, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_TRILBY_HIGHLANDS, 1, TRANSITION_TYPE_NORMAL,
0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x198, 0x2b2, 0x78, 0x78, 0x0, AREA_CAVES, ROOM_CAVES_TRILBY_FAIRY_FOUNTAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0x94, 0x88, 0x68, 0x0, AREA_DIG_CAVES, ROOM_DIG_CAVES_TRILBY_HIGHLANDS, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x98, 0x284, 0x38, 0x38, 0x0, AREA_CAVES, ROOM_CAVES_TRILBY_HIGHLANDS, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x118, 0x284, 0x128, 0x38, 0x0, AREA_CAVES, ROOM_CAVES_TRILBY_HIGHLANDS, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x3e8, 0x1, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x8, 0xf0, 0x8, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x2,
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x3e8, TRANSITION_SHAPE_BORDER_NORTH_WEST, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3e8, 0xfff, 0x40, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
- 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x8, 0xf0, TRANSITION_SHAPE_BORDER_EAST_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x2,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3e8, 0xfff, TRANSITION_SHAPE_BORDER_WEST_NORTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
+ 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleField_WesternWoodsNorth[] = {
- { WARP_TYPE_AREA, 0x0, 0xa0, 0x1e8, 0x78, 0x78, 0x2, AREA_TREE_INTERIORS,
- ROOM_TREE_INTERIORS_WESTERN_WOODS_HEART_PIECE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3e8, 0xfff, 0x40, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa0, 0x1e8, 0x78, 0x78, TRANSITION_SHAPE_AREA_28x12, AREA_TREE_INTERIORS,
+ ROOM_TREE_INTERIORS_WESTERN_WOODS_HEART_PIECE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3e8, 0xfff, TRANSITION_SHAPE_BORDER_WEST_NORTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleField_WesternWoodsCenter[] = {
- { WARP_TYPE_AREA, 0x0, 0x90, 0x48, 0x78, 0x88, 0x2, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_PERCY,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x90, 0x48, 0x78, 0x88, TRANSITION_SHAPE_AREA_28x12, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_PERCY,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_HyruleField[] = {
@@ -458,38 +458,38 @@ const Transition* const gExitLists_HyruleField[] = {
// TODO this is one table
const Transition gExitList_CastleGarden_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0x1f8, 0x28, 0xd8, 0x208, 0x2, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_0, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x308, 0x48, 0x78, 0x78, 0x0, AREA_GARDEN_FOUNTAINS, ROOM_GARDEN_FOUNTAINS_EAST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xe8, 0x48, 0x78, 0x78, 0x0, AREA_GARDEN_FOUNTAINS, ROOM_GARDEN_FOUNTAINS_WEST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x68, 0x74, 0x68, 0x1a8, 0x0, AREA_HYRULE_CASTLE_CELLAR, ROOM_HYRULE_CASTLE_CELLAR_0,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x3a8, 0x184, 0x78, 0x68, 0x0, AREA_DOJOS, ROOM_DOJOS_TO_GRIMBLADE, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ { WARP_TYPE_AREA, 0x1f8, 0x28, 0xd8, 0x208, TRANSITION_SHAPE_AREA_28x12, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_0, 1, TRANSITION_TYPE_NORMAL,
0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1f8, 0x48, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x308, 0x48, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_GARDEN_FOUNTAINS, ROOM_GARDEN_FOUNTAINS_EAST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xe8, 0x48, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_GARDEN_FOUNTAINS, ROOM_GARDEN_FOUNTAINS_WEST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x74, 0x68, 0x1a8, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_CASTLE_CELLAR, ROOM_HYRULE_CASTLE_CELLAR_0,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x3a8, 0x184, 0x78, 0x68, TRANSITION_SHAPE_AREA_12x12, AREA_DOJOS, ROOM_DOJOS_TO_GRIMBLADE, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1f8, 0x48, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gUnk_08134FBC[] = {
- { WARP_TYPE_AREA, 0x0, 0x1f8, 0x28, 0x198, 0x1f0, 0x2, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x308, 0x48, 0x78, 0x78, 0x0, AREA_GARDEN_FOUNTAINS, ROOM_GARDEN_FOUNTAINS_EAST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xe8, 0x48, 0x78, 0x78, 0x0, AREA_GARDEN_FOUNTAINS, ROOM_GARDEN_FOUNTAINS_WEST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x68, 0x74, 0x68, 0x1a8, 0x0, AREA_HYRULE_CASTLE_CELLAR, ROOM_HYRULE_CASTLE_CELLAR_0,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x3a8, 0x184, 0x78, 0x68, 0x0, AREA_DOJOS, ROOM_DOJOS_TO_GRIMBLADE, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1f8, 0x48, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1f8, 0x28, 0x198, 0x1f0, TRANSITION_SHAPE_AREA_28x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x308, 0x48, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_GARDEN_FOUNTAINS, ROOM_GARDEN_FOUNTAINS_EAST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xe8, 0x48, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_GARDEN_FOUNTAINS, ROOM_GARDEN_FOUNTAINS_WEST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x74, 0x68, 0x1a8, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_CASTLE_CELLAR, ROOM_HYRULE_CASTLE_CELLAR_0,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x3a8, 0x184, 0x78, 0x68, TRANSITION_SHAPE_AREA_12x12, AREA_DOJOS, ROOM_DOJOS_TO_GRIMBLADE, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1f8, 0x48, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gUnk_08135048[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x8, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_CastleGarden[] = {
@@ -497,8 +497,8 @@ const Transition* const gExitLists_CastleGarden[] = {
};
const Transition gExitList_CloudTops_House[] = {
- { WARP_TYPE_AREA, 0x0, 0x1e8, 0x158, 0x78, 0x138, 0x0, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1e8, 0x158, 0x78, 0x138, TRANSITION_SHAPE_AREA_12x12, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_CloudTops[] = {
@@ -506,41 +506,41 @@ const Transition* const gExitLists_CloudTops[] = {
};
const Transition gExitList_RoyalValley_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0xf0, 0x28, 0x88, 0x78, 0x2, AREA_ROYAL_CRYPT, ROOM_ROYAL_CRYPT_ENTRANCE, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1a0, 0x198, 0x78, 0x78, 0x2, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_DAMPE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x198, 0x2a8, 0x78, 0xf8, 0x0, AREA_GREAT_FAIRIES, ROOM_GREAT_FAIRIES_GRAVEYARD,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x58, 0x84, 0x78, 0x78, 0x0, AREA_ROYAL_VALLEY_GRAVES, ROOM_ROYAL_VALLEY_GRAVES_HEART_PIECE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x188, 0x84, 0x78, 0x118, 0x0, AREA_ROYAL_VALLEY_GRAVES, ROOM_ROYAL_VALLEY_GRAVES_GINA,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x10, 0x10, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x8, 0x50, 0x8, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xf0, 0x28, 0x88, 0x78, TRANSITION_SHAPE_AREA_28x12, AREA_ROYAL_CRYPT, ROOM_ROYAL_CRYPT_ENTRANCE, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1a0, 0x198, 0x78, 0x78, TRANSITION_SHAPE_AREA_28x12, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_DAMPE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x198, 0x2a8, 0x78, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_GREAT_FAIRIES, ROOM_GREAT_FAIRIES_GRAVEYARD,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x84, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_ROYAL_VALLEY_GRAVES, ROOM_ROYAL_VALLEY_GRAVES_HEART_PIECE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x188, 0x84, 0x78, 0x118, TRANSITION_SHAPE_AREA_12x12, AREA_ROYAL_VALLEY_GRAVES, ROOM_ROYAL_VALLEY_GRAVES_GINA,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x10, TRANSITION_SHAPE_BORDER_SOUTH_WEST, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x8, 0x50, TRANSITION_SHAPE_BORDER_EAST_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
#ifndef EU
- { WARP_TYPE_AREA, 0x0, 0x78, 0x28c, 0x78, 0x18, 0x0, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_FOREST_MAZE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x28c, 0x78, 0x18, TRANSITION_SHAPE_AREA_12x12, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_FOREST_MAZE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
#else
- { WARP_TYPE_AREA, 0x0, 0x78, 0x288, 0x78, 0x18, 0x0, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_FOREST_MAZE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x288, 0x78, 0x18, TRANSITION_SHAPE_AREA_12x12, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_FOREST_MAZE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
#endif
- { WARP_TYPE_AREA, 0x0, 0x78, 0x328, 0x78, 0x98, 0x0, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_FOREST_MAZE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x328, 0x78, 0x98, TRANSITION_SHAPE_AREA_12x12, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_FOREST_MAZE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_RoyalValley_ForestMaze[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x338, 0x30, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x338, TRANSITION_SHAPE_BORDER_SOUTH, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gUnk_08135190[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x278, 0x3, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x338, 0x30, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x278, TRANSITION_SHAPE_BORDER_NORTH, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x338, TRANSITION_SHAPE_BORDER_SOUTH, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_RoyalValley[] = {
@@ -549,30 +549,30 @@ const Transition* const gExitLists_RoyalValley[] = {
};
const Transition gExitList_VeilFalls_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x22, 0x38, 0x78, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x158, 0x22, 0x118, 0x78, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x118, 0x42, 0xb8, 0x78, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0x1e2, 0x38, 0x78, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xd8, 0x1c2, 0x98, 0x78, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_EXIT,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xd8, 0x142, 0x98, 0x118, 0x0, AREA_VEIL_FALLS_CAVES,
- ROOM_VEIL_FALLS_CAVES_HALLWAY_BLOCK_PUZZLE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xa8, 0xc2, 0xb8, 0x118, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_RUPEE_PATH,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0x28, 0x78, 0x78, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_HEART_PIECE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xc8, 0x74, 0x38, 0x108, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x10, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0xb8, 0x3, AREA_VEIL_FALLS_TOP, ROOM_VEIL_FALLS_TOP_0, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3e8, 0xfff, 0xc0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x22, 0x38, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x158, 0x22, 0x118, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x118, 0x42, 0xb8, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x1e2, 0x38, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xd8, 0x1c2, 0x98, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_EXIT,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xd8, 0x142, 0x98, 0x118, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES,
+ ROOM_VEIL_FALLS_CAVES_HALLWAY_BLOCK_PUZZLE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0xc2, 0xb8, 0x118, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_RUPEE_PATH,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x28, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_HEART_PIECE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xc8, 0x74, 0x38, 0x108, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x10, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0xb8, TRANSITION_SHAPE_BORDER_NORTH, AREA_VEIL_FALLS_TOP, ROOM_VEIL_FALLS_TOP_0, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3e8, 0xfff, TRANSITION_SHAPE_BORDER_WEST, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_VeilFalls[] = {
@@ -580,63 +580,63 @@ const Transition* const gExitLists_VeilFalls[] = {
};
const Transition gExitList_Beanstalks_MountCrenel[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x88, 0x78, 0x18, 0x2, AREA_BEANSTALKS, ROOM_BEANSTALKS_CRENEL_CLIMB, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x88, 0x78, 0x18, TRANSITION_SHAPE_AREA_28x12, AREA_BEANSTALKS, ROOM_BEANSTALKS_CRENEL_CLIMB, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Beanstalks_LakeHylia[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x88, 0x78, 0x18, 0x2, AREA_BEANSTALKS, ROOM_BEANSTALKS_LAKE_HYLIA_CLIMB,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x88, 0x78, 0x18, TRANSITION_SHAPE_AREA_28x12, AREA_BEANSTALKS, ROOM_BEANSTALKS_LAKE_HYLIA_CLIMB,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Beanstalks_Ruins[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x88, 0x78, 0x18, 0x2, AREA_BEANSTALKS, ROOM_BEANSTALKS_RUINS_CLIMB, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x88, 0x78, 0x18, TRANSITION_SHAPE_AREA_28x12, AREA_BEANSTALKS, ROOM_BEANSTALKS_RUINS_CLIMB, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Beanstalks_EasternHills[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x88, 0x78, 0x18, 0x2, AREA_BEANSTALKS, ROOM_BEANSTALKS_EASTERN_HILLS_CLIMB,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x88, 0x78, 0x18, TRANSITION_SHAPE_AREA_28x12, AREA_BEANSTALKS, ROOM_BEANSTALKS_EASTERN_HILLS_CLIMB,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Beanstalks_WesternWoods[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x88, 0x78, 0x18, 0x2, AREA_BEANSTALKS, ROOM_BEANSTALKS_WESTERN_WOODS_CLIMB,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x88, 0x78, 0x18, TRANSITION_SHAPE_AREA_28x12, AREA_BEANSTALKS, ROOM_BEANSTALKS_WESTERN_WOODS_CLIMB,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Beanstalks_MountCrenelClimb[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x58, 0x68, 0x3, AREA_BEANSTALKS, ROOM_BEANSTALKS_CRENEL, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x98, 0x18, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x58, 0x68, TRANSITION_SHAPE_BORDER_NORTH, AREA_BEANSTALKS, ROOM_BEANSTALKS_CRENEL, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x98, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Beanstalks_LakeHyliaClimb[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x58, 0x68, 0x3, AREA_BEANSTALKS, ROOM_BEANSTALKS_LAKE_HYLIA, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x228, 0x18, 0x30, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_BEANSTALK, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x58, 0x68, TRANSITION_SHAPE_BORDER_NORTH, AREA_BEANSTALKS, ROOM_BEANSTALKS_LAKE_HYLIA, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x228, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_BEANSTALK, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Beanstalks_RuinsClimb[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x58, 0x68, 0x3, AREA_BEANSTALKS, ROOM_BEANSTALKS_RUINS, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x48, 0x18, 0x30, AREA_RUINS, ROOM_RUINS_BEANSTALK, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0,
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x58, 0x68, TRANSITION_SHAPE_BORDER_NORTH, AREA_BEANSTALKS, ROOM_BEANSTALKS_RUINS, 1, TRANSITION_TYPE_NORMAL, 0x0,
0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x48, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_BEANSTALK, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0,
+ 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Beanstalks_EasternHillsClimb[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x58, 0x68, 0x3, AREA_BEANSTALKS, ROOM_BEANSTALKS_EASTERN_HILLS, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x48, 0x18, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_CENTER,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x58, 0x68, TRANSITION_SHAPE_BORDER_NORTH, AREA_BEANSTALKS, ROOM_BEANSTALKS_EASTERN_HILLS, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x48, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_CENTER,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Beanstalks_WesternWoodsClimb[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x58, 0x68, 0x3, AREA_BEANSTALKS, ROOM_BEANSTALKS_WESTERN_WOODS, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x18, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_SOUTH,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x58, 0x68, TRANSITION_SHAPE_BORDER_NORTH, AREA_BEANSTALKS, ROOM_BEANSTALKS_WESTERN_WOODS, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_SOUTH,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_Beanstalks[] = {
@@ -664,8 +664,8 @@ const Transition* const gExitLists_Beanstalks[] = {
};
const Transition gExitList_LakeWoodsCave_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0x248, 0x188, 0x148, 0x358, 0x0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x248, 0x188, 0x148, 0x358, TRANSITION_SHAPE_AREA_12x12, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_LakeWoodsCave[] = {
@@ -673,8 +673,8 @@ const Transition* const gExitLists_LakeWoodsCave[] = {
};
const Transition gExitList_HyruleDigCaves_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0x188, 0x218, 0x48, 0x118, 0x0, AREA_HYRULE_TOWN_UNDERGROUND, ROOM_HYRULE_TOWN_UNDERGROUND_0,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x188, 0x218, 0x48, 0x118, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_TOWN_UNDERGROUND, ROOM_HYRULE_TOWN_UNDERGROUND_0,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_HyruleDigCaves[] = {
@@ -682,37 +682,37 @@ const Transition* const gExitLists_HyruleDigCaves[] = {
};
const Transition gExitList_MinishVillage_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x88, 0x78, 0x78, 0x0, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_GENTARI_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0x70, 0x68, 0x50, 0x1, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_GENTARI_EXIT, 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x258, 0x58, 0xe8, 0xb8, 0x0, AREA_MINISH_HOUSE_INTERIORS, ROOM_MINISH_HOUSE_INTERIORS_FESTARI,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x128, 0x228, 0x80, 0x78, 0x0, AREA_MINISH_HOUSE_INTERIORS, ROOM_MINISH_HOUSE_INTERIORS_RED,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x168, 0x1d8, 0x80, 0x78, 0x0, AREA_MINISH_HOUSE_INTERIORS, ROOM_MINISH_HOUSE_INTERIORS_GREEN,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1a8, 0x208, 0x80, 0x78, 0x0, AREA_MINISH_HOUSE_INTERIORS, ROOM_MINISH_HOUSE_INTERIORS_BLUE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1e8, 0x2d8, 0x78, 0x78, 0x0, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_SHOE_MINISH, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x48, 0x248, 0x78, 0xc8, 0x0, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_POT_MINISH, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x378, 0x288, 0x78, 0x140, 0x0, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_BARREL_MINISH, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x368, 0x234, 0x58, 0x100, 0x0, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_BARREL_MINISH, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x18, 0x30, AREA_MINISH_PATHS, ROOM_MINISH_PATHS_MINISH_VILLAGE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1c8, 0x338, 0x1, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1a8, 0x348, 0x40, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x88, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_GENTARI_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x70, 0x68, 0x50, TRANSITION_SHAPE_AREA_12x28, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_GENTARI_EXIT, 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x258, 0x58, 0xe8, 0xb8, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS, ROOM_MINISH_HOUSE_INTERIORS_FESTARI,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x128, 0x228, 0x80, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS, ROOM_MINISH_HOUSE_INTERIORS_RED,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x168, 0x1d8, 0x80, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS, ROOM_MINISH_HOUSE_INTERIORS_GREEN,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1a8, 0x208, 0x80, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS, ROOM_MINISH_HOUSE_INTERIORS_BLUE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1e8, 0x2d8, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_SHOE_MINISH, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x48, 0x248, 0x78, 0xc8, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_POT_MINISH, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x378, 0x288, 0x78, 0x140, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_BARREL_MINISH, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x368, 0x234, 0x58, 0x100, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_BARREL_MINISH, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_PATHS, ROOM_MINISH_PATHS_MINISH_VILLAGE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1c8, 0x338, TRANSITION_SHAPE_BORDER_NORTH_WEST, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1a8, 0x348, TRANSITION_SHAPE_BORDER_WEST_NORTH, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishVillage_SideHouse[] = {
- { WARP_TYPE_AREA, 0x0, 0x138, 0x68, 0x80, 0x78, 0x0, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_SIDE_AREA, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x138, 0x68, 0x80, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_SIDE_AREA, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_MinishVillage[] = {
@@ -723,16 +723,16 @@ const Transition* const gExitLists_MinishVillage[] = {
};
const Transition gExitList_MelarisMine_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x38, 0x78, 0xa8, 0x0, AREA_CRENEL_MINISH_PATHS, ROOM_CRENEL_MINISH_PATHS_MELARI,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x70, 0x12c, 0xbc, 0x138, 0x0, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x6, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x220, 0x78, 0x28, 0x0, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_MELARI_MINES_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x228, 0x220, 0x78, 0x28, 0x0, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_MELARI_MINES_SOUTHEAST, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x280, 0x11c, 0x24, 0x56, 0x0, AREA_MINISH_HOUSE_INTERIORS,
- ROOM_MINISH_HOUSE_INTERIORS_MELARI_MINES_EAST, 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x38, 0x78, 0xa8, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_MINISH_PATHS, ROOM_CRENEL_MINISH_PATHS_MELARI,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x70, 0x12c, 0xbc, 0x138, TRANSITION_SHAPE_AREA_12x12, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x6, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x220, 0x78, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_MELARI_MINES_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x228, 0x220, 0x78, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_MELARI_MINES_SOUTHEAST, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x280, 0x11c, 0x24, 0x56, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_HOUSE_INTERIORS,
+ ROOM_MINISH_HOUSE_INTERIORS_MELARI_MINES_EAST, 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_MelarisMine[] = {
@@ -740,34 +740,34 @@ const Transition* const gExitLists_MelarisMine[] = {
};
const Transition gExitList_MinishPaths_ToMinishVillage[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x208, 0x3e0, 0x3, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1d8, 0x398, 0x30, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x208, 0x3e0, TRANSITION_SHAPE_BORDER_NORTH, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1d8, 0x398, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishPaths_CastorWilds[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x28, 0x68, 0x3, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x28, 0xa8, 0x30, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x28, 0x68, TRANSITION_SHAPE_BORDER_NORTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x28, 0xa8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishPaths_HyruleTown[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x398, 0x68, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x398, 0x68, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishPaths_LonLonRanch[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1e0, 0x174, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1e0, 0x174, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishPaths_MayorsCabin[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2a8, 0x31a, 0x3, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xb8, 0x48, 0x30, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_MAYOR_LAKE_CABIN,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2a8, 0x31a, TRANSITION_SHAPE_BORDER_NORTH, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xb8, 0x48, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_MAYOR_LAKE_CABIN,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_MinishPaths[] = {
@@ -779,27 +779,27 @@ const Transition* const gExitLists_MinishPaths[] = {
};
const Transition gExitList_CrenelMinishPaths_CrenelBean[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xd2, 0x60, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xd2, 0x60, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelMinishPaths_CrenelWater[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x372, 0xf5, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x372, 0xf5, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelMinishPaths_Rainfall[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2cc, 0x98, 0xc0, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x6,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2f4, 0x98, 0xc, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x2,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2cc, 0x98, TRANSITION_SHAPE_BORDER_WEST, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x6,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2f4, 0x98, TRANSITION_SHAPE_BORDER_EAST, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x2,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelMinishPaths_MelarisMine[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xf4, 0x108, 0xc, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x2, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x48, 0x30, AREA_MELARIS_MINE, ROOM_MELARIS_MINE_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xf4, 0x108, TRANSITION_SHAPE_BORDER_EAST, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x2, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x48, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MELARIS_MINE, ROOM_MELARIS_MINE_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_CrenelMinishPaths[] = {
@@ -810,10 +810,10 @@ const Transition* const gExitLists_CrenelMinishPaths[] = {
};
const Transition gExitList_DigCaves1_TrilbyHighlands[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x44, 0x88, 0x78, 0x0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1a8, 0x78, 0xb8, 0x28, 0x0, AREA_CAVES, ROOM_CAVES_TRILBY_MITTS_FAIRY_FOUNTAIN,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x44, 0x88, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1a8, 0x78, 0xb8, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_TRILBY_MITTS_FAIRY_FOUNTAIN,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_DigCaves1[] = {
@@ -824,122 +824,122 @@ const Transition* const gExitLists_DigCaves1[] = {
};
const Transition gExitList_MinishHouseInteriors_GentariMain[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x98, 0x30, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x98, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_GentariExit[] = {
- { WARP_TYPE_AREA, 0x0, 0x48, 0x50, 0x28, 0x70, 0x1, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x48, 0x50, 0x28, 0x70, TRANSITION_SHAPE_AREA_12x28, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_Festari[] = {
- { WARP_TYPE_AREA, 0x0, 0xe8, 0xe8, 0x258, 0x68, 0x0, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xe8, 0x18, 0x1d0, 0x33c, 0x0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1,
- TRANSITION_TYPE_INSTANT_MINISH, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xe8, 0xe8, 0x258, 0x68, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xe8, 0x18, 0x1d0, 0x33c, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1,
+ TRANSITION_TYPE_INSTANT_MINISH, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_Red[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x128, 0x238, 0x30, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x128, 0x238, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_Green[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x168, 0x1e8, 0x30, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x168, 0x1e8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_Blue[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1a8, 0x218, 0x30, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1a8, 0x218, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_SideArea[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x138, 0x78, 0x30, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_SIDE_HOUSE_AREA,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x138, 0x78, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_SIDE_HOUSE_AREA,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_ShoeMinish[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1e8, 0x2e8, 0x30, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1e8, 0x2e8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_PotMinish[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x48, 0x258, 0x30, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x48, 0x258, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_BarrelMinish[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x378, 0x298, 0x30, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x58, 0xd0, 0x368, 0x218, 0x0, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x378, 0x298, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0xd0, 0x368, 0x218, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_NULL1[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x378, 0x290, 0x30, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_SIDE_HOUSE_AREA,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x378, 0x290, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_SIDE_HOUSE_AREA,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_NULL2[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x138, 0x70, 0x30, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_SIDE_HOUSE_AREA,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x138, 0x70, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_VILLAGE, ROOM_MINISH_VILLAGE_SIDE_HOUSE_AREA,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_MelariMinesSouthwest[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0x208, 0x3, AREA_MELARIS_MINE, ROOM_MELARIS_MINE_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xa8, 0x208, TRANSITION_SHAPE_BORDER_NORTH, AREA_MELARIS_MINE, ROOM_MELARIS_MINE_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_MelariMinesSoutheast[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x228, 0x208, 0x3, AREA_MELARIS_MINE, ROOM_MELARIS_MINE_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x228, 0x208, TRANSITION_SHAPE_BORDER_NORTH, AREA_MELARIS_MINE, ROOM_MELARIS_MINE_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_MelariMinesEast[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x270, 0x11e, 0xc0, AREA_MELARIS_MINE, ROOM_MELARIS_MINE_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x270, 0x11e, TRANSITION_SHAPE_BORDER_WEST, AREA_MELARIS_MINE, ROOM_MELARIS_MINE_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_HyruleFieldSouthwest[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xb8, 0x35, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_SOUTH,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xb8, 0x35, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_SOUTH,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_SouthHyruleField[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x48, 0x1d4, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x48, 0x1d4, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_NextToKnuckle[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x28, 0x55, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x28, 0x55, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_Librari[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1e8, 0x1b4, 0x30, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1e8, 0x1b4, TRANSITION_SHAPE_BORDER_SOUTH, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_HyruleFieldExit[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x35, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_SOUTH,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x35, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_SOUTH,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_HyruleTown[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x1b5, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x1b5, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_MinishWoodsBomb[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x138, 0x325, 0x30, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x138, 0x325, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishHouseInteriors_LakeHyliaOcarina[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xc8, 0x1a4, 0x30, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xc8, 0x1a4, TRANSITION_SHAPE_BORDER_SOUTH, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_MinishHouseInteriors[] = {
@@ -986,66 +986,66 @@ const Transition* const gExitLists_MinishHouseInteriors[] = {
};
const Transition gExitList_OuterFortressOfWinds_EntranceHall[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x22, 0x78, 0xb0, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WIZZROBE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x128, 0x22, 0x68, 0xb0, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_STAIRS_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1d8, 0x22, 0x78, 0xb0, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_CENTER_STAIRS_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x288, 0x22, 0x68, 0xb0, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x338, 0x22, 0x88, 0xb0, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_HEART_PIECE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x198, 0x28, 0x30, AREA_RUINS, ROOM_RUINS_FORTRESS_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x22, 0x78, 0xb0, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WIZZROBE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x128, 0x22, 0x68, 0xb0, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_STAIRS_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1d8, 0x22, 0x78, 0xb0, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_CENTER_STAIRS_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x288, 0x22, 0x68, 0xb0, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x338, 0x22, 0x88, 0xb0, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_HEART_PIECE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x198, 0x28, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_FORTRESS_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_OuterFortressOfWinds_2F[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x22, 0x88, 0xb0, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_STALFOS,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1d8, 0x92, 0x88, 0x170, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAIN_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x288, 0x92, 0x88, 0xa0, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x338, 0x22, 0x28, 0xb0, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_BOSS_KEY,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x128, 0xd8, 0x128, 0x68, 0x0, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1d8, 0xd8, 0x1d8, 0x68, 0x0, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x288, 0xd8, 0x288, 0x68, 0x0, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x338, 0xd8, 0x338, 0x68, 0x0, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x22, 0x88, 0xb0, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_STALFOS,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1d8, 0x92, 0x88, 0x170, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAIN_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x288, 0x92, 0x88, 0xa0, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x338, 0x22, 0x28, 0xb0, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_BOSS_KEY,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x128, 0xd8, 0x128, 0x68, TRANSITION_SHAPE_AREA_12x12, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1d8, 0xd8, 0x1d8, 0x68, TRANSITION_SHAPE_AREA_12x12, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x288, 0xd8, 0x288, 0x68, TRANSITION_SHAPE_AREA_12x12, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x338, 0xd8, 0x338, 0x68, TRANSITION_SHAPE_AREA_12x12, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_OuterFortressOfWinds_3F[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x22, 0x78, 0xa0, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_PIT_PLATFORMS,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1d8, 0x22, 0x198, 0xa0, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_KEY_LEVER,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x2e8, 0x22, 0x198, 0x178, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_KEY_LEVER,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x338, 0x22, 0x1f8, 0x178, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_KEY_LEVER,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1d8, 0x84, 0x1d8, 0xf8, 0x0, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x288, 0x84, 0x288, 0xf8, 0x0, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x338, 0x84, 0x338, 0xf8, 0x0, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x128, 0x84, 0x128, 0xf8, 0x0, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x22, 0x78, 0xa0, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_PIT_PLATFORMS,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1d8, 0x22, 0x198, 0xa0, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_KEY_LEVER,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x2e8, 0x22, 0x198, 0x178, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_KEY_LEVER,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x338, 0x22, 0x1f8, 0x178, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_KEY_LEVER,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1d8, 0x84, 0x1d8, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x288, 0x84, 0x288, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x338, 0x84, 0x338, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x128, 0x84, 0x128, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_OuterFortressOfWinds_MoleMitts[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x88, 0x22, 0x30, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_ENTRANCE_MOLE_MITTS,
- 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x88, 0x22, TRANSITION_SHAPE_BORDER_SOUTH, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_ENTRANCE_MOLE_MITTS,
+ 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_OuterFortressOfWinds_SmallKey[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x22, 0x30, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MINISH_HOLE,
- 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x22, TRANSITION_SHAPE_BORDER_SOUTH, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MINISH_HOLE,
+ 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_OuterFortressOfWinds[] = {
@@ -1057,12 +1057,12 @@ const Transition* const gExitLists_OuterFortressOfWinds[] = {
};
const Transition gExitList_HyliaDigCaves_North[] = {
- { WARP_TYPE_AREA, 0x0, 0x248, 0x62, 0x208, 0x78, 0x0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_BEANSTALK, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x308, 0x62, 0x308, 0x78, 0x0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_BEANSTALK, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x398, 0x52, 0x388, 0x48, 0x0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_BEANSTALK, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x248, 0x62, 0x208, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_BEANSTALK, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x308, 0x62, 0x308, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_BEANSTALK, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x398, 0x52, 0x388, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_BEANSTALK, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_HyliaDigCaves[] = {
@@ -1074,8 +1074,8 @@ const Transition* const gExitLists_HyliaDigCaves[] = {
};
const Transition gExitList_VeilFallsTop_Main[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x10, 0x30, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x10, TRANSITION_SHAPE_BORDER_SOUTH, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_VeilFallsTop[] = {
@@ -1083,93 +1083,93 @@ const Transition* const gExitLists_VeilFallsTop[] = {
};
const Transition gExitList_HouseInteriors2_Stranger[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x98, 0x17c, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x98, 0x17c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_WestOracle[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x40, 0x1cc, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x40, 0x1cc, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_2[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x40, 0x1cc, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x40, 0x1cc, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_3[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x40, 0x1cc, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x40, 0x1cc, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_DrLeft[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x25c, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x25c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_NULL1[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x40, 0x5c, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x40, 0x5c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_Romio[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2e8, 0x304, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2e8, 0x304, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_Julietta[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x348, 0x30c, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x348, 0x30c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_Percy[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x90, 0x5c, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_CENTER,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x90, 0x5c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_CENTER,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_EastOracle[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2b8, 0x374, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2b8, 0x374, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_A[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2b8, 0x374, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2b8, 0x374, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_B[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2b8, 0x374, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2b8, 0x374, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_Cucco[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3b8, 0x36c, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3b8, 0x36c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_LinksHouseEntrance[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x18, 0x58, 0x28, 0x0, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_LINKS_HOUSE_BEDROOM,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x290, 0x19c, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x18, 0x58, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_LINKS_HOUSE_BEDROOM,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x290, 0x19c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_Dampe[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1a0, 0x1ac, 0x30, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1a0, 0x1ac, TRANSITION_SHAPE_BORDER_SOUTH, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_NULL2[] = {
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_StockwellLakeHouse[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x120, 0x4c, 0x30, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x120, 0x4c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors2_LinksHouseBedroom[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x18, 0x58, 0x28, 0x0, AREA_HOUSE_INTERIORS_2,
- ROOM_HOUSE_INTERIORS_2_LINKS_HOUSE_ENTRANCE, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x18, 0x58, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_2,
+ ROOM_HOUSE_INTERIORS_2_LINKS_HOUSE_ENTRANCE, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_HouseInteriors2[] = {
@@ -1224,33 +1224,33 @@ const Transition* const gExitLists_HouseInteriors2[] = {
};
const Transition gExitList_HouseInteriors4_Carpenter[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x90, 0x2dc, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x90, 0x2dc, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors4_Swiftblade[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x138, 0x39c, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x138, 0x39c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors4_RanchHouseWest[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x158, 0x28c, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x158, 0x28c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors4_RanchHouseEast[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x188, 0x28c, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x188, 0x28c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors4_FarmHouse[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x40, 0x5c, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x40, 0x5c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_NORTH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors4_MayorLakeCabin[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2a0, 0x38c, 0x30, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2a0, 0x38c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_HouseInteriors4[] = {
@@ -1273,18 +1273,18 @@ const Transition* const gExitLists_HouseInteriors4[] = {
};
const Transition gExitList_GreatFairies_Graveyard[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x198, 0x2b8, 0x30, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x198, 0x2b8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_GreatFairies_MinishWoods[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x58, 0x30, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_MINISH_WOODS_GREAT_FAIRY,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x58, TRANSITION_SHAPE_BORDER_SOUTH, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_MINISH_WOODS_GREAT_FAIRY,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_GreatFairies_MtCrenel[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x148, 0x1f8, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_WALL_CLIMB, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x148, 0x1f8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_WALL_CLIMB, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_GreatFairies[] = {
@@ -1295,52 +1295,52 @@ const Transition* const gExitLists_GreatFairies[] = {
};
const Transition gExitList_HouseInteriors3_StockwellShop[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x258, 0x2fc, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x258, 0x2fc, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors3_Cafe[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x198, 0x2fc, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x198, 0x2fc, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors3_RemShoeShop[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x188, 0x210, 0xc, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x188, 0x210, TRANSITION_SHAPE_BORDER_EAST, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors3_Bakery[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x268, 0x1f0, 0xc0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x268, 0x1f0, TRANSITION_SHAPE_BORDER_WEST, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors3_Simon[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x188, 0x250, 0xc, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x188, 0x250, TRANSITION_SHAPE_BORDER_EAST, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors3_FigurineHouse[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x188, 0x290, 0xc, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x2, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x128, 0x290, 0xc0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x188, 0x290, TRANSITION_SHAPE_BORDER_EAST, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x2, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x128, 0x290, TRANSITION_SHAPE_BORDER_WEST, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors3_BorlovEntrance[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x298, 0x26c, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xb8, 0x78, 0x3, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BORLOV,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x298, 0x26c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xb8, 0x78, TRANSITION_SHAPE_BORDER_NORTH, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BORLOV,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors3_Carlov[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x60, 0x30, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_STAIRS_TO_CARLOV,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x60, TRANSITION_SHAPE_BORDER_SOUTH, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_STAIRS_TO_CARLOV,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors3_Borlov[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x68, 0x30, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BORLOV_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x68, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BORLOV_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_HouseInteriors3[] = {
@@ -1363,81 +1363,81 @@ const Transition* const gExitLists_HouseInteriors3[] = {
};
const Transition gExitList_HouseInteriors1_Mayor[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2c8, 0x14c, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x318, 0x120, 0xc, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2c8, 0x14c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x318, 0x120, TRANSITION_SHAPE_BORDER_EAST, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors1_PostOffice[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x48, 0xb8, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x48, 0xb8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors1_Library2F[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x138, 0x58, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 2, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x78, 0x18, 0x68, 0x28, 0x0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_LIBRARY_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x138, 0x58, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 2, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x18, 0x68, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_LIBRARY_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors1_Library1F[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x168, 0xb8, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x68, 0x18, 0x78, 0x28, 0x0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_LIBRARY_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x168, 0xb8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x18, 0x78, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_LIBRARY_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors1_Inn1F[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x388, 0x268, 0x10, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x78, 0x18, 0x98, 0x78, 0x0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_WEST_ROOM,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x18, 0x78, 0x78, 0x0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_MIDDLE_ROOM,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xf8, 0x18, 0x78, 0x78, 0x0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_EAST_ROOM,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x118, 0x38, 0xb8, 0x168, 0x0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_EAST_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x388, 0x268, TRANSITION_SHAPE_BORDER_SOUTH_WEST, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x18, 0x98, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_WEST_ROOM,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x18, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_MIDDLE_ROOM,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xf8, 0x18, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_EAST_ROOM,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x118, 0x38, 0xb8, 0x168, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_EAST_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors1_InnWestRoom[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x28, 0x30, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x28, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors1_InnMiddleRoom[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xb8, 0x28, 0x30, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xb8, 0x28, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors1_InnEastRoom[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xf8, 0x28, 0x30, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xf8, 0x28, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors1_InnWest2F[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x368, 0x1c8, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x368, 0x1c8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors1_InnEast2F[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3a8, 0x230, 0x10, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 2, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x178, 0x118, 0x48, 0x0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3a8, 0x230, TRANSITION_SHAPE_BORDER_SOUTH_WEST, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 2, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x178, 0x118, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_INN_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors1_SchoolWest[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2c8, 0xa8, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x78, 0x48, 0x168, 0x28, 0x0, AREA_HYRULE_TOWN_UNDERGROUND, ROOM_HYRULE_TOWN_UNDERGROUND_0,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2c8, 0xa8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x48, 0x168, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_TOWN_UNDERGROUND, ROOM_HYRULE_TOWN_UNDERGROUND_0,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HouseInteriors1_SchoolEast[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x328, 0x78, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x328, 0x78, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_HouseInteriors1[] = {
@@ -1476,104 +1476,104 @@ const Transition* const gExitLists_HouseInteriors1[] = {
};
const Transition gExitList_TreeInteriors_WitchHut[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2c0, 0x58, 0x30, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2c0, 0x58, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_StairsToCarlov[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x48, 0x78, 0x78, 0x0, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_CARLOV,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x50, 0x388, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x48, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_CARLOV,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x50, 0x388, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_PercysTreehouse[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x40, 0x398, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x40, 0x398, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_HeartPiece[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3a0, 0x238, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3a0, 0x238, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_Waveblade[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x48, 0x78, 0x98, 0x0, AREA_DOJOS, ROOM_DOJOS_WAVEBLADE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0,
- 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x100, 0x2c8, 0x30, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x48, 0x78, 0x98, TRANSITION_SHAPE_AREA_12x12, AREA_DOJOS, ROOM_DOJOS_WAVEBLADE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0,
+ 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x100, 0x2c8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_14[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x210, 0x1d8, 0x30, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x210, 0x1d8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_BoomerangNorthwest[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x54, 0x48, 0x88, 0x0, AREA_CAVES, ROOM_CAVES_BOOMERANG, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0,
- 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1b0, 0x138, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x54, 0x48, 0x88, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_BOOMERANG, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0,
+ 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1b0, 0x138, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_BoomerangNortheast[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x54, 0x108, 0x88, 0x0, AREA_CAVES, ROOM_CAVES_BOOMERANG, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x240, 0x138, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x54, 0x108, 0x88, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_BOOMERANG, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x240, 0x138, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_BoomerangSouthwest[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x54, 0x48, 0xf8, 0x0, AREA_CAVES, ROOM_CAVES_BOOMERANG, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0,
- 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1b0, 0x198, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x54, 0x48, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_BOOMERANG, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0,
+ 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1b0, 0x198, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_BoomerangSoutheast[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x54, 0x108, 0xf8, 0x0, AREA_CAVES, ROOM_CAVES_BOOMERANG, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x240, 0x198, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x54, 0x108, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_BOOMERANG, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x240, 0x198, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_WesternWoodsHeartPiece[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa0, 0x1f8, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xa0, 0x1f8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_WESTERN_WOODS_NORTH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_NorthHyruleFieldFairyFountain[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x48, 0x78, 0x78, 0x0, AREA_CAVES, ROOM_CAVES_NORTH_HYRULE_FIELD_FAIRY_FOUNTAIN,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2f0, 0x148, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x48, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_NORTH_HYRULE_FIELD_FAIRY_FOUNTAIN,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2f0, 0x148, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_MinishWoodsGreatFairy[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x48, 0x78, 0xf8, 0x0, AREA_GREAT_FAIRIES, ROOM_GREAT_FAIRIES_MINISH_WOODS,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x70, 0x58, 0x30, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x48, 0x78, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_GREAT_FAIRIES, ROOM_GREAT_FAIRIES_MINISH_WOODS,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x70, 0x58, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_1C[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x50, 0x298, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x50, 0x298, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_MinishWoodsBusinessScrub[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x48, 0x78, 0x78, 0x0, AREA_CAVES, ROOM_CAVES_KINSTONE_BUSINESS_SCRUB, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x210, 0x1d8, 0x30, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x48, 0x78, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_KINSTONE_BUSINESS_SCRUB, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x210, 0x1d8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_1E[] = {
TransitionListEnd,
};
const Transition gExitList_TreeInteriors_UnusedHeartContainer[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1e0, 0x1b8, 0x30, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1e0, 0x1b8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_TreeInteriors[] = {
@@ -1612,38 +1612,38 @@ const Transition* const gExitLists_TreeInteriors[] = {
};
const Transition gExitList_Dojos_Grayblade[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x20, 0x30, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_TO_GRAYBLADE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x20, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_TO_GRAYBLADE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Dojos_Swiftblade[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x2e8, 0x30, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x2e8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Dojos_Waveblade[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x58, 0x30, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_WAVEBLADE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x58, TRANSITION_SHAPE_BORDER_SOUTH, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_WAVEBLADE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Dojos_ToGrimblade[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x48, 0x3a8, 0x168, 0x0, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x48, 0x3a8, 0x168, TRANSITION_SHAPE_AREA_12x12, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Dojos_ToSplitblade[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xf8, 0x358, 0x30, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xf8, 0x358, TRANSITION_SHAPE_BORDER_SOUTH, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Dojos_ToGreatblade[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xc8, 0x1f8, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xc8, 0x1f8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Dojos_ToScarblade[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x398, 0x48, 0x30, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x398, 0x48, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_Dojos[] = {
@@ -1666,71 +1666,71 @@ const Transition* const gExitLists_Dojos[] = {
};
const Transition gExitList_MinishCracks_LonLonRanchNorth[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x232, 0x18, 0x3, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x232, 0x18, TRANSITION_SHAPE_BORDER_NORTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_LakeHyliaEast[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2d8, 0x114, 0x3, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2d8, 0x114, TRANSITION_SHAPE_BORDER_NORTH, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_HyruleCastleGarden[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3a8, 0x40, 0x3, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3a8, 0x40, TRANSITION_SHAPE_BORDER_NORTH, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_MtCrenel[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x158, 0x54, 0x3, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x158, 0x54, TRANSITION_SHAPE_BORDER_NORTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_EastHyruleCastle[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3c8, 0x184, 0x3, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3c8, 0x184, TRANSITION_SHAPE_BORDER_NORTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_5[] = {
TransitionListEnd,
};
const Transition gExitList_MinishCracks_CastorWildsBow[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x28, 0x54, 0x3, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x28, 0x54, TRANSITION_SHAPE_BORDER_NORTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_RuinsEntrance[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x48, 0x17c, 0x3, AREA_RUINS, ROOM_RUINS_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0,
- 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x48, 0x17c, TRANSITION_SHAPE_BORDER_NORTH, AREA_RUINS, ROOM_RUINS_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0,
+ 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_MinishWoodsSouth[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x218, 0x3c4, 0x3, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x218, 0x3c4, TRANSITION_SHAPE_BORDER_NORTH, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_CastorWildsNorth[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xc8, 0x44, 0x3, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xc8, 0x44, TRANSITION_SHAPE_BORDER_NORTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_CastorWildsWest[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x134, 0x3, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x134, TRANSITION_SHAPE_BORDER_NORTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_CastorWildsMiddle[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x168, 0x2d4, 0x3, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x168, 0x2d4, TRANSITION_SHAPE_BORDER_NORTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_RuinsTektite[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xc8, 0x54, 0x3, AREA_RUINS, ROOM_RUINS_TEKTITES, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x0, 0x0,
- 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xc8, 0x54, TRANSITION_SHAPE_BORDER_NORTH, AREA_RUINS, ROOM_RUINS_TEKTITES, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x0, 0x0,
+ 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_CastorWildsNextToBow[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x18, 0x54, 0x3, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x18, 0x54, TRANSITION_SHAPE_BORDER_NORTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCracks_11[] = {
@@ -1764,112 +1764,112 @@ const Transition* const gExitLists_MinishCracks[] = {
};
const Transition gExitList_CrenelCaves_BlockPushing[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x328, 0x18, 0x3, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x128, 0x28, 0x10, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x208, 0x28, 0x20, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x238, 0xb8, 0x38, 0x38, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BRIDGE_SWITCH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x328, 0x18, TRANSITION_SHAPE_BORDER_NORTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_TOP, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x128, 0x28, TRANSITION_SHAPE_BORDER_SOUTH_WEST, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x208, 0x28, TRANSITION_SHAPE_BORDER_SOUTH_EAST, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x238, 0xb8, 0x38, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BRIDGE_SWITCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_PillarCave[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1d8, 0xc8, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0x28, 0xb8, 0x48, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_EXIT_TO_MINES,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1d8, 0xc8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x28, 0xb8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_EXIT_TO_MINES,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_BridgeSwitch[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x238, 0xc8, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0x28, 0x238, 0xc8, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BLOCK_PUSHING,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x238, 0xc8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x28, 0x238, 0xc8, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_BLOCK_PUSHING,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_ExitToMines[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x188, 0x108, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x38, 0x38, 0x38, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_PILLAR_CAVE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x188, 0x108, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x38, 0x38, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_PILLAR_CAVE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_GripRing[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1e8, 0x1e8, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1e8, 0x1e8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_FairyFountain[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0x58, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_CENTER, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xa8, 0x58, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_CENTER, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_SpinyChuPuzzle[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2f8, 0x38, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_CENTER, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x38, 0x38, 0x38, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_CHUCHU_POT_CHEST,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2f8, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_CENTER, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x38, 0x38, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_CHUCHU_POT_CHEST,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_ChuchuPotChest[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x348, 0x68, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_CENTER, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0x28, 0xb8, 0x48, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_SPINY_CHU_PUZZLE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x348, 0x68, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_CENTER, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x28, 0xb8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_SPINY_CHU_PUZZLE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_WaterHeartPiece[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x118, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_CENTER, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x118, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_CENTER, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_RupeeFairyFountain[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x298, 0x38, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x298, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_HelmasaurHallway[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x198, 0xe8, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x68, 0x18, 0xb8, 0x48, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_MUSHROOM_KEESE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x198, 0xe8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x18, 0xb8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_MUSHROOM_KEESE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_MushroomKeese[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x138, 0x148, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x38, 0x68, 0x28, 0x0, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_HELMASAUR_HALLWAY,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x138, 0x148, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x38, 0x68, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_CRENEL_CAVES, ROOM_CRENEL_CAVES_HELMASAUR_HALLWAY,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_LadderToSpringWater[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2d8, 0x198, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2d8, 0x138, 0x3, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2d8, 0x198, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2d8, 0x138, TRANSITION_SHAPE_BORDER_NORTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_BombBusinessScrub[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xb8, 0x1a8, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xb8, 0x1a8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_Hermit[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0x68, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_WALL_CLIMB, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xa8, 0x68, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_WALL_CLIMB, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_HintScrub[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3b8, 0x178, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3b8, 0x178, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CrenelCaves_ToGrayblade[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0xa0, 0x3, AREA_DOJOS, ROOM_DOJOS_GRAYBLADE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0,
- 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x208, 0x158, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0xa0, TRANSITION_SHAPE_BORDER_NORTH, AREA_DOJOS, ROOM_DOJOS_GRAYBLADE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0,
+ 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x208, 0x158, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_CrenelCaves[] = {
@@ -1893,32 +1893,32 @@ const Transition* const gExitLists_CrenelCaves[] = {
};
const Transition gExitList_CastorCaves_South[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2d8, 0x398, 0x30, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2d8, 0x398, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CastorCaves_North[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x248, 0x48, 0x10, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x288, 0x48, 0x20, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x248, 0x48, TRANSITION_SHAPE_BORDER_SOUTH_WEST, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x288, 0x48, TRANSITION_SHAPE_BORDER_SOUTH_EAST, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CastorCaves_WindRuins[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xc8, 0x48, 0x30, AREA_RUINS, ROOM_RUINS_ENTRANCE, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0,
- 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xc8, 0x48, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_ENTRANCE, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0,
+ 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CastorCaves_Darknut[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x18, 0x188, 0x28, 0x0, AREA_CASTOR_DARKNUT, ROOM_CASTOR_DARKNUT_HALL, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1a8, 0x1b8, 0x30, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x18, 0x188, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_CASTOR_DARKNUT, ROOM_CASTOR_DARKNUT_HALL, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1a8, 0x1b8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CastorCaves_HeartPiece[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3c8, 0x48, 0x30, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3c8, 0x48, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_CastorCaves[] = {
@@ -1936,8 +1936,8 @@ const Transition gExitList_CastorDarknut_Main[] = {
TransitionListEnd,
};
const Transition gExitList_CastorDarknut_Hall[] = {
- { WARP_TYPE_AREA, 0x0, 0x188, 0x18, 0x68, 0x28, 0x0, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_DARKNUT, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x188, 0x18, 0x68, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_CASTOR_CAVES, ROOM_CASTOR_CAVES_DARKNUT, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_CastorDarknut[] = {
@@ -1948,58 +1948,58 @@ const Transition* const gExitLists_CastorDarknut[] = {
};
const Transition gExitList_ArmosInteriors_RuinsEntranceNorth[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0xf8, 0x30, AREA_RUINS, ROOM_RUINS_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0,
- 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0xf8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0,
+ 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_ArmosInteriors_RuinsEntranceSouth[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x88, 0x1a8, 0x30, AREA_RUINS, ROOM_RUINS_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0,
- 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x88, 0x1a8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0,
+ 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_ArmosInteriors_RuinsLeft[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x48, 0x68, 0x30, AREA_RUINS, ROOM_RUINS_BELOW_FORTRESS_ENTRANCE, 1,
- TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x48, 0x68, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_BELOW_FORTRESS_ENTRANCE, 1,
+ TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_ArmosInteriors_RuinsMiddleLeft[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x68, 0x30, AREA_RUINS, ROOM_RUINS_BELOW_FORTRESS_ENTRANCE, 1,
- TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x68, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_BELOW_FORTRESS_ENTRANCE, 1,
+ TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_ArmosInteriors_RuinsMiddleRight[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0x68, 0x30, AREA_RUINS, ROOM_RUINS_BELOW_FORTRESS_ENTRANCE, 1,
- TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xa8, 0x68, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_BELOW_FORTRESS_ENTRANCE, 1,
+ TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_ArmosInteriors_RuinsRight[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xd8, 0x68, 0x30, AREA_RUINS, ROOM_RUINS_BELOW_FORTRESS_ENTRANCE, 1,
- TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xd8, 0x68, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_BELOW_FORTRESS_ENTRANCE, 1,
+ TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_ArmosInteriors_6[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x108, 0x68, 0x30, AREA_RUINS, ROOM_RUINS_BELOW_FORTRESS_ENTRANCE, 1,
- TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x108, 0x68, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_BELOW_FORTRESS_ENTRANCE, 1,
+ TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_ArmosInteriors_RuinsGrassPath[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0xa8, 0x30, AREA_RUINS, ROOM_RUINS_FORTRESS_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xa8, 0xa8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_FORTRESS_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_ArmosInteriors_8[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xc8, 0x58, 0x30, AREA_RUINS, ROOM_RUINS_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0,
- 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xc8, 0x58, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0,
+ 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_ArmosInteriors_FortressOfWindsLeft[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xc8, 0x58, 0x30, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_KEY_LEVER,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xc8, 0x58, TRANSITION_SHAPE_BORDER_SOUTH, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_KEY_LEVER,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_ArmosInteriors_FortressOfWindsRight[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xc8, 0x58, 0x30, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_KEY_LEVER,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xc8, 0x58, TRANSITION_SHAPE_BORDER_SOUTH, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_KEY_LEVER,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_ArmosInteriors[] = {
@@ -2017,47 +2017,47 @@ const Transition* const gExitLists_ArmosInteriors[] = {
};
const Transition gExitList_TownMinishHoles_MayorsHouse[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x2c, 0x30, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_MAYOR,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x2c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_MAYOR,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TownMinishHoles_WestOracle[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xc, 0x38, 0xc, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_WEST_ORACLE,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xc, 0x38, TRANSITION_SHAPE_BORDER_EAST, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_WEST_ORACLE,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TownMinishHoles_DrLeft[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0x44, 0x30, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_DR_LEFT,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xa8, 0x44, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_DR_LEFT,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TownMinishHoles_Carpenter[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xc, 0x68, 0xc, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_CARPENTER,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xc, 0x68, TRANSITION_SHAPE_BORDER_EAST, AREA_HOUSE_INTERIORS_4, ROOM_HOUSE_INTERIORS_4_CARPENTER,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TownMinishHoles_Cafe[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xcc, 0x48, 0xc0, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_CAFE,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xcc, 0x48, TRANSITION_SHAPE_BORDER_WEST, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_CAFE,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TownMinishHoles_LibraryBookshelf[] = {
- { WARP_TYPE_AREA, 0x0, 0x100, 0xc8, 0x78, 0xc0, 0x0, AREA_TOWN_MINISH_HOLES,
- ROOM_TOWN_MINISH_HOLES_LIBRARY_BOOKS_HOUSE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3e, 0x3c, 0x10, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_LIBRARY_2F,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x54, 0x3c, 0x20, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_LIBRARY_2F,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x100, 0xc8, 0x78, 0xc0, TRANSITION_SHAPE_AREA_12x12, AREA_TOWN_MINISH_HOLES,
+ ROOM_TOWN_MINISH_HOLES_LIBRARY_BOOKS_HOUSE, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3e, 0x3c, TRANSITION_SHAPE_BORDER_SOUTH_WEST, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_LIBRARY_2F,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x54, 0x3c, TRANSITION_SHAPE_BORDER_SOUTH_EAST, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_LIBRARY_2F,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TownMinishHoles_LibrariBookHouse[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xf8, 0xd8, 0x30, AREA_TOWN_MINISH_HOLES, ROOM_TOWN_MINISH_HOLES_LIBRARY_BOOKSHELF,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xf8, 0xd8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_TOWN_MINISH_HOLES, ROOM_TOWN_MINISH_HOLES_LIBRARY_BOOKSHELF,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TownMinishHoles_RemShoeShop[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x74, 0x64, 0x30, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_REM_SHOE_SHOP,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x74, 0x64, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_REM_SHOE_SHOP,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_TownMinishHoles[] = {
@@ -2084,29 +2084,29 @@ const Transition* const gExitLists_TownMinishHoles[] = {
};
const Transition gExitList_MinishRafters_Cafe[] = {
- { WARP_TYPE_AREA, 0x0, 0x38, 0x18, 0x48, 0x2c, 0x0, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_CAFE,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1bc, 0x2b4, 0xc, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 2, TRANSITION_TYPE_INSTANT_MINISH,
- 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x18, 0x48, 0x2c, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_CAFE,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1bc, 0x2b4, TRANSITION_SHAPE_BORDER_EAST, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 2, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishRafters_Stockwell[] = {
- { WARP_TYPE_AREA, 0x0, 0x198, 0x18, 0xac, 0x2c, 0x0, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_STOCKWELL_SHOP,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x238, 0x2b4, 0xc0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 2, TRANSITION_TYPE_INSTANT_MINISH,
- 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x198, 0x18, 0xac, 0x2c, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_STOCKWELL_SHOP,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x238, 0x2b4, TRANSITION_SHAPE_BORDER_WEST, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 2, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishRafters_DrLeft[] = {
- { WARP_TYPE_AREA, 0x0, 0xe8, 0x18, 0x88, 0x2c, 0x0, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_DR_LEFT,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xe8, 0x18, 0x88, 0x2c, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_2, ROOM_HOUSE_INTERIORS_2_DR_LEFT,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishRafters_Bakery[] = {
- { WARP_TYPE_AREA, 0x0, 0x48, 0x18, 0x48, 0x2c, 0x0, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BAKERY,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x148, 0x18, 0x88, 0x2c, 0x0, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BAKERY,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x48, 0x18, 0x48, 0x2c, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BAKERY,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x148, 0x18, 0x88, 0x2c, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_3, ROOM_HOUSE_INTERIORS_3_BAKERY,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_MinishRafters[] = {
@@ -2117,15 +2117,15 @@ const Transition* const gExitLists_MinishRafters[] = {
};
const Transition gExitList_GoronCave_Stairs[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x38, 0x78, 0x278, 0x0, AREA_GORON_CAVE, ROOM_GORON_CAVE_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x88, 0x368, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x38, 0x78, 0x278, TRANSITION_SHAPE_AREA_12x12, AREA_GORON_CAVE, ROOM_GORON_CAVE_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x88, 0x368, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_GoronCave_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x288, 0x78, 0x48, 0x0, AREA_GORON_CAVE, ROOM_GORON_CAVE_STAIRS, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x288, 0x78, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_GORON_CAVE, ROOM_GORON_CAVE_STAIRS, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_GoronCave[] = {
@@ -2134,31 +2134,31 @@ const Transition* const gExitLists_GoronCave[] = {
};
const Transition gExitList_WindTribeTower_Entrance[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0xe8, 0xb8, 0xf8, 0x0, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_FLOOR_1,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1e8, 0x168, 0x30, AREA_CLOUD_TOPS, ROOM_CLOUD_TOPS_CLOUD_TOPS, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0xe8, 0xb8, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_FLOOR_1,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1e8, 0x168, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CLOUD_TOPS, ROOM_CLOUD_TOPS_CLOUD_TOPS, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_WindTribeTower_Floor2[] = {
- { WARP_TYPE_AREA, 0x0, 0xb8, 0xe8, 0x88, 0xf8, 0x0, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0xe8, 0xb8, 0xf8, 0x0, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_FLOOR_2,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0xe8, 0x88, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0xe8, 0xb8, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_FLOOR_2,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_WindTribeTower_Floor3[] = {
- { WARP_TYPE_AREA, 0x0, 0xb8, 0xe8, 0x88, 0xf8, 0x0, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_FLOOR_1,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0xe8, 0xb8, 0xf8, 0x0, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_FLOOR_3,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0xe8, 0x88, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_FLOOR_1,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0xe8, 0xb8, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_FLOOR_3,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_WindTribeTower_Floor4[] = {
- { WARP_TYPE_AREA, 0x0, 0xb8, 0xe8, 0x88, 0xf8, 0x0, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_FLOOR_2,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0xe8, 0xb8, 0x148, 0x0, AREA_WIND_TRIBE_TOWER_ROOF, ROOM_WIND_TRIBE_TOWER_ROOF_0,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0xe8, 0x88, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_FLOOR_2,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0xe8, 0xb8, 0x148, TRANSITION_SHAPE_AREA_12x12, AREA_WIND_TRIBE_TOWER_ROOF, ROOM_WIND_TRIBE_TOWER_ROOF_0,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_WindTribeTower[] = {
@@ -2169,8 +2169,8 @@ const Transition* const gExitLists_WindTribeTower[] = {
};
const Transition gExitList_WindTribeTowerRoof_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x138, 0x88, 0xf8, 0x0, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_FLOOR_3,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x138, 0x88, 0xf8, TRANSITION_SHAPE_AREA_12x12, AREA_WIND_TRIBE_TOWER, ROOM_WIND_TRIBE_TOWER_FLOOR_3,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_WindTribeTowerRoof[] = {
@@ -2178,32 +2178,32 @@ const Transition* const gExitLists_WindTribeTowerRoof[] = {
};
const Transition gExitList_Caves_Boomerang[] = {
- { WARP_TYPE_AREA, 0x0, 0x48, 0x68, 0x78, 0x38, 0x0, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_NORTHWEST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x108, 0x68, 0x78, 0x38, 0x0, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_NORTHEAST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x48, 0xd8, 0x78, 0x38, 0x0, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_SOUTHWEST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x108, 0xd8, 0x78, 0x38, 0x0, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_SOUTHEAST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xa8, 0xb8, 0x1f8, 0x138, 0x0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x48, 0x68, 0x78, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_NORTHWEST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x108, 0x68, 0x78, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_NORTHEAST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x48, 0xd8, 0x78, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_SOUTHWEST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x108, 0xd8, 0x78, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_TREE_INTERIORS, ROOM_TREE_INTERIORS_BOOMERANG_SOUTHEAST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0xb8, 0x1f8, 0x138, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_ToGraveyard[] = {
- { WARP_TYPE_AREA, 0x0, 0x38, 0x38, 0x88, 0xd8, 0x0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x118, 0x38, 0x118, 0xd8, 0x0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x138, 0x98, 0x78, 0x48, 0x0, AREA_CAVES, ROOM_CAVES_HEART_PIECE_HALLWAY, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x108, 0x148, 0x20, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x38, 0x88, 0xd8, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x118, 0x38, 0x118, 0xd8, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x138, 0x98, 0x78, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_HEART_PIECE_HALLWAY, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x108, 0x148, TRANSITION_SHAPE_BORDER_SOUTH_EAST, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_2[] = {
- { WARP_TYPE_AREA, 0x0, 0x48, 0x28, 0x308, 0x98, 0x0, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x48, 0x28, 0x308, 0x98, TRANSITION_SHAPE_AREA_12x12, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_3[] = {
@@ -2216,85 +2216,85 @@ const Transition gExitList_Caves_5[] = {
TransitionListEnd,
};
const Transition gExitList_Caves_TrilbyKeeseChest[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x88, 0x238, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x88, 0x238, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_TrilbyFairyFountain[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x198, 0x2c8, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x198, 0x2c8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_SouthHyruleFieldFairyFountain[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x118, 0xb8, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x118, 0xb8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_A[] = {
TransitionListEnd,
};
const Transition gExitList_Caves_HyruleTownWaterfall[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xf0, 0x198, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xf0, 0x198, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_LonLonRanch[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xe8, 0x1c8, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xb8, 0x138, 0x3, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xe8, 0x1c8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xb8, 0x138, TRANSITION_SHAPE_BORDER_NORTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_TrilbyHighlands[] = {
- { WARP_TYPE_AREA, 0x0, 0x38, 0x18, 0x98, 0x268, 0x0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x128, 0x18, 0x118, 0x268, 0x0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x18, 0x98, 0x268, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x128, 0x18, 0x118, 0x268, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_LonLonRanchWallet[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1f8, 0x218, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1f8, 0x218, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_LON_LON_RANCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_SouthHyruleFieldRupee[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x58, 0x128, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x58, 0x128, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_TrilbyRupee[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x2b8, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x2b8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_TRILBY_HIGHLANDS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_TrilbyMittsFairyFountain[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1a8, 0x68, 0x3, AREA_DIG_CAVES, ROOM_DIG_CAVES_TRILBY_HIGHLANDS, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1a8, 0x68, TRANSITION_SHAPE_BORDER_NORTH, AREA_DIG_CAVES, ROOM_DIG_CAVES_TRILBY_HIGHLANDS, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_HillsKeeseChest[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0xa8, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_CENTER,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xa8, 0xa8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_EASTERN_HILLS_CENTER,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_BottleBusinessScrub[] = {
TransitionListEnd,
};
const Transition gExitList_Caves_HeartPieceHallway[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x38, 0x138, 0x88, 0x0, AREA_CAVES, ROOM_CAVES_TO_GRAVEYARD, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x138, 0x1f8, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x38, 0x138, 0x88, TRANSITION_SHAPE_AREA_12x12, AREA_CAVES, ROOM_CAVES_TO_GRAVEYARD, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x138, 0x1f8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_NORTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_NorthHyruleFieldFairyFountain[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x58, 0x30, AREA_TREE_INTERIORS,
- ROOM_TREE_INTERIORS_NORTH_HYRULE_FIELD_FAIRY_FOUNTAIN, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x58, TRANSITION_SHAPE_BORDER_SOUTH, AREA_TREE_INTERIORS,
+ ROOM_TREE_INTERIORS_NORTH_HYRULE_FIELD_FAIRY_FOUNTAIN, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Caves_KinstoneBusinessScrub[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x58, 0x30, AREA_TREE_INTERIORS,
- ROOM_TREE_INTERIORS_MINISH_WOODS_BUSINESS_SCRUB, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x58, TRANSITION_SHAPE_BORDER_SOUTH, AREA_TREE_INTERIORS,
+ ROOM_TREE_INTERIORS_MINISH_WOODS_BUSINESS_SCRUB, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_Caves[] = {
@@ -2325,68 +2325,68 @@ const Transition* const gExitLists_Caves[] = {
};
const Transition gExitList_VeilFallsCaves_Hallway2F[] = {
- { WARP_TYPE_AREA, 0x0, 0xd8, 0x28, 0x78, 0x28, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0x38, 0x10, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x158, 0x38, 0x20, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xd8, 0x28, 0x78, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xa8, 0x38, TRANSITION_SHAPE_BORDER_SOUTH_WEST, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x158, 0x38, TRANSITION_SHAPE_BORDER_SOUTH_EAST, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_VeilFallsCaves_Hallway1F[] = {
- { WARP_TYPE_AREA, 0x0, 0x38, 0x18, 0x98, 0x28, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_RUPEE_PATH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x78, 0x18, 0xd8, 0x38, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x8c, 0x118, 0x58, 0x0, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0xe8, 0xc8, 0x58, 0x0, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x18, 0x98, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_RUPEE_PATH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x18, 0xd8, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x8c, 0x118, 0x58, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0xe8, 0xc8, 0x58, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_VeilFallsCaves_Entrance[] = {
- { WARP_TYPE_AREA, 0x0, 0x128, 0x18, 0x58, 0x28, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_EXIT,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x1f8, 0x30, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x128, 0x18, 0x58, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_EXIT,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x1f8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_VeilFallsCaves_Exit[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x18, 0x128, 0x28, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xd8, 0x1d8, 0x30, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x18, 0x128, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xd8, 0x1d8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_VeilFallsCaves_SecretChest[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x38, 0x98, 0x48, 0x0, AREA_VEIL_FALLS_CAVES,
- ROOM_VEIL_FALLS_CAVES_HALLWAY_SECRET_STAIRCASE, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x38, 0x98, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES,
+ ROOM_VEIL_FALLS_CAVES_HALLWAY_SECRET_STAIRCASE, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_VeilFallsCaves_SecretStaircases[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x38, 0x98, 0x48, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_BLOCK_PUZZLE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x98, 0x38, 0x58, 0x48, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_SECRET_CHEST,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x38, 0x98, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_BLOCK_PUZZLE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x98, 0x38, 0x58, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_SECRET_CHEST,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_VeilFallsCaves_BlockPuzzle[] = {
- { WARP_TYPE_AREA, 0x0, 0x98, 0x38, 0x58, 0x48, 0x0, AREA_VEIL_FALLS_CAVES,
- ROOM_VEIL_FALLS_CAVES_HALLWAY_SECRET_STAIRCASE, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xd8, 0x158, 0x30, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x98, 0x38, 0x58, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES,
+ ROOM_VEIL_FALLS_CAVES_HALLWAY_SECRET_STAIRCASE, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xd8, 0x158, TRANSITION_SHAPE_BORDER_SOUTH, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_VeilFallsCaves_RupeePath[] = {
- { WARP_TYPE_AREA, 0x0, 0x98, 0x18, 0x38, 0x28, 0x0, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0xd8, 0x30, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x98, 0x18, 0x38, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_VEIL_FALLS_CAVES, ROOM_VEIL_FALLS_CAVES_HALLWAY_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xa8, 0xd8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_VeilFallsCaves_HeartPiece[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x38, 0x30, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_VeilFallsCaves[] = {
@@ -2409,13 +2409,13 @@ const Transition* const gExitLists_VeilFallsCaves[] = {
};
const Transition gExitList_RoyalValleyGraves_HeartPiece[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x58, 0x98, 0x30, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x58, 0x98, TRANSITION_SHAPE_BORDER_SOUTH, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_RoyalValleyGraves_Gina[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x188, 0x98, 0x30, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x188, 0x98, TRANSITION_SHAPE_BORDER_SOUTH, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_RoyalValleyGraves[] = {
@@ -2424,49 +2424,49 @@ const Transition* const gExitLists_RoyalValleyGraves[] = {
};
const Transition gExitList_MinishCaves_BeanPesto[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1c8, 0x28, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1c8, 0x28, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_ENTRANCE, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCaves_SoutheastWater1[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3b8, 0x308, 0x30, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3b8, 0x308, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCaves_Ruins[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x14, 0x30, AREA_RUINS, ROOM_RUINS_LADDER_TO_TEKTITES, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x14, TRANSITION_SHAPE_BORDER_SOUTH, AREA_RUINS, ROOM_RUINS_LADDER_TO_TEKTITES, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCaves_OutsideLinksHouse[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x178, 0xe8, 0x30, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x178, 0xe8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCaves_MinishWoodsNorth1[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x3b8, 0x48, 0x30, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x3b8, 0x48, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCaves_LakeHyliaNorth[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x2b8, 0x68, 0x30, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x2b8, 0x68, TRANSITION_SHAPE_BORDER_SOUTH, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCaves_LakeHyliaLibrari[] = {
- { WARP_TYPE_AREA, 0x0, 0x48, 0x38, 0x98, 0x204, 0x0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x378, 0x38, 0x1b8, 0x1c4, 0x0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x48, 0x38, 0x98, 0x204, TRANSITION_SHAPE_AREA_12x12, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x378, 0x38, 0x1b8, 0x1c4, TRANSITION_SHAPE_AREA_12x12, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_MinishCaves_MinishWoodsSouthwest[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x138, 0x48, 0x224, 0x0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1,
- TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x138, 0x138, 0x68, 0x224, 0x0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1,
- TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x218, 0x138, 0x88, 0x224, 0x0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1,
- TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x138, 0x48, 0x224, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1,
+ TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x138, 0x138, 0x68, 0x224, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1,
+ TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x218, 0x138, 0x88, 0x224, TRANSITION_SHAPE_AREA_12x12, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1,
+ TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_MinishCaves[] = {
@@ -2483,13 +2483,13 @@ const Transition* const gExitLists_MinishCaves[] = {
};
const Transition gExitList_CastleGardenMinishHoles_East[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x308, 0x2c, 0x30, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
- TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x308, 0x2c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
+ TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CastleGardenMinishHoles_West[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xe8, 0x2c, 0x30, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xe8, 0x2c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_CastleGardenMinishHoles[] = {
@@ -2498,13 +2498,13 @@ const Transition* const gExitLists_CastleGardenMinishHoles[] = {
};
const Transition gExitList_37_0[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x308, 0x2c, 0x30, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
- TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x308, 0x2c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
+ TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_37_1[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xe8, 0x2c, 0x30, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xe8, 0x2c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_37[] = {
@@ -2513,21 +2513,21 @@ const Transition* const gExitLists_37[] = {
};
const Transition gExitList_HyruleTownUnderground_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0x288, 0xf8, 0x338, 0x118, 0x0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x168, 0x18, 0x78, 0x38, 0x0, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_SCHOOL_WEST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x48, 0xf8, 0x188, 0x208, 0x0, AREA_HYRULE_DIG_CAVES, ROOM_HYRULE_DIG_CAVES_TOWN,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x138, 0x238, 0x88, 0x50, 0x1, AREA_HYRULE_TOWN_UNDERGROUND, ROOM_HYRULE_TOWN_UNDERGROUND_1,
- 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x288, 0xf8, 0x338, 0x118, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x168, 0x18, 0x78, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_HOUSE_INTERIORS_1, ROOM_HOUSE_INTERIORS_1_SCHOOL_WEST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x48, 0xf8, 0x188, 0x208, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_DIG_CAVES, ROOM_HYRULE_DIG_CAVES_TOWN,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x138, 0x238, 0x88, 0x50, TRANSITION_SHAPE_AREA_12x28, AREA_HYRULE_TOWN_UNDERGROUND, ROOM_HYRULE_TOWN_UNDERGROUND_1,
+ 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleTownUnderground_Well[] = {
- { WARP_TYPE_AREA, 0x0, 0x98, 0x50, 0x148, 0x23c, 0x1, AREA_HYRULE_TOWN_UNDERGROUND, ROOM_HYRULE_TOWN_UNDERGROUND_0,
- 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x78, 0x28, 0x2f8, 0x26c, 0x0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x98, 0x50, 0x148, 0x23c, TRANSITION_SHAPE_AREA_12x28, AREA_HYRULE_TOWN_UNDERGROUND, ROOM_HYRULE_TOWN_UNDERGROUND_0,
+ 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x28, 0x2f8, 0x26c, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_HyruleTownUnderground[] = {
@@ -2536,13 +2536,13 @@ const Transition* const gExitLists_HyruleTownUnderground[] = {
};
const Transition gExitList_HyruleTownMinishCaves_Entrance[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x174, 0x196, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x174, 0x196, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleTownMinishCaves_Entrance2[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xe2, 0x58, 0x30, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xe2, 0x58, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_HyruleTownMinishCaves[] = {
@@ -2573,13 +2573,13 @@ const Transition* const gExitLists_HyruleTownMinishCaves[] = {
};
const Transition gExitList_GardenFountains_East[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x88, 0x308, 0x58, 0x0, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x88, 0x308, 0x58, TRANSITION_SHAPE_AREA_12x12, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_GardenFountains_West[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x88, 0xe8, 0x58, 0x0, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x88, 0xe8, 0x58, TRANSITION_SHAPE_AREA_12x12, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_GardenFountains[] = {
@@ -2588,13 +2588,13 @@ const Transition* const gExitLists_GardenFountains[] = {
};
const Transition gExitList_GreatFairies_Entrance[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x188, 0x68, 0x58, 0x0, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x188, 0x68, 0x58, TRANSITION_SHAPE_AREA_12x12, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_GreatFairies_Exit[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x52, 0x29c, 0xc, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_3, 1, TRANSITION_TYPE_NORMAL,
- 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x52, 0x29c, TRANSITION_SHAPE_BORDER_EAST, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_3, 1, TRANSITION_TYPE_NORMAL,
+ 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_HyruleCastleCellar[] = {
@@ -2608,85 +2608,85 @@ const Transition* const gExitLists_40[] = {
};
const Transition gExitList_DeepwoodShrine_StairsToB1[] = {
- { WARP_TYPE_AREA, 0x0, 0xc8, 0x28, 0xc8, 0x38, 0x0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_COMPASS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xc8, 0x28, 0xc8, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_COMPASS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DeepwoodShrine_BluePortal[] = {
#ifdef EU
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x38, 0x30, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BARREL,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BARREL,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
#endif
TransitionListEnd,
};
const Transition gExitList_DeepwoodShrine_Map[] = {
#ifdef EU
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x18, 0xfff, 0xc, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BARREL,
- 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x18, 0xfff, TRANSITION_SHAPE_BORDER_EAST, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BARREL,
+ 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
#endif
TransitionListEnd,
};
const Transition gExitList_DeepwoodShrine_Button[] = {
#ifdef EU
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1b8, 0xfff, 0xc0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BARREL,
- 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1b8, 0xfff, TRANSITION_SHAPE_BORDER_WEST, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BARREL,
+ 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
#endif
TransitionListEnd,
};
const Transition gExitList_DeepwoodShrine_Lever[] = {
#ifdef EU
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x168, 0x3, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BARREL,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x168, TRANSITION_SHAPE_BORDER_NORTH, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BARREL,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
#endif
TransitionListEnd,
};
const Transition gExitList_DeepwoodShrine_Barrel[] = {
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x88, 0x50, 0x38, 0x0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_INSIDE_BARREL,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x118, 0x88, 0xa0, 0x38, 0x0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_INSIDE_BARREL,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x108, 0x50, 0x70, 0x0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_INSIDE_BARREL,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x118, 0x108, 0xa0, 0x70, 0x0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_INSIDE_BARREL,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x88, 0x50, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_INSIDE_BARREL,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x118, 0x88, 0xa0, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_INSIDE_BARREL,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x108, 0x50, 0x70, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_INSIDE_BARREL,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x118, 0x108, 0xa0, 0x70, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_INSIDE_BARREL,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
#ifdef EU
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0xc8, 0x3, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BLUE_PORTAL,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x28, 0xfff, 0xc, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BUTTON,
- 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x38, 0x30, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_LEVER,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xe8, 0xfff, 0xc0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_MAP, 1,
- TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0xc8, TRANSITION_SHAPE_BORDER_NORTH, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BLUE_PORTAL,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x28, 0xfff, TRANSITION_SHAPE_BORDER_EAST, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BUTTON,
+ 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_LEVER,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xe8, 0xfff, TRANSITION_SHAPE_BORDER_WEST, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_MAP, 1,
+ TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
#endif
TransitionListEnd,
};
const Transition gExitList_DeepwoodShrine_Entrance[] = {
- { WARP_TYPE_AREA, 0x0, 0x48, 0x68, 0x48, 0x78, 0x0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BOSS_DOOR,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x108, 0x68, 0x108, 0x78, 0x0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BOSS_DOOR,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x64, 0x30, AREA_DEEPWOOD_SHRINE_ENTRY, ROOM_DEEPWOOD_SHRINE_ENTRY_MAIN,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x48, 0x68, 0x48, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BOSS_DOOR,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x108, 0x68, 0x108, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BOSS_DOOR,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x64, TRANSITION_SHAPE_BORDER_SOUTH, AREA_DEEPWOOD_SHRINE_ENTRY, ROOM_DEEPWOOD_SHRINE_ENTRY_MAIN,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DeepwoodShrine_Compass[] = {
- { WARP_TYPE_AREA, 0x0, 0xc8, 0x28, 0xc8, 0x38, 0x0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_STAIRS_TO_B1,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xc8, 0x28, 0xc8, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_STAIRS_TO_B1,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DeepwoodShrineBoss_Main[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0x8, 0x30, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BOSS_DOOR,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xa8, 0x8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_BOSS_DOOR,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DeepwoodShrine_PreBoss[] = {
- { WARP_TYPE_AREA, 0x0, 0x48, 0x68, 0x48, 0x78, 0x0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x108, 0x68, 0x108, 0x78, 0x0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x88, 0xd8, 0x3, AREA_DEEPWOOD_SHRINE_BOSS, ROOM_DEEPWOOD_SHRINE_BOSS_MAIN,
- 1, TRANSITION_TYPE_INSTANT, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x48, 0x68, 0x48, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x108, 0x68, 0x108, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x88, 0xd8, TRANSITION_SHAPE_BORDER_NORTH, AREA_DEEPWOOD_SHRINE_BOSS, ROOM_DEEPWOOD_SHRINE_BOSS_MAIN,
+ 1, TRANSITION_TYPE_INSTANT, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_DeepwoodShrine[] = {
@@ -2730,14 +2730,14 @@ const Transition* const gExitLists_DeepwoodShrineBoss[] = {
};
const Transition gExitList_DeepwoodShrineEntry_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x58, 0xa8, 0xd8, 0x0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x88, 0x1, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1c8, 0x272, 0x30, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1d8, 0x272, 0xc, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x2, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1b8, 0x272, 0xc0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x58, 0xa8, 0xd8, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x188, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1c8, 0x272, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1d8, 0x272, TRANSITION_SHAPE_BORDER_EAST, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x2, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1b8, 0x272, TRANSITION_SHAPE_BORDER_WEST, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_DeepwoodShrineEntry[] = {
@@ -2745,38 +2745,38 @@ const Transition* const gExitLists_DeepwoodShrineEntry[] = {
};
const Transition gExitList_CaveOfFlames_AfterCane[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x38, 0x1a8, 0x38, 0x0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MINISH_SPIKES,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x38, 0x1a8, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MINISH_SPIKES,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CaveOfFlames_Entrance[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x68, 0x88, 0x30, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x68, 0x88, TRANSITION_SHAPE_BORDER_SOUTH, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CaveOfFlames_MainCart[] = {
- { WARP_TYPE_AREA, 0x0, 0x1f8, 0x38, 0x88, 0x28, 0x0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_NORTH_ENTRANCE,
- 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1f8, 0x38, 0x88, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_NORTH_ENTRANCE,
+ 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CaveOfFlames_NorthEntrance[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x18, 0x1f8, 0x48, 0x0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MAIN_CART,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x18, 0x1f8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_MAIN_CART,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CaveOfFlames_MinishSpikes[] = {
- { WARP_TYPE_AREA, 0x0, 0x1a8, 0x28, 0x88, 0x48, 0x0, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_AFTER_CANE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1a8, 0x28, 0x88, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_AFTER_CANE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CaveOfFlames_BeforeGleerok[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x28, 0x30, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BOSS_DOOR,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x28, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BOSS_DOOR,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_CaveOfFlames_BossDoor[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0xc0, 0x1, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BEFORE_GLEEROK,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0xc0, TRANSITION_SHAPE_BORDER_NORTH_WEST, AREA_CAVE_OF_FLAMES, ROOM_CAVE_OF_FLAMES_BEFORE_GLEEROK,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_CaveOfFlames[] = {
@@ -2816,102 +2816,102 @@ const Transition* const gExitLists_CaveOfFlames[] = {
};
const Transition gExitList_FortressOfWinds_BeforeMazaal[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x18, 0x30, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_KEY_LEVER,
- 1, TRANSITION_TYPE_INSTANT, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_KEY_LEVER,
+ 1, TRANSITION_TYPE_INSTANT, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_EastKeyLever[] = {
- { WARP_TYPE_AREA, 0x0, 0x198, 0x198, 0x2e8, 0x38, 0x0, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1f8, 0x198, 0x338, 0x38, 0x0, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x198, 0x198, 0x2e8, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1f8, 0x198, 0x338, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_PitPlatforms[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x68, 0x38, 0x30, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x68, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_WestKeyLever[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0xc8, 0x3, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_BEFORE_MAZAAL,
- 1, TRANSITION_TYPE_INSTANT, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1d8, 0x38, 0x30, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0xc8, TRANSITION_SHAPE_BORDER_NORTH, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_BEFORE_MAZAAL,
+ 1, TRANSITION_TYPE_INSTANT, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1d8, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_3F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_Mazaal[] = {
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x18, 0xa0, 0x18c, 0x0, AREA_FORTRESS_OF_WINDS_TOP, ROOM_FORTRESS_OF_WINDS_TOP_MAIN,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x18, 0xa0, 0x18c, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS_TOP, ROOM_FORTRESS_OF_WINDS_TOP_MAIN,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_Stalfos[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x38, 0x30, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_EntranceMoleMitts[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x88, 0xb0, 0x3, AREA_OUTER_FORTRESS_OF_WINDS,
- ROOM_OUTER_FORTRESS_OF_WINDS_MOLE_MITTS, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x88, 0xb0, TRANSITION_SHAPE_BORDER_NORTH, AREA_OUTER_FORTRESS_OF_WINDS,
+ ROOM_OUTER_FORTRESS_OF_WINDS_MOLE_MITTS, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_Main2F[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0xf8, 0x78, 0x38, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_CENTER_STAIRS_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1d8, 0xa8, 0x30, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0xf8, 0x78, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_CENTER_STAIRS_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1d8, 0xa8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_MinishHole[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x68, 0xb0, 0x3, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_SMALL_KEY,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x68, 0xb0, TRANSITION_SHAPE_BORDER_NORTH, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_SMALL_KEY,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_BossKey[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x338, 0x38, 0x30, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x338, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_WestStairs2F[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x28, 0x68, 0x38, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_STAIRS_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x28, 0x68, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_STAIRS_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_EastStairs2F[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x28, 0x68, 0x38, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_1F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x288, 0xa8, 0x30, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x28, 0x68, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_1F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x288, 0xa8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_OUTER_FORTRESS_OF_WINDS, ROOM_OUTER_FORTRESS_OF_WINDS_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_WestStairs1F[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x28, 0x88, 0x38, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_STAIRS_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x128, 0x38, 0x30, AREA_OUTER_FORTRESS_OF_WINDS,
- ROOM_OUTER_FORTRESS_OF_WINDS_ENTRANCE_HALL, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x28, 0x88, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_WEST_STAIRS_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x128, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_OUTER_FORTRESS_OF_WINDS,
+ ROOM_OUTER_FORTRESS_OF_WINDS_ENTRANCE_HALL, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_CenterStairs1F[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x28, 0x88, 0x108, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAIN_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1d8, 0x38, 0x30, AREA_OUTER_FORTRESS_OF_WINDS,
- ROOM_OUTER_FORTRESS_OF_WINDS_ENTRANCE_HALL, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x28, 0x88, 0x108, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAIN_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1d8, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_OUTER_FORTRESS_OF_WINDS,
+ ROOM_OUTER_FORTRESS_OF_WINDS_ENTRANCE_HALL, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_EastStairs1F[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x28, 0x88, 0x38, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_2F,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x288, 0x38, 0x30, AREA_OUTER_FORTRESS_OF_WINDS,
- ROOM_OUTER_FORTRESS_OF_WINDS_ENTRANCE_HALL, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x28, 0x88, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_EAST_STAIRS_2F,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x288, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_OUTER_FORTRESS_OF_WINDS,
+ ROOM_OUTER_FORTRESS_OF_WINDS_ENTRANCE_HALL, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_Wizzrobe[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x78, 0x38, 0x30, AREA_OUTER_FORTRESS_OF_WINDS,
- ROOM_OUTER_FORTRESS_OF_WINDS_ENTRANCE_HALL, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x78, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_OUTER_FORTRESS_OF_WINDS,
+ ROOM_OUTER_FORTRESS_OF_WINDS_ENTRANCE_HALL, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_FortressOfWinds_HeartPiece[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x338, 0x38, 0x30, AREA_OUTER_FORTRESS_OF_WINDS,
- ROOM_OUTER_FORTRESS_OF_WINDS_ENTRANCE_HALL, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x338, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_OUTER_FORTRESS_OF_WINDS,
+ ROOM_OUTER_FORTRESS_OF_WINDS_ENTRANCE_HALL, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_FortressOfWinds[] = {
@@ -2958,8 +2958,8 @@ const Transition* const gExitLists_FortressOfWinds[] = {
};
const Transition gExitList_FortressOfWindsTop_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0xa0, 0x1a0, 0xb8, 0x28, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAZAAL,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa0, 0x1a0, 0xb8, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAZAAL,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_FortressOfWindsTop[] = {
@@ -2967,8 +2967,8 @@ const Transition* const gExitLists_FortressOfWindsTop[] = {
};
const Transition gExitList_InnerMazaal_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x11c, 0xb8, 0x5c, 0x0, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAZAAL,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x11c, 0xb8, 0x5c, TRANSITION_SHAPE_AREA_12x12, AREA_FORTRESS_OF_WINDS, ROOM_FORTRESS_OF_WINDS_MAZAAL,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_InnerMazaal[] = {
@@ -2977,122 +2977,122 @@ const Transition* const gExitLists_InnerMazaal[] = {
};
const Transition gExitList_TempleOfDroplets_WestHole[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x28, 0x58, 0x38, 0x0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BOSS_KEY,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x28, 0x58, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BOSS_KEY,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_EastHole[] = {
- { WARP_TYPE_AREA, 0x0, 0xd8, 0x28, 0xd8, 0x38, 0x0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_NORTH_SMALL_KEY,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xd8, 0x28, 0xd8, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_NORTH_SMALL_KEY,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_HoleToBlueChuchu[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x208, 0xfff, 0xc0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ELEMENT,
- 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xc8, 0x28, 0x88, 0x28, 0x0, AREA_TEMPLE_OF_DROPLETS,
- ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU_KEY_LEVER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x208, 0xfff, TRANSITION_SHAPE_BORDER_WEST, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ELEMENT,
+ 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xc8, 0x28, 0x88, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS,
+ ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU_KEY_LEVER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_BigBlueChuchu[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0xb8, 0x3, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_TO_BLUE_CHU,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0xb8, TRANSITION_SHAPE_BORDER_NORTH, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_TO_BLUE_CHU,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_BigBlueChuchuKey[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x28, 0xc8, 0x28, 0x0, AREA_TEMPLE_OF_DROPLETS,
- ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU_KEY_LEVER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x28, 0xc8, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS,
+ ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU_KEY_LEVER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_BossKey[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x28, 0x58, 0x38, 0x0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_WEST_HOLE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x28, 0x58, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_WEST_HOLE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_NorthSmallKey[] = {
- { WARP_TYPE_AREA, 0x0, 0xd8, 0x28, 0xd8, 0x38, 0x0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_EAST_HOLE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xd8, 0x28, 0xd8, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_EAST_HOLE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_BlueChuchuKeyLever[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x18, 0xc8, 0x38, 0x0, AREA_TEMPLE_OF_DROPLETS,
- ROOM_TEMPLE_OF_DROPLETS_HOLE_TO_BLUE_CHU_KEY, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xc8, 0x18, 0x58, 0x38, 0x0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU_KEY,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x18, 0xc8, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS,
+ ROOM_TEMPLE_OF_DROPLETS_HOLE_TO_BLUE_CHU_KEY, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xc8, 0x18, 0x58, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU_KEY,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_Entrance[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x18, 0x30, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ELEMENT,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ELEMENT,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_WaterfallNortheast[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x18, 0xfff, 0xc, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ELEMENT,
- 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x18, 0xfff, TRANSITION_SHAPE_BORDER_EAST, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ELEMENT,
+ 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_Element[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xf8, 0xfff, 0xc0, AREA_TEMPLE_OF_DROPLETS,
- ROOM_TEMPLE_OF_DROPLETS_WATERFALL_NORTHEAST, 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x8, 0xfff, 0x4, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ICE_CORNER,
- 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x8, 0xfff, 0x8, AREA_TEMPLE_OF_DROPLETS,
- ROOM_TEMPLE_OF_DROPLETS_HOLE_TO_BLUE_CHU_KEY, 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x178, 0x3, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x28, 0x30, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BIG_OCTO,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xf8, 0xfff, TRANSITION_SHAPE_BORDER_WEST, AREA_TEMPLE_OF_DROPLETS,
+ ROOM_TEMPLE_OF_DROPLETS_WATERFALL_NORTHEAST, 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x8, 0xfff, TRANSITION_SHAPE_BORDER_EAST_NORTH, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ICE_CORNER,
+ 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x8, 0xfff, TRANSITION_SHAPE_BORDER_EAST_SOUTH, AREA_TEMPLE_OF_DROPLETS,
+ ROOM_TEMPLE_OF_DROPLETS_HOLE_TO_BLUE_CHU_KEY, 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x178, TRANSITION_SHAPE_BORDER_NORTH, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x28, TRANSITION_SHAPE_BORDER_SOUTH, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BIG_OCTO,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_IceCorner[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x208, 0xfff, 0xc0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ELEMENT,
- 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x208, 0xfff, TRANSITION_SHAPE_BORDER_WEST, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ELEMENT,
+ 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_BigOcto[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x178, 0x3, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ELEMENT,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x178, TRANSITION_SHAPE_BORDER_NORTH, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_ELEMENT,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_NorthwestStairs[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x18, 0x88, 0x28, 0x0, AREA_TEMPLE_OF_DROPLETS,
- ROOM_TEMPLE_OF_DROPLETS_BLOCK_CLONE_ICE_BRIDGE, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x18, 0x88, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS,
+ ROOM_TEMPLE_OF_DROPLETS_BLOCK_CLONE_ICE_BRIDGE, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_ScissorsMiniboss[] = {
- { WARP_TYPE_AREA, 0x0, 0xc8, 0x18, 0xc8, 0x28, 0x0, AREA_TEMPLE_OF_DROPLETS,
- ROOM_TEMPLE_OF_DROPLETS_STAIRS_TO_SCISSORS_MINIBOSS, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xc8, 0x18, 0xc8, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS,
+ ROOM_TEMPLE_OF_DROPLETS_STAIRS_TO_SCISSORS_MINIBOSS, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_WaterfallSouthwest[] = {
- { WARP_TYPE_AREA, 0x0, 0x38, 0x170, 0x38, 0x18, 0x0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_LILYPAD_B2_WEST,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x170, 0x38, 0x18, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_LILYPAD_B2_WEST,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_ToBigBlueChuchu[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x58, 0x58, 0x68, 0x0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_COMPASS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x8, 0x30, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x58, 0x58, 0x68, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_COMPASS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_BLUE_CHU,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_BlockCloneIceBridge[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x18, 0x88, 0x28, 0x0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_NORTHWEST_STAIRS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x18, 0x88, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_NORTHWEST_STAIRS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_StairsToScissorsMiniboss[] = {
- { WARP_TYPE_AREA, 0x0, 0xc8, 0x18, 0xc8, 0x28, 0x0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_SCISSORS_MINIBOSS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xc8, 0x18, 0xc8, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_SCISSORS_MINIBOSS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_LilypadWestB2[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x38, 0x168, 0x3, AREA_TEMPLE_OF_DROPLETS,
- ROOM_TEMPLE_OF_DROPLETS_WEST_WATERFALL_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x38, 0x168, TRANSITION_SHAPE_BORDER_NORTH, AREA_TEMPLE_OF_DROPLETS,
+ ROOM_TEMPLE_OF_DROPLETS_WEST_WATERFALL_SOUTHWEST, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_TempleOfDroplets_CompassRoom[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x58, 0x58, 0x68, 0x0, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_TO_BLUE_CHU,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x58, 0x58, 0x68, TRANSITION_SHAPE_AREA_12x12, AREA_TEMPLE_OF_DROPLETS, ROOM_TEMPLE_OF_DROPLETS_TO_BLUE_CHU,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_TempleOfDroplets[] = {
@@ -3163,10 +3163,10 @@ const Transition* const gExitLists_TempleOfDroplets[] = {
};
const Transition gExitList_61_0[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x58, 0xa8, 0xd8, 0x0, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x118, 0x174, 0x30, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x58, 0xa8, 0xd8, TRANSITION_SHAPE_AREA_12x12, AREA_DEEPWOOD_SHRINE, ROOM_DEEPWOOD_SHRINE_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x118, 0x174, TRANSITION_SHAPE_BORDER_SOUTH, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, TRANSITION_TYPE_INSTANT_MINISH,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_61[] = {
@@ -3177,25 +3177,25 @@ const Transition gExitList_RoyalCrypt_WaterRope[] = {
TransitionListEnd,
};
const Transition gExitList_RoyalCrypt_Gibdo[] = {
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x12e, 0x128, 0x48, 0x0, AREA_ROYAL_CRYPT, ROOM_ROYAL_CRYPT_KEY_BLOCK, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x12e, 0x128, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_ROYAL_CRYPT, ROOM_ROYAL_CRYPT_KEY_BLOCK, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_RoyalCrypt_KeyBlock[] = {
- { WARP_TYPE_AREA, 0x0, 0x128, 0x38, 0xa8, 0x118, 0x0, AREA_ROYAL_CRYPT, ROOM_ROYAL_CRYPT_GIBDO, 1, TRANSITION_TYPE_NORMAL,
- 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x128, 0x16e, 0x88, 0x48, 0x0, AREA_ROYAL_CRYPT, ROOM_ROYAL_CRYPT_MUSHROOM_PIT,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x128, 0x38, 0xa8, 0x118, TRANSITION_SHAPE_AREA_12x12, AREA_ROYAL_CRYPT, ROOM_ROYAL_CRYPT_GIBDO, 1, TRANSITION_TYPE_NORMAL,
+ 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x128, 0x16e, 0x88, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_ROYAL_CRYPT, ROOM_ROYAL_CRYPT_MUSHROOM_PIT,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_RoyalCrypt_MushroomPit[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x38, 0x128, 0x158, 0x0, AREA_ROYAL_CRYPT, ROOM_ROYAL_CRYPT_KEY_BLOCK, 1,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x38, 0x128, 0x158, TRANSITION_SHAPE_AREA_12x12, AREA_ROYAL_CRYPT, ROOM_ROYAL_CRYPT_KEY_BLOCK, 1,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_RoyalCrypt_Entrance[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xf0, 0x3c, 0x30, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xf0, 0x3c, TRANSITION_SHAPE_BORDER_SOUTH, AREA_ROYAL_VALLEY, ROOM_ROYAL_VALLEY_MAIN, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_RoyalCrypt[] = {
@@ -3211,130 +3211,130 @@ const Transition* const gExitLists_RoyalCrypt[] = {
};
const Transition gExitList_PalaceOfWinds_GyorgTornado[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x18, 0x30, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GYORG_BOSS_DOOR,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GYORG_BOSS_DOOR,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_GyorgBossDoor[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x1c8, 0x3, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GYORG_TORNADO,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x1c8, TRANSITION_SHAPE_BORDER_NORTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GYORG_TORNADO,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_BallAndChainSoldiers[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x18, 0x30, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_HOLE_TO_DARKNUT,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_HOLE_TO_DARKNUT,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_BombarossaPath[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x18, 0x30, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_BOMBAROSSA_PATH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_BOMBAROSSA_PATH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_HoleToDarknut[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x128, 0x3, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BALL_AND_CHAIN_SOLDIERS,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x128, TRANSITION_SHAPE_BORDER_NORTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BALL_AND_CHAIN_SOLDIERS,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_ToBombarossaPath[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x88, 0x3, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMBAROSSA_PATH,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x18, 0xfff, 0xc, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMB_WALL_OUTSIDE,
- 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x88, TRANSITION_SHAPE_BORDER_NORTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMBAROSSA_PATH,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x18, 0xfff, TRANSITION_SHAPE_BORDER_EAST, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMB_WALL_OUTSIDE,
+ 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_BombWallInside[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x18, 0xfff, 0xc, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMB_WALL_OUTSIDE,
- 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0x38, 0x218, 0xe8, 0x0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_RED_WARP_HALL,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x18, 0xfff, TRANSITION_SHAPE_BORDER_EAST, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMB_WALL_OUTSIDE,
+ 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x38, 0x218, 0xe8, TRANSITION_SHAPE_AREA_12x12, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_RED_WARP_HALL,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_BombWallOutside[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xc8, 0xfff, 0x40, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_BOMBAROSSA_PATH,
- 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xc8, 0xfff, 0x80, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMB_WALL_INSIDE,
- 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xc8, 0xfff, TRANSITION_SHAPE_BORDER_WEST_NORTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_BOMBAROSSA_PATH,
+ 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xc8, 0xfff, TRANSITION_SHAPE_BORDER_WEST_SOUTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMB_WALL_INSIDE,
+ 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_BlockMazeToBossDoor[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x18, 0x30, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_RED_WARP_HALL,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_RED_WARP_HALL,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_HeartPieceBridge[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x18, 0x30, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_RED_WARP_HALL,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_RED_WARP_HALL,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_RedWarpHall[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x88, 0x1, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_HEART_PIECE_BRIDGE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x1c8, 0x2, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BLOCK_MAZE_TO_BOSS_DOOR,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xb8, 0xd8, 0xb8, 0x48, 0x0, AREA_PALACE_OF_WINDS,
- ROOM_PALACE_OF_WINDS_STAIRS_AFTER_FLOORMASTER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x218, 0xd8, 0x38, 0x48, 0x0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMB_WALL_INSIDE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x88, TRANSITION_SHAPE_BORDER_NORTH_WEST, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_HEART_PIECE_BRIDGE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x1c8, TRANSITION_SHAPE_BORDER_NORTH_EAST, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BLOCK_MAZE_TO_BOSS_DOOR,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0xd8, 0xb8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_PALACE_OF_WINDS,
+ ROOM_PALACE_OF_WINDS_STAIRS_AFTER_FLOORMASTER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x218, 0xd8, 0x38, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BOMB_WALL_INSIDE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_PitCornerAfterKey[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xd8, 0xfff, 0xc0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_KEY_ARROW_BUTTON,
- 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xd8, 0xfff, TRANSITION_SHAPE_BORDER_WEST, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_KEY_ARROW_BUTTON,
+ 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_PotPush[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x78, 0x1, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_KEY_ARROW_BUTTON,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x78, TRANSITION_SHAPE_BORDER_NORTH_WEST, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_KEY_ARROW_BUTTON,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_StairsAfterFloormaster[] = {
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x38, 0xb8, 0xe8, 0x0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_RED_WARP_HALL,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x38, 0xb8, 0xe8, TRANSITION_SHAPE_AREA_12x12, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_RED_WARP_HALL,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_KeyArrowButton[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x10, 0xfff, 0xc, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PIT_CORNER_AFTER_KEY,
- 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x28, 0x30, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_POT_PUSH,
- 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0x38, 0x38, 0x48, 0x0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GIBDO_STAIRS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x10, 0xfff, TRANSITION_SHAPE_BORDER_EAST, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PIT_CORNER_AFTER_KEY,
+ 1, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x28, TRANSITION_SHAPE_BORDER_SOUTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_POT_PUSH,
+ 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x38, 0x38, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GIBDO_STAIRS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_PeahatSwitch[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x88, 0x3, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_PEAHAT_SWITCH,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x88, TRANSITION_SHAPE_BORDER_NORTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_PEAHAT_SWITCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_WhirlwindBombarossa[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x88, 0x3, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GIBDO_STAIRS,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x88, TRANSITION_SHAPE_BORDER_NORTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_GIBDO_STAIRS,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_ToPeahatSwitch[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x18, 0x30, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PEAHAT_SWITCH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x38, 0xb8, 0xe8, 0x0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_DARK_COMPASS_HALL,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_PEAHAT_SWITCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x38, 0xb8, 0xe8, TRANSITION_SHAPE_AREA_12x12, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_DARK_COMPASS_HALL,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_GibdoStairs[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xfff, 0x18, 0x30, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_WHIRLWIND_BOMBAROSSA,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0x38, 0x38, 0x48, 0x0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_KEY_ARROW_BUTTON,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xfff, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_WHIRLWIND_BOMBAROSSA,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x38, 0x38, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_KEY_ARROW_BUTTON,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_BridgeAfterDarknut[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x18, 0x168, 0x118, 0x0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_DARK_COMPASS_HALL,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x18, 0x168, 0x118, TRANSITION_SHAPE_AREA_12x12, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_DARK_COMPASS_HALL,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_PalaceOfWinds_DarkCompassHall[] = {
- { WARP_TYPE_AREA, 0x0, 0x168, 0x130, 0x78, 0x28, 0x0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BRIDGE_AFTER_DARKNUT,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xb8, 0xd8, 0xb8, 0x48, 0x0, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_PEAHAT_SWITCH,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x168, 0x130, 0x78, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_BRIDGE_AFTER_DARKNUT,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0xd8, 0xb8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_PALACE_OF_WINDS, ROOM_PALACE_OF_WINDS_TO_PEAHAT_SWITCH,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_PalaceOfWinds[] = {
@@ -3397,176 +3397,176 @@ const Transition gExitList_Unused1[] = {
};
const Transition gExitList_DarkHyruleCastle_1FEntrance[] = {
- { WARP_TYPE_AREA, 0x0, 0x108, 0xd8, 0x108, 0xe8, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_MAP,
- 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x228, 0xd8, 0x228, 0xe8, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_MAP,
- 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x198, 0x220, 0x1f8, 0x38, 0x2, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x108, 0xd8, 0x108, 0xe8, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_MAP,
+ 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x228, 0xd8, 0x228, 0xe8, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_MAP,
+ 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x198, 0x220, 0x1f8, 0x38, TRANSITION_SHAPE_AREA_28x12, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_3FTopLeftTower[] = {
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x38, 0x68, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_TOWER,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x38, 0x68, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_TOWER,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_3FTopRightTower[] = {
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x38, 0x68, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x38, 0x68, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_3FBottomLeftTower[] = {
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x38, 0x68, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x38, 0x68, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_3FBottomRightTower[] = {
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x38, 0x68, 0x118, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x38, 0x68, 0x118, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_3FKeatonHallToVaati[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xa8, 0xe8, 0x3, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_TRIPLE_DARKNUT,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x190, 0x88, 0x28, 0x0, AREA_DARK_HYRULE_CASTLE_BRIDGE,
- ROOM_DARK_HYRULE_CASTLE_BRIDGE_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xa8, 0xe8, TRANSITION_SHAPE_BORDER_NORTH, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_TRIPLE_DARKNUT,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x190, 0x88, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE_BRIDGE,
+ ROOM_DARK_HYRULE_CASTLE_BRIDGE_MAIN, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_3FTripleDarknut[] = {
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x28, 0x78, 0x168, 0x0, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
- ROOM_DARK_HYRULE_CASTLE_OUTSIDE_ZELDA_STATUE_PLATFORM, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xb8, 0x18, 0x30, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_3F_KEATON_HALL_TO_VAATI, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x28, 0x78, 0x168, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
+ ROOM_DARK_HYRULE_CASTLE_OUTSIDE_ZELDA_STATUE_PLATFORM, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xb8, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_3F_KEATON_HALL_TO_VAATI, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_2FTopLeftTower[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x38, 0xa8, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_TOP_LEFT_TOWER,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x38, 0x68, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_TOP_LEFT_TOWER,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0xc0, 0x88, 0xd8, 0x0, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
- ROOM_DARK_HYRULE_CASTLE_OUTSIDE_NORTHWEST, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x38, 0xa8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_3F_TOP_LEFT_TOWER,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x38, 0x68, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_TOP_LEFT_TOWER,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0xc0, 0x88, 0xd8, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
+ ROOM_DARK_HYRULE_CASTLE_OUTSIDE_NORTHWEST, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_2FTopRightTower[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x38, 0xa8, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_3F_TOP_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x38, 0x68, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_1F_TOP_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0xc0, 0x88, 0xd8, 0x0, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
- ROOM_DARK_HYRULE_CASTLE_OUTSIDE_NORTHEAST, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x38, 0xa8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_3F_TOP_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x38, 0x68, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_1F_TOP_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0xc0, 0x88, 0xd8, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
+ ROOM_DARK_HYRULE_CASTLE_OUTSIDE_NORTHEAST, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_2FRight[] = {
- { WARP_TYPE_AREA, 0x0, 0xf0, 0x5c, 0x44, 0x5e, 0x0, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
- ROOM_DARK_HYRULE_CASTLE_OUTSIDE_EAST, 2, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xf0, 0xec, 0x44, 0xee, 0x0, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
- ROOM_DARK_HYRULE_CASTLE_OUTSIDE_EAST, 2, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xf0, 0x5c, 0x44, 0x5e, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
+ ROOM_DARK_HYRULE_CASTLE_OUTSIDE_EAST, 2, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xf0, 0xec, 0x44, 0xee, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
+ ROOM_DARK_HYRULE_CASTLE_OUTSIDE_EAST, 2, TRANSITION_TYPE_NORMAL, 0x2, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_2FBossDoor[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x88, 0x118, 0x3, AREA_DARK_HYRULE_CASTLE_BRIDGE, ROOM_DARK_HYRULE_CASTLE_BRIDGE_MAIN,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x88, 0x118, TRANSITION_SHAPE_BORDER_NORTH, AREA_DARK_HYRULE_CASTLE_BRIDGE, ROOM_DARK_HYRULE_CASTLE_BRIDGE_MAIN,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_2FEntrance[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x198, 0xd8, 0x30, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
- ROOM_DARK_HYRULE_CASTLE_OUTSIDE_SOUTH, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x198, 0xd8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
+ ROOM_DARK_HYRULE_CASTLE_OUTSIDE_SOUTH, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_2FBottomLeftTower[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x38, 0xa8, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_3F_BOTTOM_LEFT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x38, 0x68, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_1F_BOTTOM_LEFT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0xc0, 0x78, 0xe8, 0x0, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
- ROOM_DARK_HYRULE_CASTLE_OUTSIDE_SOUTHWEST, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x38, 0xa8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_3F_BOTTOM_LEFT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x38, 0x68, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_1F_BOTTOM_LEFT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0xc0, 0x78, 0xe8, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
+ ROOM_DARK_HYRULE_CASTLE_OUTSIDE_SOUTHWEST, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_2FBottomLeftGhini[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x88, 0xd8, 0x30, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
- ROOM_DARK_HYRULE_CASTLE_OUTSIDE_SOUTH, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x88, 0xd8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
+ ROOM_DARK_HYRULE_CASTLE_OUTSIDE_SOUTH, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_B1Entrance[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x88, 0x188, 0x3, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
- ROOM_DARK_HYRULE_CASTLE_OUTSIDE_GARDEN, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x88, 0x188, TRANSITION_SHAPE_BORDER_NORTH, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
+ ROOM_DARK_HYRULE_CASTLE_OUTSIDE_GARDEN, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_2FBottomRightTower[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x108, 0xa8, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_3F_BOTTOM_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0xa8, 0x108, 0x68, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_1F_BOTTOM_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0x190, 0x88, 0x288, 0x0, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
- ROOM_DARK_HYRULE_CASTLE_OUTSIDE_SOUTHEAST, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x108, 0xa8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_3F_BOTTOM_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xa8, 0x108, 0x68, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_1F_BOTTOM_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x190, 0x88, 0x288, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
+ ROOM_DARK_HYRULE_CASTLE_OUTSIDE_SOUTHEAST, 2, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_1FTopLeftTower[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x38, 0xa8, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_TOWER,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x38, 0xa8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_TOWER,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_1FThroneRoom[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x48, 0x88, 0x38, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_BELOW_THRONE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x48, 0x88, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_BELOW_THRONE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_1FCompass[] = {
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x38, 0xb8, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_BELOW_COMPASS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x38, 0xb8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_BELOW_COMPASS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_1FTopRightTower[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x38, 0xa8, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x38, 0xa8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_1FBeforeThrone[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x68, 0x88, 0x78, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_BEFORE_THRONE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x68, 0x88, 0x78, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_BEFORE_THRONE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_1FBottomLeftTower[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x38, 0xa8, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x38, 0xa8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_1FBottomRightTower[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x38, 0xa8, 0x118, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x38, 0xa8, 0x118, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_B1BelowThrone[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x48, 0x88, 0x58, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_THRONE_ROOM,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x48, 0x88, 0x58, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_THRONE_ROOM,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_B1BelowCompass[] = {
- { WARP_TYPE_AREA, 0x0, 0xb8, 0x38, 0xb8, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_COMPASS,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xb8, 0x38, 0xb8, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_COMPASS,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_B1BeforeThrone[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x68, 0x88, 0x58, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_BEFORE_THRONE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x68, 0x88, 0x58, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_BEFORE_THRONE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_B1ToPrison[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x28, 0x58, 0x28, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B2_TO_PRISON,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x28, 0x58, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B2_TO_PRISON,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_B1Map[] = {
- { WARP_TYPE_AREA, 0x0, 0x108, 0xd8, 0x108, 0xe8, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x228, 0xd8, 0x228, 0xe8, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x108, 0xd8, 0x108, 0xe8, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x228, 0xd8, 0x228, 0xe8, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_1F_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastle_B2ToPrison[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x18, 0x58, 0x38, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_TO_PRISON,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x18, 0x58, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_TO_PRISON,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_DarkHyruleCastle[] = {
@@ -3641,49 +3641,49 @@ const Transition gExitList_Unused2[] = {
};
const Transition gExitList_DarkHyruleCastleOutside_ZeldaStatuePlatform[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0x178, 0xa8, 0x38, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_3F_TRIPLE_DARKNUT, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0x178, 0xa8, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_3F_TRIPLE_DARKNUT, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastleOutside_Garden[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x38, 0xc8, 0x1e8, 0x0, AREA_SANCTUARY, ROOM_SANCTUARY_HALL, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x88, 0x18, 0x30, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x38, 0xc8, 0x1e8, TRANSITION_SHAPE_AREA_12x12, AREA_SANCTUARY, ROOM_SANCTUARY_HALL, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x88, 0x18, TRANSITION_SHAPE_BORDER_SOUTH, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_B1_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastleOutside_OutsideNorthwest[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0xc8, 0x88, 0xa8, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_TOWER,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0xc8, 0x88, 0xa8, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_TOP_LEFT_TOWER,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastleOutside_OutsideNortheast[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0xc8, 0x88, 0xb0, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0xc8, 0x88, 0xb0, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_2F_TOP_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastleOutside_OutsideEast[] = {
- { WARP_TYPE_AREA, 0x0, 0x38, 0x5c, 0xde, 0x5e, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_RIGHT,
- 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x38, 0xec, 0xde, 0xee, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_RIGHT,
- 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0x5c, 0xde, 0x5e, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_RIGHT,
+ 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x38, 0xec, 0xde, 0xee, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_RIGHT,
+ 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastleOutside_OutsideSouthwest[] = {
- { WARP_TYPE_AREA, 0x0, 0x78, 0xd8, 0x88, 0xb0, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x78, 0xd8, 0x88, 0xb0, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastleOutside_OutsideSouth[] = {
- { WARP_TYPE_AREA, 0x0, 0x198, 0xc8, 0x88, 0x170, 0x0, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_ENTRANCE,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0xc8, 0x88, 0xa0, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_GHINI, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x198, 0xc8, 0x88, 0x170, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_ENTRANCE,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0xc8, 0x88, 0xa0, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_LEFT_GHINI, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_DarkHyruleCastleOutside_OutsideSoutheast[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x278, 0x88, 0x178, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x278, 0x88, 0x178, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_2F_BOTTOM_RIGHT_TOWER, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_DarkHyruleCastleOutside[] = {
@@ -3698,13 +3698,13 @@ const Transition* const gExitLists_DarkHyruleCastleOutside[] = {
};
const Transition gExitList_VaatisArms_First[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xb0, 0x88, 0x30, AREA_VAATI_3, ROOM_VAATI_3_0, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0,
- 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xb0, 0x88, TRANSITION_SHAPE_BORDER_SOUTH, AREA_VAATI_3, ROOM_VAATI_3_0, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0,
+ 0x0 },
TransitionListEnd,
};
const Transition gExitList_VaatisArms_Second[] = {
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xb0, 0x88, 0x30, AREA_VAATI_3, ROOM_VAATI_3_0, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0,
- 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xb0, 0x88, TRANSITION_SHAPE_BORDER_SOUTH, AREA_VAATI_3, ROOM_VAATI_3_0, 1, TRANSITION_TYPE_INSTANT_MINISH, 0x4, 0x0, 0x0,
+ 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_VaatisArms[] = {
@@ -3713,10 +3713,10 @@ const Transition* const gExitLists_VaatisArms[] = {
};
const Transition gExitList_DarkHyruleCastleBridge_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x18, 0xa8, 0x178, 0x0, AREA_DARK_HYRULE_CASTLE,
- ROOM_DARK_HYRULE_CASTLE_3F_KEATON_HALL_TO_VAATI, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x88, 0x28, 0x30, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOSS_DOOR,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x18, 0xa8, 0x178, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE,
+ ROOM_DARK_HYRULE_CASTLE_3F_KEATON_HALL_TO_VAATI, 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x88, 0x28, TRANSITION_SHAPE_BORDER_SOUTH, AREA_DARK_HYRULE_CASTLE, ROOM_DARK_HYRULE_CASTLE_2F_BOSS_DOOR,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_DarkHyruleCastleBridge[] = {
@@ -3724,30 +3724,30 @@ const Transition* const gExitLists_DarkHyruleCastleBridge[] = {
};
const Transition gExitList_HyruleCastle_0[] = {
- { WARP_TYPE_AREA, 0x0, 0x48, 0xd8, 0x88, 0x288, 0x0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_3, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x1f8, 0x38, 0x30, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
- TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x48, 0xd8, 0x88, 0x288, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_3, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x1f8, 0x38, TRANSITION_SHAPE_BORDER_SOUTH, AREA_CASTLE_GARDEN, ROOM_CASTLE_GARDEN_MAIN, 1,
+ TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleCastle_1[] = {
- { WARP_TYPE_AREA, 0x0, 0x58, 0x28, 0x68, 0x28, 0x0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_3, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x198, 0x28, 0x1c8, 0x28, 0x0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_3, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x58, 0x28, 0x68, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_3, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x198, 0x28, 0x1c8, 0x28, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_3, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_HyruleCastle_3[] = {
- { WARP_TYPE_AREA, 0x0, 0x68, 0x18, 0x58, 0x38, 0x0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_1, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x1c8, 0x18, 0x198, 0x38, 0x0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_1, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x88, 0x278, 0x48, 0xe8, 0x0, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_0, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_AREA, 0x0, 0x118, 0x1c8, 0x88, 0x180, 0x0, AREA_SANCTUARY_ENTRANCE, ROOM_SANCTUARY_ENTRANCE_MAIN,
- 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0xd2, 0x5c, 0xc0, AREA_HYRULE_CASTLE_CELLAR, ROOM_HYRULE_CASTLE_CELLAR_1,
- 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x68, 0x18, 0x58, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_1, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x1c8, 0x18, 0x198, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_1, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x278, 0x48, 0xe8, TRANSITION_SHAPE_AREA_12x12, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_0, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x118, 0x1c8, 0x88, 0x180, TRANSITION_SHAPE_AREA_12x12, AREA_SANCTUARY_ENTRANCE, ROOM_SANCTUARY_ENTRANCE_MAIN,
+ 1, TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0xd2, 0x5c, TRANSITION_SHAPE_BORDER_WEST, AREA_HYRULE_CASTLE_CELLAR, ROOM_HYRULE_CASTLE_CELLAR_1,
+ 1, TRANSITION_TYPE_NORMAL, 0x6, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_HyruleCastle[] = {
@@ -3762,10 +3762,10 @@ const Transition* const gExitLists_HyruleCastle[] = {
};
const Transition gExitList_SanctuaryEntrance_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0x88, 0x38, 0xc8, 0x1e8, 0x0, AREA_SANCTUARY, ROOM_SANCTUARY_HALL, 1, TRANSITION_TYPE_NORMAL, 0x0,
- 0x0, 0x0, 0x0, 0x0 },
- { WARP_TYPE_BORDER, 0x0, 0x0, 0x0, 0x118, 0x1e8, 0x30, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_3, 1, TRANSITION_TYPE_NORMAL,
- 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x88, 0x38, 0xc8, 0x1e8, TRANSITION_SHAPE_AREA_12x12, AREA_SANCTUARY, ROOM_SANCTUARY_HALL, 1, TRANSITION_TYPE_NORMAL, 0x0,
+ 0x0, 0x0, 0x0 },
+ { WARP_TYPE_BORDER, 0x0, 0x0, 0x118, 0x1e8, TRANSITION_SHAPE_BORDER_SOUTH, AREA_HYRULE_CASTLE, ROOM_HYRULE_CASTLE_3, 1, TRANSITION_TYPE_NORMAL,
+ 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_SanctuaryEntrance[] = {
@@ -3773,23 +3773,23 @@ const Transition* const gExitLists_SanctuaryEntrance[] = {
};
const Transition gExitList_Sanctuary_Hall[] = {
- { WARP_TYPE_AREA, 0x0, 0xc8, 0x1fc, 0x88, 0x48, 0x0, AREA_SANCTUARY_ENTRANCE, ROOM_SANCTUARY_ENTRANCE_MAIN,
- 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xc8, 0x1fc, 0x88, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_SANCTUARY_ENTRANCE, ROOM_SANCTUARY_ENTRANCE_MAIN,
+ 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gUnk_0813A76C[] = {
- { WARP_TYPE_AREA, 0x0, 0xc8, 0x1fc, 0x88, 0x48, 0x0, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
- ROOM_DARK_HYRULE_CASTLE_OUTSIDE_GARDEN, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xc8, 0x1fc, 0x88, 0x48, TRANSITION_SHAPE_AREA_12x12, AREA_DARK_HYRULE_CASTLE_OUTSIDE,
+ ROOM_DARK_HYRULE_CASTLE_OUTSIDE_GARDEN, 1, TRANSITION_TYPE_NORMAL, 0x4, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Sanctuary_Main[] = {
- { WARP_TYPE_AREA, 0x0, 0xe8, 0x28, 0x98, 0x130, 0x0, AREA_SANCTUARY, ROOM_SANCTUARY_STAINED_GLASS, 2,
- TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0xe8, 0x28, 0x98, 0x130, TRANSITION_SHAPE_AREA_12x12, AREA_SANCTUARY, ROOM_SANCTUARY_STAINED_GLASS, 2,
+ TRANSITION_TYPE_NORMAL, 0x0, 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition gExitList_Sanctuary_StainedGlass[] = {
- { WARP_TYPE_AREA, 0x0, 0x98, 0x140, 0xe8, 0x38, 0x0, AREA_SANCTUARY, ROOM_SANCTUARY_MAIN, 2, TRANSITION_TYPE_NORMAL, 0x4,
- 0x0, 0x0, 0x0, 0x0 },
+ { WARP_TYPE_AREA, 0x98, 0x140, 0xe8, 0x38, TRANSITION_SHAPE_AREA_12x12, AREA_SANCTUARY, ROOM_SANCTUARY_MAIN, 2, TRANSITION_TYPE_NORMAL, 0x4,
+ 0x0, 0x0, 0x0 },
TransitionListEnd,
};
const Transition* const gExitLists_Sanctuary[] = {
diff --git a/src/debug.c b/src/debug.c
index 6edbf3ee..9d2b728d 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -6,13 +6,14 @@
*/
#include "common.h"
-#include "functions.h"
#include "game.h"
#include "main.h"
#include "menu.h"
#include "message.h"
#include "screen.h"
#include "sound.h"
+#include "save.h"
+#include "fade.h"
void sub_0805FA04(void);
void sub_0805FA98(void);
diff --git a/src/demo.c b/src/demo.c
index aea3f7ea..7675ef7a 100644
--- a/src/demo.c
+++ b/src/demo.c
@@ -7,14 +7,15 @@
#include "common.h"
#include "fileselect.h"
-#include "functions.h"
#include "game.h"
#include "global.h"
#include "main.h"
#include "menu.h"
#include "message.h"
#include "screen.h"
-#include "menu.h"
+#include "sound.h"
+#include "affine.h"
+#include "fade.h"
void sub_080A30AC(void);
void sub_080A2E40(void);
diff --git a/src/droptables.c b/src/droptables.c
index aafd0879..69deb7ee 100644
--- a/src/droptables.c
+++ b/src/droptables.c
@@ -1,4 +1,3 @@
-#include "global.h"
#include "droptables.h"
const Droptable gEnemyDroptables[] = {
diff --git a/src/enemy/acroBandits.c b/src/enemy/acroBandits.c
index 70518051..80cdc51d 100644
--- a/src/enemy/acroBandits.c
+++ b/src/enemy/acroBandits.c
@@ -5,7 +5,11 @@
* @brief Acro Bandits enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "player.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/armos.c b/src/enemy/armos.c
index 51daa2a8..873f8824 100644
--- a/src/enemy/armos.c
+++ b/src/enemy/armos.c
@@ -4,21 +4,27 @@
*
* @brief Armos enemy
*/
+#include "enemy/armos.h"
#include "collision.h"
#include "common.h"
#include "enemy.h"
+#include "sound.h"
#include "flags.h"
-#include "functions.h"
+#include "physics.h"
#include "global.h"
#include "hitbox.h"
#include "tiles.h"
+#include "room.h"
+#include "player.h"
+#include "asm.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unk_68[0x10];
/*0x78*/ u16 unk_78;
/*0x7a*/ u16 unk_7a;
- /*0x7c*/ ScreenTransitionData* unk_7c;
+ /*0x7c*/ Transition* unk_7c;
/*0x80*/ u8 unk_80;
/*0x81*/ u8 unk_81;
/*0x82*/ u8 unk_82;
@@ -66,11 +72,11 @@ void sub_080300E8(void) {
}
}
-void sub_08030118(u32 armosId) {
+void Armos_SetFlagFromTransition(u32 armosId) {
if (((gRoomTransition.armos_data.field_0xac >> armosId) & 1) != 0) {
- SetLocalFlagByBank(FLAG_BANK_3, armosId + 0x67);
+ SetLocalFlagByBank(FLAG_BANK_3, armosId + AMOS_00_00);
} else {
- ClearLocalFlagByBank(FLAG_BANK_3, armosId + 0x67);
+ ClearLocalFlagByBank(FLAG_BANK_3, armosId + AMOS_00_00);
}
}
@@ -132,7 +138,7 @@ void sub_0803026C(ArmosEntity* this) {
this->unk_84 = (0x47d >> this->unk_80) & 1;
}
if (super->type2 != 0) {
- this->unk_7c = (ScreenTransitionData*)GetCurrentRoomProperty(super->type2);
+ this->unk_7c = (Transition*)GetCurrentRoomProperty(super->type2);
}
this->unk_81 = super->health;
sub_08030580(this);
diff --git a/src/enemy/ballChainSoldier.c b/src/enemy/ballChainSoldier.c
index f6010778..47101a5a 100644
--- a/src/enemy/ballChainSoldier.c
+++ b/src/enemy/ballChainSoldier.c
@@ -5,8 +5,12 @@
* @brief Ball Chain Soldier enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "room.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
Entity base;
diff --git a/src/enemy/beetle.c b/src/enemy/beetle.c
index 19603462..934e308a 100644
--- a/src/enemy/beetle.c
+++ b/src/enemy/beetle.c
@@ -5,7 +5,11 @@
* @brief Beetle enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "player.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/bladeTrap.c b/src/enemy/bladeTrap.c
index 68d229ed..fecaeeca 100644
--- a/src/enemy/bladeTrap.c
+++ b/src/enemy/bladeTrap.c
@@ -4,10 +4,10 @@
*
* @brief Blade Trap enemy
*/
-#include "entity.h"
#include "object.h"
-#include "room.h"
#include "sound.h"
+#include "room.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/bobomb.c b/src/enemy/bobomb.c
index f1ae158b..0fc89c5c 100644
--- a/src/enemy/bobomb.c
+++ b/src/enemy/bobomb.c
@@ -7,9 +7,11 @@
#include "asm.h"
#include "collision.h"
#include "enemy.h"
-#include "functions.h"
-#include "object.h"
#include "sound.h"
+#include "effects.h"
+#include "object.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
@@ -177,7 +179,7 @@ void sub_0802C91C(BobombEntity* this) {
sub_0802CBC4(this);
} else {
if ((super->timer & 0xf) == 8) {
- CreateDustSmall(super);
+ CreateDashFx(super);
}
sub_0802CC18(this);
}
diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c
index 5993dfb2..56fb23ed 100644
--- a/src/enemy/bombPeahat.c
+++ b/src/enemy/bombPeahat.c
@@ -9,6 +9,8 @@
#include "entity.h"
#include "functions.h"
#include "object.h"
+#include "room.h"
+#include "physics.h"
#include "player.h"
typedef struct {
diff --git a/src/enemy/bombarossa.c b/src/enemy/bombarossa.c
index 1190d281..49a7d4a5 100644
--- a/src/enemy/bombarossa.c
+++ b/src/enemy/bombarossa.c
@@ -5,9 +5,12 @@
* @brief Bombarossa enemy
*/
#include "enemy.h"
-#include "entity.h"
+#include "sound.h"
+#include "effects.h"
#include "object.h"
+#include "asm.h"
#include "room.h"
+#include "physics.h"
typedef struct {
Entity base;
diff --git a/src/enemy/bowMoblin.c b/src/enemy/bowMoblin.c
index b071ced4..150d89cd 100644
--- a/src/enemy/bowMoblin.c
+++ b/src/enemy/bowMoblin.c
@@ -5,8 +5,12 @@
* @brief Bow Moblin enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
Entity base;
diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c
index 3f2c5c74..c00fdd50 100644
--- a/src/enemy/businessScrub.c
+++ b/src/enemy/businessScrub.c
@@ -6,14 +6,18 @@
*/
#include "asm.h"
#include "enemy.h"
-#include "functions.h"
-#include "game.h"
+#include "sound.h"
+#include "effects.h"
+#include "flags.h"
+#include "projectile.h"
#include "item.h"
#include "kinstone.h"
#include "message.h"
#include "npc.h"
#include "save.h"
#include "tiles.h"
+#include "vram.h"
+#include "color.h"
struct SalesOffering {
u8 field_0x0;
@@ -37,7 +41,7 @@ typedef struct {
/*0x80*/ u8 unk_80;
/*0x81*/ u8 unk_81;
/*0x82*/ u8 unused2[4];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} BusinessScrubEntity;
void sub_08028E9C(BusinessScrubEntity*);
@@ -95,7 +99,7 @@ void BusinessScrub_Action0(BusinessScrubEntity* this) {
super->animationState = 0;
super->direction = DirectionSouth;
sub_08028E9C(this);
- if ((*(u8*)this->unk_7c & 1) || CheckFlags(this->unk_86)) {
+ if ((*(u8*)this->unk_7c & 1) || CheckFlags(this->flag)) {
super->action = 4;
super->timer = 120;
super->spritePriority.b1 = 1;
@@ -227,7 +231,7 @@ void BusinessScrub_Action3(BusinessScrubEntity* this) {
iVar1->z.HALF.HI -= 12;
SetEntityPriority(iVar1, PRIO_MESSAGE);
}
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
sub_0802925C(this);
}
break;
diff --git a/src/enemy/businessScrubPrologue.c b/src/enemy/businessScrubPrologue.c
index 0f84737b..56a0ca38 100644
--- a/src/enemy/businessScrubPrologue.c
+++ b/src/enemy/businessScrubPrologue.c
@@ -4,9 +4,17 @@
*
* @brief Business Scrub Prologue enemy
*/
+#include "object/cutsceneMiscObject.h"
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "script.h"
+#include "physics.h"
+#include "room.h"
+#include "player.h"
+#include "asm.h"
typedef struct {
Entity base;
diff --git a/src/enemy/chaser.c b/src/enemy/chaser.c
index a17f4c96..93a042b8 100644
--- a/src/enemy/chaser.c
+++ b/src/enemy/chaser.c
@@ -5,7 +5,11 @@
* @brief Chaser enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "functions.h"
+#include "player.h"
+#include "physics.h"
extern void (*const Chaser_Functions[])(Entity*);
extern void (*const gUnk_080CD298[])(Entity*);
diff --git a/src/enemy/chuchu.c b/src/enemy/chuchu.c
index a24aa6b9..ef7575f3 100644
--- a/src/enemy/chuchu.c
+++ b/src/enemy/chuchu.c
@@ -6,7 +6,9 @@
*/
#include "asm.h"
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "physics.h"
#include "tiles.h"
typedef struct {
@@ -71,7 +73,7 @@ void Chuchu(ChuchuEntity* this) {
/* ... */
break;
case 2:
- CreateDrownFX(super);
+ CreateDrownFx(super);
return;
}
}
diff --git a/src/enemy/chuchuBoss.c b/src/enemy/chuchuBoss.c
index a558134a..e59a2b5b 100644
--- a/src/enemy/chuchuBoss.c
+++ b/src/enemy/chuchuBoss.c
@@ -5,9 +5,20 @@
* @brief Chuchu Boss enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "common.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
+#include "pauseMenu.h"
+#ifndef EU
+#include "vram.h"
+#include "color.h"
+#endif
typedef struct {
u8 unk_00;
@@ -1094,7 +1105,6 @@ void sub_08026E1C(ChuchuBossEntity* this) {
COLLISION_ON(super);
if (sub_08027C54(this)) {
this->unk_84->unk_04++;
- ;
super->child->health = 0xff;
}
if (this->unk_84->unk_04 == 3) {
diff --git a/src/enemy/cloudPiranha.c b/src/enemy/cloudPiranha.c
index 389237c4..ba3a1f67 100644
--- a/src/enemy/cloudPiranha.c
+++ b/src/enemy/cloudPiranha.c
@@ -6,9 +6,13 @@
*/
#include "collision.h"
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "room.h"
#include "physics.h"
#include "tiles.h"
+#include "asm.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/crow.c b/src/enemy/crow.c
index 5ed6d5ee..2323056b 100644
--- a/src/enemy/crow.c
+++ b/src/enemy/crow.c
@@ -5,8 +5,10 @@
* @brief Crow enemy
*/
#include "enemy.h"
+#include "sound.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
Entity base;
diff --git a/src/enemy/cuccoAggr.c b/src/enemy/cuccoAggr.c
index bf749082..67068086 100644
--- a/src/enemy/cuccoAggr.c
+++ b/src/enemy/cuccoAggr.c
@@ -5,8 +5,14 @@
* @brief Cucco Aggr enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "flags.h"
#include "entity.h"
-#include "functions.h"
+#include "room.h"
+#include "player.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
Entity base;
diff --git a/src/enemy/cuccoChickAggr.c b/src/enemy/cuccoChickAggr.c
index 03eb697f..eecb3de1 100644
--- a/src/enemy/cuccoChickAggr.c
+++ b/src/enemy/cuccoChickAggr.c
@@ -5,7 +5,10 @@
* @brief Cucco Chick Aggr enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "player.h"
+#include "asm.h"
void sub_08022A88(Entity*);
void sub_08022AA4(Entity*);
diff --git a/src/enemy/curtain.c b/src/enemy/curtain.c
index e5256714..918bdd5c 100644
--- a/src/enemy/curtain.c
+++ b/src/enemy/curtain.c
@@ -5,6 +5,8 @@
* @brief Curtain enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "flags.h"
#include "entity.h"
void (*const Curtain_Functions[])(Entity*);
diff --git a/src/enemy/darkNut.c b/src/enemy/darkNut.c
index 3eda472a..f5d1ca48 100644
--- a/src/enemy/darkNut.c
+++ b/src/enemy/darkNut.c
@@ -5,7 +5,10 @@
* @brief Dark Nut enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/doorMimic.c b/src/enemy/doorMimic.c
index 46972dc8..bc906e07 100644
--- a/src/enemy/doorMimic.c
+++ b/src/enemy/doorMimic.c
@@ -5,9 +5,13 @@
* @brief Door Mimic enemy
*/
#include "enemy.h"
-#include "functions.h"
#include "sound.h"
+#include "effects.h"
+#include "common.h"
#include "tiles.h"
+#include "object.h"
+#include "asm.h"
+#include "room.h"
typedef struct {
/*0x00*/ Entity base;
@@ -51,7 +55,7 @@ void DoorMimic_OnCollision(DoorMimicEntity* this) {
void DoorMimic_OnDeath(DoorMimicEntity* this) {
SetTile(this->unk_7c, this->unk_7e, super->collisionLayer);
CreateFx(super, FX_POT_SHATTER, 0);
- EnemyDisableRespawn(super);
+ EnemyDisableRespawn((Enemy*)super);
DeleteThisEntity();
}
diff --git a/src/enemy/dust.c b/src/enemy/dust.c
index 7fd8c6d0..a19dd612 100644
--- a/src/enemy/dust.c
+++ b/src/enemy/dust.c
@@ -6,12 +6,16 @@
*/
#include "asm.h"
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "flags.h"
+#include "common.h"
#include "entity.h"
#include "hitbox.h"
#include "object.h"
+#include "room.h"
#include "physics.h"
#include "player.h"
-#include "room.h"
typedef struct {
Entity base;
diff --git a/src/enemy/enemy4D.c b/src/enemy/enemy4D.c
index 479941f6..fd4de5fb 100644
--- a/src/enemy/enemy4D.c
+++ b/src/enemy/enemy4D.c
@@ -5,8 +5,12 @@
* @brief Enemy4D enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "room.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/enemy50.c b/src/enemy/enemy50.c
index 1bb3c193..13aefd52 100644
--- a/src/enemy/enemy50.c
+++ b/src/enemy/enemy50.c
@@ -6,8 +6,12 @@
*/
#include "area.h"
#include "enemy.h"
-#include "functions.h"
+#include "effects.h"
+#include "physics.h"
#include "player.h"
+#include "room.h"
+#include "script.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/enemy64.c b/src/enemy/enemy64.c
index c7e561cd..7dc17d67 100644
--- a/src/enemy/enemy64.c
+++ b/src/enemy/enemy64.c
@@ -5,9 +5,18 @@
* @brief Enemy64 enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "flags.h"
+#include "projectile.h"
#include "fade.h"
-#include "functions.h"
+#include "scroll.h"
+#include "physics.h"
#include "tiles.h"
+#include "room.h"
+#include "player.h"
+#include "asm.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/enemyE.c b/src/enemy/enemyE.c
index 56a9fe04..5b59069b 100644
--- a/src/enemy/enemyE.c
+++ b/src/enemy/enemyE.c
@@ -5,7 +5,7 @@
* @brief EnemyE enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "effects.h"
void sub_08023000(Entity*, int);
diff --git a/src/enemy/eyegore.c b/src/enemy/eyegore.c
index dfa96343..28f62907 100644
--- a/src/enemy/eyegore.c
+++ b/src/enemy/eyegore.c
@@ -5,10 +5,15 @@
* @brief Eyegore enemy
*/
#include "enemy.h"
-#include "fade.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "flags.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
@@ -22,7 +27,7 @@ typedef struct {
/*0x79*/ u8 unk_79;
/*0x7a*/ u8 unk_7a;
/*0x7b*/ u8 unk_7b;
- /*0x7c*/ u16 unk_7c;
+ /*0x7c*/ u16 flag;
/*0x7e*/ u8 unk_7e;
/*0x7f*/ u8 unk_7f;
/*0x80*/ u16 tileIndex1;
@@ -151,7 +156,7 @@ void Eyegore_Init(EyegoreEntity* this) {
this->unk_76 = super->y.HALF.HI;
this->unk_7e = 0x3c;
sub_08030F00(this);
- if (this->unk_7c != 0) {
+ if (this->flag != 0) {
super->flags &= ~ENT_COLLIDE;
InitializeAnimation(super, 10);
} else {
@@ -160,7 +165,7 @@ void Eyegore_Init(EyegoreEntity* this) {
}
void Eyegore_Action1(EyegoreEntity* this) {
- if ((this->unk_7c != 0) && CheckFlags(this->unk_7c)) {
+ if ((this->flag != 0) && CheckFlags(this->flag)) {
sub_08031320(this);
}
}
diff --git a/src/enemy/fallingBoulder.c b/src/enemy/fallingBoulder.c
index 13421100..fa3d564c 100644
--- a/src/enemy/fallingBoulder.c
+++ b/src/enemy/fallingBoulder.c
@@ -5,7 +5,12 @@
* @brief Falling Boulder enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "room.h"
+#include "player.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/fireballGuy.c b/src/enemy/fireballGuy.c
index b35b8117..112194d0 100644
--- a/src/enemy/fireballGuy.c
+++ b/src/enemy/fireballGuy.c
@@ -5,7 +5,11 @@
* @brief Fireball Guy enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "player.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/flyingPot.c b/src/enemy/flyingPot.c
index 9c7a8348..1116caa8 100644
--- a/src/enemy/flyingPot.c
+++ b/src/enemy/flyingPot.c
@@ -6,10 +6,12 @@
*/
#include "collision.h"
#include "enemy.h"
-#include "functions.h"
+#include "effects.h"
+#include "physics.h"
#include "player.h"
#include "room.h"
#include "tiles.h"
+#include "asm.h"
extern Hitbox gUnk_080FD34C;
diff --git a/src/enemy/flyingSkull.c b/src/enemy/flyingSkull.c
index 2366f56d..b9e2f8fa 100644
--- a/src/enemy/flyingSkull.c
+++ b/src/enemy/flyingSkull.c
@@ -4,12 +4,17 @@
*
* @brief Flying Skull enemy
*/
+#include "object/pot.h"
#include "collision.h"
#include "enemy.h"
+#include "effects.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
#include "hitbox.h"
#include "tiles.h"
+#include "room.h"
+#include "player.h"
+#include "asm.h"
typedef struct {
Entity base;
diff --git a/src/enemy/ghini.c b/src/enemy/ghini.c
index 877db7a0..9fb7dd7c 100644
--- a/src/enemy/ghini.c
+++ b/src/enemy/ghini.c
@@ -6,8 +6,11 @@
*/
#include "area.h"
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "player.h"
#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/gibdo.c b/src/enemy/gibdo.c
index 04bf487d..a7ad5224 100644
--- a/src/enemy/gibdo.c
+++ b/src/enemy/gibdo.c
@@ -5,8 +5,12 @@
* @brief Gibdo enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
#include "object.h"
+#include "asm.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
Entity base;
diff --git a/src/enemy/gleerok.c b/src/enemy/gleerok.c
index e88550f1..18586946 100644
--- a/src/enemy/gleerok.c
+++ b/src/enemy/gleerok.c
@@ -5,11 +5,21 @@
* @brief Gleerok enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "flags.h"
+#include "common.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
#include "player.h"
#include "screen.h"
+#include "pauseMenu.h"
+#include "color.h"
+#include "fade.h"
typedef struct {
union SplitHWord unk0;
diff --git a/src/enemy/gyorgChild.c b/src/enemy/gyorgChild.c
index ea6a5db6..67beee16 100644
--- a/src/enemy/gyorgChild.c
+++ b/src/enemy/gyorgChild.c
@@ -6,8 +6,10 @@
*/
#include "asm.h"
#include "enemy/gyorg.h"
-#include "functions.h"
#include "room.h"
+#include "player.h"
+#include "physics.h"
+#include "sound.h"
void GyorgChild_OnTick(GyorgChildEntity*);
void GyorgChild_OnCollision(GyorgChildEntity*);
diff --git a/src/enemy/gyorgFemale.c b/src/enemy/gyorgFemale.c
index 034e8eb4..b705005b 100644
--- a/src/enemy/gyorgFemale.c
+++ b/src/enemy/gyorgFemale.c
@@ -8,11 +8,15 @@
#include "beanstalkSubtask.h"
#include "collision.h"
#include "enemy.h"
-#include "enemy/gyorg.h"
-#include "entity.h"
-#include "functions.h"
#include "sound.h"
+#include "effects.h"
+#include "common.h"
+#include "projectile.h"
+#include "enemy/gyorg.h"
#include "assets/map_offsets.h"
+#include "game.h"
+#include "player.h"
+#include "room.h"
extern u8 gEntCount;
extern u8 gMapDataTopSpecial[];
@@ -20,11 +24,10 @@ extern u8 gMapDataTopSpecial[];
extern u16 gMapDataBottomSpecial[];
extern u32 sub_08000E62(u32);
-extern void RegisterTransitionManager(void*, void (*)(), void (*)());
-void sub_08046498();
+void GyorgFemale_OnEnterRoom();
void sub_0804660C(GyorgFemaleEntity*, u32);
-void sub_080464C0(GyorgFemaleEntity*);
+void GyorgFemale_Reset(GyorgFemaleEntity*);
void GyorgFemale_SpawnChildren(GyorgFemaleEntity* this, bool32 unlimit_tmp);
void sub_080465C8(void);
void GyorgFemale_ProcessEyeHit(GyorgFemaleEntity* this);
@@ -92,13 +95,13 @@ void GyorgFemale_Setup(GyorgFemaleEntity* this) {
MemClear(&gMapDataBottomSpecial, 0x8000);
MemClear(&gMapDataTopSpecial, 0x8000);
sub_0804660C(this, 0);
- sub_080464C0(this);
+ GyorgFemale_Reset(this);
gPlayerEntity.base.collisionLayer = 2;
UpdateSpriteForCollisionLayer(&gPlayerEntity.base);
#ifndef EU
- RegisterTransitionManager(this, sub_08046498, 0);
+ RegisterTransitionHandler(this, GyorgFemale_OnEnterRoom, NULL);
#else
- RegisterTransitionManager(this, sub_080464C0, 0);
+ RegisterTransitionHandler(this, GyorgFemale_Reset, NULL);
#endif
}
@@ -110,7 +113,7 @@ void GyorgFemale_Action1(GyorgFemaleEntity* this) {
} else {
if (this->unk_79 & 0x40) {
this->unk_79 &= ~0x40;
- sub_080464C0(this);
+ GyorgFemale_Reset(this);
}
}
sub_080465C8();
@@ -217,14 +220,14 @@ void GyorgFemale_Action3(GyorgFemaleEntity* this) {
}
#ifndef EU
-void sub_08046498(GyorgFemaleEntity* this) {
+void GyorgFemale_OnEnterRoom(GyorgFemaleEntity* this) {
MemClear(&gMapDataBottomSpecial, 0x8000);
MemClear(&gMapDataTopSpecial, 0x8000);
- sub_080464C0(this);
+ GyorgFemale_Reset(this);
}
#endif
-void sub_080464C0(GyorgFemaleEntity* this) {
+void GyorgFemale_Reset(GyorgFemaleEntity* this) {
static const MapDataDefinition* const gyorgMappings[] = {
gGyorgMapping0,
gGyorgMapping1,
diff --git a/src/enemy/gyorgFemaleEye.c b/src/enemy/gyorgFemaleEye.c
index b9ff2671..05c03183 100644
--- a/src/enemy/gyorgFemaleEye.c
+++ b/src/enemy/gyorgFemaleEye.c
@@ -5,10 +5,13 @@
* @brief Gyorg Female Eye enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "enemy/gyorg.h"
#include "entity.h"
-#include "functions.h"
#include "player.h"
+#include "room.h"
+#include "asm.h"
void GyorgFemaleEye_OnTick(GyorgFemaleEyeEntity*);
void GyorgFemaleEye_OnCollision(GyorgFemaleEyeEntity*);
diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c
index d4d52e95..39d98d7c 100644
--- a/src/enemy/gyorgMale.c
+++ b/src/enemy/gyorgMale.c
@@ -6,10 +6,13 @@
*/
#include "effects.h"
#include "enemy.h"
+#include "sound.h"
+#include "projectile.h"
#include "enemy/gyorg.h"
#include "fileselect.h"
-#include "functions.h"
+#include "physics.h"
#include "player.h"
+#include "asm.h"
// todo: wrong types
extern void sub_080A1D70(Entity*, u32);
diff --git a/src/enemy/gyorgMaleEye.c b/src/enemy/gyorgMaleEye.c
index 03202469..c62b8d30 100644
--- a/src/enemy/gyorgMaleEye.c
+++ b/src/enemy/gyorgMaleEye.c
@@ -5,8 +5,10 @@
* @brief GyorgMaleEye enemy
*/
#include "enemy.h"
-#include "fade.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "physics.h"
+#include "room.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/hangingSeed.c b/src/enemy/hangingSeed.c
index 2f52e0ab..3dabc2ca 100644
--- a/src/enemy/hangingSeed.c
+++ b/src/enemy/hangingSeed.c
@@ -5,8 +5,9 @@
* @brief Hanging Seed enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "entity.h"
-#include "functions.h"
extern void (*const HangingSeed_Functions[])(Entity*);
extern void (*const gUnk_080CB588[])(Entity*);
diff --git a/src/enemy/helmasaur.c b/src/enemy/helmasaur.c
index 9de3ac59..cf22a53c 100644
--- a/src/enemy/helmasaur.c
+++ b/src/enemy/helmasaur.c
@@ -6,8 +6,13 @@
*/
#include "collision.h"
#include "enemy.h"
-#include "functions.h"
+#include "effects.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/keaton.c b/src/enemy/keaton.c
index a6f007f8..48335e94 100644
--- a/src/enemy/keaton.c
+++ b/src/enemy/keaton.c
@@ -5,7 +5,11 @@
* @brief keaton enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/keese.c b/src/enemy/keese.c
index 922ad17d..8f1390a6 100644
--- a/src/enemy/keese.c
+++ b/src/enemy/keese.c
@@ -5,8 +5,11 @@
* @brief Keese enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "physics.h"
#include "player.h"
+#include "asm.h"
typedef struct {
/* 0x00 */ Entity base;
diff --git a/src/enemy/lakitu.c b/src/enemy/lakitu.c
index c0dba3db..bff5b976 100644
--- a/src/enemy/lakitu.c
+++ b/src/enemy/lakitu.c
@@ -5,8 +5,12 @@
* @brief Lakitu enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "physics.h"
#include "player.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/lakituCloud.c b/src/enemy/lakituCloud.c
index ac2549fc..85d37c90 100644
--- a/src/enemy/lakituCloud.c
+++ b/src/enemy/lakituCloud.c
@@ -7,6 +7,7 @@
#include "asm.h"
#include "effects.h"
#include "enemy.h"
+#include "sound.h"
#include "entity.h"
#include "object.h"
#include "physics.h"
diff --git a/src/enemy/leever.c b/src/enemy/leever.c
index ef2c051a..1030a1be 100644
--- a/src/enemy/leever.c
+++ b/src/enemy/leever.c
@@ -6,6 +6,7 @@
*/
#include "asm.h"
#include "enemy.h"
+#include "effects.h"
#include "physics.h"
#include "tiles.h"
diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c
index 0a124fe5..b69bfde1 100644
--- a/src/enemy/likeLike.c
+++ b/src/enemy/likeLike.c
@@ -5,9 +5,14 @@
* @brief Like Like enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "item.h"
#include "message.h"
#include "object.h"
+#include "asm.h"
+#include "physics.h"
+#include "player.h"
#include "save.h"
typedef struct {
@@ -145,7 +150,7 @@ void sub_08027F84(LikeLikeEntity* this) {
super->action = 5;
super->spriteSettings.draw = 1;
InitializeAnimation(super, 0);
- CreateDust(super);
+ CreateDeathFx(super);
}
}
@@ -177,7 +182,7 @@ void sub_0802802C(LikeLikeEntity* this) {
super->spriteSettings.draw = 0;
super->direction = 0;
super->timer = 0;
- CreateDust(super);
+ CreateDeathFx(super);
}
}
diff --git a/src/enemy/madderpillar.c b/src/enemy/madderpillar.c
index 7df20a7d..de439c90 100644
--- a/src/enemy/madderpillar.c
+++ b/src/enemy/madderpillar.c
@@ -5,8 +5,13 @@
* @brief Madderpillar enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
#include "hitbox.h"
+#include "room.h"
+#include "physics.h"
+#include "asm.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/mazaalBracelet.c b/src/enemy/mazaalBracelet.c
index a4ec8dd8..72ba305e 100644
--- a/src/enemy/mazaalBracelet.c
+++ b/src/enemy/mazaalBracelet.c
@@ -5,9 +5,16 @@
* @brief Mazaal Bracelet enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "script.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
+#include "color.h"
typedef struct MazaalBraceletEntity_ {
/*0x00*/ Entity base;
diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c
index 049b32d1..ffb4d420 100644
--- a/src/enemy/mazaalHead.c
+++ b/src/enemy/mazaalHead.c
@@ -6,8 +6,14 @@
*/
#include "area.h"
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "roomid.h"
#include "screen.h"
@@ -118,12 +124,8 @@ void (*const gUnk_080CED74[])(MazaalHeadEntity*) = {
sub_08034BA0,
};
const s8 gUnk_080CED84[] = { 0x0d, 0x10, -0xd, 0x10 };
-const ScreenTransitionData gUnk_080CED88 = {
- 1, { 0, 0, 0, 0 }, 0x88, 0xf8, 0, AREA_INNER_MAZAAL, ROOM_INNER_MAZAAL_PHASE_1, 1, 0, 0, 0
-};
-const ScreenTransitionData gUnk_080CED9C = {
- 1, { 0, 0, 0, 0 }, 0x88, 0xf8, 0, AREA_INNER_MAZAAL, ROOM_INNER_MAZAAL_MAIN, 1, 0, 0, 0
-};
+const Transition gUnk_080CED88 = { 1, 0, 0, 0x88, 0xf8, 0, AREA_INNER_MAZAAL, ROOM_INNER_MAZAAL_PHASE_1, 1, 0, 0, 0 };
+const Transition gUnk_080CED9C = { 1, 0, 0, 0x88, 0xf8, 0, AREA_INNER_MAZAAL, ROOM_INNER_MAZAAL_MAIN, 1, 0, 0, 0 };
void MazaalHead(MazaalHeadEntity* this) {
MazaalHead_Functions[GetNextFunction(super)](this);
diff --git a/src/enemy/mazaalMacro.c b/src/enemy/mazaalMacro.c
index 2f6f330f..fd3146b6 100644
--- a/src/enemy/mazaalMacro.c
+++ b/src/enemy/mazaalMacro.c
@@ -5,11 +5,15 @@
* @brief Mazaal Macro enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
#include "screenTransitions.h"
+#include "room.h"
#include "script.h"
-#include "structures.h"
#include "tiles.h"
+#include "player.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/miniFireballGuy.c b/src/enemy/miniFireballGuy.c
index 97365958..f50c3bc6 100644
--- a/src/enemy/miniFireballGuy.c
+++ b/src/enemy/miniFireballGuy.c
@@ -5,7 +5,10 @@
* @brief Mini Fireball Guy enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/miniSlime.c b/src/enemy/miniSlime.c
index 856651e6..38a42e96 100644
--- a/src/enemy/miniSlime.c
+++ b/src/enemy/miniSlime.c
@@ -5,7 +5,10 @@
* @brief Mini Slime enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/moldorm.c b/src/enemy/moldorm.c
index 96d6a9cd..7c744db4 100644
--- a/src/enemy/moldorm.c
+++ b/src/enemy/moldorm.c
@@ -6,7 +6,8 @@
*/
#include "collision.h"
#include "enemy.h"
-#include "functions.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/moldworm.c b/src/enemy/moldworm.c
index f5e2dc05..8e3e6db0 100644
--- a/src/enemy/moldworm.c
+++ b/src/enemy/moldworm.c
@@ -6,8 +6,14 @@
*/
#include "collision.h"
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "physics.h"
#include "tiles.h"
+#include "room.h"
+#include "player.h"
+#include "asm.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/mulldozer.c b/src/enemy/mulldozer.c
index 9f29616d..6a4a8f90 100644
--- a/src/enemy/mulldozer.c
+++ b/src/enemy/mulldozer.c
@@ -6,6 +6,9 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/octorok.c b/src/enemy/octorok.c
index 35153389..2829c58a 100644
--- a/src/enemy/octorok.c
+++ b/src/enemy/octorok.c
@@ -5,7 +5,11 @@
* @brief Octorok enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "physics.h"
+#include "asm.h"
void Octorok_Pause(Entity*);
bool32 Octorok_FacesPlayer(Entity*);
diff --git a/src/enemy/octorokBoss.c b/src/enemy/octorokBoss.c
index e0d377f8..0886f1bf 100644
--- a/src/enemy/octorokBoss.c
+++ b/src/enemy/octorokBoss.c
@@ -6,10 +6,19 @@
*/
#include "enemy/octorokBoss.h"
#include "collision.h"
-#include "functions.h"
+#include "pauseMenu.h"
#include "game.h"
#include "object.h"
+#include "asm.h"
+#include "common.h"
+#include "sound.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "projectile.h"
+#include "vram.h"
+#include "color.h"
#define IS_FROZEN(this) ((this)->bossPhase & 1)
diff --git a/src/enemy/octorokGolden.c b/src/enemy/octorokGolden.c
index 23b92aa5..8753e2b5 100644
--- a/src/enemy/octorokGolden.c
+++ b/src/enemy/octorokGolden.c
@@ -6,9 +6,14 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "flags.h"
+#include "projectile.h"
#include "map.h"
#include "player.h"
#include "item.h"
+#include "asm.h"
void (*const OctorokGolden_Functions[])(Entity*);
void (*const gUnk_080CF484[])(Entity*);
diff --git a/src/enemy/peahat.c b/src/enemy/peahat.c
index 8c5f6646..3ff7a436 100644
--- a/src/enemy/peahat.c
+++ b/src/enemy/peahat.c
@@ -5,7 +5,10 @@
* @brief Peahat enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "physics.h"
+#include "asm.h"
#include "room.h"
typedef struct {
@@ -286,7 +289,7 @@ void Peahat_Stunned(PeahatEntity* this) {
super->hitType = 0x71;
}
break;
- };
+ }
}
void Peahat_RepairPropeller(PeahatEntity* this) {
diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c
index 489098cd..86078197 100644
--- a/src/enemy/pesto.c
+++ b/src/enemy/pesto.c
@@ -6,8 +6,15 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "game.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "playeritem.h"
#include "save.h"
@@ -137,7 +144,7 @@ void nullsub_138(PestoEntity* this) {
void sub_0802409C(PestoEntity* this) {
super->health = 0;
InitializeAnimation(super, super->animationState);
- CreateDust(super);
+ CreateDeathFx(super);
}
void sub_080240B8(PestoEntity* this) {
diff --git a/src/enemy/puffstool.c b/src/enemy/puffstool.c
index cf40c24c..bb6fa93a 100644
--- a/src/enemy/puffstool.c
+++ b/src/enemy/puffstool.c
@@ -6,8 +6,15 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/rockChuchu.c b/src/enemy/rockChuchu.c
index 72e18f8d..25acfff7 100644
--- a/src/enemy/rockChuchu.c
+++ b/src/enemy/rockChuchu.c
@@ -5,7 +5,10 @@
* @brief Rock Chuchu enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "player.h"
+#include "asm.h"
extern void (*const RockChuchu_Functions[])(Entity*);
extern void (*const gUnk_080CB960[])(Entity*);
diff --git a/src/enemy/rollobite.c b/src/enemy/rollobite.c
index e2a372a8..428038e6 100644
--- a/src/enemy/rollobite.c
+++ b/src/enemy/rollobite.c
@@ -6,10 +6,12 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "sound.h"
#include "physics.h"
#include "player.h"
#include "room.h"
#include "tiles.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/rope.c b/src/enemy/rope.c
index f8b171f4..e3b19968 100644
--- a/src/enemy/rope.c
+++ b/src/enemy/rope.c
@@ -5,8 +5,11 @@
* @brief Rope enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "physics.h"
#include "tiles.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/ropeGolden.c b/src/enemy/ropeGolden.c
index 0e653b80..69c43e98 100644
--- a/src/enemy/ropeGolden.c
+++ b/src/enemy/ropeGolden.c
@@ -5,10 +5,14 @@
* @brief Golden Rope enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "flags.h"
#include "entity.h"
#include "physics.h"
#include "player.h"
#include "item.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c
index ada5434e..7344e387 100644
--- a/src/enemy/rupeeLike.c
+++ b/src/enemy/rupeeLike.c
@@ -8,7 +8,12 @@
#include "entity.h"
#include "hitbox.h"
#include "object.h"
-#include "room.h"
+#include "asm.h"
+#include "sound.h"
+#include "effects.h"
+#include "physics.h"
+#include "player.h"
+#include "vram.h"
#include "save.h"
typedef struct {
@@ -275,7 +280,7 @@ void sub_08029770(RupeeLikeEntity* this) {
InitializeAnimation(super, 2);
super->child->spriteSettings.draw = TRUE;
InitializeAnimation(super->child, 6);
- CreateDust(super);
+ CreateDeathFx(super);
}
}
diff --git a/src/enemy/scissorsBeetle.c b/src/enemy/scissorsBeetle.c
index 72bb2f8a..dd4eba0c 100644
--- a/src/enemy/scissorsBeetle.c
+++ b/src/enemy/scissorsBeetle.c
@@ -6,7 +6,11 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "entity.h"
+#include "asm.h"
typedef struct {
Entity base;
diff --git a/src/enemy/sensorBladeTrap.c b/src/enemy/sensorBladeTrap.c
index 31d2bc10..36357f4e 100644
--- a/src/enemy/sensorBladeTrap.c
+++ b/src/enemy/sensorBladeTrap.c
@@ -6,6 +6,7 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "sound.h"
#include "map.h"
#include "physics.h"
diff --git a/src/enemy/slime.c b/src/enemy/slime.c
index 536eec67..5c7636c0 100644
--- a/src/enemy/slime.c
+++ b/src/enemy/slime.c
@@ -5,8 +5,11 @@
* @brief Slime enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "physics.h"
#include "room.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/sluggula.c b/src/enemy/sluggula.c
index 4217da7e..e816a1a0 100644
--- a/src/enemy/sluggula.c
+++ b/src/enemy/sluggula.c
@@ -5,7 +5,10 @@
* @brief Sluggula enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "physics.h"
+#include "asm.h"
void sub_08023E10(Entity*);
void sub_08023E54(Entity*);
diff --git a/src/enemy/smallPesto.c b/src/enemy/smallPesto.c
index 0c287bbc..a9652e10 100644
--- a/src/enemy/smallPesto.c
+++ b/src/enemy/smallPesto.c
@@ -5,7 +5,10 @@
* @brief Small Pesto enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/spark.c b/src/enemy/spark.c
index 79a65afe..a5dde94a 100644
--- a/src/enemy/spark.c
+++ b/src/enemy/spark.c
@@ -6,7 +6,9 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "effects.h"
#include "object.h"
+#include "physics.h"
extern void (*const Spark_Functions[])(Entity*);
extern void (*const gUnk_080CD24C[])(Entity*);
diff --git a/src/enemy/spearMoblin.c b/src/enemy/spearMoblin.c
index 271a4c23..e8954dd2 100644
--- a/src/enemy/spearMoblin.c
+++ b/src/enemy/spearMoblin.c
@@ -5,7 +5,12 @@
* @brief Spear Moblin enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
+#include "object.h"
+#include "asm.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/spikedBeetle.c b/src/enemy/spikedBeetle.c
index 95e3566f..9994d6c3 100644
--- a/src/enemy/spikedBeetle.c
+++ b/src/enemy/spikedBeetle.c
@@ -5,7 +5,11 @@
* @brief Spiked Beetle enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "player.h"
+#include "physics.h"
+#include "asm.h"
extern u32 sub_0804A024(Entity*, u32, u32);
diff --git a/src/enemy/spinyBeetle.c b/src/enemy/spinyBeetle.c
index ff5df9ae..bbc0b84a 100644
--- a/src/enemy/spinyBeetle.c
+++ b/src/enemy/spinyBeetle.c
@@ -5,9 +5,14 @@
* @brief Spiny Beetle enemy
*/
#include "enemy.h"
+#include "sound.h"
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
diff --git a/src/enemy/spinyChuchu.c b/src/enemy/spinyChuchu.c
index ee63610d..9ae50774 100644
--- a/src/enemy/spinyChuchu.c
+++ b/src/enemy/spinyChuchu.c
@@ -5,8 +5,11 @@
* @brief Spiny Chuchu enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
#include "hitbox.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/stalfos.c b/src/enemy/stalfos.c
index 3d31789b..64270757 100644
--- a/src/enemy/stalfos.c
+++ b/src/enemy/stalfos.c
@@ -6,8 +6,14 @@
*/
#include "collision.h"
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
+#include "physics.h"
#include "tiles.h"
+#include "room.h"
+#include "player.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/takkuri.c b/src/enemy/takkuri.c
index d0524dde..50cd83b4 100644
--- a/src/enemy/takkuri.c
+++ b/src/enemy/takkuri.c
@@ -5,10 +5,14 @@
* @brief Takkuri enemy
*/
#include "enemy.h"
+#include "sound.h"
#include "entity.h"
-#include "functions.h"
#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "save.h"
typedef struct {
@@ -47,7 +51,7 @@ void Takkuri_OnCollision(TakkuriEntity* this) {
if (super->contactFlags & CONTACT_NOW) {
if ((super->contactFlags & 0x7f) == 0) {
u32 direction;
- sub_0803C0AC(super);
+ StealRupees(super);
COLLISION_OFF(super);
direction = super->direction;
if (!DirectionIsHorizontal(DirectionRoundUp(direction))) {
@@ -305,8 +309,8 @@ void sub_0803BF70(TakkuriEntity* this) {
GetNextFrame(super);
}
-void sub_0803C0AC(Entity* this) {
- u32 index, rupeeType, rupees;
+void StealRupees(Entity* this) {
+ u32 rupeeCount, rupeeType, rupees;
Entity* entity;
entity = sub_08049DF4(1);
if (entity == NULL)
@@ -315,22 +319,22 @@ void sub_0803C0AC(Entity* this) {
rupees = gSave.stats.rupees;
if (rupees >= 500) {
rupeeType = ITEM_RUPEE20;
- index = 5;
+ rupeeCount = 5;
ModRupees(-100);
} else if (rupees >= 100) {
rupeeType = ITEM_RUPEE5;
- index = 5;
+ rupeeCount = 5;
ModRupees(-25);
} else {
rupeeType = ITEM_RUPEE1;
- index = rupees;
+ rupeeCount = rupees;
if (rupees >= 0x5) {
- index = 5;
+ rupeeCount = 5;
}
- ModRupees(-index);
+ ModRupees(-rupeeCount);
}
- for (; index != 0; index--) {
+ for (; rupeeCount != 0; rupeeCount--) {
Entity* obj = CreateObject(RUPEE_OBJECT, rupeeType, 0);
if (obj) {
diff --git a/src/enemy/tektite.c b/src/enemy/tektite.c
index fbc4c756..46053390 100644
--- a/src/enemy/tektite.c
+++ b/src/enemy/tektite.c
@@ -6,7 +6,8 @@
*/
#include "collision.h"
#include "enemy.h"
-#include "functions.h"
+#include "effects.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/tektiteGolden.c b/src/enemy/tektiteGolden.c
index 047b449f..f7875954 100644
--- a/src/enemy/tektiteGolden.c
+++ b/src/enemy/tektiteGolden.c
@@ -6,8 +6,10 @@
*/
#include "collision.h"
#include "enemy.h"
-#include "functions.h"
+#include "effects.h"
+#include "flags.h"
#include "item.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/torchTrap.c b/src/enemy/torchTrap.c
index 62789aa9..12ccd594 100644
--- a/src/enemy/torchTrap.c
+++ b/src/enemy/torchTrap.c
@@ -5,11 +5,15 @@
* @brief Torch Trap enemy
*/
#include "enemy.h"
+#include "sound.h"
+#include "flags.h"
+#include "projectile.h"
#include "entity.h"
#include "physics.h"
#include "player.h"
#include "room.h"
#include "tiles.h"
+#include "asm.h"
typedef struct {
Entity base;
@@ -18,9 +22,9 @@ typedef struct {
u16 filler2;
u16 unk_78;
u16 projectileTimer;
- u16 unk_7c;
+ u16 flag1;
u8 filler3[0x2];
- u16 unk_80;
+ u16 flag2;
u16 unk_82;
u16 unk_84;
} TorchTrapEntity;
@@ -75,35 +79,35 @@ void sub_0803CF38(TorchTrapEntity* this) {
void sub_0803CF94(TorchTrapEntity* this) {
if (GetTileTypeAtTilePos(this->tilePos, super->collisionLayer) == TILE_TYPE_118) {
- this->unk_80 = 0;
+ this->flag2 = 0;
TorchTrap_Reset(this);
- } else if (this->unk_7c && sub_0803CFD8(this)) {
+ } else if (this->flag1 && sub_0803CFD8(this)) {
TorchTrap_Reset(this);
}
}
bool32 sub_0803CFD8(TorchTrapEntity* this) {
u32 result;
- if (this->unk_7c == 0) {
+ if (this->flag1 == 0) {
result = TRUE;
} else {
- result = CheckFlags(this->unk_7c);
+ result = CheckFlags(this->flag1);
}
return result;
}
bool32 sub_0803CFF0(TorchTrapEntity* this) {
u32 result;
- if (this->unk_80 != 0) {
- if (this->unk_80 == this->unk_7c) {
- u32 val = CheckFlags(this->unk_80);
+ if (this->flag2 != 0) {
+ if (this->flag2 == this->flag1) {
+ u32 val = CheckFlags(this->flag2);
result = FALSE;
if (val == 0) {
result = TRUE;
}
return result;
} else {
- return CheckFlags(this->unk_80);
+ return CheckFlags(this->flag2);
}
}
diff --git a/src/enemy/treeItem.c b/src/enemy/treeItem.c
index 2e1e9a34..5169946d 100644
--- a/src/enemy/treeItem.c
+++ b/src/enemy/treeItem.c
@@ -5,9 +5,13 @@
* @brief Tree Item enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
@@ -73,7 +77,7 @@ void TreeItem(TreeItemEntity* this) {
break;
}
- EnemyDisableRespawn(super);
+ EnemyDisableRespawn((Enemy*)super);
DeleteThisEntity();
}
diff --git a/src/enemy/vaatiArm.c b/src/enemy/vaatiArm.c
index facc5527..8ee71d2e 100644
--- a/src/enemy/vaatiArm.c
+++ b/src/enemy/vaatiArm.c
@@ -6,9 +6,16 @@
*/
#include "area.h"
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "common.h"
+#include "projectile.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "roomid.h"
typedef struct {
@@ -185,9 +192,7 @@ const Coords gUnk_080D13D8[] = { { .HALF = { -0x60, 0x80 } }, { .HALF = { 0x60,
const u8 gUnk_080D13E0[] = { 0xc, 0xe, 0x10 };
const u8 gUnk_080D13E3[] = { 8, 9, 10, 4, 4, 5 };
const s8 gUnk_080D13E9[] = { -8, 8 };
-const ScreenTransitionData gUnk_080D13EC = {
- 1, { 0, 0, 0, 0 }, 0x98, 0xb8, 0, AREA_VAATIS_ARMS, ROOM_VAATIS_ARMS_FIRST, 1, 0, 0, 0
-};
+const Transition gUnk_080D13EC = { 1, 0, 0, 0x98, 0xb8, 0, AREA_VAATIS_ARMS, ROOM_VAATIS_ARMS_FIRST, 1, 0, 0, 0 };
const u16 gUnk_080D1400[][5] = {
{ 0x8000, 0x7000, 0x6000, 0x5000, 0x4000 },
{ 0x8000, -0x7000, -0x6000, -0x5000, -0x4000 },
diff --git a/src/enemy/vaatiBall.c b/src/enemy/vaatiBall.c
index 94e040be..3e662393 100644
--- a/src/enemy/vaatiBall.c
+++ b/src/enemy/vaatiBall.c
@@ -5,9 +5,13 @@
* @brief Vaati Ball enemy
*/
#include "enemy.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "effects.h"
+#include "physics.h"
#include "player.h"
typedef struct {
@@ -72,7 +76,7 @@ void VaatiBall(VaatiBallEntity* this) {
COLLISION_OFF(super);
super->health = -1;
((VaatiBallEntity*)parent)->unk_80--;
- CreateDust(super);
+ CreateDeathFx(super);
SoundReq(SFX_1C3);
}
}
diff --git a/src/enemy/vaatiEyesMacro.c b/src/enemy/vaatiEyesMacro.c
index e1c11638..33e90175 100644
--- a/src/enemy/vaatiEyesMacro.c
+++ b/src/enemy/vaatiEyesMacro.c
@@ -5,7 +5,13 @@
* @brief Vaati Eyes Macro enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "room.h"
+#include "player.h"
+#include "physics.h"
+#include "manager.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/vaatiProjectile.c b/src/enemy/vaatiProjectile.c
index bb366ef5..3c0e694f 100644
--- a/src/enemy/vaatiProjectile.c
+++ b/src/enemy/vaatiProjectile.c
@@ -5,9 +5,14 @@
* @brief Vaati Projectile enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
#include "screenTransitions.h"
+#include "room.h"
#include "tiles.h"
+#include "player.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/vaatiRebornEnemy.c b/src/enemy/vaatiRebornEnemy.c
index 5463b4f0..123442cb 100644
--- a/src/enemy/vaatiRebornEnemy.c
+++ b/src/enemy/vaatiRebornEnemy.c
@@ -6,7 +6,14 @@
*/
#include "area.h"
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "flags.h"
+#include "projectile.h"
+#include "physics.h"
+#include "room.h"
+#include "player.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/vaatiTransfigured.c b/src/enemy/vaatiTransfigured.c
index 663133fe..ca917019 100644
--- a/src/enemy/vaatiTransfigured.c
+++ b/src/enemy/vaatiTransfigured.c
@@ -5,8 +5,15 @@
* @brief Vaati Transfigured enemy
*/
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "flags.h"
+#include "projectile.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/vaatiTransfiguredEye.c b/src/enemy/vaatiTransfiguredEye.c
index c3e33442..a0190dd6 100644
--- a/src/enemy/vaatiTransfiguredEye.c
+++ b/src/enemy/vaatiTransfiguredEye.c
@@ -5,10 +5,11 @@
* @brief Vaati Transfigured Eye enemy
*/
#include "enemy.h"
+#include "sound.h"
#include "entity.h"
-#include "functions.h"
#include "message.h"
#include "physics.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c
index 21f5c506..66a40a98 100644
--- a/src/enemy/vaatiWrath.c
+++ b/src/enemy/vaatiWrath.c
@@ -6,11 +6,24 @@
*/
#include "enemy/vaatiWrath.h"
-#include "functions.h"
#include "message.h"
#include "object.h"
+#include "asm.h"
+#include "common.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
+#include "vram.h"
+#include "scroll.h"
+#include "color.h"
+#include "fade.h"
+#include "projectile.h"
+#if defined USA || defined DEMO_USA || defined DEMO_JP
#include "save.h"
-#include "screen.h"
+#endif
void VaatiWrathType0PreAction(VaatiWrathEntity*);
u32 sub_08041FCC(VaatiWrathEntity*);
diff --git a/src/enemy/vaatiWrathEye.c b/src/enemy/vaatiWrathEye.c
index f7782fd2..3fd20877 100644
--- a/src/enemy/vaatiWrathEye.c
+++ b/src/enemy/vaatiWrathEye.c
@@ -5,7 +5,12 @@
* @brief Vaati Wrath Eye enemy
*/
#include "enemy/vaatiWrath.h"
-#include "functions.h"
+#include "room.h"
+#include "physics.h"
+#include "asm.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
void sub_080485D8(Entity*);
void sub_080485FC(Entity*);
diff --git a/src/enemy/wallMaster.c b/src/enemy/wallMaster.c
index e48becaa..f7f93fd7 100644
--- a/src/enemy/wallMaster.c
+++ b/src/enemy/wallMaster.c
@@ -6,8 +6,12 @@
*/
#include "area.h"
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "player.h"
#include "screenTransitions.h"
+#include "room.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/wallMaster2.c b/src/enemy/wallMaster2.c
index a4423049..a0730376 100644
--- a/src/enemy/wallMaster2.c
+++ b/src/enemy/wallMaster2.c
@@ -6,8 +6,12 @@
*/
#include "area.h"
#include "enemy.h"
-#include "functions.h"
+#include "effects.h"
+#include "physics.h"
#include "screenTransitions.h"
+#include "room.h"
+#include "player.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/enemy/waterDrop.c b/src/enemy/waterDrop.c
index fb2d13e2..c96e2754 100644
--- a/src/enemy/waterDrop.c
+++ b/src/enemy/waterDrop.c
@@ -5,9 +5,15 @@
* @brief Water Drop enemy
*/
#include "enemy.h"
+#include "effects.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "screen.h"
-#include "structures.h"
+#include "vram.h"
void sub_0802A39C(Entity*);
void sub_0802A334(Entity*);
diff --git a/src/enemy/wisp.c b/src/enemy/wisp.c
index e5c4c5e5..1dc3c082 100644
--- a/src/enemy/wisp.c
+++ b/src/enemy/wisp.c
@@ -6,8 +6,11 @@
*/
#include "collision.h"
#include "enemy.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "effects.h"
+#include "physics.h"
+#include "player.h"
#include "save.h"
typedef struct {
@@ -147,7 +150,7 @@ void sub_080336DC(WispEntity* this) {
super->y.HALF.HI = this->unk_82;
break;
case 0x18:
- CreateDust(super);
+ CreateDeathFx(super);
break;
case 0xc:
super->spriteSettings.draw = TRUE;
diff --git a/src/enemy/wizzrobeFire.c b/src/enemy/wizzrobeFire.c
index 638b16cf..dda22d54 100644
--- a/src/enemy/wizzrobeFire.c
+++ b/src/enemy/wizzrobeFire.c
@@ -6,7 +6,11 @@
*/
#include "enemy/wizzrobe.h"
#include "enemy.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
+#include "player.h"
+#include "asm.h"
extern void (*const WizzrobeFire_Functions[])(WizzrobeEntity*);
extern void (*const WizzrobeFire_Actions[])(WizzrobeEntity*);
diff --git a/src/enemy/wizzrobeIce.c b/src/enemy/wizzrobeIce.c
index d9af54c3..99ec30ce 100644
--- a/src/enemy/wizzrobeIce.c
+++ b/src/enemy/wizzrobeIce.c
@@ -6,8 +6,12 @@
*/
#include "enemy/wizzrobe.h"
#include "enemy.h"
-#include "functions.h"
+#include "projectile.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "effects.h"
+#include "player.h"
extern void (*const WizzrobeIce_Functions[])(WizzrobeEntity*);
extern void (*const WizzrobeIce_Actions[])(WizzrobeEntity*);
diff --git a/src/enemy/wizzrobeWind.c b/src/enemy/wizzrobeWind.c
index 91687000..b261ee15 100644
--- a/src/enemy/wizzrobeWind.c
+++ b/src/enemy/wizzrobeWind.c
@@ -8,8 +8,14 @@
#include "collision.h"
#include "enemy.h"
-#include "functions.h"
+#include "projectile.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
extern void (*const WizzrobeWind_Functions[])(WizzrobeEntity*);
diff --git a/src/enemyUtils.c b/src/enemyUtils.c
index 35ff738d..4abe5b5f 100644
--- a/src/enemyUtils.c
+++ b/src/enemyUtils.c
@@ -1,14 +1,18 @@
#include "enemyUtils.h"
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "definitions.h"
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "room.h"
+#include "physics.h"
#include "object/deathFx.h"
-#include "projectile.h"
#include "save.h"
+#include "vram.h"
+#include "color.h"
-extern void EnemyDisableRespawn(Entity*);
extern void ReplaceMonitoredEntity(Entity*, Entity*);
extern EnemyDefinition gEnemyDefinitions[];
@@ -210,7 +214,7 @@ void EnemyCreateDeathFX(Enemy* parent, u32 parentId, u32 fixedItem) {
} else {
int tmp = parent->base.gustJarState & 2;
if (tmp == 0) {
- EnemyDisableRespawn(&(parent->base));
+ EnemyDisableRespawn((Enemy*)&(parent->base));
gSave.enemies_killed++;
parent->base.gustJarState |= 2;
parent->base.timer = 255;
diff --git a/src/enterPortalSubtask.c b/src/enterPortalSubtask.c
index e3e7021c..15210253 100644
--- a/src/enterPortalSubtask.c
+++ b/src/enterPortalSubtask.c
@@ -9,13 +9,18 @@
#include "area.h"
#include "common.h"
#include "entity.h"
-#include "fileselect.h"
-#include "functions.h"
+#include "beanstalkSubtask.h"
#include "game.h"
#include "main.h"
#include "object.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
#include "screen.h"
#include "subtask.h"
+#include "affine.h"
+#include "fade.h"
extern void ClearArmosData(void);
extern void sub_080300C4(void);
@@ -184,7 +189,7 @@ void Subtask_PortalCutscene_0(void) {
LoadPaletteGroup(ptr->paletteGroup);
LoadGfxGroup(ptr->gfxGroup);
MemCopy(gPaletteBuffer + 3 * 16, gPaletteBuffer + 21 * 16, 16 * 2);
- gUsedPalettes |= 1 << 21;
+ USE_PALETTE(21);
EraseAllEntities();
LoadRoomEntityList(gUnk_080D4110[portalId]);
ClearEventPriority();
diff --git a/src/entity.c b/src/entity.c
index a5b84baf..0670283f 100644
--- a/src/entity.c
+++ b/src/entity.c
@@ -4,6 +4,12 @@
#include "manager/diggingCaveEntranceManager.h"
#include "message.h"
#include "npc.h"
+#include "vram.h"
+#include "script.h"
+#include "room.h"
+#include "player.h"
+#include "physics.h"
+#include "color.h"
typedef struct Temp {
void* prev;
diff --git a/src/fade.c b/src/fade.c
index f5b0cfa7..94d57cea 100644
--- a/src/fade.c
+++ b/src/fade.c
@@ -1,6 +1,7 @@
+#include "fade.h"
#include "global.h"
-#include "structures.h"
-#include "functions.h"
+#include "save.h"
+#include "vram.h"
#include "screen.h"
#include "common.h"
@@ -8,7 +9,13 @@ static u32 sub_080501C0(FadeControl* ctl);
static u32 sub_08050230(FadeControl* ctl);
static u32 sub_080502A4(FadeControl* ctl);
-extern u32 gUsedPalettes;
+typedef struct {
+ u8 unk0;
+ u8 unk1;
+ u16 unk2;
+} struct_020354C0;
+extern struct_020354C0 gUnk_020354C0[0x20];
+
extern u16 gPaletteBuffer[];
extern u16 gUnk_080FC3C4[];
diff --git a/src/fileselect.c b/src/fileselect.c
index 3257c807..f920798f 100644
--- a/src/fileselect.c
+++ b/src/fileselect.c
@@ -8,7 +8,6 @@
#include "common.h"
#include "figurineMenu.h"
-#include "functions.h"
#include "game.h"
#include "item.h"
#include "kinstone.h"
@@ -16,9 +15,17 @@
#include "menu.h"
#include "message.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
#include "screen.h"
#include "subtask.h"
#include "ui.h"
+#include "affine.h"
+#include "gfx.h"
+#include "fade.h"
// copy, erase, start
#define NUM_FILE_OPERATIONS 3
@@ -306,7 +313,7 @@ void CreateDialogBox(u32 arg0, u32 arg1) {
sub_08050384();
MemCopy(&gUnk_080FC844, &var0, sizeof(gUnk_080FC844));
- sub_08056FEC(arg1, gUnk_020227E8);
+ NumberToAscii(arg1, &gUnk_020227E8[0]);
var0.gfx_src |= gUnk_080FC85C[arg0][0] << 0xC;
ShowTextBox(gUnk_080FC85C[arg0][1], &var0);
sfx = gUnk_080FC85C[arg0][2];
diff --git a/src/game.c b/src/game.c
index 34a9930c..7a7fc11d 100644
--- a/src/game.c
+++ b/src/game.c
@@ -6,36 +6,24 @@
*/
#include "game.h"
+#include "affine.h"
#include "area.h"
#include "asm.h"
-#include "backgroundAnimations.h"
#include "common.h"
-#include "droptables.h"
-#include "enemy.h"
#include "entity.h"
#include "fileselect.h"
-#include "flags.h"
-#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 "transitions.h"
#include "ui.h"
+#include "beanstalkSubtask.h"
+#include "pauseMenu.h"
+#include "fade.h"
// Game task
diff --git a/src/gameData.c b/src/gameData.c
index c7ed4cf1..09a983e8 100644
--- a/src/gameData.c
+++ b/src/gameData.c
@@ -1,6 +1,5 @@
// 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"
diff --git a/src/gameOverTask.c b/src/gameOverTask.c
index c56f86b3..d753ff17 100644
--- a/src/gameOverTask.c
+++ b/src/gameOverTask.c
@@ -7,13 +7,13 @@
#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"
+#include "affine.h"
typedef void(GameOverState)(void);
diff --git a/src/gameUtils.c b/src/gameUtils.c
index 2f54867d..92a9db0b 100644
--- a/src/gameUtils.c
+++ b/src/gameUtils.c
@@ -5,23 +5,25 @@
*/
#include "area.h"
#include "backgroundAnimations.h"
-#include "enemy.h"
#include "entity.h"
#include "fade.h"
#include "fileselect.h"
-#include "functions.h"
+#include "manager.h"
#include "game.h"
#include "item.h"
-#include "itemMetaData.h"
#include "main.h"
-#include "menu.h"
-#include "npc.h"
#include "object.h"
+#include "common.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
#include "save.h"
#include "screen.h"
-#include "script.h"
#include "sound.h"
#include "ui.h"
+#include "subtask.h"
+#include "beanstalkSubtask.h"
+#include "pauseMenu.h"
u32 StairsAreValid(void);
void ClearFlagArray(const u16*);
@@ -76,11 +78,11 @@ void SetPopupState(u32 type, u32 choice_idx) {
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;
+ gUnk_020227E8[0].w[0] = 0xf;
+ gUnk_020227E8[1].w[0] = 0xf;
+ gUnk_020227E8[2].w[0] = 0xf;
+ gUnk_020227E8[3].w[0] = 0xf;
+ *(gUnk_020227E8[choice_idx].s + 1) = fakematch = 1;
MemCopy(&sDefaultFont, &font, sizeof font);
opt = &sPopupOptions[type];
@@ -531,7 +533,7 @@ u32 GetFlagBankOffset(u32 idx) {
return gLocalFlagBanks[a_hdr->flag_bank];
}
-void RegisterTransitionManager(void* mgr, void (*onEnter)(), void (*onExit)()) {
+void RegisterTransitionHandler(void* mgr, void (*onEnter)(), void (*onExit)()) {
if (gMain.substate != GAMEMAIN_SUBTASK) {
gArea.transitionManager = mgr;
gArea.onEnter = onEnter;
@@ -826,7 +828,7 @@ void sub_080533CC(void) {
*p2++ = *p1++;
*p2++ = *p1++;
*p2++ = *p1++;
- gUsedPalettes |= 1 << 3;
+ USE_PALETTE(3);
}
void UpdateTimerCallbacks(void) {
diff --git a/src/interrupts.c b/src/interrupts.c
index a9aad690..66c9f7ad 100644
--- a/src/interrupts.c
+++ b/src/interrupts.c
@@ -1,16 +1,19 @@
-#include "functions.h"
#include "gba/m4a.h"
#include "global.h"
#include "main.h"
#include "message.h"
#include "object.h"
+#include "common.h"
+#include "effects.h"
+#include "room.h"
#include "player.h"
#include "save.h"
#include "screen.h"
#include "sound.h"
-#include "structures.h"
#include "ui.h"
-#include "collision.h"
+#include "asm.h"
+#include "map.h"
+#include "fade.h"
extern u8 gUnk_03003DE0;
extern u8 gUnk_03000C30;
@@ -304,7 +307,7 @@ static void HandlePlayerLife(Entity* this) {
gSave.stats.picolyteType = 0;
SoundReq(SFX_140);
} else if ((gSave.stats.picolyteTimer & 0xf) == 0) {
- CreateSparkle(this);
+ CreateSparkleFx(this);
}
if (gSave.stats.effect == 0) {
diff --git a/src/item/itemBomb.c b/src/item/itemBomb.c
index 90c66539..f3df6504 100644
--- a/src/item/itemBomb.c
+++ b/src/item/itemBomb.c
@@ -1,9 +1,7 @@
#include "item.h"
#include "physics.h"
#include "sound.h"
-#include "functions.h"
#include "playeritem.h"
-#include "functions.h"
void sub_08075FF8(ItemBehavior*, u32);
void sub_08076488(ItemBehavior*, u32);
diff --git a/src/item/itemBoomerang.c b/src/item/itemBoomerang.c
index a9c6aaab..9eef3d3b 100644
--- a/src/item/itemBoomerang.c
+++ b/src/item/itemBoomerang.c
@@ -1,5 +1,5 @@
#include "item.h"
-#include "functions.h"
+#include "physics.h"
void sub_08075D2C(ItemBehavior*, u32);
void sub_08075D88(ItemBehavior*, u32);
diff --git a/src/item/itemBow.c b/src/item/itemBow.c
index 9b57e9c1..92b52f20 100644
--- a/src/item/itemBow.c
+++ b/src/item/itemBow.c
@@ -1,6 +1,6 @@
#include "item.h"
-#include "functions.h"
#include "save.h"
+#include "physics.h"
void sub_08075DF4(ItemBehavior*, u32);
void sub_08075E40(ItemBehavior*, u32);
diff --git a/src/item/itemGustJar.c b/src/item/itemGustJar.c
index 40fdd034..fe5a0476 100644
--- a/src/item/itemGustJar.c
+++ b/src/item/itemGustJar.c
@@ -1,5 +1,4 @@
#include "entity.h"
-#include "functions.h"
#include "item.h"
#include "playeritem.h"
#include "tiles.h"
diff --git a/src/item/itemJarEmpty.c b/src/item/itemJarEmpty.c
index 90ec65ed..98615777 100644
--- a/src/item/itemJarEmpty.c
+++ b/src/item/itemJarEmpty.c
@@ -1,6 +1,6 @@
#include "item.h"
#include "save.h"
-#include "functions.h"
+#include "physics.h"
void sub_08077534(ItemBehavior*, u32);
void sub_08077618(ItemBehavior*, u32);
diff --git a/src/item/itemLantern.c b/src/item/itemLantern.c
index af488bd1..8c67edc5 100644
--- a/src/item/itemLantern.c
+++ b/src/item/itemLantern.c
@@ -1,7 +1,10 @@
-#include "functions.h"
#include "game.h"
#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "sound.h"
extern s8 gUnk_08126EEC[];
diff --git a/src/item/itemMoleMitts.c b/src/item/itemMoleMitts.c
index 8f535bdb..9732776d 100644
--- a/src/item/itemMoleMitts.c
+++ b/src/item/itemMoleMitts.c
@@ -1,8 +1,9 @@
-
#include "effects.h"
-#include "functions.h"
#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "player.h"
#include "sound.h"
#include "tiles.h"
diff --git a/src/item/itemOcarina.c b/src/item/itemOcarina.c
index e5cea164..8cae9252 100644
--- a/src/item/itemOcarina.c
+++ b/src/item/itemOcarina.c
@@ -1,8 +1,7 @@
-#include "functions.h"
+#include "pauseMenu.h"
#include "item.h"
#include "sound.h"
-extern void ResetPlayerVelocity(void);
extern void CreateBird(Entity*);
void OcarinaUse(ItemBehavior*, u32);
void OcarinaUpdate(ItemBehavior*, u32);
diff --git a/src/item/itemPacciCane.c b/src/item/itemPacciCane.c
index 56d2592c..8c8c08e6 100644
--- a/src/item/itemPacciCane.c
+++ b/src/item/itemPacciCane.c
@@ -1,7 +1,6 @@
#include "global.h"
-#include "entity.h"
#include "item.h"
-#include "functions.h"
+#include "physics.h"
#include "playeritem.h"
void sub_08076C98(ItemBehavior*, u32);
diff --git a/src/item/itemPegasusBoots.c b/src/item/itemPegasusBoots.c
index fca72541..0697d70a 100644
--- a/src/item/itemPegasusBoots.c
+++ b/src/item/itemPegasusBoots.c
@@ -1,6 +1,5 @@
#include "asm.h"
#include "effects.h"
-#include "functions.h"
#include "game.h"
#include "item.h"
#include "playeritem.h"
diff --git a/src/item/itemRocsCape.c b/src/item/itemRocsCape.c
index 60d290c1..8c3c3c01 100644
--- a/src/item/itemRocsCape.c
+++ b/src/item/itemRocsCape.c
@@ -1,4 +1,3 @@
-#include "functions.h"
#include "item.h"
#include "sound.h"
diff --git a/src/item/itemShield.c b/src/item/itemShield.c
index 2fa8f07c..74418bd6 100644
--- a/src/item/itemShield.c
+++ b/src/item/itemShield.c
@@ -1,8 +1,7 @@
#include "global.h"
-#include "entity.h"
#include "item.h"
#include "sound.h"
-#include "functions.h"
+#include "physics.h"
void sub_08076D04(ItemBehavior*, u32);
void sub_08076D34(ItemBehavior*, u32);
diff --git a/src/item/itemSword.c b/src/item/itemSword.c
index 95110349..4035df2f 100644
--- a/src/item/itemSword.c
+++ b/src/item/itemSword.c
@@ -1,6 +1,8 @@
-#include "functions.h"
#include "item.h"
#include "object.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
#include "player.h"
#include "playeritem.h"
#include "sound.h"
diff --git a/src/item/itemTryPickupObject.c b/src/item/itemTryPickupObject.c
index c87c4838..5503a670 100644
--- a/src/item/itemTryPickupObject.c
+++ b/src/item/itemTryPickupObject.c
@@ -1,7 +1,9 @@
-#include "functions.h"
+#include "physics.h"
#include "item.h"
#include "playeritem.h"
#include "sound.h"
+#include "ui.h"
+#include "room.h"
u32 sub_08077F64(ItemBehavior* arg0, u32 index);
u32 sub_080789A8(void);
diff --git a/src/itemDefinitions.c b/src/itemDefinitions.c
index 0550f3e9..c50e71f9 100644
--- a/src/itemDefinitions.c
+++ b/src/itemDefinitions.c
@@ -1,6 +1,6 @@
+#include "itemDefinitions.h"
#include "item.h"
#include "playeritem.h"
-#include "structures.h"
const ItemDefinition gItemDefinitions[] = {
[ITEM_NONE] = { TRUE, 1, CREATE_ITEM_0, PLAYER_ITEM_NONE, 0, 0, FALSE, FALSE },
diff --git a/src/itemUtils.c b/src/itemUtils.c
index 1de52066..a57ad013 100644
--- a/src/itemUtils.c
+++ b/src/itemUtils.c
@@ -9,8 +9,14 @@
#include "sound.h"
#include "save.h"
#include "object.h"
+#include "asm.h"
+#include "common.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "enemy.h"
#include "message.h"
+#include "ui.h"
const Wallet gWalletSizes[] = {
{ 100, 0xf060 },
diff --git a/src/main.c b/src/main.c
index 5049c054..68204fd4 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,13 +6,13 @@
#include "main.h"
#include "common.h"
-#include "functions.h"
#include "game.h"
#include "interrupts.h"
#include "message.h"
#include "save.h"
#include "screen.h"
#include "sound.h"
+#include "fade.h"
extern u32 gRand;
@@ -283,10 +283,9 @@ u32 CheckRegionOnScreen(u32 x0, u32 y0, u32 x1, u32 y1) {
* Iterate over array of AABBs and check if any fit on screen
*/
u32 CheckRegionsOnScreen(const u16* arr) {
- const u16* i;
- for (i = arr; *i != 0xff; i += 5) {
- if (CheckRegionOnScreen(i[1], i[2], i[3], i[4]))
- return *i;
+ for (; *arr != 0xff; arr += 5) {
+ if (CheckRegionOnScreen(arr[1], arr[2], arr[3], arr[4]))
+ return *arr;
}
return 0xff;
}
diff --git a/src/manager/angryStatueManager.c b/src/manager/angryStatueManager.c
index c24d026e..6d7cc127 100644
--- a/src/manager/angryStatueManager.c
+++ b/src/manager/angryStatueManager.c
@@ -6,10 +6,14 @@
*/
#include "manager/angryStatueManager.h"
#include "flags.h"
-#include "functions.h"
#include "object.h"
+#include "script.h"
+
+#include "sound.h"
#include "room.h"
+#include "player.h"
+
void sub_0805D11C(AngryStatueManager*);
void AngryStatueManager_Init(AngryStatueManager*);
void AngryStatueManager_Action1(AngryStatueManager*);
diff --git a/src/manager/armosInteriorManager.c b/src/manager/armosInteriorManager.c
index 98587f46..0c190d36 100644
--- a/src/manager/armosInteriorManager.c
+++ b/src/manager/armosInteriorManager.c
@@ -6,10 +6,9 @@
*/
#include "manager/armosInteriorManager.h"
#include "common.h"
-#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "sound.h"
+#include "room.h"
bool32 sub_0805C920(ArmosInteriorManager*);
void ArmosInteriorManager_Init(ArmosInteriorManager*);
diff --git a/src/manager/bombableWallManager.c b/src/manager/bombableWallManager.c
index e0343063..18347fa1 100644
--- a/src/manager/bombableWallManager.c
+++ b/src/manager/bombableWallManager.c
@@ -7,10 +7,11 @@
#include "manager/bombableWallManager.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "game.h"
#include "object.h"
+#include "asm.h"
#include "sound.h"
+#include "room.h"
#include "tiles.h"
u32 BombableWallManager_GetBombableType(u32 tilePos, u32 layer);
diff --git a/src/manager/bridgeManager.c b/src/manager/bridgeManager.c
index 17e91f91..0070ed04 100644
--- a/src/manager/bridgeManager.c
+++ b/src/manager/bridgeManager.c
@@ -6,8 +6,8 @@
*/
#include "manager/bridgeManager.h"
#include "flags.h"
-#include "functions.h"
#include "sound.h"
+#include "player.h"
void BridgeManager_Init(BridgeManager*);
void BridgeManager_Action1(BridgeManager*);
diff --git a/src/manager/cloudOverlayManager.c b/src/manager/cloudOverlayManager.c
index b9563b46..021da0f3 100644
--- a/src/manager/cloudOverlayManager.c
+++ b/src/manager/cloudOverlayManager.c
@@ -6,19 +6,20 @@
*/
#include "manager/cloudOverlayManager.h"
#include "area.h"
-#include "functions.h"
#include "screen.h"
+#include "game.h"
+#include "room.h"
-void sub_0805AEDC(CloudOverlayManager*);
-void sub_0805AF3C(CloudOverlayManager*);
+void CloudOverlayManager_OnEnterRoom(CloudOverlayManager*);
+void CloudOverlayManager_OnExitRoom(CloudOverlayManager*);
void CloudOverlayManager_Main(CloudOverlayManager* this) {
static const u16 gUnk_0810865C[] = {
0xf01, 0xe02, 0xe03, 0xe04, 0, 0,
};
if (this == NULL) {
- if (gArea.onEnter != sub_0805AEDC) {
- sub_0805AEDC(NULL);
+ if (gArea.onEnter != CloudOverlayManager_OnEnterRoom) {
+ CloudOverlayManager_OnEnterRoom(NULL);
}
} else {
if (super->action == 0) {
@@ -29,7 +30,7 @@ void CloudOverlayManager_Main(CloudOverlayManager* this) {
this->field_0x20 = gUnk_0810865C[0];
SetEntityPriority((Entity*)this, PRIO_PLAYER_EVENT);
if (gArea.onEnter == NULL) {
- RegisterTransitionManager(this, sub_0805AEDC, sub_0805AF3C);
+ RegisterTransitionHandler(this, CloudOverlayManager_OnEnterRoom, CloudOverlayManager_OnExitRoom);
} else {
DeleteThisEntity();
}
@@ -49,7 +50,7 @@ void CloudOverlayManager_Main(CloudOverlayManager* this) {
}
}
-void sub_0805AEDC(CloudOverlayManager* this) {
+void CloudOverlayManager_OnEnterRoom(CloudOverlayManager* this) {
gScreen.bg3.control = BGCNT_SCREENBASE(30) | BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1);
gScreen.lcd.displayControl |= DISPCNT_BG3_ON;
gScreen.controls.layerFXControl =
@@ -62,7 +63,7 @@ void sub_0805AEDC(CloudOverlayManager* this) {
}
}
-void sub_0805AF3C(CloudOverlayManager* this) {
+void CloudOverlayManager_OnExitRoom(CloudOverlayManager* this) {
super->flags &= ~ENT_PERSIST;
gScreen.lcd.displayControl &= ~DISPCNT_BG3_ON;
gScreen.controls.layerFXControl = 0;
diff --git a/src/manager/cloudStaircaseTransitionManager.c b/src/manager/cloudStaircaseTransitionManager.c
index d8a47d63..3926f1ed 100644
--- a/src/manager/cloudStaircaseTransitionManager.c
+++ b/src/manager/cloudStaircaseTransitionManager.c
@@ -7,7 +7,8 @@
#include "manager/cloudStaircaseTransitionManager.h"
#include "asm.h"
#include "common.h"
-#include "functions.h"
+#include "room.h"
+#include "player.h"
void CloudStaircaseTransitionManager_Main(CloudStaircaseTransitionManager* this) {
if (super->action == 0) {
diff --git a/src/manager/delayedEntityLoadManager.c b/src/manager/delayedEntityLoadManager.c
index 0a13bf40..1509c95b 100644
--- a/src/manager/delayedEntityLoadManager.c
+++ b/src/manager/delayedEntityLoadManager.c
@@ -8,7 +8,11 @@
#include "room.h"
#include "npc.h"
#include "area.h"
+#include "flags.h"
+#include "script.h"
+#include "save.h"
#include "asm.h"
+#include "object.h"
typedef struct {
Manager base;
diff --git a/src/manager/diggingCaveEntranceManager.c b/src/manager/diggingCaveEntranceManager.c
index ce428a2b..49104baf 100644
--- a/src/manager/diggingCaveEntranceManager.c
+++ b/src/manager/diggingCaveEntranceManager.c
@@ -7,11 +7,12 @@
#include "manager/diggingCaveEntranceManager.h"
#include "area.h"
#include "asm.h"
-#include "functions.h"
#include "player.h"
#include "room.h"
#include "scroll.h"
#include "tiles.h"
+#ifndef EU
+#endif
void DiggingCaveEntranceManager_Main(DiggingCaveEntranceManager*);
void DiggingCaveEntranceManager_Init(DiggingCaveEntranceManager*);
diff --git a/src/manager/enterRoomTextboxManager.c b/src/manager/enterRoomTextboxManager.c
index 61276437..6e1f012c 100644
--- a/src/manager/enterRoomTextboxManager.c
+++ b/src/manager/enterRoomTextboxManager.c
@@ -8,10 +8,11 @@
#include "area.h"
#include "common.h"
#include "fileselect.h"
-#include "functions.h"
#include "game.h"
#include "message.h"
#include "screen.h"
+#include "vram.h"
+#include "fade.h"
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,
diff --git a/src/manager/entitySpawnManager.c b/src/manager/entitySpawnManager.c
index 6303d998..f9868310 100644
--- a/src/manager/entitySpawnManager.c
+++ b/src/manager/entitySpawnManager.c
@@ -9,9 +9,9 @@
#include "manager/entitySpawnManager.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "room.h"
#include "sound.h"
+#include "player.h"
void EntitySpawnManager_Main(EntitySpawnManager* this) {
if (super->action == 0) {
diff --git a/src/manager/ezloHintManager.c b/src/manager/ezloHintManager.c
index eb2a666a..f5b93933 100644
--- a/src/manager/ezloHintManager.c
+++ b/src/manager/ezloHintManager.c
@@ -9,7 +9,7 @@
#include "asm.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "player.h"
static void EzloHintManager_Init(EzloHintManager*);
static void EzloHintManager_Action1(EzloHintManager*);
diff --git a/src/manager/fallingItemManager.c b/src/manager/fallingItemManager.c
index 740c91a3..951cf83c 100644
--- a/src/manager/fallingItemManager.c
+++ b/src/manager/fallingItemManager.c
@@ -40,7 +40,7 @@ void FallingItemManager_Action1(FallingItemManager* this) {
object->base.collisionLayer = this->field_0x36;
object->base.x.HALF.HI = this->field_0x38 + gRoomControls.origin_x;
object->base.y.HALF.HI = this->field_0x3a + gRoomControls.origin_y;
- object->unk_86 = this->field_0x3c;
+ object->flag = this->field_0x3c;
}
DeleteThisEntity();
}
diff --git a/src/manager/flagAndOperatorManager.c b/src/manager/flagAndOperatorManager.c
index 7439830a..6236ef91 100644
--- a/src/manager/flagAndOperatorManager.c
+++ b/src/manager/flagAndOperatorManager.c
@@ -10,12 +10,12 @@
void FlagAndOperatorManager_Main(FlagAndOperatorManager* this) {
if (super->action == 0) {
super->action = 1;
- if (CheckFlags(this->unk_3c)) {
+ if (CheckFlags(this->setFlag)) {
DeleteThisEntity();
}
} else {
- if (CheckFlags(this->unk_3e)) {
- SetFlag(this->unk_3c);
+ if (CheckFlags(this->checkFlags)) {
+ SetFlag(this->setFlag);
DeleteThisEntity();
}
}
diff --git a/src/manager/flameManager.c b/src/manager/flameManager.c
index a363ebe0..e7535e63 100644
--- a/src/manager/flameManager.c
+++ b/src/manager/flameManager.c
@@ -8,9 +8,10 @@
*/
#include "manager/flameManager.h"
#include "asm.h"
-#include "functions.h"
#include "room.h"
#include "tiles.h"
+#include "player.h"
+#include "map.h"
void FlameManager_Main(FlameManager* this) {
if (super->action == 0) {
diff --git a/src/manager/goronMerchantShopManager.c b/src/manager/goronMerchantShopManager.c
index ff1d1b56..f4004c8e 100644
--- a/src/manager/goronMerchantShopManager.c
+++ b/src/manager/goronMerchantShopManager.c
@@ -10,6 +10,7 @@
#include "flags.h"
#include "item.h"
#include "object.h"
+#include "room.h"
#include "object/itemForSale.h"
typedef struct {
diff --git a/src/manager/holeManager.c b/src/manager/holeManager.c
index c83ed3ea..cc3a3191 100644
--- a/src/manager/holeManager.c
+++ b/src/manager/holeManager.c
@@ -7,105 +7,213 @@
#include "manager/holeManager.h"
#include "common.h"
#include "flags.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "player.h"
#include "room.h"
#include "screen.h"
+#include "game.h"
+#include "manager/lightManager.h"
+#include "assets/gfx_offsets.h"
+#include "gfx.h"
-extern void (*const HoleManager_Actions[])(HoleManager*);
+typedef enum {
+ HOLE_TRANSITION_ABSOLUTE,
+ HOLE_TRANSITION_RELATIVE,
+ HOLE_TRANSITION_ABSOLUTE_MINISH,
+} HoleTransitionType;
+
+typedef struct {
+ u32 gfx;
+ u16 offset_x;
+ u16 offset_y;
+ u16 x;
+ u16 y;
+} HoleTransitionParallaxBackground;
+
+typedef struct {
+ u8 type;
+ u8 subtype;
+ u8 unk_2;
+ u8 unk_3;
+ u16 x;
+ u16 y;
+} HoleTransitionParallaxEntity;
+
+typedef struct HoleTransition {
+ u8 type;
+ u8 area;
+ u8 room;
+ u8 layer;
+ u16 x;
+ u16 y;
+ u8 hole_x;
+ u8 hole_y;
+ u8 hole_width;
+ u8 hole_height;
+ const HoleTransitionParallaxBackground* parallax_background;
+ const HoleTransitionParallaxEntity* parallax_entity;
+} HoleTransition;
+
+void HoleManager_Init(HoleManager*);
+void HoleManager_Update(HoleManager*);
+
+void (*const HoleManager_Actions[])(HoleManager*) = {
+ HoleManager_Init,
+ HoleManager_Update,
+};
+
+const HoleTransitionParallaxBackground gHoleTransitionParallaxBackgrounds[] = {
+ { offset_gfx_unknown_6, 0x00c4, 0x0030, 0x0310, 0x13c8 },
+ { offset_gfx_unknown_6 + 0x800, 0x00c4, 0x0030, 0x0310, 0x13c8 },
+ { offset_gfx_unknown_6 + 0x800 * 2, 0xfffa, 0x00de, 0x05d0, 0x0410 },
+ { offset_gfx_unknown_6 + 0x800 * 3, 0x0024, 0x0004, 0x0290, 0x04e0 },
+ { offset_gfx_unknown_6 + 0x800 * 4, 0x0058, 0x0014, 0x0280, 0x0cf0 },
+ { offset_gfx_unknown_6 + 0x800 * 5, 0x002c, 0x0004, 0x04a0, 0x0cf0 },
+ { offset_gfx_unknown_7, 0x0060, 0x0010, 0x0170, 0x08e0 },
+ { offset_gfx_unknown_7 + 0x800, 0x001c, 0x00d0, 0x05b0, 0x0e20 },
+ { offset_gfx_unknown_7 + 0x800 * 2, 0x005c, 0x00a4, 0x0290, 0x1b48 },
+};
+
+const HoleTransitionParallaxEntity gHoleTransitionParallaxEntities[] = {
+ { 0x00, 0x00, 0x00, 0x00, 0x0088, 0x0068 }, { 0x01, 0x01, 0x00, 0x00, 0x0088, 0x0068 },
+ { 0x02, 0x02, 0x00, 0x00, 0x00b8, 0x0068 }, { 0x04, 0x04, 0x00, 0x00, 0x00b8, 0x0068 },
+ { 0x05, 0x00, 0x00, 0x00, 0x0078, 0x00b8 }, { 0x06, 0x01, 0x00, 0x00, 0x0048, 0x0040 },
+ { 0x07, 0x02, 0x00, 0x00, 0x0090, 0x0040 }, { 0x07, 0x03, 0x00, 0x00, 0x0240, 0x0050 },
+ { 0x07, 0x04, 0x00, 0x00, 0x0158, 0x0100 }, { 0x08, 0x05, 0x00, 0x00, 0x007c, 0x0050 },
+ { 0x09, 0x06, 0x00, 0x00, 0x0078, 0x0070 }, { 0x0a, 0x07, 0x00, 0x00, 0x0060, 0x0058 },
+ { 0x0b, 0x08, 0x00, 0x00, 0x0081, 0x005e }, { 0x0c, 0x09, 0x00, 0x00, 0x0080, 0x0058 },
+ { 0x0d, 0x0a, 0x00, 0x00, 0x0060, 0x0038 }, { 0x0e, 0x0b, 0x00, 0x00, 0x0260, 0x0064 },
+ { 0x0f, 0x00, 0x00, 0x00, 0x00a8, 0x0148 },
+};
+
+const HoleTransition gHoleTransitions[] = {
+ { 0x00, 0x48, 0x14, 0x02, 0x00e8, 0x00c8, 0x00, 0x00, 0x00, 0x00, NULL, NULL },
+ { 0x00, 0x51, 0x00, 0x02, 0x00c0, 0x00f8, 0x00, 0x00, 0x00, 0x00, &gHoleTransitionParallaxBackgrounds[0], NULL },
+ { 0x01, 0x58, 0x1b, 0x02, 0xfeb0, 0x0000, 0x1d, 0x06, 0x05, 0x02, &gHoleTransitionParallaxBackgrounds[2], NULL },
+ { 0x01, 0x58, 0x1d, 0x01, 0xffe0, 0xff20, 0x09, 0x13, 0x03, 0x03, NULL, &gHoleTransitionParallaxEntities[16] },
+ { 0x01, 0x58, 0x1c, 0x01, 0xfff0, 0x0000, 0x08, 0x05, 0x03, 0x03, &gHoleTransitionParallaxBackgrounds[3], NULL },
+ { 0x01, 0x58, 0x20, 0x01, 0xfff0, 0x0000, 0x00, 0x00, 0x00, 0x00, &gHoleTransitionParallaxBackgrounds[4], NULL },
+ { 0x01, 0x58, 0x22, 0x01, 0xffe0, 0x0000, 0x00, 0x00, 0x00, 0x00, &gHoleTransitionParallaxBackgrounds[5], NULL },
+ { 0x00, 0x62, 0x11, 0x01, 0x00c8, 0x0038, 0x00, 0x00, 0x00, 0x00, NULL, NULL },
+ { 0x01, 0x60, 0x20, 0x01, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, NULL, &gHoleTransitionParallaxEntities[0] },
+ { 0x01, 0x60, 0x21, 0x01, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, NULL, &gHoleTransitionParallaxEntities[1] },
+ { 0x01, 0x60, 0x2e, 0x01, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, NULL, &gHoleTransitionParallaxEntities[2] },
+ { 0x01, 0x60, 0x11, 0x01, 0xffc0, 0x0000, 0x00, 0x00, 0x00, 0x00, NULL, &gHoleTransitionParallaxEntities[3] },
+ { 0x00, 0x60, 0x31, 0x01, 0x0078, 0x00a8, 0x00, 0x00, 0x00, 0x00, NULL, NULL },
+ { 0x00, 0x51, 0x00, 0x02, 0x00c0, 0x00f8, 0x00, 0x00, 0x00, 0x00, &gHoleTransitionParallaxBackgrounds[1], NULL },
+ { 0x01, 0x08, 0x01, 0x01, 0x0000, 0x0000, 0x1d, 0x1d, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x1d, 0x1d, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x23, 0x03, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x32, 0x03, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x03, 0x13, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x37, 0x10, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x2f, 0x18, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x16, 0x2b, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x25, 0x2c, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x32, 0x2d, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x0d, 0x35, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x17, 0x37, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x1d, 0x38, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x36, 0x38, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x38, 0x19, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x3a, 0x2e, 0x01, 0x01, NULL, NULL },
+ { 0x01, 0x08, 0x02, 0x01, 0x0000, 0x0000, 0x30, 0x39, 0x01, 0x01, NULL, NULL },
+ { 0x00, 0x1a, 0x00, 0x01, 0x0058, 0x0048, 0x18, 0x1b, 0x03, 0x03, NULL, NULL },
+ { 0x01, 0x70, 0x0f, 0x01, 0x01e0, 0x0070, 0x08, 0x03, 0x04, 0x04, NULL, NULL },
+ { 0x01, 0x70, 0x10, 0x01, 0x0000, 0x0090, 0x14, 0x05, 0x05, 0x03, NULL, NULL },
+ { 0x01, 0x70, 0x10, 0x01, 0x0000, 0x0090, 0x21, 0x05, 0x04, 0x03, NULL, NULL },
+ { 0x00, 0x70, 0x0c, 0x01, 0x0078, 0x00a0, 0x00, 0x00, 0x00, 0x00, NULL, &gHoleTransitionParallaxEntities[4] },
+ { 0x01, 0x70, 0x15, 0x01, 0x01e0, 0x0000, 0x00, 0x00, 0x00, 0x00, NULL, &gHoleTransitionParallaxEntities[5] },
+ { 0x01, 0x70, 0x19, 0x01, 0x00f0, 0x0000, 0x05, 0x08, 0x04, 0x04, NULL, NULL },
+ { 0x01, 0x70, 0x1b, 0x01, 0x0000, 0x0000, 0x08, 0x02, 0x02, 0x04, NULL, &gHoleTransitionParallaxEntities[6] },
+ { 0x01, 0x70, 0x1d, 0x01, 0xfe30, 0x0000, 0x23, 0x02, 0x02, 0x04, NULL, &gHoleTransitionParallaxEntities[7] },
+ { 0x01, 0x70, 0x1f, 0x01, 0xff10, 0xff60, 0x13, 0x0e, 0x07, 0x04, NULL, &gHoleTransitionParallaxEntities[8] },
+ { 0x01, 0x70, 0x21, 0x01, 0x0000, 0x0090, 0x06, 0x03, 0x04, 0x04, NULL, NULL },
+ { 0x01, 0x70, 0x26, 0x01, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, NULL, &gHoleTransitionParallaxEntities[9] },
+ { 0x01, 0x70, 0x29, 0x01, 0x0000, 0x0000, 0x06, 0x06, 0x03, 0x02, NULL, &gHoleTransitionParallaxEntities[10] },
+ { 0x01, 0x70, 0x2c, 0x01, 0x0000, 0x0000, 0x12, 0x0c, 0x04, 0x04, NULL, NULL },
+ { 0x01, 0x70, 0x32, 0x01, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, NULL, &gHoleTransitionParallaxEntities[11] },
+ { 0x01, 0x70, 0x32, 0x02, 0x00f0, 0x0000, 0x07, 0x04, 0x02, 0x02, NULL, NULL },
+ { 0x01, 0x70, 0x32, 0x01, 0x00f0, 0x0000, 0x00, 0x00, 0x00, 0x00, NULL, &gHoleTransitionParallaxEntities[12] },
+ { 0x01, 0x70, 0x32, 0x01, 0x01e0, 0x0000, 0x00, 0x00, 0x00, 0x00, NULL, &gHoleTransitionParallaxEntities[13] },
+ { 0x01, 0x70, 0x32, 0x01, 0x0000, 0x00a0, 0x00, 0x00, 0x00, 0x00, NULL, &gHoleTransitionParallaxEntities[14] },
+ { 0x00, 0x31, 0x00, 0x01, 0x0078, 0x0068, 0x25, 0x04, 0x03, 0x03, NULL, &gHoleTransitionParallaxEntities[15] },
+ { 0x00, 0x70, 0x00, 0x02, 0x01d8, 0x00d8, 0x00, 0x00, 0x00, 0x00, NULL, NULL },
+ { 0x01, 0x88, 0x1e, 0x01, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, &gHoleTransitionParallaxBackgrounds[6], NULL },
+ { 0x01, 0x88, 0x2c, 0x01, 0x0000, 0xff30, 0x00, 0x00, 0x00, 0x00, &gHoleTransitionParallaxBackgrounds[7], NULL },
+ { 0x01, 0x88, 0x3a, 0x01, 0x0000, 0xffe0, 0x00, 0x00, 0x00, 0x00, &gHoleTransitionParallaxBackgrounds[8], NULL },
+ { 0x00, 0x88, 0x06, 0x01, 0x00a8, 0x0088, 0x00, 0x00, 0x00, 0x00, NULL, NULL },
+ { 0x02, 0x23, 0x01, 0x01, 0x0078, 0x0078, 0x00, 0x00, 0x00, 0x00, NULL, NULL },
+ { 0x02, 0x23, 0x00, 0x01, 0x00a8, 0x0060, 0x00, 0x00, 0x00, 0x00, NULL, NULL },
+ { 0x02, 0x22, 0x04, 0x01, 0x00a8, 0x0058, 0x00, 0x00, 0x00, 0x00, NULL, NULL },
+ { 0x02, 0x23, 0x03, 0x01, 0x0078, 0x0078, 0x00, 0x00, 0x00, 0x00, NULL, NULL },
+ { 0x00, 0x41, 0x01, 0x01, 0x0078, 0x0050, 0x2f, 0x27, 0x03, 0x03, NULL, NULL },
+};
void HoleManager_Main(HoleManager* this) {
HoleManager_Actions[super->action](this);
}
-typedef struct struct_08108764 {
- u8 unk_00;
- u8 unk_01; // area ID?
- u8 unk_02; // room ID?
- u8 unk_03; // layer?
- u16 unk_04;
- u16 unk_06;
- u8 unk_08;
- u8 unk_09;
- u8 unk_0a;
- u8 unk_0b;
- struct {
- u32 unk_00;
- u16 unk_04;
- u16 unk_06;
- u16 unk_08;
- u16 unk_0a;
- } * unk_0c;
- struct {
- u8 unk_00;
- u8 unk_01;
- u8 unk_02[2];
- u16 unk_04;
- u16 unk_06;
- } * unk_10;
-} struct_08108764;
-
-extern struct_08108764 gUnk_08108764[];
-
-u32 sub_0805B1CC(HoleManager*);
-void sub_0805B210(HoleManager*);
-void sub_0805B2B0(HoleManager*);
-void sub_0805B328(HoleManager*);
-
-void sub_0805B048(HoleManager* this) {
- struct_08108764* tmp;
+bool32 IsPlayerOnHole(HoleManager*);
+void DoHoleTransition(HoleManager*);
+void HoleManager_UpdateParallaxBackground(HoleManager*);
+void HoleManager_OnEnterRoom(HoleManager*);
+
+void HoleManager_Init(HoleManager* this) {
+ const HoleTransition* transition;
Entity* obj;
SetEntityPriority((Entity*)super, PRIO_PLAYER_EVENT);
- MemClear(&this->unk_20, 0x20);
+ MemClear(&this->x, 0x20);
super->action = 1;
this->unk_3f = gRoomControls.room;
- tmp = &gUnk_08108764[super->type];
- if (!tmp->unk_0a) {
- this->unk_20 = gRoomControls.origin_x;
- this->unk_22 = gRoomControls.origin_y;
- this->unk_24 = gRoomControls.width;
- this->unk_26 = gRoomControls.height;
+ transition = &gHoleTransitions[super->type];
+ if (transition->hole_width == 0) {
+ this->x = gRoomControls.origin_x;
+ this->y = gRoomControls.origin_y;
+ this->width = gRoomControls.width;
+ this->height = gRoomControls.height;
} else {
- this->unk_20 = (tmp->unk_08 << 4) + gRoomControls.origin_x;
- this->unk_22 = (tmp->unk_09 << 4) + gRoomControls.origin_y;
- this->unk_24 = (tmp->unk_0a << 4);
- this->unk_26 = (tmp->unk_0b << 4);
+ this->x = (transition->hole_x << 4) + gRoomControls.origin_x;
+ this->y = (transition->hole_y << 4) + gRoomControls.origin_y;
+ this->width = (transition->hole_width << 4);
+ this->height = (transition->hole_height << 4);
}
- super->type2 = tmp->unk_0c != 0;
+ super->type2 = transition->parallax_background != NULL;
if (super->type2) {
super->flags |= ENT_PERSIST;
- this->unk_34 = tmp->unk_0c->unk_04;
- this->unk_36 = tmp->unk_0c->unk_06;
- this->unk_30 = tmp->unk_0c->unk_08;
- this->unk_32 = tmp->unk_0c->unk_0a;
- sub_0805BC4C();
- sub_0805B2B0(this);
- sub_0805B328(this);
- RegisterTransitionManager(this, sub_0805B328, 0);
+ this->persistance_offset_x = transition->parallax_background->offset_x;
+ this->persistance_offset_y = transition->parallax_background->offset_y;
+ this->persistance_x = transition->parallax_background->x;
+ this->persistance_y = transition->parallax_background->y;
+ UnDarkRoom();
+ HoleManager_UpdateParallaxBackground(this);
+ HoleManager_OnEnterRoom(this);
+ RegisterTransitionHandler(this, HoleManager_OnEnterRoom, NULL);
}
- if (!tmp->unk_10)
+ if (!transition->parallax_entity)
return;
- obj = CreateObject(PARALLAX_ROOM_VIEW, tmp->unk_10->unk_00, tmp->unk_10->unk_01);
+ obj = CreateObject(PARALLAX_ROOM_VIEW, transition->parallax_entity->type, transition->parallax_entity->subtype);
if (obj) {
- obj->x.HALF.HI = tmp->unk_10->unk_04 + gRoomControls.origin_x;
- obj->y.HALF.HI = tmp->unk_10->unk_06 + gRoomControls.origin_y;
+ obj->x.HALF.HI = transition->parallax_entity->x + gRoomControls.origin_x;
+ obj->y.HALF.HI = transition->parallax_entity->y + gRoomControls.origin_y;
}
if (super->type != 0xa || CheckLocalFlag(0x4B))
return;
obj = CreateObject(PARALLAX_ROOM_VIEW, 3, 3);
if (obj) {
- obj->x.HALF.HI = tmp->unk_10->unk_04 + gRoomControls.origin_x;
- obj->y.HALF.HI = tmp->unk_10->unk_06 + gRoomControls.origin_y;
+ obj->x.HALF.HI = transition->parallax_entity->x + gRoomControls.origin_x;
+ obj->y.HALF.HI = transition->parallax_entity->y + gRoomControls.origin_y;
}
}
-void sub_0805B168(HoleManager* this) {
- if (sub_0805B1CC(this)) {
- sub_0805B210(this);
+void HoleManager_Update(HoleManager* this) {
+ if (IsPlayerOnHole(this)) {
+ DoHoleTransition(this);
DeleteThisEntity();
return;
}
- sub_0805B2B0(this);
+ HoleManager_UpdateParallaxBackground(this);
if (gRoomControls.reload_flags == 1) {
super->subAction = 1;
return;
@@ -121,82 +229,83 @@ void sub_0805B168(HoleManager* this) {
DeleteThisEntity();
}
-u32 sub_0805B1CC(HoleManager* this) {
- u32 re = 0;
- if (CheckPlayerProximity(this->unk_20, this->unk_22, this->unk_24, this->unk_26)) {
+bool32 IsPlayerOnHole(HoleManager* this) {
+ bool32 re = FALSE;
+ if (CheckPlayerProximity(this->x, this->y, this->width, this->height)) {
if ((gPlayerState.flags & PL_DROWNING) && (gPlayerState.flags & PL_BUSY)) {
gPlayerState.flags |= PL_PIT_IS_EXIT;
} else if (gPlayerState.flags & PL_PIT_IS_EXIT) {
- re = 1;
+ re = TRUE;
}
}
return re;
}
-void sub_0805B210(HoleManager* this) {
- struct_08108764* tmp;
+void DoHoleTransition(HoleManager* this) {
+ const HoleTransition* transition;
gRoomTransition.transitioningOut = 1;
gRoomTransition.type = TRANSITION_CUT;
gRoomTransition.player_status.start_anim = 4;
- tmp = &gUnk_08108764[super->type];
- gRoomTransition.player_status.area_next = tmp->unk_01;
- gRoomTransition.player_status.room_next = tmp->unk_02;
- gRoomTransition.player_status.layer = tmp->unk_03;
+ transition = &gHoleTransitions[super->type];
+ gRoomTransition.player_status.area_next = transition->area;
+ gRoomTransition.player_status.room_next = transition->room;
+ gRoomTransition.player_status.layer = transition->layer;
if (gPlayerState.flags & PL_MINISH) {
gRoomTransition.player_status.spawn_type = PL_SPAWN_DROP_MINISH;
} else {
gRoomTransition.player_status.spawn_type = PL_SPAWN_DROP;
}
- switch (tmp->unk_00) {
- case 0:
- gRoomTransition.player_status.start_pos_x = tmp->unk_04;
- gRoomTransition.player_status.start_pos_y = tmp->unk_06;
+ switch (transition->type) {
+ case HOLE_TRANSITION_ABSOLUTE:
+ gRoomTransition.player_status.start_pos_x = transition->x;
+ gRoomTransition.player_status.start_pos_y = transition->y;
break;
- case 1:
+ case HOLE_TRANSITION_RELATIVE:
gRoomTransition.player_status.start_pos_x =
- gPlayerEntity.base.x.HALF.HI - gRoomControls.origin_x + tmp->unk_04;
+ gPlayerEntity.base.x.HALF.HI - gRoomControls.origin_x + transition->x;
gRoomTransition.player_status.start_pos_y =
- gPlayerEntity.base.y.HALF.HI - gRoomControls.origin_y + tmp->unk_06;
+ gPlayerEntity.base.y.HALF.HI - gRoomControls.origin_y + transition->y;
break;
- case 2:
- gRoomTransition.player_status.start_pos_x = tmp->unk_04;
- gRoomTransition.player_status.start_pos_y = tmp->unk_06;
+ case HOLE_TRANSITION_ABSOLUTE_MINISH:
+ gRoomTransition.player_status.start_pos_x = transition->x;
+ gRoomTransition.player_status.start_pos_y = transition->y;
gRoomTransition.player_status.spawn_type = PL_SPAWN_DROP_MINISH;
break;
+ default:
+ break;
}
}
-void sub_0805B2B0(HoleManager* this) {
- s32 tmp, tmp2;
+void HoleManager_UpdateParallaxBackground(HoleManager* this) {
+ s32 x, y;
if (!super->type2)
return;
- tmp = (this->unk_30 - gRoomControls.scroll_x) / 4;
- tmp2 = (this->unk_32 - gRoomControls.scroll_y) / 4;
- if (tmp < -12) {
- tmp = -12;
+ x = (this->persistance_x - gRoomControls.scroll_x) / 4;
+ y = (this->persistance_y - gRoomControls.scroll_y) / 4;
+ if (x < -12) {
+ x = -12;
}
- if (tmp > 12) {
- tmp = 12;
+ if (x > 12) {
+ x = 12;
}
- if (tmp2 < -12) {
- tmp2 = -12;
+ if (y < -12) {
+ y = -12;
}
- if (tmp2 > 12) {
- tmp2 = 12;
+ if (y > 12) {
+ y = 12;
}
gScreen.lcd.displayControl |= DISPCNT_BG3_ON;
- gRoomControls.bg3OffsetX.HALF.HI = gRoomControls.scroll_x + this->unk_34 + tmp;
- gScreen.bg3.xOffset = gRoomControls.scroll_x + this->unk_34 + tmp;
- gRoomControls.bg3OffsetY.HALF.HI = gRoomControls.scroll_y + this->unk_36 + tmp2;
- gScreen.bg3.yOffset = gRoomControls.scroll_y + this->unk_36 + tmp2;
+
+ gScreen.bg3.xOffset = gRoomControls.bg3OffsetX.HALF.HI = gRoomControls.scroll_x + this->persistance_offset_x + x;
+ gScreen.bg3.yOffset = gRoomControls.bg3OffsetY.HALF.HI = gRoomControls.scroll_y + this->persistance_offset_y + y;
}
-void sub_0805B328(HoleManager* this) {
- struct_08108764* tmp;
+void HoleManager_OnEnterRoom(HoleManager* this) {
+ const HoleTransition* transition;
if (!super->type2)
return;
- tmp = &gUnk_08108764[super->type];
- LoadResourceAsync(&gGlobalGfxAndPalettes[tmp->unk_0c->unk_00], 0x0600F000, 0x800);
+ transition = &gHoleTransitions[super->type];
+ LoadResourceAsync(&gGlobalGfxAndPalettes[transition->parallax_background->gfx], BG_SCREEN_ADDR(30), BG_SCREEN_SIZE);
gScreen.bg3.control = 0x1E07;
gScreen.lcd.displayControl |= DISPCNT_BG3_ON;
gScreen.bg3.xOffset = gRoomControls.bg3OffsetX.HALF.HI;
diff --git a/src/manager/horizontalMinishPathBackgroundManager.c b/src/manager/horizontalMinishPathBackgroundManager.c
index 5d5d1ae7..6c0a96fd 100644
--- a/src/manager/horizontalMinishPathBackgroundManager.c
+++ b/src/manager/horizontalMinishPathBackgroundManager.c
@@ -6,11 +6,13 @@
*/
#include "manager/horizontalMinishPathBackgroundManager.h"
#include "common.h"
-#include "functions.h"
#include "screen.h"
+#include "game.h"
+#include "vram.h"
+#include "room.h"
void sub_08057F20(HorizontalMinishPathBackgroundManager*);
-void sub_08057EFC(void*);
+void HorizontalMinishPathBackgroundManager_OnEnterRoom(HorizontalMinishPathBackgroundManager*);
void sub_08058034(void);
void sub_08058084(u16*, u16*);
void sub_08058004(u32, void*, void*);
@@ -24,38 +26,38 @@ void HorizontalMinishPathBackgroundManager_Main(HorizontalMinishPathBackgroundMa
super->action = 1;
gScreen.bg1.updated = 0;
gScreen.bg3.updated = 0;
- RegisterTransitionManager(this, sub_08057EFC, NULL);
+ RegisterTransitionHandler(this, HorizontalMinishPathBackgroundManager_OnEnterRoom, NULL);
}
}
-void sub_08057EFC(void* this) {
- LoadGfxGroup((u32)gRoomVars.graphicsGroups[0]);
+void HorizontalMinishPathBackgroundManager_OnEnterRoom(HorizontalMinishPathBackgroundManager* this) {
+ LoadGfxGroup(gRoomVars.graphicsGroups[0]);
sub_08058034();
- ((HorizontalMinishPathBackgroundManager*)this)->unk_3c = 0;
- ((HorizontalMinishPathBackgroundManager*)this)->unk_38 = 0;
- sub_08057F20(((HorizontalMinishPathBackgroundManager*)this));
+ this->unk_3c = 0;
+ this->unk_38 = 0;
+ sub_08057F20(this);
}
void sub_08057F20(HorizontalMinishPathBackgroundManager* this) {
u32 tmp;
tmp = gRoomControls.scroll_x - gRoomControls.origin_x;
- tmp = tmp + (tmp >> 3) + ((0x400 - gRoomControls.width) / 2);
+ tmp = tmp + (tmp >> 3) + (0x400 - gRoomControls.width) / 2;
gScreen.bg3.xOffset = tmp & 0xF;
gScreen.bg3.yOffset = 0x30 - ((0x30 - (gRoomControls.scroll_y - gRoomControls.origin_y)) >> 2);
gScreen.bg3.subTileMap = gBG3Buffer;
sub_08058004(tmp, gUnk_02006F00, gBG3Buffer);
- tmp = ((tmp >> 4) << 1);
+ tmp = (tmp >> 4) << 1;
if (this->unk_38 != tmp) {
this->unk_38 = tmp;
gScreen.bg3.updated = 1;
}
- tmp = (gRoomControls.scroll_x - gRoomControls.origin_x);
- tmp = tmp + (tmp >> 2) + ((0x400 - gRoomControls.width) / 2);
+ tmp = gRoomControls.scroll_x - gRoomControls.origin_x;
+ tmp = tmp + (tmp >> 2) + (0x400 - gRoomControls.width) / 2;
gScreen.bg1.xOffset = tmp & 0xF;
gScreen.bg1.yOffset = 0x30 - ((0x30 - (gRoomControls.scroll_y - gRoomControls.origin_y)) >> 1);
gScreen.bg1.subTileMap = gBG3Buffer + 0x400;
sub_08058004(tmp, gUnk_02006F00 + 0x2000, gBG3Buffer + 0x400);
- tmp = ((tmp >> 4) << 1);
+ tmp = (tmp >> 4) << 1;
if (this->unk_3c != tmp) {
this->unk_3c = tmp;
gScreen.bg1.updated = 1;
diff --git a/src/manager/hyruleTownTileSetManager.c b/src/manager/hyruleTownTileSetManager.c
index 118d2f14..8fa8b77b 100644
--- a/src/manager/hyruleTownTileSetManager.c
+++ b/src/manager/hyruleTownTileSetManager.c
@@ -8,106 +8,131 @@
#include "area.h"
#include "asm.h"
#include "flags.h"
-#include "functions.h"
#include "main.h"
#include "room.h"
#include "tiles.h"
+#include "game.h"
+#include "assets/gfx_offsets.h"
+#include "player.h"
+
+void HyruleTownTileSetManager_UpdateLoadGfxGroups(HyruleTownTileSetManager*);
+void HyruleTownTileSetManager_OnEnterRoom(HyruleTownTileSetManager*);
+
+// clang-format off
+static const u16 gHyruleTownTileSetManager_regions0[] = {
+ 0, 0x000, 0x000, 0x3f0, 0x200,
+ 1, 0x000, 0x280, 0x3f0, 0x140,
+ 0xff
+};
+static const u16 gHyruleTownTileSetManager_regions1[] = {
+ 2, 0x000, 0x000, 0x180, 0x3c0,
+ 3, 0x280, 0x000, 0x170, 0x3c0,
+ 0xff
+};
+static const u16 gHyruleTownTileSetManager_regions2[] = {
+ 5, 0x130, 0x1b0, 0x190, 0x140,
+ 4, 0x000, 0x000, 0x3f0, 0x3c0,
+ 0xff
+};
+static const u16 gHyruleTownTileSetManager_festivalRegions0[] = {
+ 0, 0x000, 0x000, 0x190, 0x1d0,
+ 1, 0x000, 0x2a0, 0x190, 0x120,
+ 0xff
+};
+static const u16 gHyruleTownTileSetManager_festivalRegions1[] = {
+ 0xff
+};
+static const u16 gHyruleTownTileSetManager_festivalRegions2[] = {
+ 5, 0x000, 0x1b0, 0x190, 0x140,
+ 4, 0x000, 0x000, 0x190, 0x3c0,
+ 0xff
+};
+// clang-format on
-void sub_08059A58(HyruleTownTileSetManager*);
-void sub_08059A2C(HyruleTownTileSetManager*);
-
-static const u16 gUnk_08108398[] = { 0x0, 0x0, 0x0, 0x3f0, 0x200, 0x1, 0x0, 0x280, 0x3f0, 0x140, 0xff };
-static const u16 gUnk_081083AE[] = { 0x2, 0x0, 0x0, 0x180, 0x3c0, 0x3, 0x280, 0x0, 0x170, 0x3c0, 0xff };
-static const u16 gUnk_081083C4[] = { 0x5, 0x130, 0x1b0, 0x190, 0x140, 0x4, 0x0, 0x0, 0x3f0, 0x3c0, 0xff };
-static const u16 gUnk_081083DA[] = { 0x0, 0x0, 0x0, 0x190, 0x1d0, 0x1, 0x0, 0x2a0, 0x190, 0x120, 0xff, 0xff };
-static const u16 gUnk_081083F2[] = { 0x5, 0x0, 0x1b0, 0x190, 0x140, 0x4, 0x0, 0x0, 0x190, 0x3c0, 0xff };
-
-void sub_08059CC0(u32, u32);
-void sub_08059B18(void);
+void HyruleTownTileSetManager_LoadGfxGroup(u32, u32);
+void HyruleTownTileSetManager_BuildSecondOracleHouse(void);
-bool32 sub_08059C8C(HyruleTownTileSetManager*, u32, u8*, const u16*);
+bool32 HyruleTownTileSetManager_UpdateRoomGfxGroup(HyruleTownTileSetManager*, u32, u8*, const u16*);
extern u32 gUnk_086E8460;
typedef struct {
- u32 field_0x0;
- u32 field_0x4;
- u32 field_0x8;
- u32 field_0xc;
-} Unknown;
-
-static const Unknown gUnk_08108408[] = {
-#ifdef EU
- { 0x139860, 0x6000000, 0x13f860, 0x6008000 }, { 0x13c860, 0x6000000, 0x142860, 0x6008000 },
- { 0x13a860, 0x6001000, 0x140860, 0x6009000 }, { 0x13d860, 0x6001000, 0x143860, 0x6009000 },
- { 0x13b860, 0x6002000, 0x141860, 0x600a000 }, { 0x13e860, 0x6002000, 0x144860, 0x600a000 }
-#else
- { 0x1395e0, 0x6000000, 0x13f5e0, 0x6008000 }, { 0x13c5e0, 0x6000000, 0x1425e0, 0x6008000 },
- { 0x13a5e0, 0x6001000, 0x1405e0, 0x6009000 }, { 0x13d5e0, 0x6001000, 0x1435e0, 0x6009000 },
- { 0x13b5e0, 0x6002000, 0x1415e0, 0x600a000 }, { 0x13e5e0, 0x6002000, 0x1445e0, 0x600a000 }
-#endif
+ u32 gfx1;
+ void* dest1;
+ u32 gfx2;
+ void* dest2;
+} HyruleTownTileSetManagerGfxInfo;
+
+static const HyruleTownTileSetManagerGfxInfo gHyruleTownTileSetManagerGfxInfos[] = {
+ { offset_gUnk_086D4460 + 0x8000, BG_SCREEN_ADDR(0), offset_gUnk_086D4460 + 0xE000, BG_SCREEN_ADDR(16) },
+ { offset_gUnk_086D4460 + 0xB000, BG_SCREEN_ADDR(0), offset_gUnk_086D4460 + 0x11000, BG_SCREEN_ADDR(16) },
+ { offset_gUnk_086D4460 + 0x9000, BG_SCREEN_ADDR(2), offset_gUnk_086D4460 + 0xF000, BG_SCREEN_ADDR(18) },
+ { offset_gUnk_086D4460 + 0xC000, BG_SCREEN_ADDR(2), offset_gUnk_086D4460 + 0x12000, BG_SCREEN_ADDR(18) },
+ { offset_gUnk_086D4460 + 0xA000, BG_SCREEN_ADDR(4), offset_gUnk_086D4460 + 0x10000, BG_SCREEN_ADDR(20) },
+ { offset_gUnk_086D4460 + 0xD000, BG_SCREEN_ADDR(4), offset_gUnk_086D4460 + 0x13000, BG_SCREEN_ADDR(20) }
};
-static const Unknown gUnk_08108468[] = {
-#ifdef EU
- { 0x146060, 0x6000000, 0x14c060, 0x6008000 }, { 0x149060, 0x6000000, 0x14f060, 0x6008000 },
- { 0x147060, 0x6001000, 0x14d060, 0x6009000 }, { 0x14a060, 0x6001000, 0x150060, 0x6009000 },
- { 0x148060, 0x6002000, 0x14e060, 0x600a000 }, { 0x14b060, 0x6002000, 0x151060, 0x600a000 },
-#else
- { 0x145de0, 0x6000000, 0x14bde0, 0x6008000 }, { 0x148de0, 0x6000000, 0x14ede0, 0x6008000 },
- { 0x146de0, 0x6001000, 0x14cde0, 0x6009000 }, { 0x149de0, 0x6001000, 0x14fde0, 0x6009000 },
- { 0x147de0, 0x6002000, 0x14dde0, 0x600a000 }, { 0x14ade0, 0x6002000, 0x150de0, 0x600a000 },
-#endif
+static const HyruleTownTileSetManagerGfxInfo gHyruleTownTileSetManagerGfxInfosFestival[] = {
+ { offset_gUnk_086E8460 + 0x800, BG_SCREEN_ADDR(0), offset_gUnk_086E8460 + 0x6800, BG_SCREEN_ADDR(16) },
+ { offset_gUnk_086E8460 + 0x3800, BG_SCREEN_ADDR(0), offset_gUnk_086E8460 + 0x9800, BG_SCREEN_ADDR(16) },
+ { offset_gUnk_086E8460 + 0x1800, BG_SCREEN_ADDR(2), offset_gUnk_086E8460 + 0x7800, BG_SCREEN_ADDR(18) },
+ { offset_gUnk_086E8460 + 0x4800, BG_SCREEN_ADDR(2), offset_gUnk_086E8460 + 0xA800, BG_SCREEN_ADDR(18) },
+ { offset_gUnk_086E8460 + 0x2800, BG_SCREEN_ADDR(4), offset_gUnk_086E8460 + 0x8800, BG_SCREEN_ADDR(20) },
+ { offset_gUnk_086E8460 + 0x5800, BG_SCREEN_ADDR(4), offset_gUnk_086E8460 + 0xB800, BG_SCREEN_ADDR(20) },
};
extern const u8 gGlobalGfxAndPalettes[];
void HyruleTownTileSetManager_Main(HyruleTownTileSetManager* this) {
if (super->action == 0) {
super->action = 1;
- this->field_0x22 = 0xff;
- this->field_0x21 = 0xff;
- this->field_0x20 = 0xff;
- RegisterTransitionManager(this, sub_08059A2C, NULL);
+ this->gfxGroup2 = 0xff;
+ this->gfxGroup1 = 0xff;
+ this->gfxGroup0 = 0xff;
+ RegisterTransitionHandler(this, HyruleTownTileSetManager_OnEnterRoom, NULL);
SetEntityPriority((Entity*)this, PRIO_PLAYER_EVENT);
}
- sub_08059A58(this);
+ HyruleTownTileSetManager_UpdateLoadGfxGroups(this);
}
-void sub_08059A2C(HyruleTownTileSetManager* this) {
+void HyruleTownTileSetManager_OnEnterRoom(HyruleTownTileSetManager* this) {
gRoomVars.graphicsGroups[2] = 0xff;
gRoomVars.graphicsGroups[1] = 0xff;
gRoomVars.graphicsGroups[0] = 0xff;
- this->field_0x22 = 0xff;
- this->field_0x21 = 0xff;
- this->field_0x20 = 0xff;
- sub_08059A58(this);
+ this->gfxGroup2 = 0xff;
+ this->gfxGroup1 = 0xff;
+ this->gfxGroup0 = 0xff;
+ HyruleTownTileSetManager_UpdateLoadGfxGroups(this);
}
-void sub_08059A58(HyruleTownTileSetManager* this) {
+void HyruleTownTileSetManager_UpdateLoadGfxGroups(HyruleTownTileSetManager* this) {
if (gRoomControls.area != AREA_FESTIVAL_TOWN) {
- if (sub_08059C8C(this, 0, &this->field_0x20, gUnk_08108398) != 0) {
- sub_08059CC0(0, (u32)this->field_0x20);
+ if (HyruleTownTileSetManager_UpdateRoomGfxGroup(this, 0, &this->gfxGroup0,
+ gHyruleTownTileSetManager_regions0) != 0) {
+ HyruleTownTileSetManager_LoadGfxGroup(0, this->gfxGroup0);
}
- if (sub_08059C8C(this, 1, &this->field_0x21, gUnk_081083AE) != 0) {
- sub_08059CC0(1, this->field_0x21);
- if (this->field_0x21 == 2) {
- sub_08059B18();
+ if (HyruleTownTileSetManager_UpdateRoomGfxGroup(this, 1, &this->gfxGroup1,
+ gHyruleTownTileSetManager_regions1) != 0) {
+ HyruleTownTileSetManager_LoadGfxGroup(1, this->gfxGroup1);
+ if (this->gfxGroup1 == 2) {
+ HyruleTownTileSetManager_BuildSecondOracleHouse();
}
}
- if (sub_08059C8C(this, 2, &this->field_0x22, gUnk_081083C4) != 0) {
- sub_08059CC0(2, (u32)this->field_0x22);
+ if (HyruleTownTileSetManager_UpdateRoomGfxGroup(this, 2, &this->gfxGroup2,
+ gHyruleTownTileSetManager_regions2) != 0) {
+ HyruleTownTileSetManager_LoadGfxGroup(2, this->gfxGroup2);
}
} else {
- if (sub_08059C8C(this, 0, &this->field_0x20, gUnk_081083DA) != 0) {
- sub_08059CC0(0, (u32)this->field_0x20);
+ if (HyruleTownTileSetManager_UpdateRoomGfxGroup(this, 0, &this->gfxGroup0,
+ gHyruleTownTileSetManager_festivalRegions0) != 0) {
+ HyruleTownTileSetManager_LoadGfxGroup(0, this->gfxGroup0);
}
- if (sub_08059C8C(this, 2, &this->field_0x22, gUnk_081083F2) != 0) {
- sub_08059CC0(2, (u32)this->field_0x22);
+ if (HyruleTownTileSetManager_UpdateRoomGfxGroup(this, 2, &this->gfxGroup2,
+ gHyruleTownTileSetManager_festivalRegions2) != 0) {
+ HyruleTownTileSetManager_LoadGfxGroup(2, this->gfxGroup2);
}
}
}
-#define COMMON(tmp2, tmp1) (((tmp2) >> 4 & 0x3f) | (((tmp1) + 0x188U) >> 4 & 0x3f) << 6)
-void sub_08059B18(void) {
+void HyruleTownTileSetManager_BuildSecondOracleHouse(void) {
u32 loopVar;
u32 innerLoopVar;
@@ -115,25 +140,25 @@ void sub_08059B18(void) {
for (loopVar = 0; loopVar < 4; ++loopVar) {
for (innerLoopVar = 0; innerLoopVar < 4; ++innerLoopVar) {
SetTileByIndex(loopVar * 0x10 + TILE_TYPE_1195 + innerLoopVar,
- COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), 1);
+ TILE_LOCAL(0x28 + innerLoopVar * 0x10, 0x188 + loopVar * 0x10), 1);
}
}
for (loopVar = 0; loopVar < 3; ++loopVar) {
for (innerLoopVar = 0; innerLoopVar < 4; ++innerLoopVar) {
SetTileByIndex(loopVar * 0x10 + TILE_TYPE_1088 + innerLoopVar,
- COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), 2);
+ TILE_LOCAL(0x28 + innerLoopVar * 0x10, 0x188 + loopVar * 0x10), 2);
}
}
SetTileByIndex(TILE_TYPE_214, TILE_POS(2, 23), LAYER_TOP);
SetTileByIndex(TILE_TYPE_215, TILE_POS(3, 23), LAYER_TOP);
- LoadResourceAsync(&gUnk_086E8460, 0x6001800, 0x800);
+ LoadResourceAsync(&gUnk_086E8460, BG_SCREEN_ADDR(3), BG_SCREEN_SIZE);
} else {
if (CheckGlobalFlag(TATEKAKE_TOCHU) != 0) {
for (loopVar = 0; loopVar < 5; ++loopVar) {
for (innerLoopVar = 0; innerLoopVar < 4; ++innerLoopVar) {
SetTileByIndex(loopVar * 0x10 + TILE_TYPE_1190 + innerLoopVar,
- COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), 1);
+ TILE_LOCAL(0x28 + innerLoopVar * 0x10, 0x188 + loopVar * 0x10), 1);
}
}
SetTileByIndex(TILE_TYPE_1092, TILE_POS(2, 24), LAYER_TOP);
@@ -144,55 +169,56 @@ void sub_08059B18(void) {
}
}
-bool32 sub_08059C8C(HyruleTownTileSetManager* this, u32 param_2, u8* param_3, const u16* param_4) {
- bool32 bVar2;
-
- *param_3 = CheckRegionsOnScreen(param_4);
- if ((*param_3 != 0xff) && (gRoomVars.graphicsGroups[param_2] != *param_3)) {
- gRoomVars.graphicsGroups[param_2] = *param_3;
+bool32 HyruleTownTileSetManager_UpdateRoomGfxGroup(HyruleTownTileSetManager* this, u32 gfxIndex, u8* pGfxGroup,
+ const u16* regions) {
+ *pGfxGroup = CheckRegionsOnScreen(regions);
+ if ((*pGfxGroup != 0xff) && (gRoomVars.graphicsGroups[gfxIndex] != *pGfxGroup)) {
+ gRoomVars.graphicsGroups[gfxIndex] = *pGfxGroup;
return TRUE;
- } else {
- return FALSE;
}
+ return FALSE;
}
-void sub_08059CC0(u32 param_1, u32 param_2) {
- const Unknown* unknown;
+void HyruleTownTileSetManager_LoadGfxGroup(u32 gfxIndex, u32 gfxGroup) {
+ const HyruleTownTileSetManagerGfxInfo* gfxInfo;
- gRoomVars.graphicsGroups[param_1] = param_2;
+ gRoomVars.graphicsGroups[gfxIndex] = gfxGroup;
if (gRoomControls.area != AREA_FESTIVAL_TOWN) {
- unknown = &gUnk_08108408[param_2];
+ gfxInfo = &gHyruleTownTileSetManagerGfxInfos[gfxGroup];
} else {
- unknown = &gUnk_08108468[param_2];
+ gfxInfo = &gHyruleTownTileSetManagerGfxInfosFestival[gfxGroup];
}
- LoadResourceAsync((void*)&gGlobalGfxAndPalettes + unknown->field_0x0, unknown->field_0x4, 0x1000);
- LoadResourceAsync((void*)&gGlobalGfxAndPalettes + unknown->field_0x8, unknown->field_0xc, 0x1000);
+ LoadResourceAsync(&gGlobalGfxAndPalettes[gfxInfo->gfx1], gfxInfo->dest1, BG_SCREEN_SIZE * 2);
+ LoadResourceAsync(&gGlobalGfxAndPalettes[gfxInfo->gfx2], gfxInfo->dest2, BG_SCREEN_SIZE * 2);
}
void TryLoadPrologueHyruleTown(void) {
- u32 tmp;
+ u32 gfxGroup;
if (gRoomControls.area != AREA_FESTIVAL_TOWN) {
- tmp = CheckRegionsOnScreen(gUnk_08108398);
- if (tmp != 0xff) {
- sub_08059CC0(0, tmp);
+ gfxGroup = CheckRegionsOnScreen(gHyruleTownTileSetManager_regions0);
+ if (gfxGroup != 0xff) {
+ HyruleTownTileSetManager_LoadGfxGroup(0, gfxGroup);
}
- tmp = CheckRegionsOnScreen(gUnk_081083AE);
- if ((tmp != 0xff) && (sub_08059CC0(1, tmp), tmp == 2)) {
- sub_08059B18();
+ gfxGroup = CheckRegionsOnScreen(gHyruleTownTileSetManager_regions1);
+ if (gfxGroup != 0xff) {
+ HyruleTownTileSetManager_LoadGfxGroup(1, gfxGroup);
+ if (gfxGroup == 2) {
+ HyruleTownTileSetManager_BuildSecondOracleHouse();
+ }
}
- tmp = CheckRegionsOnScreen(gUnk_081083C4);
- if (tmp != 0xff) {
- sub_08059CC0(2, tmp);
+ gfxGroup = CheckRegionsOnScreen(gHyruleTownTileSetManager_regions2);
+ if (gfxGroup != 0xff) {
+ HyruleTownTileSetManager_LoadGfxGroup(2, gfxGroup);
}
} else {
- tmp = CheckRegionsOnScreen(gUnk_081083DA);
- if (tmp != 0xff) {
- sub_08059CC0(0, tmp);
+ gfxGroup = CheckRegionsOnScreen(gHyruleTownTileSetManager_festivalRegions0);
+ if (gfxGroup != 0xff) {
+ HyruleTownTileSetManager_LoadGfxGroup(0, gfxGroup);
}
- tmp = CheckRegionsOnScreen(gUnk_081083F2);
- if (tmp != 0xff) {
- sub_08059CC0(2, tmp);
+ gfxGroup = CheckRegionsOnScreen(gHyruleTownTileSetManager_festivalRegions2);
+ if (gfxGroup != 0xff) {
+ HyruleTownTileSetManager_LoadGfxGroup(2, gfxGroup);
}
}
}
diff --git a/src/manager/lightLevelSetManager.c b/src/manager/lightLevelSetManager.c
index 26350020..7aad3428 100644
--- a/src/manager/lightLevelSetManager.c
+++ b/src/manager/lightLevelSetManager.c
@@ -6,9 +6,11 @@
*/
#include "manager/lightLevelSetManager.h"
#include "flags.h"
-#include "functions.h"
#include "game.h"
#include "object.h"
+#include "asm.h"
+#include "effects.h"
+#include "player.h"
#include "room.h"
#include "tiles.h"
@@ -115,7 +117,7 @@ void LightLevelSetManager_Type3(LightLevelSetManager* this) {
default:
if (--this->field_0x22 == 0) {
- CreateDustAt(*(s16*)&this->field_0x38, *(s16*)&this->field_0x3a, super->type2);
+ CreateDeathFxAt(*(s16*)&this->field_0x38, *(s16*)&this->field_0x3a, super->type2);
ClearFlag(this->field_0x3e);
RestorePrevTileEntity(this->field_0x20, super->type2);
ChangeLightLevel(-super->timer);
diff --git a/src/manager/lightManager.c b/src/manager/lightManager.c
index 7a0cca5f..a27d3b5a 100644
--- a/src/manager/lightManager.c
+++ b/src/manager/lightManager.c
@@ -7,7 +7,6 @@
#include "manager/lightManager.h"
#include "area.h"
#include "common.h"
-#include "functions.h"
#include "game.h"
#include "main.h"
#include "physics.h"
@@ -186,7 +185,7 @@ s32 sub_0805BC04(void) {
return iVar1;
}
-void sub_0805BC4C() {
+void UnDarkRoom() {
if (gArea.lightType != 0) {
gArea.lightType = 0;
gScreen.lcd.displayControl &= ~(DISPCNT_BG3_ON | DISPCNT_WIN0_ON);
diff --git a/src/manager/lightRayManager.c b/src/manager/lightRayManager.c
index 4a6c4227..1a75f63b 100644
--- a/src/manager/lightRayManager.c
+++ b/src/manager/lightRayManager.c
@@ -9,9 +9,11 @@
*/
#include "manager/lightRayManager.h"
#include "common.h"
-#include "functions.h"
#include "main.h"
#include "screen.h"
+#include "game.h"
+#include "player.h"
+#include "physics.h"
extern void DisableVBlankDMA(void);
@@ -47,7 +49,7 @@ void LightRayManager_Main(LightRayManager* this) {
}
}
-static void LightRayManager_EnterRoom(LightRayManager* this) {
+static void LightRayManager_OnEnterRoom(LightRayManager* this) {
u8* pbVar1;
LoadGfxGroup(this->gfxGroup);
@@ -60,7 +62,7 @@ static void LightRayManager_EnterRoom(LightRayManager* this) {
}
}
-static void LightRayManager_ExitRoom(void) {
+static void LightRayManager_OnExitRoom(void) {
gScreen.lcd.displayControl &= ~DISPCNT_BG3_ON;
gScreen.controls.layerFXControl = 0;
DisableVBlankDMA();
@@ -76,7 +78,7 @@ void LightRayManager_Init(LightRayManager* this) {
gScreen.lcd.displayControl |= DISPCNT_BG3_ON;
gScreen.controls.layerFXControl = 0x3648;
gScreen.controls.alphaBlend = 0x1000;
- RegisterTransitionManager(this, LightRayManager_EnterRoom, LightRayManager_ExitRoom);
+ RegisterTransitionHandler(this, LightRayManager_OnEnterRoom, LightRayManager_OnExitRoom);
}
void LightRayManager_Action1(LightRayManager* this) {
diff --git a/src/manager/manager29.c b/src/manager/manager29.c
index 133d3944..29daf9e7 100644
--- a/src/manager/manager29.c
+++ b/src/manager/manager29.c
@@ -7,7 +7,9 @@
#include "manager/manager29.h"
#include "asm.h"
#include "flags.h"
-#include "functions.h"
+#include "room.h"
+#include "player.h"
+#include "map.h"
bool32 sub_0805CF80(Manager29* this);
void sub_0805CBD0(Manager29* this);
@@ -16,12 +18,12 @@ void sub_0805CC3C(Manager29* this);
void Manager29_Main(Manager29* this) {
if (super->action == 0) {
sub_0805CBD0(this);
- if (CheckFlags(this->unk_3e)) {
+ if (CheckFlags(this->flag)) {
sub_0805CC3C(this);
DeleteManager(this);
}
} else if (sub_0805CF80(this)) {
- SetFlag(this->unk_3e);
+ SetFlag(this->flag);
DeleteManager(this);
}
}
diff --git a/src/manager/minishPortalManager.c b/src/manager/minishPortalManager.c
index 2d13eb1e..66171581 100644
--- a/src/manager/minishPortalManager.c
+++ b/src/manager/minishPortalManager.c
@@ -8,8 +8,9 @@
#include "area.h"
#include "asm.h"
#include "flags.h"
-#include "functions.h"
#include "object.h"
+#include "common.h"
+#include "effects.h"
#include "player.h"
#include "room.h"
#include "sound.h"
@@ -43,8 +44,8 @@ void MinishPortalManager_Main(MinishPortalManager* this) {
}
}
if (GetActTileAtRoomCoords(this->unk_38, this->unk_3a, super->timer) == ACT_TILE_61) {
- CreateMagicSparkles(this->unk_38 + gRoomControls.origin_x, this->unk_3a + gRoomControls.origin_y,
- super->timer);
+ CreateMagicSparklesFxAt(this->unk_38 + gRoomControls.origin_x, this->unk_3a + gRoomControls.origin_y,
+ super->timer);
if (super->subtimer == 0) {
super->subtimer = 1;
SoundReq(SFX_NEAR_PORTAL);
@@ -57,7 +58,7 @@ void MinishPortalManager_Main(MinishPortalManager* this) {
}
}
-void CreateMagicSparkles(u32 baseX, u32 baseY, u32 layer) {
+void CreateMagicSparklesFxAt(u32 baseX, u32 baseY, u32 layer) {
u32 r;
int offsetX, offsetY;
Entity* spark;
diff --git a/src/manager/minishRaftersBackgroundManager.c b/src/manager/minishRaftersBackgroundManager.c
index f92470d6..da5680e3 100644
--- a/src/manager/minishRaftersBackgroundManager.c
+++ b/src/manager/minishRaftersBackgroundManager.c
@@ -6,10 +6,11 @@
*/
#include "manager/minishRaftersBackgroundManager.h"
#include "common.h"
-#include "functions.h"
#include "room.h"
+#include "game.h"
+#include "vram.h"
-void sub_08058204(MinishRaftersBackgroundManager*);
+void MinishRaftersBackgroundManager_OnEnterRoom(MinishRaftersBackgroundManager*);
void sub_08058210(MinishRaftersBackgroundManager*);
u32 sub_08058244(int);
void sub_080582A0(u32, u32*, u16*);
@@ -23,11 +24,11 @@ void MinishRaftersBackgroundManager_Main(MinishRaftersBackgroundManager* this) {
if (super->action == 0) {
super->action = 1;
gScreen.bg1.updated = 0;
- RegisterTransitionManager(this, sub_08058204, NULL);
+ RegisterTransitionHandler(this, MinishRaftersBackgroundManager_OnEnterRoom, NULL);
}
}
-void sub_08058204(MinishRaftersBackgroundManager* this) {
+void MinishRaftersBackgroundManager_OnEnterRoom(MinishRaftersBackgroundManager* this) {
sub_08058324(super->type);
}
diff --git a/src/manager/minishSizedEntranceManager.c b/src/manager/minishSizedEntranceManager.c
index 3cac2f1f..9c06a928 100644
--- a/src/manager/minishSizedEntranceManager.c
+++ b/src/manager/minishSizedEntranceManager.c
@@ -6,9 +6,10 @@
* screen.
*/
#include "manager/minishSizedEntranceManager.h"
-#include "functions.h"
#include "object.h"
+#include "flags.h"
#include "room.h"
+#include "script.h"
#include "asm.h"
typedef struct {
diff --git a/src/manager/minishVillageTileSetManager.c b/src/manager/minishVillageTileSetManager.c
index 88671417..7799ba83 100644
--- a/src/manager/minishVillageTileSetManager.c
+++ b/src/manager/minishVillageTileSetManager.c
@@ -7,85 +7,150 @@
#include "manager/minishVillageTileSetManager.h"
#include "asm.h"
#include "common.h"
-#include "functions.h"
#include "main.h"
-
-void sub_08057E30(void*);
-bool32 sub_08057E40(MinishVillageTileSetManager*);
-void sub_08057E7C(u32);
-
-extern const u8 gGlobalGfxAndPalettes[];
-
-const u16 gUnk_08108050[0x2A] = {
+#include "game.h"
+#include "assets/gfx_offsets.h"
+#include "pauseMenu.h"
+#include "gfx.h"
+
+void MinishVillageTileSetManager_OnEnterRoom(void*);
+bool32 MinishVillageTileSetManager_UpdateRoomGfxGroup(MinishVillageTileSetManager*);
+void MinishVillageTileSetManager_LoadGfxGroup(u32);
+
+// clang-format off
+const u16 gMinishVillageTileSetManagerRegions[] = {
+ 0, 0x000, 0x020, 0x0E0, 0x0E0,
#ifdef EU
- 0, 0, 0x20, 0xE0, 0xE0, 1, 0x28, 0x1C8, 0x60, 0x80, 2,
- 0x188, 0x278, 0xE0, 0xA0, 3, 0x310, 0x178, 0xC0, 0x150, 3, 0x340,
+ 1, 0x028, 0x1C8, 0x060, 0x080,
+ 2, 0x188, 0x278, 0x0E0, 0x0A0,
#else
- 0, 0, 0x20, 0xE0, 0xE0, 1, 0, 0x1D0, 0x80, 0x60, 2,
- 0x170, 0x278, 0xF8, 0xA0, 3, 0x310, 0x178, 0xC0, 0x150, 3, 0x340,
+ 1, 0x000, 0x1D0, 0x080, 0x060,
+ 2, 0x170, 0x278, 0x0F8, 0x0A0,
#endif
- 0x2C8, 0x60, 0x90, 4, 0x1D0, 0, 0x200, 0xE0, 1, 0x108, 0x188,
- 0xD0, 0x80, 2, 0x1E8, 0x338, 0x50, 0xC0, 0xFF, 0
+ 3, 0x310, 0x178, 0x0C0, 0x150,
+ 3, 0x340, 0x2C8, 0x060, 0x090,
+ 4, 0x1D0, 0x000, 0x200, 0x0E0,
+ 1, 0x108, 0x188, 0x0D0, 0x080,
+ 2, 0x1E8, 0x338, 0x050, 0x0C0,
+ 0xFF,
};
-
-const u32 gUnk_081080A4[0x50] = {
-#ifdef EU
- 0x109860, 0x6000000, 0x10a860, 0x6001000, 0x10b860, 0x6002000, 0x10c860, 0x6003000, 0x10d860, 0x6008000,
- 0x10e860, 0x6009000, 0x10f860, 0x600a000, 0x110860, 0x600b000, 0x111860, 0x6000000, 0x112860, 0x6001000,
- 0x113860, 0x6002000, 0x114860, 0x6003000, 0x115860, 0x6008000, 0x116860, 0x6009000, 0x117860, 0x600a000,
- 0x118860, 0x600b000, 0x119860, 0x6000000, 0x11a860, 0x6001000, 0x11b860, 0x6002000, 0x11c860, 0x6003000,
- 0x11d860, 0x6008000, 0x11e860, 0x6009000, 0x11f860, 0x600a000, 0x120860, 0x600b000, 0x121860, 0x6000000,
- 0x122860, 0x6001000, 0x123860, 0x6002000, 0x124860, 0x6003000, 0x125860, 0x6008000, 0x126860, 0x6009000,
- 0x127860, 0x600a000, 0x128860, 0x600b000, 0x129860, 0x6000000, 0x12a860, 0x6001000, 0x12b860, 0x6002000,
- 0x12c860, 0x6003000, 0x12d860, 0x6008000, 0x12e860, 0x6009000, 0x12f860, 0x600a000, 0x130860, 0x600b000
-#else
- 0x001095E0, 0x06000000, 0x0010A5E0, 0x06001000, 0x0010B5E0, 0x06002000, 0x0010C5E0, 0x06003000, 0x0010D5E0,
- 0x06008000, 0x0010E5E0, 0x06009000, 0x0010F5E0, 0x0600A000, 0x001105E0, 0x0600B000, 0x001115E0, 0x06000000,
- 0x001125E0, 0x06001000, 0x001135E0, 0x06002000, 0x001145E0, 0x06003000, 0x001155E0, 0x06008000, 0x001165E0,
- 0x06009000, 0x001175E0, 0x0600A000, 0x001185E0, 0x0600B000, 0x001195E0, 0x06000000, 0x0011A5E0, 0x06001000,
- 0x0011B5E0, 0x06002000, 0x0011C5E0, 0x06003000, 0x0011D5E0, 0x06008000, 0x0011E5E0, 0x06009000, 0x0011F5E0,
- 0x0600A000, 0x001205E0, 0x0600B000, 0x001215E0, 0x06000000, 0x001225E0, 0x06001000, 0x001235E0, 0x06002000,
- 0x001245E0, 0x06003000, 0x001255E0, 0x06008000, 0x001265E0, 0x06009000, 0x001275E0, 0x0600A000, 0x001285E0,
- 0x0600B000, 0x001295E0, 0x06000000, 0x0012A5E0, 0x06001000, 0x0012B5E0, 0x06002000, 0x0012C5E0, 0x06003000,
- 0x0012D5E0, 0x06008000, 0x0012E5E0, 0x06009000, 0x0012F5E0, 0x0600A000, 0x001305E0, 0x0600B000
-#endif
+// clang-format on
+
+typedef struct {
+ u32 gfx;
+ void* dest;
+} MinishVillageTileSetManagerGfxInfo;
+
+const MinishVillageTileSetManagerGfxInfo gMinishVillageTileSetManagerGfxInfos[][8] = {
+ {
+ { offset_gUnk_086AAEE0 + 0x1580, BG_SCREEN_ADDR(0) },
+ { offset_gUnk_086AAEE0 + 0x2580, BG_SCREEN_ADDR(2) },
+ { offset_gUnk_086AAEE0 + 0x3580, BG_SCREEN_ADDR(4) },
+ { offset_gUnk_086AAEE0 + 0x4580, BG_SCREEN_ADDR(6) },
+ { offset_gUnk_086AAEE0 + 0x5580, BG_SCREEN_ADDR(16) },
+ { offset_gUnk_086AAEE0 + 0x6580, BG_SCREEN_ADDR(18) },
+ { offset_gUnk_086AAEE0 + 0x7580, BG_SCREEN_ADDR(20) },
+ { offset_gUnk_086AAEE0 + 0x8580, BG_SCREEN_ADDR(22) },
+ },
+ {
+ { offset_gUnk_086AAEE0 + 0x9580, BG_SCREEN_ADDR(0) },
+ { offset_gUnk_086AAEE0 + 0xA580, BG_SCREEN_ADDR(2) },
+ { offset_gUnk_086AAEE0 + 0xB580, BG_SCREEN_ADDR(4) },
+ { offset_gUnk_086AAEE0 + 0xC580, BG_SCREEN_ADDR(6) },
+ { offset_gUnk_086AAEE0 + 0xD580, BG_SCREEN_ADDR(16) },
+ { offset_gUnk_086AAEE0 + 0xE580, BG_SCREEN_ADDR(18) },
+ { offset_gUnk_086AAEE0 + 0xF580, BG_SCREEN_ADDR(20) },
+ { offset_gUnk_086AAEE0 + 0x10580, BG_SCREEN_ADDR(22) },
+ },
+ {
+ { offset_gUnk_086AAEE0 + 0x11580, BG_SCREEN_ADDR(0) },
+ { offset_gUnk_086AAEE0 + 0x12580, BG_SCREEN_ADDR(2) },
+ { offset_gUnk_086AAEE0 + 0x13580, BG_SCREEN_ADDR(4) },
+ { offset_gUnk_086AAEE0 + 0x14580, BG_SCREEN_ADDR(6) },
+ { offset_gUnk_086AAEE0 + 0x15580, BG_SCREEN_ADDR(16) },
+ { offset_gUnk_086AAEE0 + 0x16580, BG_SCREEN_ADDR(18) },
+ { offset_gUnk_086AAEE0 + 0x17580, BG_SCREEN_ADDR(20) },
+ { offset_gUnk_086AAEE0 + 0x18580, BG_SCREEN_ADDR(22) },
+ },
+ {
+ { offset_gUnk_086AAEE0 + 0x19580, BG_SCREEN_ADDR(0) },
+ { offset_gUnk_086AAEE0 + 0x1A580, BG_SCREEN_ADDR(2) },
+ { offset_gUnk_086AAEE0 + 0x1B580, BG_SCREEN_ADDR(4) },
+ { offset_gUnk_086AAEE0 + 0x1C580, BG_SCREEN_ADDR(6) },
+ { offset_gUnk_086AAEE0 + 0x1D580, BG_SCREEN_ADDR(16) },
+ { offset_gUnk_086AAEE0 + 0x1E580, BG_SCREEN_ADDR(18) },
+ { offset_gUnk_086AAEE0 + 0x1F580, BG_SCREEN_ADDR(20) },
+ { offset_gUnk_086AAEE0 + 0x20580, BG_SCREEN_ADDR(22) },
+ },
+ {
+ { offset_gUnk_086AAEE0 + 0x21580, BG_SCREEN_ADDR(0) },
+ { offset_gUnk_086AAEE0 + 0x22580, BG_SCREEN_ADDR(2) },
+ { offset_gUnk_086AAEE0 + 0x23580, BG_SCREEN_ADDR(4) },
+ { offset_gUnk_086AAEE0 + 0x24580, BG_SCREEN_ADDR(6) },
+ { offset_gUnk_086AAEE0 + 0x25580, BG_SCREEN_ADDR(16) },
+ { offset_gUnk_086AAEE0 + 0x26580, BG_SCREEN_ADDR(18) },
+ { offset_gUnk_086AAEE0 + 0x27580, BG_SCREEN_ADDR(20) },
+ { offset_gUnk_086AAEE0 + 0x28580, BG_SCREEN_ADDR(22) },
+ },
};
-const u8 gUnk_081081E4[] = { 0x16, 0x17, 0x17, 0x18, 0x18 };
+const u8 gMinishVillateTileSetManagerPaletteGroups[] = { 0x16, 0x17, 0x17, 0x18, 0x18 };
-#ifdef EU
void MinishVillageTileSetManager_Main(MinishVillageTileSetManager* this) {
- u32 tmp;
- const u32* tmp2;
- s32 tmp3;
+ u32 gfxGroup;
+ const MinishVillageTileSetManagerGfxInfo* gfxInfo;
+ s32 super_timer;
if (super->action == 0) {
super->action = 1;
super->timer = 8;
this->unk_20 = 0xFF;
- RegisterTransitionManager(this, sub_08057E30, 0);
+#ifndef EU
+ SetEntityPriority((Entity*)this, PRIO_PLAYER_EVENT);
+#endif
+ RegisterTransitionHandler(this, MinishVillageTileSetManager_OnEnterRoom, NULL);
}
+#ifdef EU
if (gRoomControls.reload_flags)
return;
+#endif
- if (sub_08057E40(this)) {
- tmp = (u32)gRoomVars.graphicsGroups[0];
- if (this->unk_20 != tmp) {
- this->unk_20 = tmp;
+ if (MinishVillageTileSetManager_UpdateRoomGfxGroup(this)) {
+ gfxGroup = (u32)gRoomVars.graphicsGroups[0];
+ if (this->unk_20 != gfxGroup) {
+ this->unk_20 = gfxGroup;
super->timer = 0;
}
}
+#ifndef EU
+ if (gRoomControls.reload_flags)
+ return;
+#endif
+#ifndef JP
+#ifndef EU
+ gfxGroup = this->unk_20;
+#endif
+#endif
- tmp2 = &gUnk_081080A4[tmp << 4];
- tmp3 = super->timer;
- if (tmp3 == 0) {
+ gfxInfo = gMinishVillageTileSetManagerGfxInfos[gfxGroup];
+#ifdef EU
+ super_timer = super->timer;
+ if (super_timer == 0) {
+#else
+ switch (super->timer) {
+ case 0:
+#endif
gPauseMenuOptions.disabled = 1;
- LoadResourceAsync(&gGlobalGfxAndPalettes[tmp2[0]], tmp2[1], 0x1000);
- LoadPaletteGroup(gUnk_081081E4[tmp]);
+ LoadResourceAsync(&gGlobalGfxAndPalettes[gfxInfo->gfx], gfxInfo->dest, BG_SCREEN_SIZE * 2);
+ LoadPaletteGroup(gMinishVillateTileSetManagerPaletteGroups[gfxGroup]);
super->timer++;
+#ifdef EU
} else {
- switch (tmp3) {
+ switch (super_timer) {
case 0:
+#else
+ break;
+#endif
case 1:
case 2:
case 3:
@@ -93,99 +158,58 @@ void MinishVillageTileSetManager_Main(MinishVillageTileSetManager* this) {
case 5:
case 6:
case 7:
- LoadResourceAsync(&gGlobalGfxAndPalettes[tmp2[(super->timer << 1)]], tmp2[(super->timer << 1) + 1],
- 0x1000);
+ LoadResourceAsync(&gGlobalGfxAndPalettes[gfxInfo[super->timer].gfx], gfxInfo[super->timer].dest,
+ BG_SCREEN_SIZE * 2);
super->timer++;
+#ifdef EU
gPauseMenuOptions.disabled = 0;
+#endif
+ break;
case 8:
+#ifndef EU
+ gPauseMenuOptions.disabled = 0;
+ super->timer++;
+#endif
break;
}
+#ifdef EU
}
-}
-#else
-void MinishVillageTileSetManager_Main(MinishVillageTileSetManager* this) {
- u32 tmp;
- const u32* tmp2;
- if (super->action == 0) {
- super->action = 1;
- super->timer = 8;
- this->unk_20 = 0xFF;
-
- SetEntityPriority((Entity*)this, PRIO_PLAYER_EVENT);
- RegisterTransitionManager(this, sub_08057E30, 0);
- }
- if (sub_08057E40(this)) {
- tmp = (u32)gRoomVars.graphicsGroups[0];
- if (this->unk_20 != tmp) {
- this->unk_20 = tmp;
- super->timer = 0;
- }
- }
- if (gRoomControls.reload_flags)
- return;
-#ifndef JP
- tmp = this->unk_20;
#endif
- tmp2 = &gUnk_081080A4[tmp << 4];
- switch (super->timer) {
- case 0:
- gPauseMenuOptions.disabled = 1;
- LoadResourceAsync(&gGlobalGfxAndPalettes[tmp2[0]], tmp2[1], 0x1000);
- LoadPaletteGroup(gUnk_081081E4[tmp]);
- super->timer++;
- break;
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- LoadResourceAsync(&gGlobalGfxAndPalettes[tmp2[(super->timer << 1)]], tmp2[(super->timer << 1) + 1], 0x1000);
- super->timer++;
- break;
- case 8:
- gPauseMenuOptions.disabled = 0;
- super->timer++;
- break;
- }
}
-#endif
-void sub_08057E30(void* this) {
- sub_08057E7C(gRoomVars.graphicsGroups[0]);
+void MinishVillageTileSetManager_OnEnterRoom(void* this) {
+ MinishVillageTileSetManager_LoadGfxGroup(gRoomVars.graphicsGroups[0]);
}
-bool32 sub_08057E40(MinishVillageTileSetManager* this) {
- u32 tmp = CheckRegionsOnScreen(gUnk_08108050);
- if (tmp != 0xFF) {
- gRoomVars.graphicsGroups[0] = tmp;
+bool32 MinishVillageTileSetManager_UpdateRoomGfxGroup(MinishVillageTileSetManager* this) {
+ u32 gfxGroup = CheckRegionsOnScreen(gMinishVillageTileSetManagerRegions);
+ if (gfxGroup != 0xFF) {
+ gRoomVars.graphicsGroups[0] = gfxGroup;
return TRUE;
- } else {
- return FALSE;
}
+ return FALSE;
}
-void sub_08057E64(void) {
- u32 tmp = CheckRegionsOnScreen(gUnk_08108050);
- if (tmp != 0xFF) {
- sub_08057E7C(tmp);
+void MinishVillageTileSetManger_LoadInitialGfxGroup(void) {
+ u32 gfxGroup = CheckRegionsOnScreen(gMinishVillageTileSetManagerRegions);
+ if (gfxGroup != 0xFF) {
+ MinishVillageTileSetManager_LoadGfxGroup(gfxGroup);
}
}
-void sub_08057E7C(u32 unk1) {
- u32 tmp;
- const u32* tmp2;
+void MinishVillageTileSetManager_LoadGfxGroup(u32 gfxGroup) {
+ u32 i;
+ const MinishVillageTileSetManagerGfxInfo* gfxInfo;
#ifndef EU
- if (unk1 > 4)
+ if (gfxGroup >= ARRAY_COUNT(gMinishVillageTileSetManagerGfxInfos))
return;
#endif
- LoadPaletteGroup(gUnk_081081E4[unk1]);
- tmp2 = &gUnk_081080A4[unk1 << 4];
- for (tmp = 0; tmp < 8; tmp++, tmp2 += 2) {
- DmaCopy32(3, &gGlobalGfxAndPalettes[tmp2[0]], tmp2[1], 0x400 * 4);
+ LoadPaletteGroup(gMinishVillateTileSetManagerPaletteGroups[gfxGroup]);
+ gfxInfo = gMinishVillageTileSetManagerGfxInfos[gfxGroup];
+ for (i = 0; i < ARRAY_COUNT(gMinishVillageTileSetManagerGfxInfos[0]); i++, gfxInfo++) {
+ DmaCopy32(3, &gGlobalGfxAndPalettes[gfxInfo->gfx], gfxInfo->dest, BG_SCREEN_SIZE * 2);
}
- gRoomVars.graphicsGroups[0] = unk1;
+ gRoomVars.graphicsGroups[0] = gfxGroup;
}
diff --git a/src/manager/miscManager.c b/src/manager/miscManager.c
index 1adf595d..0008dc51 100644
--- a/src/manager/miscManager.c
+++ b/src/manager/miscManager.c
@@ -6,16 +6,23 @@
*/
#include "manager/miscManager.h"
#include "area.h"
-#include "common.h"
#include "flags.h"
-#include "functions.h"
#include "item.h"
#include "message.h"
#include "object.h"
+#include "asm.h"
+#include "effects.h"
+#include "physics.h"
#include "player.h"
#include "room.h"
+#include "script.h"
#include "sound.h"
#include "tiles.h"
+#include "scroll.h"
+#include "subtask.h"
+#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP)
+#include "common.h"
+#endif
void MiscManager_Type0(MiscManager*);
void MiscManager_Type1(MiscManager*);
@@ -68,7 +75,7 @@ typedef struct {
u16 width;
u16 height;
u16 unk_08;
-} PACKED __attribute__((aligned(2))) MiscManager_HelperStruct;
+} PACKED ALIGNED(2) MiscManager_HelperStruct;
const MiscManager_HelperStruct gUnk_08108354[] = {
{ 0xF0, 0xB0, 0xF0, 0xB0, 0x100 },
@@ -146,12 +153,12 @@ void MiscManager_Type1(MiscManager* this) {
super->subAction = 8;
super->subtimer = 2;
}
- if (CheckFlags(this->flags)) {
+ if (CheckFlags(this->flag2)) {
DeleteManager(super);
}
break;
case 1:
- if (CheckFlags(this->flags)) {
+ if (CheckFlags(this->flag2)) {
super->action = 2;
super->timer = 120;
RequestPriorityDuration((Entity*)this, 240);
@@ -172,7 +179,7 @@ void MiscManager_Type1(MiscManager* this) {
}
break;
default:
- SetFlag(this->flags);
+ SetFlag(this->flag2);
SetPlayerControl(1);
DeleteThisEntity();
}
@@ -229,21 +236,21 @@ void MiscManager_Type5(MiscManager* this) {
switch (super->action) {
default:
if (!--super->timer) {
- CreateDustAt(this->x, this->y, super->type2);
+ CreateDeathFxAt(this->x, this->y, super->type2);
RestorePrevTileEntity(TILE_LOCAL(this->x, this->y), super->type2);
SoundReq(SFX_TASK_COMPLETE);
DeleteThisEntity();
}
break;
case 0:
- if (CheckFlags(this->flags)) {
+ if (CheckFlags(this->flag2)) {
DeleteThisEntity();
}
super->action = 1;
SetTileType(TILE_TYPE_869, TILE_LOCAL(this->x, this->y), super->type2);
break;
case 1:
- if (CheckFlags(this->flags)) {
+ if (CheckFlags(this->flag2)) {
RequestPriorityDuration((Entity*)this, 75);
super->timer = 45;
super->action++;
@@ -254,14 +261,14 @@ void MiscManager_Type5(MiscManager* this) {
void MiscManager_Type6(MiscManager* this) {
if (super->action == 0) {
super->action = 1;
- super->type2 = CheckFlags(this->flags);
+ super->type2 = CheckFlags(this->flag2);
if (super->type2) {
gRoomVars.lightLevel = this->y;
} else {
gRoomVars.lightLevel = this->x;
}
} else {
- u32 tmp = CheckFlags(this->flags);
+ u32 tmp = CheckFlags(this->flag2);
if (super->type2 != tmp) {
super->type2 = tmp;
if (tmp) {
@@ -304,12 +311,12 @@ void MiscManager_Type8(MiscManager* this) {
void MiscManager_Type9(MiscManager* this) {
if (super->action == 0) {
super->action = 1;
- if (CheckFlags(this->flags)) {
+ if (CheckFlags(this->flag2)) {
sub_080592EC(this);
DeleteThisEntity();
}
} else {
- if (CheckFlags(this->flags)) {
+ if (CheckFlags(this->flag2)) {
sub_080592EC(this);
sub_0805930C(this);
#ifndef EU
@@ -346,8 +353,8 @@ void SetDirtTile(u32 tilePos) {
void MiscManager_TypeA(MiscManager* this) {
super->action = 1;
- if (this->unk_3c == gTextRender.curToken.textIndex) {
- SetFlag(this->flags);
+ if (this->flag1 == gTextRender.curToken.textIndex) {
+ SetFlag(this->flag2);
DeleteThisEntity();
}
}
@@ -355,7 +362,7 @@ void MiscManager_TypeA(MiscManager* this) {
void MiscManager_TypeB(MiscManager* this) {
if (sub_080593CC(this)) {
if (++super->timer >= 8) {
- sub_080806BC(this->x - gRoomControls.origin_x, this->y - gRoomControls.origin_y, 0xFF, 0xA);
+ DoApplicableTransition(this->x - gRoomControls.origin_x, this->y - gRoomControls.origin_y, 0xFF, 0xA);
}
} else {
super->timer = 0;
@@ -372,10 +379,10 @@ bool32 sub_080593CC(MiscManager* this) {
void MiscManager_TypeC(MiscManager* this) {
Entity* tmp;
- if (CheckFlags(this->flags)) {
+ if (CheckFlags(this->flag2)) {
DeleteThisEntity();
}
- if (!CheckFlags(this->unk_3c))
+ if (!CheckFlags(this->flag1))
return;
tmp = CreateObject(SPECIAL_FX, FX_BIG_EXPLOSION, 0);
if (!tmp)
@@ -388,7 +395,7 @@ void MiscManager_TypeC(MiscManager* this) {
}
void MiscManager_TypeD(MiscManager* this) {
- if (!CheckFlags(this->flags)) {
+ if (!CheckFlags(this->flag2)) {
SetPlayerControl(3);
if (gRoomControls.reload_flags)
return;
diff --git a/src/manager/moveableObjectManager.c b/src/manager/moveableObjectManager.c
index 21756299..5cf898fa 100644
--- a/src/manager/moveableObjectManager.c
+++ b/src/manager/moveableObjectManager.c
@@ -9,6 +9,7 @@
#include "manager/moveableObjectManager.h"
#include "flags.h"
#include "room.h"
+#include "object.h"
void MoveableObjectManager_Main(MoveableObjectManager* this) {
Entity* object = CreateObject(super->timer, super->type, super->type2);
diff --git a/src/manager/powBackgroundManager.c b/src/manager/powBackgroundManager.c
index d7a24f25..bbb29c7d 100644
--- a/src/manager/powBackgroundManager.c
+++ b/src/manager/powBackgroundManager.c
@@ -8,13 +8,14 @@
#include "area.h"
#include "room.h"
#include "screen.h"
+#include "game.h"
-void sub_0805AFFC(PowBackgroundManager*);
+void PowBackgroundManager_OnEnterRoom(PowBackgroundManager*);
void PowBackgroundManager_Main(PowBackgroundManager* this) {
if (this == NULL) {
- if ((void*)gArea.onEnter != sub_0805AFFC) {
- sub_0805AFFC(this);
+ if ((void*)gArea.onEnter != PowBackgroundManager_OnEnterRoom) {
+ PowBackgroundManager_OnEnterRoom(this);
}
} else {
if (super->action == 0) {
@@ -22,7 +23,7 @@ void PowBackgroundManager_Main(PowBackgroundManager* this) {
super->flags |= ENT_PERSIST;
SetEntityPriority((Entity*)this, PRIO_PLAYER_EVENT);
if (gArea.onEnter == NULL) {
- RegisterTransitionManager(this, sub_0805AFFC, NULL);
+ RegisterTransitionHandler(this, PowBackgroundManager_OnEnterRoom, NULL);
} else {
DeleteThisEntity();
}
@@ -34,7 +35,7 @@ void PowBackgroundManager_Main(PowBackgroundManager* this) {
}
}
-void sub_0805AFFC(PowBackgroundManager* this) {
+void PowBackgroundManager_OnEnterRoom(PowBackgroundManager* this) {
gScreen.bg3.control = BGCNT_PRIORITY(3) | BGCNT_SCREENBASE(30);
gScreen.lcd.displayControl |= DISPCNT_BG3_ON;
gScreen.bg3.xOffset = gRoomControls.scroll_x + gRoomControls.bg3OffsetX.HALF.HI;
diff --git a/src/manager/pushableFurnitureManager.c b/src/manager/pushableFurnitureManager.c
index f701bc42..260c0348 100644
--- a/src/manager/pushableFurnitureManager.c
+++ b/src/manager/pushableFurnitureManager.c
@@ -8,6 +8,7 @@
#include "flags.h"
#include "object.h"
+#include "player.h"
#include "object/pushableFurniture.h"
#include "room.h"
diff --git a/src/manager/rollingBarrelManager.c b/src/manager/rollingBarrelManager.c
index 7f44557b..11320d40 100644
--- a/src/manager/rollingBarrelManager.c
+++ b/src/manager/rollingBarrelManager.c
@@ -8,21 +8,22 @@
#include "area.h"
#include "common.h"
#include "flags.h"
-#include "functions.h"
#include "main.h"
#include "physics.h"
#include "room.h"
#include "save.h"
#include "screen.h"
#include "sound.h"
-#include "structures.h"
+#include "game.h"
+#include "asm.h"
+#include "fade.h"
extern struct BgAffineDstData gUnk_02017AA0[];
extern struct BgAffineDstData gUnk_02017BA0[];
extern u8 gUpdateVisibleTiles;
extern u32 gUsedPalettes;
-void sub_08058D34(void);
+void RollingBarrelManager_OnEnterRoom(void);
void sub_08058BC8(RollingBarrelManager*);
void sub_08058CB0(RollingBarrelManager*);
void sub_08058CFC(void);
@@ -52,7 +53,7 @@ void RollingBarrelManager_Init(RollingBarrelManager* this) {
this->unk_28 = 0x1234;
super->timer = CheckLocalFlags(0x15, 0x2) != 0;
sub_08058CB0(this);
- RegisterTransitionManager(this, sub_08058D34, 0);
+ RegisterTransitionHandler(this, RollingBarrelManager_OnEnterRoom, NULL);
}
void RollingBarrelManager_Action1(RollingBarrelManager* this) {
@@ -256,12 +257,12 @@ void sub_08058CFC(void) {
}
}
-void sub_08058D34(void) {
+void RollingBarrelManager_OnEnterRoom(void) {
u16 tmp;
u32 tmp2;
LoadPaletteGroup(0x28);
MemCopy(gPaletteBuffer + 3 * 16, gPaletteBuffer + 21 * 16, 16 * 2);
- gUsedPalettes |= 1 << 21;
+ USE_PALETTE(21);
LoadGfxGroup(0x16);
tmp = gScreen.lcd.displayControl;
tmp2 = 0;
diff --git a/src/manager/secretManager.c b/src/manager/secretManager.c
index ca2ec125..69739493 100644
--- a/src/manager/secretManager.c
+++ b/src/manager/secretManager.c
@@ -9,7 +9,6 @@
#include "manager/secretManager.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "sound.h"
void SecretManager_Type0_Action2(SecretManager*);
diff --git a/src/manager/specialWarpManager.c b/src/manager/specialWarpManager.c
index f62ac451..cba10388 100644
--- a/src/manager/specialWarpManager.c
+++ b/src/manager/specialWarpManager.c
@@ -6,7 +6,8 @@
*/
#include "manager/specialWarpManager.h"
#include "asm.h"
-#include "functions.h"
+#include "room.h"
+#include "player.h"
void SpecialWarpManager_Main(SpecialWarpManager* this) {
u32 collisionLayer;
diff --git a/src/manager/staticBackgroundManager.c b/src/manager/staticBackgroundManager.c
index 2163b280..1ee959fe 100644
--- a/src/manager/staticBackgroundManager.c
+++ b/src/manager/staticBackgroundManager.c
@@ -6,10 +6,11 @@
*/
#include "manager/staticBackgroundManager.h"
#include "common.h"
-#include "functions.h"
#include "screen.h"
+#include "game.h"
+#include "room.h"
-void sub_0805B4B4(StaticBackgroundManager*);
+void StaticBackgroundManager_OnEnterRoom(StaticBackgroundManager*);
void sub_0805B448(StaticBackgroundManager*);
void sub_0805B474(StaticBackgroundManager*);
@@ -37,7 +38,7 @@ void StaticBackgroundManager_Main(StaticBackgroundManager* this) {
super->flags |= ENT_PERSIST;
SetEntityPriority((Entity*)this, PRIO_PLAYER_EVENT);
if (super->type != 0) {
- RegisterTransitionManager(this, sub_0805B4B4, NULL);
+ RegisterTransitionHandler(this, StaticBackgroundManager_OnEnterRoom, NULL);
}
iVar3 = 0x100 - (u32)gRoomControls.height;
if (iVar3 < 0) {
@@ -62,7 +63,7 @@ void sub_0805B474(StaticBackgroundManager* this) {
gScreen.bg3.xOffset = gRoomControls.scroll_x - ((gRoomControls.width - 0x100) / 2);
}
-void sub_0805B4B4(StaticBackgroundManager* this) {
+void StaticBackgroundManager_OnEnterRoom(StaticBackgroundManager* this) {
LoadStaticBackground(super->type);
if (super->type == 2) {
sub_0806D0F8();
diff --git a/src/manager/steamOverlayManager.c b/src/manager/steamOverlayManager.c
index 0052f5e1..358f70f7 100644
--- a/src/manager/steamOverlayManager.c
+++ b/src/manager/steamOverlayManager.c
@@ -10,6 +10,7 @@
#include "physics.h"
#include "room.h"
#include "screen.h"
+#include "game.h"
const u16 gUnk_08108588[] = { 0x1000, 0xF01, 0xE02, 0xD03, 0xC04, 0xB05, 0xA06, 0x907, 0x808 };
@@ -26,8 +27,8 @@ void sub_0805A098(SteamOverlayManager*);
void SteamOverlayManager_Action3(SteamOverlayManager*);
void sub_0805A114(u32, u32);
void sub_0805A1D8(SteamOverlayManager*);
-void nullsub_495(void*);
-void sub_0805A25C(void*);
+void SteamOverlayManager_OnEnterRoom(void*);
+void SteamOverlayManager_OnExitRoom(void*);
void SteamOverlayManager_Main(SteamOverlayManager* this) {
static void (*const SteamOverlayManager_Actions[])(SteamOverlayManager*) = {
@@ -55,7 +56,7 @@ void SteamOverlayManager_Init(SteamOverlayManager* this) {
gScreen.controls.alphaBlend = 0x1000;
gScreen.bg3.xOffset = 0x80;
gScreen.bg3.yOffset = 0;
- RegisterTransitionManager(this, nullsub_495, sub_0805A25C);
+ RegisterTransitionHandler(this, SteamOverlayManager_OnEnterRoom, SteamOverlayManager_OnExitRoom);
}
void SteamOverlayManager_Action4(SteamOverlayManager* this) {
@@ -85,11 +86,11 @@ u32 sub_08059F9C(SteamOverlayManager* this) {
if (CheckLocalFlag(0x16)) {
return 0;
}
- sub_0805A25C(this);
+ SteamOverlayManager_OnExitRoom(this);
DeleteThisEntity();
break;
case 7:
- sub_0805A25C(this);
+ SteamOverlayManager_OnExitRoom(this);
DeleteThisEntity();
break;
case 0:
@@ -185,10 +186,10 @@ void sub_0805A1D8(SteamOverlayManager* this) {
}
}
-void nullsub_495(void* this) {
+void SteamOverlayManager_OnEnterRoom(void* this) {
}
-void sub_0805A25C(void* this) {
+void SteamOverlayManager_OnExitRoom(void* this) {
gScreen.controls.layerFXControl = 0;
gScreen.lcd.displayControl &= ~DISPCNT_BG3_ON;
DisableVBlankDMA();
diff --git a/src/manager/templeOfDropletsManager.c b/src/manager/templeOfDropletsManager.c
index 19d8f07a..fc8309df 100644
--- a/src/manager/templeOfDropletsManager.c
+++ b/src/manager/templeOfDropletsManager.c
@@ -7,11 +7,16 @@
#include "manager/templeOfDropletsManager.h"
#include "enemy.h"
#include "flags.h"
-#include "functions.h"
+#include "common.h"
#include "object.h"
+#include "room.h"
+#include "player.h"
#include "screen.h"
#include "sound.h"
-#include "structures.h"
+#include "game.h"
+#include "vram.h"
+#include "pauseMenu.h"
+#include "asm.h"
static const u16 gUnk_081085B8[] = { 0x1008, 0x1007, 0x1006, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009,
0x1008, 0x1007, 0x1006, 0x1005, 0x1006, 0x1007, 0x1008, 0x1009 };
@@ -60,7 +65,7 @@ void TempleOfDropletsManager_Main(TempleOfDropletsManager* this) {
void TempleOfDropletsManager_Type0(TempleOfDropletsManager* this) {
if (super->action == 0) {
sub_0805A89C(this);
- if (!CheckLocalFlag(this->unk_3e)) {
+ if (!CheckLocalFlag(this->localFlag)) {
this->unk_23 = 1;
} else {
this->unk_23 = 2;
@@ -83,7 +88,7 @@ void TempleOfDropletsManager_Type1(TempleOfDropletsManager* this) {
sub_0805A89C(this);
this->unk_23 = 1;
sub_0805AAF0(1);
- if (!CheckLocalFlag(this->unk_3e)) {
+ if (!CheckLocalFlag(this->localFlag)) {
super->action = 1;
gScreen.lcd.displayControl &= 0xB7FF;
} else {
@@ -144,12 +149,12 @@ void TempleOfDropletsManager_Type2(TempleOfDropletsManager* this) {
this->unk_23 = 1;
}
sub_0805AAF0(this->unk_23);
- if (!CheckLocalFlag(this->unk_3e)) {
- ClearFlag(this->unk_3c);
+ if (!CheckLocalFlag(this->localFlag)) {
+ ClearFlag(this->flag);
super->action = 1;
gScreen.lcd.displayControl &= ~(DISPCNT_WIN1_ON | DISPCNT_BG3_ON);
} else {
- SetFlag(this->unk_3c);
+ SetFlag(this->flag);
super->action = 3;
gScreen.lcd.displayControl |= DISPCNT_WIN1_ON | DISPCNT_BG3_ON;
}
@@ -162,7 +167,7 @@ void TempleOfDropletsManager_Type2(TempleOfDropletsManager* this) {
void sub_0805A4CC(TempleOfDropletsManager*, u32);
void TempleOfDropletsManager_Type1_Action1(TempleOfDropletsManager* this) {
- if (CheckLocalFlag(this->unk_3e)) {
+ if (CheckLocalFlag(this->localFlag)) {
super->action = 2;
sub_0805A4CC(this, 0);
}
@@ -171,12 +176,12 @@ void TempleOfDropletsManager_Type1_Action1(TempleOfDropletsManager* this) {
void TempleOfDropletsManager_Type2_Action2(TempleOfDropletsManager* this) {
if (super->subAction != 0) {
super->action = 3;
- SetFlag(this->unk_3c);
+ SetFlag(this->flag);
}
}
void TempleOfDropletsManager_Type2_Action3(TempleOfDropletsManager* this) {
- if (!CheckLocalFlag(this->unk_3e)) {
+ if (!CheckLocalFlag(this->localFlag)) {
super->action = 4;
sub_0805A4CC(this, 1);
}
@@ -185,7 +190,7 @@ void TempleOfDropletsManager_Type2_Action3(TempleOfDropletsManager* this) {
void TempleOfDropletsManager_Type2_Action4(TempleOfDropletsManager* this) {
if (super->subAction != 0) {
super->action = 1;
- ClearFlag(this->unk_3c);
+ ClearFlag(this->flag);
}
}
@@ -363,7 +368,7 @@ void TempleOfDropletsManager_Type6_Action3(TempleOfDropletsManager* this) {
void TempleOfDropletsManager_Type7(TempleOfDropletsManager* this) {
switch (super->action) {
case 0:
- if (CheckLocalFlag(this->unk_3e)) {
+ if (CheckLocalFlag(this->localFlag)) {
super->action = 1;
} else {
super->action = 2;
@@ -373,7 +378,7 @@ void TempleOfDropletsManager_Type7(TempleOfDropletsManager* this) {
SetEntityPriority((Entity*)this, PRIO_PLAYER_EVENT);
break;
case 1:
- if (CheckLocalFlag(this->unk_3e))
+ if (CheckLocalFlag(this->localFlag))
break;
super->action = 2;
sub_0805A4CC(this, 4);
@@ -384,7 +389,7 @@ void TempleOfDropletsManager_Type7(TempleOfDropletsManager* this) {
}
break;
case 3:
- if (!CheckLocalFlag(this->unk_3e))
+ if (!CheckLocalFlag(this->localFlag))
break;
super->action = 4;
sub_0805A4CC(this, 4);
@@ -399,7 +404,7 @@ void TempleOfDropletsManager_Type7(TempleOfDropletsManager* this) {
}
}
-void sub_0805AAC8(TempleOfDropletsManager*);
+void TempleOfDropletsManager_OnEnterRoom(TempleOfDropletsManager*);
void sub_0805A89C(TempleOfDropletsManager* this) {
SetEntityPriority((Entity*)this, PRIO_PLAYER_EVENT);
@@ -412,7 +417,7 @@ void sub_0805A89C(TempleOfDropletsManager* this) {
this->unk_20 = gRoomControls.room;
this->unk_24 = gRoomControls.origin_x;
this->unk_26 = gRoomControls.origin_y;
- RegisterTransitionManager(this, sub_0805AAC8, 0);
+ RegisterTransitionHandler(this, TempleOfDropletsManager_OnEnterRoom, NULL);
}
void sub_0805A94C(TempleOfDropletsManager* this);
@@ -505,7 +510,7 @@ void sub_0805AA58(TempleOfDropletsManager* this) {
}
}
-void sub_0805AAC8(TempleOfDropletsManager* this) {
+void TempleOfDropletsManager_OnEnterRoom(TempleOfDropletsManager* this) {
sub_0805AAF0(this->unk_23);
TempleOfDropletsManager_Main(this);
}
diff --git a/src/manager/tileChangeObserveManager.c b/src/manager/tileChangeObserveManager.c
index 7a05a853..e24a8787 100644
--- a/src/manager/tileChangeObserveManager.c
+++ b/src/manager/tileChangeObserveManager.c
@@ -9,8 +9,8 @@
*/
#include "manager/tileChangeObserveManager.h"
#include "flags.h"
-#include "functions.h"
#include "room.h"
+#include "map.h"
void TileChangeObserveManager_Init(TileChangeObserveManager*);
void TileChangeObserveManager_Action1(TileChangeObserveManager*);
diff --git a/src/manager/tilePuzzleManager.c b/src/manager/tilePuzzleManager.c
index 766e2c6d..2da91901 100644
--- a/src/manager/tilePuzzleManager.c
+++ b/src/manager/tilePuzzleManager.c
@@ -10,9 +10,10 @@
#include "manager/tilePuzzleManager.h"
#include "asm.h"
#include "flags.h"
-#include "functions.h"
#include "sound.h"
#include "tiles.h"
+#include "room.h"
+#include "player.h"
enum { INIT, IN_PROGRESS, FAILED, SUCCEEDED };
diff --git a/src/manager/vaati3BackgroundManager.c b/src/manager/vaati3BackgroundManager.c
index bc8847cf..2b2e838b 100644
--- a/src/manager/vaati3BackgroundManager.c
+++ b/src/manager/vaati3BackgroundManager.c
@@ -7,16 +7,16 @@
#include "manager/vaati3BackgroundManager.h"
#include "area.h"
#include "common.h"
-#include "functions.h"
#include "room.h"
#include "screen.h"
+#include "game.h"
-void sub_0805D470(Vaati3BackgroundManager*);
+void Vaati3BackgroundManager_OnEnterRoom(Vaati3BackgroundManager*);
void Vaati3BackgroundManager_Main(Vaati3BackgroundManager* this) {
if (this == NULL) {
- if (gArea.onEnter != sub_0805D470) {
- sub_0805D470(NULL);
+ if (gArea.onEnter != Vaati3BackgroundManager_OnEnterRoom) {
+ Vaati3BackgroundManager_OnEnterRoom(NULL);
}
} else {
if (super->action == 0) {
@@ -24,7 +24,7 @@ void Vaati3BackgroundManager_Main(Vaati3BackgroundManager* this) {
super->flags |= ENT_PERSIST;
SetEntityPriority((Entity*)this, PRIO_PLAYER_EVENT);
if (gArea.onEnter == NULL) {
- RegisterTransitionManager(this, sub_0805D470, NULL);
+ RegisterTransitionHandler(this, Vaati3BackgroundManager_OnEnterRoom, NULL);
} else {
DeleteThisEntity();
}
@@ -37,7 +37,7 @@ void Vaati3BackgroundManager_Main(Vaati3BackgroundManager* this) {
}
}
-void sub_0805D470(Vaati3BackgroundManager* this) {
+void Vaati3BackgroundManager_OnEnterRoom(Vaati3BackgroundManager* this) {
LoadGfxGroup(0x4c);
gScreen.bg3.control = 0x1e07;
gScreen.lcd.displayControl |= DISPCNT_BG3_ON;
diff --git a/src/manager/vaati3InsideArmManager.c b/src/manager/vaati3InsideArmManager.c
index 579ce58b..a5f1eaed 100644
--- a/src/manager/vaati3InsideArmManager.c
+++ b/src/manager/vaati3InsideArmManager.c
@@ -5,10 +5,9 @@
* @brief Manages the inside of the arms of Vaati3.
*/
#include "manager/vaati3InsideArmManager.h"
-#include "functions.h"
#include "screenTransitions.h"
+#include "room.h"
#include "sound.h"
-#include "structures.h"
void sub_0805DBF0(Vaati3InsideArmManager*);
void Vaati3InsideArmManager_Init(Vaati3InsideArmManager*);
diff --git a/src/manager/vaati3StartManager.c b/src/manager/vaati3StartManager.c
index 1fa0c618..27fc8b9b 100644
--- a/src/manager/vaati3StartManager.c
+++ b/src/manager/vaati3StartManager.c
@@ -8,14 +8,17 @@
#include "area.h"
#include "enemy.h"
#include "flags.h"
-#include "functions.h"
#include "message.h"
#include "object.h"
-#include "save.h"
-#include "screen.h"
+#include "room.h"
+#include "player.h"
#include "screenTransitions.h"
#include "sound.h"
-#include "structures.h"
+#include "scroll.h"
+#include "fade.h"
+#if !defined(EU) && !defined(JP)
+#include "save.h"
+#endif
void sub_0805E094(void);
void Vaati3StartManager_Type0(Vaati3StartManager*);
@@ -154,5 +157,5 @@ void Vaati3StartManager_Type1_Action1(Vaati3StartManager* this) {
void sub_0805E094(void) {
SetInitializationPriority();
- sub_0808091C(&gUnk_0813AC34, TRANSITION_7);
+ DoExitTransitionWithType(&gUnk_0813AC34, TRANSITION_7);
}
diff --git a/src/manager/vaatiAppearingManager.c b/src/manager/vaatiAppearingManager.c
index 6eabadd8..930c0bd5 100644
--- a/src/manager/vaatiAppearingManager.c
+++ b/src/manager/vaatiAppearingManager.c
@@ -7,11 +7,11 @@
#include "manager/vaatiAppearingManager.h"
#include "area.h"
#include "common.h"
-#include "functions.h"
#include "game.h"
#include "main.h"
#include "room.h"
#include "screen.h"
+#include "physics.h"
void sub_0805D9D8(VaatiAppearingManager*);
void VaatiAppearingManager_Action3(VaatiAppearingManager*);
diff --git a/src/manager/verticalMinishPathBackgroundManager.c b/src/manager/verticalMinishPathBackgroundManager.c
index 645118fc..a5d18429 100644
--- a/src/manager/verticalMinishPathBackgroundManager.c
+++ b/src/manager/verticalMinishPathBackgroundManager.c
@@ -6,10 +6,11 @@
*/
#include "manager/verticalMinishPathBackgroundManager.h"
#include "common.h"
-#include "functions.h"
#include "game.h"
#include "screen.h"
-extern void sub_080576A0(void*);
+#include "room.h"
+
+extern void VerticalMinishPathBackgroundManager_OnEnterRoom(void*);
extern void sub_0805754C(VerticalMinishPathBackgroundManager*);
extern u8 gMapDataTopSpecial[];
@@ -19,7 +20,7 @@ void VerticalMinishPathBackgroundManager_Main(VerticalMinishPathBackgroundManage
super->action = 1;
gScreen.bg3.updated = 0;
gScreen.bg1.updated = 0;
- RegisterTransitionManager(this, sub_080576A0, NULL);
+ RegisterTransitionHandler(this, VerticalMinishPathBackgroundManager_OnEnterRoom, NULL);
}
sub_0805754C(this);
}
@@ -79,7 +80,7 @@ void sub_08057688(void) {
gScreen.bg1.control = BGCNT_SCREENBASE(30) | BGCNT_CHARBASE(2) | BGCNT_MOSAIC;
}
-void sub_080576A0(void* this) {
+void VerticalMinishPathBackgroundManager_OnEnterRoom(void* this) {
LoadGfxGroup(gRoomVars.graphicsGroups[0]);
((VerticalMinishPathBackgroundManager*)this)->field_0x38 = NULL;
((VerticalMinishPathBackgroundManager*)this)->field_0x3c = NULL;
diff --git a/src/manager/waterfallBottomManager.c b/src/manager/waterfallBottomManager.c
index a9e7196e..9fb68714 100644
--- a/src/manager/waterfallBottomManager.c
+++ b/src/manager/waterfallBottomManager.c
@@ -7,8 +7,10 @@
#include "manager/waterfallBottomManager.h"
#include "asm.h"
#include "entity.h"
-#include "functions.h"
+#include "player.h"
#include "tiles.h"
+#include "room.h"
+#include "map.h"
void WaterfallBottomManager_Main(WaterfallBottomManager* this) {
SetTile(SPECIAL_TILE_20, TILE_POS(3, 23), LAYER_BOTTOM);
diff --git a/src/manager/weatherChangeManager.c b/src/manager/weatherChangeManager.c
index 995716a0..92b1edb5 100644
--- a/src/manager/weatherChangeManager.c
+++ b/src/manager/weatherChangeManager.c
@@ -8,14 +8,16 @@
#include "area.h"
#include "asm.h"
#include "common.h"
-#include "fileselect.h"
-#include "functions.h"
#include "main.h"
#include "room.h"
#include "screen.h"
#include "sound.h"
+#include "game.h"
+#include "manager/staticBackgroundManager.h"
+#include "player.h"
+#include "fade.h"
-void sub_080595E4(WeatherChangeManager*);
+void WeatherChangeManager_OnEnterRoom(WeatherChangeManager*);
void sub_08059608(WeatherChangeManager*);
void sub_08059690(WeatherChangeManager*);
void sub_080596E0(WeatherChangeManager*);
@@ -45,14 +47,14 @@ void WeatherChangeManager_Main(WeatherChangeManager* this) {
this->unk_22 = 5;
}
gRoomVars.graphicsGroups[0] = 0xFF;
- RegisterTransitionManager(this, sub_080595E4, 0);
+ RegisterTransitionHandler(this, WeatherChangeManager_OnEnterRoom, NULL);
}
sub_08059608(this);
sub_08059690(this);
sub_080596E0(this);
}
-void sub_080595E4(WeatherChangeManager* this) {
+void WeatherChangeManager_OnEnterRoom(WeatherChangeManager* this) {
gRoomVars.graphicsGroups[0] = 0xFF;
sub_08059690(this);
sub_080596E0(this);
@@ -140,7 +142,7 @@ void sub_080596E0(WeatherChangeManager* this) {
break;
case 4:
MemClear(gBG3Buffer, 0x800);
- LoadResourceAsync(gBG3Buffer, 0x600e800, 0x800);
+ LoadResourceAsync(gBG3Buffer, BG_SCREEN_ADDR(29), BG_SCREEN_SIZE);
break;
case 5:
gMapTop.bgSettings = &gScreen.bg1;
diff --git a/src/menu/figurineMenu.c b/src/menu/figurineMenu.c
index 88c289f7..881dc803 100644
--- a/src/menu/figurineMenu.c
+++ b/src/menu/figurineMenu.c
@@ -8,19 +8,22 @@
#include "common.h"
#include "flags.h"
-#include "functions.h"
#include "game.h"
#include "main.h"
#include "menu.h"
#include "message.h"
#include "object.h"
-#include "pauseMenu.h"
+#include "asm.h"
+#include "sound.h"
+#include "room.h"
+#include "player.h"
#include "save.h"
#include "screen.h"
-#include "sound.h"
#include "subtask.h"
-#include "subtask2.h"
#include "ui.h"
+#include "affine.h"
+#include "pauseMenu.h"
+#include "fade.h"
void sub_080A4DA8(u32);
void sub_080A4B44(void);
@@ -380,9 +383,9 @@ void FigurineMenu_080A4978(void) {
LoadPalettes(fig->pal, 0x16, 9);
gfx = fig->gfx;
if (fig->size < 0) {
- LZ77UnCompVram(gfx, (void*)0x6014000);
+ LZ77UnCompVram(gfx, OBJ_VRAM0 + 0x4000);
} else {
- LoadResourceAsync(gfx, 0x6014000, fig->size);
+ LoadResourceAsync(gfx, OBJ_VRAM0 + 0x4000, fig->size);
}
}
}
@@ -442,7 +445,6 @@ const struct_08128184 gUnk_08128184 = {
0xffu,
};
-extern struct_020227E8 gUnk_020227E8[];
extern void ShowTextBox(u32, const struct_0812816C*);
void sub_080A4BA0(u32 arg1, u32 arg2) {
@@ -470,7 +472,7 @@ void sub_080A4BA0(u32 arg1, u32 arg2) {
if (r5 <= 0 || maxFigurines < r5) {
r5 = -1;
} else {
- sub_08057044(r5, gUnk_020227E8, 0x303030);
+ NumberToAsciiPad3Digits(r5, &gUnk_020227E8[0], 0x303030);
if (FigurineMenu_isFigurineOwned(r5) == 0) {
r5 += 0x8000;
} else {
diff --git a/src/menu/kinstoneMenu.c b/src/menu/kinstoneMenu.c
index eecc21b6..bac34a14 100644
--- a/src/menu/kinstoneMenu.c
+++ b/src/menu/kinstoneMenu.c
@@ -7,21 +7,25 @@
#include "area.h"
#include "common.h"
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "flags.h"
-#include "functions.h"
#include "kinstone.h"
#include "main.h"
#include "menu.h"
#include "message.h"
#include "npc.h"
#include "object.h"
+#include "asm.h"
+#include "physics.h"
#include "room.h"
#include "roomid.h"
#include "save.h"
#include "screen.h"
-#include "sound.h"
#include "subtask.h"
#include "ui.h"
+#include "affine.h"
+#include "fade.h"
extern u32 sub_08000E44(u32);
extern void sub_080A3B74(void);
@@ -72,15 +76,15 @@ Subtask KinstoneMenu_Type4;
Subtask KinstoneMenu_Type5;
// Belongs to subtask2.c
-const ScreenTransitionData gUnk_08128024[] = {
- { 1, { 0, 0, 0, 0 }, 0x98, 0xf8, 0, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE, 1, 12, 4, 0 },
- { 1, { 0, 0, 0, 0 }, 0xf8, 0xf8, 0, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, 12, 4, 0 },
- { 1, { 0, 0, 0, 0 }, 0x1e8, 0x1a8, 0, AREA_CLOUD_TOPS, ROOM_CLOUD_TOPS_CLOUD_TOPS, 1, 12, 4, 0 },
- { 1, { 0, 0, 0, 0 }, 0x278, 0x58, 0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, 12, 4, 0 },
- { 1, { 0, 0, 0, 0 }, 0xa8, 0x1b8, 0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, 12, 4, 0 },
- { 1, { 0, 0, 0, 0 }, 0x228, 0x398, 0, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, 12, 4, 0 },
- { 1, { 0, 0, 0, 0 }, 0x2c8, 0x128, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD, 1, 12, 4, 0 },
- { 1, { 0, 0, 0, 0 }, 0x128, 0x2a8, 0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, 12, 4, 0 },
+const Transition gUnk_08128024[] = {
+ { 1, 0, 0, 0x98, 0xf8, 0, AREA_MT_CRENEL, ROOM_MT_CRENEL_CAVERN_OF_FLAMES_ENTRANCE, 1, 12, 4, 0 },
+ { 1, 0, 0, 0xf8, 0xf8, 0, AREA_VEIL_FALLS, ROOM_VEIL_FALLS_MAIN, 1, 12, 4, 0 },
+ { 1, 0, 0, 0x1e8, 0x1a8, 0, AREA_CLOUD_TOPS, ROOM_CLOUD_TOPS_CLOUD_TOPS, 1, 12, 4, 0 },
+ { 1, 0, 0, 0x278, 0x58, 0, AREA_HYRULE_TOWN, ROOM_HYRULE_TOWN_MAIN, 1, 12, 4, 0 },
+ { 1, 0, 0, 0xa8, 0x1b8, 0, AREA_LAKE_HYLIA, ROOM_LAKE_HYLIA_MAIN, 1, 12, 4, 0 },
+ { 1, 0, 0, 0x228, 0x398, 0, AREA_CASTOR_WILDS, ROOM_CASTOR_WILDS_MAIN, 1, 12, 4, 0 },
+ { 1, 0, 0, 0x2c8, 0x128, 0, AREA_HYRULE_FIELD, ROOM_HYRULE_FIELD_SOUTH_HYRULE_FIELD, 1, 12, 4, 0 },
+ { 1, 0, 0, 0x128, 0x2a8, 0, AREA_MINISH_WOODS, ROOM_MINISH_WOODS_MAIN, 1, 12, 4, 0 },
};
u32 sub_080A3B48(void) {
diff --git a/src/menu/pauseMenu.c b/src/menu/pauseMenu.c
index 940ed787..413b93b9 100644
--- a/src/menu/pauseMenu.c
+++ b/src/menu/pauseMenu.c
@@ -7,7 +7,6 @@
#include "pauseMenu.h"
#include "common.h"
-#include "functions.h"
#include "game.h"
#include "item.h"
#include "itemMetaData.h"
@@ -18,9 +17,10 @@
#include "save.h"
#include "screen.h"
#include "sound.h"
-#include "structures.h"
#include "subtask.h"
#include "ui.h"
+#include "affine.h"
+#include "fade.h"
extern void sub_080A4DB8(u32);
@@ -28,6 +28,7 @@ void sub_080A5128(void);
void sub_080A51D4(void);
bool32 sub_080A51F4(void);
void sub_080A5F48(u32, u32);
+void sub_080A57F4(void);
void Subtask_PauseMenu(void) {
static Subtask* const pauseMenu_Variants[] = {
@@ -1073,7 +1074,7 @@ void PauseMenu_Screen_5(void) {
paletteColor = *gUnk_02017830;
MemCopy(gUnk_02017830 + 1, gUnk_02017830, 7 * 2);
gUnk_02017830[7] = paletteColor;
- gUsedPalettes |= 1 << 12;
+ USE_PALETTE(12);
}
}
diff --git a/src/menu/pauseMenuScreen6.c b/src/menu/pauseMenuScreen6.c
index e36ef549..cf74fc22 100644
--- a/src/menu/pauseMenuScreen6.c
+++ b/src/menu/pauseMenuScreen6.c
@@ -6,13 +6,13 @@
#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"
+#include "affine.h"
typedef struct {
u8 unk0;
diff --git a/src/message.c b/src/message.c
index 08bad90c..54ab722f 100644
--- a/src/message.c
+++ b/src/message.c
@@ -3,10 +3,10 @@
#include "asm.h"
#include "room.h"
#include "common.h"
-#include "functions.h"
#include "message.h"
#include "save.h"
#include "ui.h"
+#include "vram.h"
#define MESSAGE_ADVANCE_KEYS (A_BUTTON | B_BUTTON | DPAD_ANY | R_BUTTON)
#define MESSAGE_PRESS_ANY_ADVANCE_KEYS ((gInput.newKeys & MESSAGE_ADVANCE_KEYS) != 0)
@@ -34,9 +34,8 @@ enum {
extern void WriteBit(u32*, u32);
extern bool32 sub_0805EF40(Token* tok, const u8*);
extern void sub_0805F918(u32, u32, void*);
-extern u32 DecToHex(u32, u8*, u32);
+extern u32 EncodeBCD(u32);
-u32 sub_08056FEC(u32, u8*);
u32 GetCharacter(Token* tok);
extern void sub_0805EEB4(Token* tok, u32 textIdx);
u32 sub_0805F7DC(u32, WStruct*);
@@ -221,9 +220,9 @@ static u32 MsgIdle(void) {
return 0;
}
-extern u8 gUnk_020227DC, gUnk_020227E8, gUnk_020227F0, gUnk_020227F8, gUnk_02022800;
+extern u8 gUnk_020227DC, gUnk_020227F0, gUnk_020227F8, gUnk_02022800;
u8* const gUnk_08107BE0[] = {
- &gUnk_020227DC, &gUnk_020227E8, &gUnk_020227F0, &gUnk_020227F8, &gUnk_02022800,
+ &gUnk_020227DC, (void*)&gUnk_020227E8, &gUnk_020227F0, &gUnk_020227F8, &gUnk_02022800,
};
u32 MsgInit(void) {
@@ -813,7 +812,7 @@ static void DispCursor(void) {
}
static void DrawCanvasLine(void) {
- LoadResourceAsync(gTextGfxBuffer, 0x0600D040, sizeof(gTextGfxBuffer));
+ LoadResourceAsync(gTextGfxBuffer, BG_SCREEN_ADDR(26) + 0x40, sizeof(gTextGfxBuffer));
}
void sub_08056F88(u32 unk_1, u32 unk_2) {
@@ -830,37 +829,52 @@ void sub_08056F88(u32 unk_1, u32 unk_2) {
}
static void sub_08056FBC(TextRender* ctb) {
- sub_08056FEC(ctb->message.rupees, &ctb->_66[0x2]);
- sub_08056FEC(ctb->message.field_0x14, &ctb->_66[0xa]);
- sub_08056FEC(ctb->message.field_0x18, &ctb->_77[0x1]);
- sub_08056FEC(ctb->message.field_0x1c, &ctb->_77[0x9]);
-}
-
-u32 sub_08056FEC(u32 this, u8* param_2) {
- u32 uVar1;
- int iVar2;
- int iVar3;
- int iVar4;
- u8 local_1c[8];
-
- uVar1 = DecToHex(this, param_2, this);
- uVar1 = uVar1 & 0xfffffff;
- iVar4 = 0;
+ NumberToAscii(ctb->message.rupees, &ctb->_68);
+ NumberToAscii(ctb->message.field_0x14, &ctb->_70);
+ NumberToAscii(ctb->message.field_0x18, &ctb->_78);
+ NumberToAscii(ctb->message.field_0x1c, &ctb->_80);
+}
+
+/**
+ * convert number to ascii string
+ *
+ * @param number number to convert
+ * @param string output string buffer (at least 8 bytes in size)
+ * @return number of character written (NOT including null terminator)
+ */
+u32 NumberToAscii(u32 number, String8* string) {
+ int j;
+ int i;
+ int length;
+ u8 buffer[8];
+ char* const output = string->s;
+
+ number = EncodeBCD(number) & 0xfffffff;
+ length = 0;
do {
- local_1c[iVar4++] = uVar1 & 0xf;
- uVar1 = uVar1 / 16;
- } while (uVar1 != 0);
- for (iVar3 = 0, iVar2 = iVar4 - 1; iVar2 >= 0; iVar3++, iVar2--) {
- param_2[iVar3] = local_1c[iVar2] | 0x30;
- }
- param_2[iVar3] = 0;
- return iVar4;
-}
-
-void sub_08057044(u32 a1, struct_020227E8* a2, u32 a3) {
- u32 z[2];
- u32 tmp = sub_08056FEC(a1, (u8*)z);
- u32 first = z[0];
+ buffer[length++] = number & 0xf;
+ number = number >> 4;
+ } while (number != 0);
+ for (i = 0, j = length - 1; j >= 0; i++, j--) {
+ output[i] = buffer[j] | '0';
+ }
+ output[i] = '\0';
+ return length;
+}
+
+/**
+ * converts number to ascii string, padding to 3 characters with specified filler
+ * filler will break if not '0' of ' '
+ * filler should include no more than 3 characters and might break on small number with less
+ *
+ * @param number number to convert
+ * @param string output string buffer
+ * @param filler filler characters
+ */
+void NumberToAsciiPad3Digits(u32 number, String8* string, u32 filler) {
+ String8 z;
+ u32 tmp = NumberToAscii(number, &z);
+ u32 first = z.w[0];
first <<= 8 * (3 - tmp);
- a2->_0.WORD = first | a3;
+ string->w[0] = first | filler;
}
diff --git a/src/movement.c b/src/movement.c
index 3bd0d134..e6fd3ec8 100644
--- a/src/movement.c
+++ b/src/movement.c
@@ -8,7 +8,6 @@
#include "item.h"
#include "physics.h"
#include "transitions.h"
-#include "functions.h"
bool32 sub_080AF0C8(Entity*);
diff --git a/src/npc.c b/src/npc.c
index 1609e901..67f70a3d 100644
--- a/src/npc.c
+++ b/src/npc.c
@@ -2,6 +2,7 @@
#include "entity.h"
#include "room.h"
#include "npc.h"
+#include "flags.h"
extern u32 gUnk_020342F8;
diff --git a/src/npc/anju.c b/src/npc/anju.c
index 2e1b02bd..0670b221 100644
--- a/src/npc/anju.c
+++ b/src/npc/anju.c
@@ -7,6 +7,8 @@
#include "entity.h"
#include "npc.h"
#include "player.h"
+#include "script.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/beedle.c b/src/npc/beedle.c
index 0729e1cc..84afb434 100644
--- a/src/npc/beedle.c
+++ b/src/npc/beedle.c
@@ -5,7 +5,6 @@
* @brief Beedle NPC
*/
#include "entity.h"
-#include "functions.h"
#include "game.h"
#include "item.h"
#include "message.h"
diff --git a/src/npc/bigGoron.c b/src/npc/bigGoron.c
index 9a134cfe..0f3237cd 100644
--- a/src/npc/bigGoron.c
+++ b/src/npc/bigGoron.c
@@ -4,11 +4,20 @@
*
* @brief BigGoron NPC
*/
-#include "functions.h"
+#include "npc/bigGoron.h"
#include "hitbox.h"
#include "item.h"
+#include "message.h"
+#include "script.h"
#include "npc.h"
#include "screen.h"
+#include "effects.h"
+#include "save.h"
+#include "common.h"
+#include "sound.h"
+#include "asm.h"
+#include "physics.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c
index 58a0ed2c..ffdf7c41 100644
--- a/src/npc/bladeBrothers.c
+++ b/src/npc/bladeBrothers.c
@@ -6,7 +6,7 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "physics.h"
#include "game.h"
#include "item.h"
#include "message.h"
@@ -15,6 +15,9 @@
#include "room.h"
#include "save.h"
#include "script.h"
+#include "sound.h"
+#include "effects.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/brocco.c b/src/npc/brocco.c
index b4ab49e7..3f1c7379 100644
--- a/src/npc/brocco.c
+++ b/src/npc/brocco.c
@@ -7,7 +7,10 @@
#include "entity.h"
#include "message.h"
#include "npc.h"
+#include "physics.h"
#include "save.h"
+#include "script.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/carlov.c b/src/npc/carlov.c
index 07a9abb5..c95b4d69 100644
--- a/src/npc/carlov.c
+++ b/src/npc/carlov.c
@@ -8,6 +8,7 @@
#include "npc.h"
#include "room.h"
#include "sound.h"
+#include "script.h"
void Carlov(Entity* this) {
if (this->action == 0) {
diff --git a/src/npc/carpenter.c b/src/npc/carpenter.c
index 690f6c67..bc969bb5 100644
--- a/src/npc/carpenter.c
+++ b/src/npc/carpenter.c
@@ -8,6 +8,10 @@
#include "item.h"
#include "npc.h"
#include "player.h"
+#include "message.h"
+#include "flags.h"
+#include "script.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/castleMaid.c b/src/npc/castleMaid.c
index 2a47701a..a2de47c4 100644
--- a/src/npc/castleMaid.c
+++ b/src/npc/castleMaid.c
@@ -6,12 +6,13 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "manager.h"
#include "message.h"
#include "npc.h"
#include "save.h"
#include "script.h"
+#include "asm.h"
+#include "physics.h"
typedef struct {
Entity base;
diff --git a/src/npc/castorWildsStatue.c b/src/npc/castorWildsStatue.c
index 5043c0f0..175cb3c2 100644
--- a/src/npc/castorWildsStatue.c
+++ b/src/npc/castorWildsStatue.c
@@ -7,11 +7,17 @@
#include "effects.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "physics.h"
#include "npc.h"
#include "script.h"
#include "sound.h"
#include "tiles.h"
+#include "asm.h"
+#include "vram.h"
+#include "room.h"
+#include "player.h"
+#include "color.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
@@ -161,7 +167,7 @@ void sub_080675D4(Entity* this) {
ent->spriteRendering.b3 = this->spriteRendering.b3;
SortEntityAbove(this, ent);
}
- };
+ }
gUnk = gUnk_08110E8A;
for (i = 0; i < 4; i++, gUnk++) {
Entity* ent = CreateFx(this, FX_ROCK, 0);
@@ -174,7 +180,7 @@ void sub_080675D4(Entity* this) {
ent->spriteRendering.b3 = this->spriteRendering.b3;
SortEntityAbove(this, ent);
}
- };
+ }
if (this->subAction > 2) {
this->spriteSettings.draw = 0;
}
diff --git a/src/npc/cat.c b/src/npc/cat.c
index 9adf40f1..9815e8e1 100644
--- a/src/npc/cat.c
+++ b/src/npc/cat.c
@@ -5,11 +5,14 @@
* @brief Cat NPC
*/
#include "enemy.h"
+#include "sound.h"
#include "entity.h"
-#include "functions.h"
#include "message.h"
#include "npc.h"
#include "save.h"
+#include "physics.h"
+#include "manager.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/clothesRack.c b/src/npc/clothesRack.c
index ddf8903d..83f463db 100644
--- a/src/npc/clothesRack.c
+++ b/src/npc/clothesRack.c
@@ -6,6 +6,9 @@
*/
#include "npc.h"
#include "tiles.h"
+#include "room.h"
+#include "flags.h"
+#include "asm.h"
void sub_0806DD90(Entity*);
void sub_0806DEC8(Entity*);
diff --git a/src/npc/cow.c b/src/npc/cow.c
index 944d26b3..a43c8b9e 100644
--- a/src/npc/cow.c
+++ b/src/npc/cow.c
@@ -5,10 +5,12 @@
* @brief Cow NPC
*/
#include "entity.h"
-#include "functions.h"
+#include "message.h"
#include "npc.h"
#include "player.h"
#include "sound.h"
+#include "asm.h"
+#include "manager.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/cucco.c b/src/npc/cucco.c
index 54042add..e0be2aff 100644
--- a/src/npc/cucco.c
+++ b/src/npc/cucco.c
@@ -4,9 +4,12 @@
*
* @brief Cucco NPC
*/
-#include "functions.h"
+#include "message.h"
#include "kinstone.h"
#include "npc.h"
+#include "sound.h"
+#include "save.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/cuccoChick.c b/src/npc/cuccoChick.c
index adf6eaf4..75cf0ede 100644
--- a/src/npc/cuccoChick.c
+++ b/src/npc/cuccoChick.c
@@ -4,8 +4,11 @@
*
* @brief Cucco Chick NPC
*/
-#include "functions.h"
+#include "message.h"
#include "npc.h"
+#include "sound.h"
+#include "asm.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/dampe.c b/src/npc/dampe.c
index 62a39909..b8d66f5d 100644
--- a/src/npc/dampe.c
+++ b/src/npc/dampe.c
@@ -13,6 +13,8 @@
#include "player.h"
#include "room.h"
#include "tiles.h"
+#include "script.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/din.c b/src/npc/din.c
index 604c03bb..63d27d04 100644
--- a/src/npc/din.c
+++ b/src/npc/din.c
@@ -4,9 +4,12 @@
*
* @brief Din NPC
*/
-#include "entity.h"
-#include "kinstone.h"
#include "npc.h"
+#include "kinstone.h"
+#include "save.h"
+#include "script.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/dog.c b/src/npc/dog.c
index 628e56d8..b9a188f8 100644
--- a/src/npc/dog.c
+++ b/src/npc/dog.c
@@ -6,10 +6,17 @@
*/
#include "collision.h"
#include "entity.h"
-#include "functions.h"
#include "item.h"
#include "npc.h"
#include "tiles.h"
+#include "sound.h"
+#include "flags.h"
+#include "save.h"
+#include "message.h"
+#include "script.h"
+#include "asm.h"
+#include "physics.h"
+#include "manager.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/drLeft.c b/src/npc/drLeft.c
index c89760c5..5c22035d 100644
--- a/src/npc/drLeft.c
+++ b/src/npc/drLeft.c
@@ -4,9 +4,14 @@
*
* @brief Dr Left NPC
*/
-#include "functions.h"
+#include "physics.h"
#include "item.h"
+#include "message.h"
#include "npc.h"
+#include "flags.h"
+#include "save.h"
+#include "script.h"
+#include "asm.h"
void sub_0806BFD8(Entity* this);
diff --git a/src/npc/emma.c b/src/npc/emma.c
index 7ff05e23..7e7cdb3c 100644
--- a/src/npc/emma.c
+++ b/src/npc/emma.c
@@ -5,8 +5,8 @@
* @brief Emma NPC
*/
#include "entity.h"
-#include "functions.h"
#include "screenTransitions.h"
+#include "room.h"
#include "script.h"
void Emma(Entity* this) {
diff --git a/src/npc/epona.c b/src/npc/epona.c
index bec976fd..6cca50b8 100644
--- a/src/npc/epona.c
+++ b/src/npc/epona.c
@@ -5,10 +5,11 @@
* @brief Epona NPC
*/
#include "entity.h"
-#include "functions.h"
#include "message.h"
#include "npc.h"
#include "sound.h"
+#include "player.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/ezlo.c b/src/npc/ezlo.c
index c8012395..ba3532cd 100644
--- a/src/npc/ezlo.c
+++ b/src/npc/ezlo.c
@@ -5,6 +5,11 @@
* @brief Ezlo NPC
*/
#include "npc.h"
+#include "physics.h"
+#include "effects.h"
+#include "player.h"
+#include "script.h"
+#include "asm.h"
const u8 gUnk_08114134[];
const u8 gUnk_08114144[];
diff --git a/src/npc/farmers.c b/src/npc/farmers.c
index f98b8ef2..9d5a2806 100644
--- a/src/npc/farmers.c
+++ b/src/npc/farmers.c
@@ -5,7 +5,7 @@
* @brief Farmers NPC
*/
#include "entity.h"
-#include "functions.h"
+#include "message.h"
#include "npc.h"
#include "script.h"
diff --git a/src/npc/farore.c b/src/npc/farore.c
index ae08c094..c56a91ea 100644
--- a/src/npc/farore.c
+++ b/src/npc/farore.c
@@ -4,9 +4,13 @@
*
* @brief Farore NPC
*/
-#include "entity.h"
#include "npc.h"
#include "kinstone.h"
+#include "save.h"
+#include "player.h"
+#include "script.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/festari.c b/src/npc/festari.c
index 8a13f80a..992d514c 100644
--- a/src/npc/festari.c
+++ b/src/npc/festari.c
@@ -5,8 +5,10 @@
* @brief Festari NPC
*/
#include "entity.h"
-#include "functions.h"
#include "npc.h"
+#include "script.h"
+#include "player.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/forestMinish.c b/src/npc/forestMinish.c
index 7c602e2a..8a1013f4 100644
--- a/src/npc/forestMinish.c
+++ b/src/npc/forestMinish.c
@@ -4,13 +4,22 @@
*
* @brief Forest Minish NPC
*/
-#include "functions.h"
#include "item.h"
#include "kinstone.h"
#include "npc.h"
#include "object.h"
+#include "asm.h"
+#include "common.h"
+#include "flags.h"
+#include "effects.h"
+#include "physics.h"
+#include "player.h"
#include "playeritem.h"
+#include "save.h"
+#include "message.h"
+#include "script.h"
#include "structures.h"
+
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 fusionOffer;
@@ -715,7 +724,7 @@ void sub_08060318(void) {
for (i = 2; i >= 0; i--) {
ent = FindEntityByID(PLAYER_ITEM, PLAYER_ITEM_BOMB, 2);
if (ent != NULL) {
- CreateDust(ent);
+ CreateDeathFx(ent);
DeleteEntity(ent);
}
}
diff --git a/src/npc/gentari.c b/src/npc/gentari.c
index 968f71fc..91bd3d43 100644
--- a/src/npc/gentari.c
+++ b/src/npc/gentari.c
@@ -6,6 +6,9 @@
*/
#include "entity.h"
#include "npc.h"
+#include "script.h"
+#include "player.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/ghostBrothers.c b/src/npc/ghostBrothers.c
index 9282b35f..b1dd30a6 100644
--- a/src/npc/ghostBrothers.c
+++ b/src/npc/ghostBrothers.c
@@ -5,11 +5,13 @@
* @brief Ghost Brothers NPC
*/
#include "entity.h"
-#include "functions.h"
#include "message.h"
#include "npc.h"
#include "save.h"
+#include "script.h"
#include "screen.h"
+#include "beanstalkSubtask.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/gina.c b/src/npc/gina.c
index 0124c37e..11c8d10b 100644
--- a/src/npc/gina.c
+++ b/src/npc/gina.c
@@ -7,6 +7,11 @@
#include "entity.h"
#include "npc.h"
#include "player.h"
+#include "script.h"
+#include "physics.h"
+#if defined(USA) || defined(DEMO_USA)
+#include "flags.h"
+#endif
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/gorman.c b/src/npc/gorman.c
index 576ef99b..c1ea99d2 100644
--- a/src/npc/gorman.c
+++ b/src/npc/gorman.c
@@ -4,8 +4,13 @@
*
* @brief Gorman NPC
*/
-#include "functions.h"
+#include "player.h"
#include "npc.h"
+#include "asm.h"
+#include "message.h"
+#include "script.h"
+#include "flags.h"
+#include "room.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/goron.c b/src/npc/goron.c
index a67b0e5f..389eb043 100644
--- a/src/npc/goron.c
+++ b/src/npc/goron.c
@@ -6,10 +6,13 @@
*/
#include "effects.h"
#include "entity.h"
-#include "functions.h"
#include "kinstone.h"
#include "message.h"
+#include "script.h"
#include "npc.h"
+#include "common.h"
+#include "player.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/goronMerchant.c b/src/npc/goronMerchant.c
index c9bd4d73..005cbaf1 100644
--- a/src/npc/goronMerchant.c
+++ b/src/npc/goronMerchant.c
@@ -6,11 +6,13 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "manager.h"
#include "item.h"
#include "message.h"
#include "npc.h"
#include "save.h"
+#include "script.h"
+#include "physics.h"
static u32 GoronMerchant_GetSalePrice(Entity*);
diff --git a/src/npc/gregal.c b/src/npc/gregal.c
index f081280a..a6706d75 100644
--- a/src/npc/gregal.c
+++ b/src/npc/gregal.c
@@ -5,9 +5,11 @@
* @brief Gregal NPC
*/
#include "entity.h"
-#include "functions.h"
#include "npc.h"
#include "script.h"
+#include "player.h"
+#include "physics.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/guard.c b/src/npc/guard.c
index 760bb6b0..8acd58d6 100644
--- a/src/npc/guard.c
+++ b/src/npc/guard.c
@@ -6,13 +6,14 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "manager.h"
#include "message.h"
#include "npc.h"
#include "player.h"
#include "projectile.h"
#include "room.h"
#include "script.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/guardWithSpear.c b/src/npc/guardWithSpear.c
index e4821138..b3ebce26 100644
--- a/src/npc/guardWithSpear.c
+++ b/src/npc/guardWithSpear.c
@@ -5,12 +5,18 @@
* @brief Guard with Spear NPC
*/
#include "entity.h"
-#include "functions.h"
#include "item.h"
#include "npc.h"
#include "object.h"
+#include "asm.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
#include "player.h"
#include "script.h"
+#include "save.h"
+#include "message.h"
typedef struct {
/*0x00*/ Entity base;
@@ -132,7 +138,7 @@ void sub_08064198(GuardWithSpearEntity* this) {
ProcessMovement0(super);
if (sVar1 != super->y.HALF.HI) {
if (0x140 < gPlayerEntity.base.speed && gRoomTransition.frameCount % 6 == 0) {
- CreateDustSmall(super);
+ CreateDashFx(super);
}
this->unk_71 = 10;
animationState = super->animationState = GetAnimationStateForDirection8(super->direction);
@@ -154,7 +160,7 @@ void sub_08064198(GuardWithSpearEntity* this) {
sVar1 = super->z.HALF.HI;
super->z.HALF.HI = gPlayerEntity.base.z.HALF.HI;
if (sVar1 < 0 && gPlayerEntity.base.z.HALF.HI == 0) {
- CreateDustSmall(super);
+ CreateDashFx(super);
}
}
@@ -189,7 +195,7 @@ void sub_080642B8(GuardWithSpearEntity* this) {
ProcessMovement0(super);
if (sVar1 != super->x.HALF.HI) {
if (0x140 < gPlayerEntity.base.speed && gRoomTransition.frameCount % 6 == 0) {
- CreateDustSmall(super);
+ CreateDashFx(super);
}
this->unk_71 = 10;
animationState = super->animationState = GetAnimationStateForDirection8(super->direction);
@@ -211,7 +217,7 @@ void sub_080642B8(GuardWithSpearEntity* this) {
sVar1 = super->z.HALF.HI;
super->z.HALF.HI = gPlayerEntity.base.z.HALF.HI;
if (sVar1 < 0 && gPlayerEntity.base.z.HALF.HI == 0) {
- CreateDustSmall(super);
+ CreateDashFx(super);
}
}
diff --git a/src/npc/hurdyGurdyMan.c b/src/npc/hurdyGurdyMan.c
index eb271392..51600e21 100644
--- a/src/npc/hurdyGurdyMan.c
+++ b/src/npc/hurdyGurdyMan.c
@@ -5,9 +5,13 @@
* @brief Hurdy Gurdy Man NPC
*/
#include "entity.h"
-#include "functions.h"
+#include "message.h"
#include "npc.h"
#include "save.h"
+#include "script.h"
+#include "common.h"
+#include "asm.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/kid.c b/src/npc/kid.c
index 678ff84b..44f65647 100644
--- a/src/npc/kid.c
+++ b/src/npc/kid.c
@@ -4,10 +4,17 @@
*
* @brief Kid NPC
*/
-#include "functions.h"
#include "message.h"
#include "npc.h"
#include "tiles.h"
+#include "save.h"
+#include "common.h"
+#include "asm.h"
+#include "script.h"
+#include "manager.h"
+#include "structures.h"
+#include "physics.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/kingDaltus.c b/src/npc/kingDaltus.c
index 1840e24e..d4a52aee 100644
--- a/src/npc/kingDaltus.c
+++ b/src/npc/kingDaltus.c
@@ -5,10 +5,12 @@
* @brief King Daltus NPC
*/
#include "entity.h"
-#include "functions.h"
#include "item.h"
#include "npc.h"
#include "script.h"
+#include "message.h"
+#include "flags.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/kingGustaf.c b/src/npc/kingGustaf.c
index 48db93af..0a738bea 100644
--- a/src/npc/kingGustaf.c
+++ b/src/npc/kingGustaf.c
@@ -5,8 +5,8 @@
* @brief King Gustaf NPC
*/
#include "entity.h"
-#include "functions.h"
#include "screen.h"
+#include "script.h"
void KingGustaf(Entity* this) {
s32 speed;
diff --git a/src/npc/librari.c b/src/npc/librari.c
index 7e2a69ba..fc8db45a 100644
--- a/src/npc/librari.c
+++ b/src/npc/librari.c
@@ -7,6 +7,9 @@
#include "entity.h"
#include "item.h"
#include "npc.h"
+#include "flags.h"
+#include "message.h"
+#include "script.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/librarians.c b/src/npc/librarians.c
index e19c3cc4..d53d6387 100644
--- a/src/npc/librarians.c
+++ b/src/npc/librarians.c
@@ -6,7 +6,6 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "item.h"
#include "message.h"
#include "script.h"
diff --git a/src/npc/mailbox.c b/src/npc/mailbox.c
index 5eb4ea9d..7732485b 100644
--- a/src/npc/mailbox.c
+++ b/src/npc/mailbox.c
@@ -8,6 +8,7 @@
#include "entity.h"
#include "message.h"
#include "npc.h"
+#include "player.h"
void sub_08063280(Entity*);
void sub_08063210(Entity*);
diff --git a/src/npc/malon.c b/src/npc/malon.c
index add79ace..a2a8fc9c 100644
--- a/src/npc/malon.c
+++ b/src/npc/malon.c
@@ -7,6 +7,8 @@
#include "entity.h"
#include "npc.h"
#include "script.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/mama.c b/src/npc/mama.c
index fa20f7a2..e322a247 100644
--- a/src/npc/mama.c
+++ b/src/npc/mama.c
@@ -8,6 +8,8 @@
#include "npc.h"
#include "save.h"
#include "script.h"
+#include "message.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/marcy.c b/src/npc/marcy.c
index f7c56f54..a4d29146 100644
--- a/src/npc/marcy.c
+++ b/src/npc/marcy.c
@@ -6,7 +6,7 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "script.h"
#include "item.h"
#include "message.h"
diff --git a/src/npc/mayorHagen.c b/src/npc/mayorHagen.c
index 9f4aeb4c..d39943f4 100644
--- a/src/npc/mayorHagen.c
+++ b/src/npc/mayorHagen.c
@@ -9,6 +9,10 @@
#include "item.h"
#include "npc.h"
#include "player.h"
+#include "message.h"
+#include "save.h"
+#include "script.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/melari.c b/src/npc/melari.c
index 30c08445..e8d10481 100644
--- a/src/npc/melari.c
+++ b/src/npc/melari.c
@@ -6,6 +6,12 @@
*/
#include "item.h"
#include "npc.h"
+#include "physics.h"
+#include "effects.h"
+#include "sound.h"
+#include "script.h"
+#include "message.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/ministerPotho.c b/src/npc/ministerPotho.c
index 1532a424..fbcf9b8c 100644
--- a/src/npc/ministerPotho.c
+++ b/src/npc/ministerPotho.c
@@ -9,6 +9,8 @@
#include "item.h"
#include "message.h"
#include "npc.h"
+#include "script.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/moblinLady.c b/src/npc/moblinLady.c
index 1fa8d109..8ff54300 100644
--- a/src/npc/moblinLady.c
+++ b/src/npc/moblinLady.c
@@ -6,6 +6,7 @@
*/
#include "entity.h"
#include "npc.h"
+#include "script.h"
void MoblinLady(Entity* this) {
if (this->action == 0) {
diff --git a/src/npc/mountainMinish.c b/src/npc/mountainMinish.c
index 4bbf89b9..8f471cba 100644
--- a/src/npc/mountainMinish.c
+++ b/src/npc/mountainMinish.c
@@ -6,11 +6,14 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "physics.h"
#include "item.h"
#include "message.h"
#include "npc.h"
#include "script.h"
+#include "effects.h"
+#include "sound.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/mutoh.c b/src/npc/mutoh.c
index 5e09a1d0..407c6f16 100644
--- a/src/npc/mutoh.c
+++ b/src/npc/mutoh.c
@@ -11,6 +11,9 @@
#include "message.h"
#include "npc.h"
#include "player.h"
+#include "save.h"
+#include "physics.h"
+#include "script.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/nayru.c b/src/npc/nayru.c
index 5130dbf5..3b501723 100644
--- a/src/npc/nayru.c
+++ b/src/npc/nayru.c
@@ -4,9 +4,13 @@
*
* @brief Nayru NPC
*/
-#include "entity.h"
-#include "kinstone.h"
#include "npc.h"
+#include "kinstone.h"
+#include "save.h"
+#include "player.h"
+#include "script.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/npc23.c b/src/npc/npc23.c
index acda02d4..2ff8885a 100644
--- a/src/npc/npc23.c
+++ b/src/npc/npc23.c
@@ -5,11 +5,12 @@
* @brief NPC 23
*/
#include "entity.h"
-#include "functions.h"
#include "message.h"
#include "npc.h"
#include "player.h"
-#include "structures.h"
+#include "pauseMenu.h"
+#include "room.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/npc26.c b/src/npc/npc26.c
index b3b5860b..0a4f4107 100644
--- a/src/npc/npc26.c
+++ b/src/npc/npc26.c
@@ -6,6 +6,8 @@
*/
#include "entity.h"
#include "npc.h"
+#include "script.h"
+#include "player.h"
static void (*const gUnk_081106D4[])(Entity*);
static void (*const gUnk_081106E0[])(Entity*);
diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c
index 2fae4b91..25a831cc 100644
--- a/src/npc/npc4E.c
+++ b/src/npc/npc4E.c
@@ -6,17 +6,22 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "game.h"
#include "hitbox.h"
#include "item.h"
#include "kinstone.h"
#include "npc.h"
#include "object.h"
+#include "common.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "save.h"
#include "screenTransitions.h"
#include "sound.h"
#include "tiles.h"
+#include "scroll.h"
+#include "script.h"
typedef struct {
/*0x00*/ Entity base;
@@ -35,7 +40,7 @@ extern void script_MinishVillageObjectRightStoneOpening; // Cutscene data type?
const Hitbox gUnk_08114154;
const InteractCollisionData gNpc4ECollisionData[];
-const ScreenTransitionData* const gNpc4ETransitions[];
+const Transition* const gNpc4ETransitions[];
const u8 gNpc4ETransitionTypes[];
const u16 gUnk_081141F4[];
@@ -62,7 +67,7 @@ void NPC4E_ChangeInteractableHitbox(Entity* this, ScriptExecutionContext* contex
}
void NPC4E_DoScreenTransition(Entity* this, ScriptExecutionContext* context) {
- sub_0808091C(gNpc4ETransitions[context->intVariable], gNpc4ETransitionTypes[context->intVariable]);
+ DoExitTransitionWithType(gNpc4ETransitions[context->intVariable], gNpc4ETransitionTypes[context->intVariable]);
}
u8 NPC4E_GetKinstoneId(Entity* this) {
@@ -255,8 +260,8 @@ const InteractCollisionData gNpc4ECollisionData[] = { //
#endif
};
-// Array of pointers to ScreenTransitionData
-const ScreenTransitionData* const gNpc4ETransitions[] = { //
+// Array of pointers to Transition
+const Transition* const gNpc4ETransitions[] = { //
&gUnk_0813AB6C, &gUnk_0813ABBC, &gUnk_0813ABE4, &gUnk_0813ABF8, &gUnk_0813AC0C, &gUnk_0813AC20,
&gUnk_0813AC5C, &gUnk_0813AC70, &gUnk_0813AC84, &gUnk_0813AC98, &gUnk_0813ACAC, &gUnk_0813ACC0,
&gUnk_0813ACD4, &gUnk_0813ACE8, &gUnk_0813AC5C, &gUnk_0813ACFC
diff --git a/src/npc/npc4F.c b/src/npc/npc4F.c
index 3f9450a3..442f9868 100644
--- a/src/npc/npc4F.c
+++ b/src/npc/npc4F.c
@@ -5,6 +5,7 @@
* @brief NPC 4F
*/
#include "npc.h"
+#include "asm.h"
void NPC4F(Entity* this) {
if (this->action == 0) {
diff --git a/src/npc/npc5.c b/src/npc/npc5.c
index 27c865d6..e5219081 100644
--- a/src/npc/npc5.c
+++ b/src/npc/npc5.c
@@ -5,11 +5,17 @@
* @brief Unused Zelda follower NPC.
*/
#include "collision.h"
-#include "functions.h"
#include "hitbox.h"
#include "message.h"
#include "npc.h"
#include "tiles.h"
+#include "flags.h"
+#include "common.h"
+#include "physics.h"
+#include "asm.h"
+#include "room.h"
+#include "player.h"
+#include "map.h"
#define kFollowDistance 32 // distance to follow player
#define kPoiDistance 4 // point of interest distance
diff --git a/src/npc/npc9.c b/src/npc/npc9.c
index 99fcccb9..b8d04ce5 100644
--- a/src/npc/npc9.c
+++ b/src/npc/npc9.c
@@ -7,6 +7,7 @@
#include "entity.h"
#include "message.h"
#include "npc.h"
+#include "player.h"
void sub_08062AF0(Entity*);
void sub_08062B14(Entity*);
diff --git a/src/npc/percy.c b/src/npc/percy.c
index a3a04a44..5f4e660d 100644
--- a/src/npc/percy.c
+++ b/src/npc/percy.c
@@ -5,10 +5,17 @@
* @brief Percy NPC
*/
#include "entity.h"
-#include "functions.h"
#include "item.h"
#include "kinstone.h"
+#include "message.h"
#include "npc.h"
+#include "save.h"
+#include "script.h"
+#include "common.h"
+#include "asm.h"
+#include "effects.h"
+#include "flags.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/phonograph.c b/src/npc/phonograph.c
index f10677d2..241f2947 100644
--- a/src/npc/phonograph.c
+++ b/src/npc/phonograph.c
@@ -8,10 +8,10 @@
#include "entity.h"
#include "fileselect.h"
#include "flags.h"
-#include "functions.h"
#include "message.h"
#include "screen.h"
#include "script.h"
+#include "sound.h"
typedef struct {
/*0x00*/ Entity base;
@@ -205,14 +205,14 @@ const static Font gUnk_081146B8 = {
#ifdef EU
void sub_0806EABC(PhonographEntity* this) {
sub_08050384();
- sub_08057044(this->unk_68, gUnk_020227E8, 0x202020);
+ NumberToAsciiPad3Digits(this->unk_68, gUnk_020227E8, 0x202020);
ShowTextBox(0x3302, &gUnk_081146B8);
gScreen.bg0.updated = 1;
}
#else
void sub_0806EABC(Entity* this, u32 param) {
sub_08050384();
- sub_08057044(param, gUnk_020227E8, 0x202020);
+ NumberToAsciiPad3Digits(param, &gUnk_020227E8[0], 0x202020);
ShowTextBox(0x3302, &gUnk_081146B8);
gScreen.bg0.updated = 1;
}
diff --git a/src/npc/picolyteBottle.c b/src/npc/picolyteBottle.c
index c384b53b..16170a02 100644
--- a/src/npc/picolyteBottle.c
+++ b/src/npc/picolyteBottle.c
@@ -5,15 +5,19 @@
* @brief Picolyte Bottle NPC
*/
#include "entity.h"
-#include "functions.h"
#include "hitbox.h"
#include "kinstone.h"
#include "message.h"
#include "npc.h"
#include "object.h"
+#include "asm.h"
+#include "common.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "screenTransitions.h"
#include "script.h"
-#include "structures.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/pina.c b/src/npc/pina.c
index 26692def..592c4246 100644
--- a/src/npc/pina.c
+++ b/src/npc/pina.c
@@ -5,11 +5,14 @@
* @brief Pina NPC
*/
#include "entity.h"
-#include "functions.h"
#include "message.h"
#include "npc.h"
#include "object.h"
+#include "asm.h"
+#include "physics.h"
+#include "player.h"
#include "save.h"
+#include "script.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/pita.c b/src/npc/pita.c
index 804a0e38..3cfd55de 100644
--- a/src/npc/pita.c
+++ b/src/npc/pita.c
@@ -6,6 +6,11 @@
*/
#include "item.h"
#include "npc.h"
+#include "message.h"
+#include "flags.h"
+#include "script.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/postman.c b/src/npc/postman.c
index 05f0d906..98678a3a 100644
--- a/src/npc/postman.c
+++ b/src/npc/postman.c
@@ -5,10 +5,14 @@
* @brief Postman NPC
*/
#include "entity.h"
-#include "functions.h"
#include "npc.h"
#include "sound.h"
-#include "structures.h"
+#include "effects.h"
+#include "save.h"
+#include "script.h"
+#include "asm.h"
+#include "message.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/rem.c b/src/npc/rem.c
index d921f196..739efcbd 100644
--- a/src/npc/rem.c
+++ b/src/npc/rem.c
@@ -4,9 +4,15 @@
*
* @brief Rem NPC
*/
-#include "functions.h"
+#include "physics.h"
#include "item.h"
#include "npc.h"
+#include "flags.h"
+#include "sound.h"
+#include "message.h"
+#include "script.h"
+#include "asm.h"
+#include "room.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/simon.c b/src/npc/simon.c
index 480897ee..783aeb31 100644
--- a/src/npc/simon.c
+++ b/src/npc/simon.c
@@ -6,14 +6,14 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "object.h"
+#include "effects.h"
#include "room.h"
-#include "screen.h"
#include "screenTransitions.h"
#include "script.h"
#include "sound.h"
#include "tiles.h"
+#include "fade.h"
typedef struct {
u8 filler[4];
diff --git a/src/npc/sittingPerson.c b/src/npc/sittingPerson.c
index c3da1060..b5eea94f 100644
--- a/src/npc/sittingPerson.c
+++ b/src/npc/sittingPerson.c
@@ -5,7 +5,13 @@
* @brief Sitting Person NPC
*/
#include "npc.h"
-#include "functions.h"
+#include "save.h"
+#include "flags.h"
+#include "asm.h"
+#include "message.h"
+#include "script.h"
+#include "physics.h"
+#include "structures.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/smallTownMinish.c b/src/npc/smallTownMinish.c
index bada8800..2acf353e 100644
--- a/src/npc/smallTownMinish.c
+++ b/src/npc/smallTownMinish.c
@@ -5,8 +5,8 @@
* @brief Small Town Minish NPC
*/
#include "entity.h"
-#include "functions.h"
#include "item.h"
+#include "message.h"
#include "npc.h"
#include "player.h"
#include "save.h"
diff --git a/src/npc/smith.c b/src/npc/smith.c
index 2210dede..f1b6f2f7 100644
--- a/src/npc/smith.c
+++ b/src/npc/smith.c
@@ -4,8 +4,15 @@
*
* @brief Smith NPC
*/
-#include "functions.h"
+#include "physics.h"
#include "npc.h"
+#include "sound.h"
+#include "save.h"
+#include "flags.h"
+#include "effects.h"
+#include "message.h"
+#include "script.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/stamp.c b/src/npc/stamp.c
index 8051fe44..ef6c99c0 100644
--- a/src/npc/stamp.c
+++ b/src/npc/stamp.c
@@ -6,10 +6,12 @@
*/
#include "effects.h"
#include "entity.h"
-#include "functions.h"
#include "kinstone.h"
#include "message.h"
#include "npc.h"
+#include "common.h"
+#include "script.h"
+#include "player.h"
void sub_08062CA4(Entity*);
void sub_08062BD4(Entity*);
diff --git a/src/npc/stockwell.c b/src/npc/stockwell.c
index d1971904..253f53e2 100644
--- a/src/npc/stockwell.c
+++ b/src/npc/stockwell.c
@@ -5,14 +5,20 @@
* @brief Stockwell NPC
*/
#include "entity.h"
-#include "functions.h"
#include "game.h"
#include "item.h"
#include "message.h"
#include "npc.h"
#include "object.h"
+#include "asm.h"
+#include "flags.h"
+#include "player.h"
#include "room.h"
#include "script.h"
+#include "save.h"
+#include "subtask.h"
+#ifndef EU
+#endif
#ifndef EU
static const Rect gUnk_0810FDA0 = { 0, 8, 10, 16 };
diff --git a/src/npc/sturgeon.c b/src/npc/sturgeon.c
index b48d2ec6..c6e51c21 100644
--- a/src/npc/sturgeon.c
+++ b/src/npc/sturgeon.c
@@ -5,10 +5,16 @@
* @brief Sturgeon NPC
*/
#include "entity.h"
-#include "functions.h"
#include "item.h"
#include "npc.h"
#include "object.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
+#include "message.h"
+#include "script.h"
typedef struct {
/*0x00*/ Entity base;
@@ -148,7 +154,7 @@ void Sturgeon_Head(Entity* this) {
void sub_08064C9C(Entity* this) {
if ((this->timer != 0) && ((gRoomTransition.frameCount & 3U) == 0)) {
- CreateDust(this);
+ CreateDeathFx(this);
}
}
diff --git a/src/npc/syrup.c b/src/npc/syrup.c
index 60083964..7609ffe1 100644
--- a/src/npc/syrup.c
+++ b/src/npc/syrup.c
@@ -4,9 +4,13 @@
*
* @brief Syrup NPC
*/
-#include "functions.h"
+#include "script.h"
#include "npc.h"
#include "object.h"
+#include "asm.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/talon.c b/src/npc/talon.c
index ddcd1977..c0558722 100644
--- a/src/npc/talon.c
+++ b/src/npc/talon.c
@@ -4,9 +4,12 @@
*
* @brief Talon NPC
*/
-#include "functions.h"
+#include "physics.h"
#include "item.h"
#include "npc.h"
+#include "script.h"
+#include "message.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/teachers.c b/src/npc/teachers.c
index 89953855..605ae639 100644
--- a/src/npc/teachers.c
+++ b/src/npc/teachers.c
@@ -9,6 +9,8 @@
#include "player.h"
#include "save.h"
#include "script.h"
+#include "message.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/tingleSiblings.c b/src/npc/tingleSiblings.c
index 75abc4db..3dc599be 100644
--- a/src/npc/tingleSiblings.c
+++ b/src/npc/tingleSiblings.c
@@ -5,10 +5,17 @@
* @brief Tingle Siblings NPC
*/
#include "entity.h"
-#include "functions.h"
#include "item.h"
#include "kinstone.h"
#include "npc.h"
+#include "flags.h"
+#include "save.h"
+#include "effects.h"
+#include "common.h"
+#include "message.h"
+#include "script.h"
+#include "asm.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/townMinish.c b/src/npc/townMinish.c
index b0f3fc68..40f49234 100644
--- a/src/npc/townMinish.c
+++ b/src/npc/townMinish.c
@@ -6,10 +6,14 @@
*/
#include "asm.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
#include "item.h"
#include "npc.h"
#include "tiles.h"
+#include "flags.h"
+#include "message.h"
+#include "save.h"
+#include "script.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/townsperson.c b/src/npc/townsperson.c
index 8f8b34f1..1501b175 100644
--- a/src/npc/townsperson.c
+++ b/src/npc/townsperson.c
@@ -4,9 +4,16 @@
*
* @brief Townsperson NPC
*/
-#include "functions.h"
#include "item.h"
#include "npc.h"
+#include "save.h"
+#include "script.h"
+#include "flags.h"
+#include "effects.h"
+#include "asm.h"
+#include "message.h"
+#include "manager.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/vaati.c b/src/npc/vaati.c
index d272f3d8..7b9017e0 100644
--- a/src/npc/vaati.c
+++ b/src/npc/vaati.c
@@ -5,9 +5,9 @@
* @brief Vaati NPC
*/
#include "entity.h"
-#include "functions.h"
#include "script.h"
#include "sound.h"
+#include "room.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/vaatiReborn.c b/src/npc/vaatiReborn.c
index 82c349be..a699702c 100644
--- a/src/npc/vaatiReborn.c
+++ b/src/npc/vaatiReborn.c
@@ -4,8 +4,12 @@
*
* @brief Vaati Reborn NPC
*/
-#include "functions.h"
#include "npc.h"
+#include "color.h"
+#include "sound.h"
+#include "flags.h"
+#include "message.h"
+#include "physics.h"
void VaatiRebornAction0(Entity* this);
void VaatiRebornAction1(Entity* this);
diff --git a/src/npc/wheaton.c b/src/npc/wheaton.c
index 41eb8ac9..38b2585b 100644
--- a/src/npc/wheaton.c
+++ b/src/npc/wheaton.c
@@ -5,6 +5,8 @@
* @brief Wheaton NPC
*/
#include "npc.h"
+#include "physics.h"
+#include "script.h"
void Wheaton(Entity* this) {
static const Hitbox gUnk_0810C3C0 = { 0, 4, { 0, 0, 0, 0 }, 6, 12 };
diff --git a/src/npc/windTribespeople.c b/src/npc/windTribespeople.c
index 521e850b..dfa257a3 100644
--- a/src/npc/windTribespeople.c
+++ b/src/npc/windTribespeople.c
@@ -7,6 +7,11 @@
#include "entity.h"
#include "npc.h"
#include "sound.h"
+#include "script.h"
+#include "message.h"
+#include "flags.h"
+#include "save.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/npc/zelda.c b/src/npc/zelda.c
index e740296f..f5a93fa3 100644
--- a/src/npc/zelda.c
+++ b/src/npc/zelda.c
@@ -7,10 +7,15 @@
#include "npc/zelda.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "script.h"
+#include "physics.h"
#include "npc.h"
#include "sound.h"
#include "tiles.h"
+#include "asm.h"
+#include "room.h"
+#include "player.h"
+#include "map.h"
void ZeldaFollower_Hide(Entity*, Entity*);
void ZeldaFollower_Show(Entity*, Entity*);
diff --git a/src/npc/zeldaFollower.c b/src/npc/zeldaFollower.c
index 3e372423..28ce780f 100644
--- a/src/npc/zeldaFollower.c
+++ b/src/npc/zeldaFollower.c
@@ -7,7 +7,9 @@
#include "npc/zelda.h"
#include "common.h"
#include "entity.h"
-#include "functions.h"
+#include "asm.h"
+#include "physics.h"
+#include "player.h"
extern s32 sub_080041E8(s32 x1, s32 y1, s32 x2, s32 y2);
diff --git a/src/npcDefinitions.c b/src/npcDefinitions.c
index b6db7f31..7bc178a2 100644
--- a/src/npcDefinitions.c
+++ b/src/npcDefinitions.c
@@ -1,4 +1,3 @@
-#include "entity.h"
#include "definitions.h"
// TODO deduplicate using sprite indices enum
diff --git a/src/npcUtils.c b/src/npcUtils.c
index 6866991c..d4fd6839 100644
--- a/src/npcUtils.c
+++ b/src/npcUtils.c
@@ -1,12 +1,17 @@
#include "global.h"
#include "asm.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
#include "definitions.h"
#include "save.h"
+#include "message.h"
#include "npc.h"
#include "kinstone.h"
#include "hitbox.h"
+#include "flags.h"
+#include "common.h"
+#include "vram.h"
+#include "color.h"
extern const NPCDefinition gNPCDefinitions[];
diff --git a/src/object.c b/src/object.c
index 4f61cd10..6377e410 100644
--- a/src/object.c
+++ b/src/object.c
@@ -198,8 +198,6 @@ void (*const gObjectFunctions[])(Entity*) = {
[LINK_ANIMATION] = LinkAnimation,
};
-void ObjectInit(Entity*);
-
void ObjectUpdate(Entity* this) {
if ((this->flags & ENT_DID_INIT) == 0 && this->action == 0)
ObjectInit(this);
diff --git a/src/object/ambientClouds.c b/src/object/ambientClouds.c
index 7e885373..cd607cbc 100644
--- a/src/object/ambientClouds.c
+++ b/src/object/ambientClouds.c
@@ -7,8 +7,10 @@
#include "asm.h"
#include "effects.h"
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "player.h"
+#include "script.h"
+#include "color.h"
void AmbientClouds_Init(Entity* this);
void AmbientClouds_Action1(Entity* this);
diff --git a/src/object/backgroundCloud.c b/src/object/backgroundCloud.c
index 0c150823..53d29d75 100644
--- a/src/object/backgroundCloud.c
+++ b/src/object/backgroundCloud.c
@@ -5,6 +5,9 @@
* @brief BackgroundCloud object
*/
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/bakerOven.c b/src/object/bakerOven.c
index 1add5b41..3dce7457 100644
--- a/src/object/bakerOven.c
+++ b/src/object/bakerOven.c
@@ -4,8 +4,12 @@
*
* @brief Baker Oven object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
diff --git a/src/object/barrelSpiderweb.c b/src/object/barrelSpiderweb.c
index 69a1ea77..dd694bc3 100644
--- a/src/object/barrelSpiderweb.c
+++ b/src/object/barrelSpiderweb.c
@@ -4,9 +4,17 @@
*
* @brief Barrel Spiderweb object
*/
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "common.h"
+
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
+
+#include "player.h"
void BarrelSpiderweb_Init(Entity*);
void BarrelSpiderweb_Action1(Entity*);
diff --git a/src/object/beanstalk.c b/src/object/beanstalk.c
index e445d415..b0815ad0 100644
--- a/src/object/beanstalk.c
+++ b/src/object/beanstalk.c
@@ -4,9 +4,15 @@
*
* @brief Beanstalk object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
#include "tiles.h"
+#include "vram.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/bedCover.c b/src/object/bedCover.c
index a24189f5..10697f49 100644
--- a/src/object/bedCover.c
+++ b/src/object/bedCover.c
@@ -4,7 +4,7 @@
*
* @brief Bed Cover object
*/
-#include "functions.h"
+#include "script.h"
#include "object.h"
typedef struct {
diff --git a/src/object/bench.c b/src/object/bench.c
index 2b72fc56..8ca49a3c 100644
--- a/src/object/bench.c
+++ b/src/object/bench.c
@@ -6,9 +6,8 @@
*/
#include "asm.h"
#include "entity.h"
-#include "functions.h"
+#include "room.h"
#include "player.h"
-#include "sound.h"
typedef struct {
Entity base;
diff --git a/src/object/bigBarrel.c b/src/object/bigBarrel.c
index 74f13c50..4f7f99ee 100644
--- a/src/object/bigBarrel.c
+++ b/src/object/bigBarrel.c
@@ -10,9 +10,9 @@
#include "flags.h"
#include "map.h"
#include "object.h"
+#include "sound.h"
#include "room.h"
#include "save.h"
-#include "sound.h"
#include "tiles.h"
typedef struct {
diff --git a/src/object/bigIceBlock.c b/src/object/bigIceBlock.c
index dd204c78..543f323f 100644
--- a/src/object/bigIceBlock.c
+++ b/src/object/bigIceBlock.c
@@ -8,6 +8,13 @@
#include "hitbox.h"
#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
@@ -16,7 +23,7 @@ typedef struct {
/*0x6c*/ u16 unk_6c;
/*0x6e*/ u16 unk_6e;
/*0x70*/ u8 unk_70[0x16];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} BigIceBlockEntity;
extern void (*const BigIceBlock_Actions[])(BigIceBlockEntity*);
@@ -40,7 +47,7 @@ void BigIceBlock(BigIceBlockEntity* this) {
void BigIceBlock_Init(BigIceBlockEntity* this) {
Entity* obj;
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
DeleteThisEntity();
}
super->action = 1;
@@ -88,9 +95,9 @@ void BigIceBlock_Action2(BigIceBlockEntity* this) {
SetAffineInfo(super, 0x100, tmp, 0);
if (super->type != 1) {
if (super->type != 2) {
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
} else {
- CreateGroundItemWithFlags(super, ITEM_SMALL_KEY, 0, this->unk_86);
+ CreateGroundItemWithFlags(super, ITEM_SMALL_KEY, 0, this->flag);
}
}
super->action = 3;
diff --git a/src/object/bigPushableLever.c b/src/object/bigPushableLever.c
index e7efcd56..1a01f69b 100644
--- a/src/object/bigPushableLever.c
+++ b/src/object/bigPushableLever.c
@@ -4,8 +4,12 @@
*
* @brief Big Pushable Lever object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
diff --git a/src/object/bigVortex.c b/src/object/bigVortex.c
index 91b510b9..ded88e94 100644
--- a/src/object/bigVortex.c
+++ b/src/object/bigVortex.c
@@ -6,13 +6,16 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "object.h"
+#include "effects.h"
+#include "physics.h"
+#include "player.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unused1[30];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} BigVortexEntity;
void sub_08098E3C(Entity*);
@@ -39,7 +42,7 @@ void BigVortex_Init(BigVortexEntity* this) {
super->action = 1;
super->z.HALF.HI = -0x10;
- temp = this->unk_86;
+ temp = this->flag;
if ((temp != 0) && !CheckFlags(temp)) {
super->action = 1;
@@ -55,7 +58,7 @@ void BigVortex_Init(BigVortexEntity* this) {
void BigVortex_Action1(BigVortexEntity* this) {
Entity* fx;
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
super->action = 2;
super->timer = 45;
fx = CreateFx(super, FX_BIG_EXPLOSION2, 0);
diff --git a/src/object/bird.c b/src/object/bird.c
index 638d2c52..083f9322 100644
--- a/src/object/bird.c
+++ b/src/object/bird.c
@@ -5,13 +5,21 @@
* @brief Bird object
*/
#include "collision.h"
-#include "functions.h"
#include "game.h"
#include "item.h"
#include "message.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "object/cutsceneOrchestrator.h"
#include "save.h"
+#include "subtask.h"
+#include "pauseMenu.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/blockPushed.c b/src/object/blockPushed.c
index 85f45ce9..72b4a0a0 100644
--- a/src/object/blockPushed.c
+++ b/src/object/blockPushed.c
@@ -5,9 +5,14 @@
* @brief Block Pushed object
*/
#include "area.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
+#include "vram.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/board.c b/src/object/board.c
index a05b42e4..ab757067 100644
--- a/src/object/board.c
+++ b/src/object/board.c
@@ -6,7 +6,6 @@
*/
#include "asm.h"
#include "entity.h"
-#include "functions.h"
#include "player.h"
#include "room.h"
#include "tiles.h"
diff --git a/src/object/bollard.c b/src/object/bollard.c
index 43286546..16dd4959 100644
--- a/src/object/bollard.c
+++ b/src/object/bollard.c
@@ -7,7 +7,6 @@
#include "asm.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "room.h"
#include "sound.h"
#include "tiles.h"
diff --git a/src/object/book.c b/src/object/book.c
index a031da2d..ef4610a1 100644
--- a/src/object/book.c
+++ b/src/object/book.c
@@ -5,18 +5,24 @@
* @brief Book object
*/
#include "collision.h"
-#include "functions.h"
#include "item.h"
#include "message.h"
#include "npc.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unused1[24];
/*0x80*/ u8 unk_80;
/*0x81*/ u8 unused2[5];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} BookEntity;
extern void (*const Book_Actions[])(BookEntity*);
@@ -46,7 +52,7 @@ void Book_Init(BookEntity* this) {
}
super->spriteOffsetY = 3;
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
if (super->type2 == 0) {
super->y.HALF.HI += 48;
}
@@ -145,7 +151,7 @@ void Book_Action3(BookEntity* this) {
super->action = 4;
super->spritePriority.b0 = 4;
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
fx = CreateFx(super, FX_DEATH, 0);
if (fx != NULL) {
diff --git a/src/object/bossDoor.c b/src/object/bossDoor.c
index fab846b9..91324598 100644
--- a/src/object/bossDoor.c
+++ b/src/object/bossDoor.c
@@ -4,10 +4,18 @@
*
* @brief Boss Door object
*/
-#include "functions.h"
+#include "object/lockedDoor.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
+#include "common.h"
typedef struct {
/*0x00*/ Entity base;
@@ -20,8 +28,8 @@ typedef struct {
/*0x7a*/ u16 unk_7a;
/*0x7c*/ u16 unk_7c;
/*0x7e*/ u8 unk_7e[6];
- /*0x84*/ u16 unk_84;
- /*0x86*/ u16 unk_86;
+ /*0x84*/ u16 flags2;
+ /*0x86*/ u16 flag;
} BossDoorEntity;
extern bool32 gUnk_02036BB8;
@@ -47,10 +55,10 @@ void BossDoor(BossDoorEntity* this) {
}
void BossDoor_Init(BossDoorEntity* this) {
- if ((this->unk_84 != 0xffff) && CheckFlags(this->unk_84)) {
+ if ((this->flags2 != 0xffff) && CheckFlags(this->flags2)) {
DeleteThisEntity();
}
- if ((this->unk_86 != BEGIN) && CheckFlags(this->unk_86)) {
+ if ((this->flag != BEGIN) && CheckFlags(this->flag)) {
DeleteThisEntity();
}
super->type2 = super->type >> 2;
@@ -86,7 +94,7 @@ void BossDoor_Action1(BossDoorEntity* this) {
if (super->interactType != INTERACTION_NONE) {
super->action = 2;
RemoveInteractableObject(super);
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
}
}
@@ -155,7 +163,7 @@ void BossDoor_Action5(BossDoorEntity* this) {
}
void BossDoor_Action6(BossDoorEntity* this) {
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
super->action = 2;
}
}
diff --git a/src/object/bush.c b/src/object/bush.c
index a83a2aec..fb142371 100644
--- a/src/object/bush.c
+++ b/src/object/bush.c
@@ -4,9 +4,12 @@
*
* @brief Bush object
*/
-#include "functions.h"
-#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
diff --git a/src/object/button.c b/src/object/button.c
index d72e176f..a2967cac 100644
--- a/src/object/button.c
+++ b/src/object/button.c
@@ -4,9 +4,15 @@
*
* @brief Button object
*/
-#include "functions.h"
#include "tiles.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "player.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
@@ -16,7 +22,7 @@ typedef struct {
/*0x74*/ u16 tilePos;
/*0x76*/ u8 unused2[14];
/*0x84*/ u16 unk_84;
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} ButtonEntity;
void Button_Init(ButtonEntity* this);
@@ -45,7 +51,7 @@ void Button_Init(ButtonEntity* this) {
this->tilePos = (((super->x.HALF.HI - gRoomControls.origin_x) >> 4) & 0x3F) |
((((super->y.HALF.HI - gRoomControls.origin_y) >> 4) & 0x3F) << 6);
this->unk_72 = GetTileTypeAtTilePos(this->tilePos, super->collisionLayer);
- if (super->type == 0 && CheckFlags(this->unk_86)) {
+ if (super->type == 0 && CheckFlags(this->flag)) {
super->action = 5;
SetTileType(TILE_TYPE_122, this->tilePos, super->collisionLayer);
} else {
@@ -114,7 +120,7 @@ void Button_Action4(ButtonEntity* this) {
}
} else {
super->action = 2;
- ClearFlag(this->unk_86);
+ ClearFlag(this->flag);
SetTileType(TILE_TYPE_119, this->tilePos, super->collisionLayer);
SoundReq(SFX_BUTTON_PRESS);
}
@@ -276,7 +282,7 @@ bool32 sub_08081F7C(ButtonEntity* this, u32 tileType) {
super->child->spriteOffsetY = -4;
} else {
if (super->timer == 6) {
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
SetTileType(tileType, this->tilePos, super->collisionLayer);
sub_08081F24(super);
SoundReq(SFX_BUTTON_PRESS);
diff --git a/src/object/cameraTarget.c b/src/object/cameraTarget.c
index f327c414..f025fea8 100644
--- a/src/object/cameraTarget.c
+++ b/src/object/cameraTarget.c
@@ -6,9 +6,10 @@
*/
#include "common.h"
#include "entity.h"
-#include "functions.h"
+#include "player.h"
#include "kinstone.h"
#include "message.h"
+#include "vram.h"
// typedef struct {
// Entity base;
diff --git a/src/object/carlovObject.c b/src/object/carlovObject.c
index 23873a92..00536c0b 100644
--- a/src/object/carlovObject.c
+++ b/src/object/carlovObject.c
@@ -4,8 +4,15 @@
*
* @brief Carlov Object object
*/
-#include "functions.h"
+#include "object/lockedDoor.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
@@ -168,7 +175,7 @@ void CarlovObject_Type2Init(CarlovObjectEntity* this) {
super->frameIndex = 1;
}
}
- CreateDust(super);
+ CreateDeathFx(super);
}
void CarlovObject_Type2Action1(CarlovObjectEntity* this) {
diff --git a/src/object/chestSpawner.c b/src/object/chestSpawner.c
index 7ea08cda..5c454666 100644
--- a/src/object/chestSpawner.c
+++ b/src/object/chestSpawner.c
@@ -4,12 +4,20 @@
*
* @brief Chest Spawner object
*/
-#include "functions.h"
#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "player.h"
#include "screen.h"
-#include "structures.h"
+#include "script.h"
#include "tiles.h"
+#include "manager/lightManager.h"
+#include "pauseMenu.h"
+#include "beanstalkSubtask.h"
typedef struct {
/*0x00*/ Entity base;
@@ -17,7 +25,7 @@ typedef struct {
/*0x70*/ u16 tilePos;
/*0x72*/ u16 unk_72;
/*0x74*/ u8 unk_74[0x12];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} ChestSpawnerEntity;
extern const Hitbox gUnk_0811F8A8;
@@ -84,7 +92,7 @@ void ChestSpawner_Type2Init(ChestSpawnerEntity* this) {
sub_080842D8(this);
InitializeAnimation(super, 1);
} else {
- if (CheckFlags(this->unk_86) || super->type == 4) {
+ if (CheckFlags(this->flag) || super->type == 4) {
sub_08083E20(this);
} else {
super->action = 1;
@@ -94,7 +102,7 @@ void ChestSpawner_Type2Init(ChestSpawnerEntity* this) {
}
void ChestSpawner_Type2Action1(ChestSpawnerEntity* this) {
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
gScreen.controls.layerFXControl = 0xf40;
gScreen.controls.alphaBlend = 0x1000;
gPauseMenuOptions.disabled = 1;
@@ -104,7 +112,7 @@ void ChestSpawner_Type2Action1(ChestSpawnerEntity* this) {
super->spriteSettings.draw = 1;
super->spriteRendering.alphaBlend = 1;
RequestPriorityDuration(super, 30);
- sub_0805BC4C();
+ UnDarkRoom();
}
}
@@ -130,7 +138,7 @@ void ChestSpawner_Type2Action2(ChestSpawnerEntity* this) {
break;
default:
sub_0800445C(super);
- CreateMagicSparkles(super->x.HALF.HI, super->y.HALF.HI, 2);
+ CreateMagicSparklesFxAt(super->x.HALF.HI, super->y.HALF.HI, 2);
if (--super->timer == 0) {
super->timer = 8;
tmp = ++super->subtimer;
@@ -235,7 +243,7 @@ void ChestSpawner_Type0Init(ChestSpawnerEntity* this) {
if (GetTileTypeAtEntity(super) == TILE_TYPE_116) {
DeleteThisEntity();
}
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
super->action = 3;
sub_0807B7D8(0x73, this->tilePos, super->collisionLayer);
if ((super->type & 1) == 0) {
@@ -245,7 +253,7 @@ void ChestSpawner_Type0Init(ChestSpawnerEntity* this) {
}
void ChestSpawner_Type0Action1(ChestSpawnerEntity* this) {
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
super->action = 2;
}
}
@@ -259,7 +267,7 @@ void ChestSpawner_Type0Action2(ChestSpawnerEntity* this) {
break;
default:
SoundReq(SFX_SECRET);
- CreateDust(super);
+ CreateDeathFx(super);
break;
}
super->action = 3;
@@ -274,13 +282,13 @@ void ChestSpawner_Type0Action3(ChestSpawnerEntity* this) {
if (GetTileTypeAtEntity(super) == TILE_TYPE_116) {
DeleteEntity(super);
} else {
- if (!CheckFlags(this->unk_86)) {
+ if (!CheckFlags(this->flag)) {
if (this->unk_72 != 0) {
this->unk_72--;
} else {
super->action = 1;
RestorePrevTileEntity(this->tilePos, super->collisionLayer);
- CreateDust(super);
+ CreateDeathFx(super);
}
}
}
diff --git a/src/object/chuchuBossCutscene.c b/src/object/chuchuBossCutscene.c
index 9c1287f2..59d02100 100644
--- a/src/object/chuchuBossCutscene.c
+++ b/src/object/chuchuBossCutscene.c
@@ -4,9 +4,12 @@
*
* @brief Chuchu Boss Cutscene object
*/
-#include "functions.h"
#include "menu.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "room.h"
+#include "physics.h"
void ChuchuBossCutscene_Init(Entity*);
void ChuchuBossCutscene_Action1(Entity*);
diff --git a/src/object/chuchuBossStartParticle.c b/src/object/chuchuBossStartParticle.c
index 286c414c..00469edd 100644
--- a/src/object/chuchuBossStartParticle.c
+++ b/src/object/chuchuBossStartParticle.c
@@ -4,8 +4,13 @@
*
* @brief Chuchu Boss Start Particle object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/cloud.c b/src/object/cloud.c
index 58d34f12..7a51601d 100644
--- a/src/object/cloud.c
+++ b/src/object/cloud.c
@@ -4,9 +4,14 @@
*
* @brief Cloud object
*/
-#include "functions.h"
#include "object.h"
-#include "structures.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
+#include "pauseMenu.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/crackingGround.c b/src/object/crackingGround.c
index fe8488c0..bd13dadf 100644
--- a/src/object/crackingGround.c
+++ b/src/object/crackingGround.c
@@ -4,8 +4,12 @@
*
* @brief Cracking Ground object
*/
-#include "functions.h"
+#include "asm.h"
#include "object.h"
+#include "sound.h"
+#include "effects.h"
+#include "room.h"
+#include "player.h"
void CrackingGround(Entity* this) {
if (this->action == 0) {
diff --git a/src/object/crenelBeanSprout.c b/src/object/crenelBeanSprout.c
index b57c4c8c..d1d71e55 100644
--- a/src/object/crenelBeanSprout.c
+++ b/src/object/crenelBeanSprout.c
@@ -5,10 +5,16 @@
* @brief Crenel Bean Sprout object
*/
#include "asm.h"
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
+#include "ui.h"
typedef struct {
/*0x00*/ Entity base;
@@ -241,7 +247,7 @@ void CrenelBeanSprout_Action4(CrenelBeanSproutEntity* this) {
if (--super->timer == 0) {
super->action = 6;
super->subAction = 0;
- CreateDust(super);
+ CreateDeathFx(super);
}
} else {
super->timer = 192;
diff --git a/src/object/cuccoMinigame.c b/src/object/cuccoMinigame.c
index ae866925..887a1022 100644
--- a/src/object/cuccoMinigame.c
+++ b/src/object/cuccoMinigame.c
@@ -6,14 +6,19 @@
* @brief Cucco Minigame object
*/
#include "enemy.h"
+#include "sound.h"
+#include "flags.h"
+#include "common.h"
#include "entity.h"
#include "fileselect.h"
-#include "functions.h"
#include "item.h"
#include "npc.h"
#include "object.h"
+#include "room.h"
+#include "player.h"
#include "script.h"
#include "tiles.h"
+#include "map.h"
typedef struct {
Entity base;
diff --git a/src/object/cutsceneMiscObject.c b/src/object/cutsceneMiscObject.c
index 2427c370..4d052dfe 100644
--- a/src/object/cutsceneMiscObject.c
+++ b/src/object/cutsceneMiscObject.c
@@ -4,14 +4,24 @@
*
* @brief Cutscene Misc object
*/
+#include "object/cutsceneMiscObject.h"
#include "area.h"
-#include "functions.h"
#include "item.h"
#include "message.h"
#include "object.h"
-#include "screen.h"
+#include "asm.h"
+#include "common.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
+#include "scroll.h"
#include "script.h"
#include "tiles.h"
+#include "color.h"
+#include "fade.h"
extern u8 gUnk_08122AE0[];
extern u16 gUnk_08122AE8[];
@@ -188,7 +198,7 @@ void sub_08094B94(CutsceneMiscObjectEntity* this) {
CopyPosition(&gPlayerEntity.base, e);
e->z.HALF.HI = -48;
((CutsceneMiscObjectEntity*)e)->ctx = StartCutscene(e, &script_CutsceneMiscObjectTheLittleHat);
- CreateDust(e);
+ CreateDeathFx(e);
e->z.HALF.HI += 16;
e->y.HALF.HI++;
}
diff --git a/src/object/cutsceneOrchestrator.c b/src/object/cutsceneOrchestrator.c
index efc726a3..29312433 100644
--- a/src/object/cutsceneOrchestrator.c
+++ b/src/object/cutsceneOrchestrator.c
@@ -5,7 +5,7 @@
* @brief Cutscene Orchestrator object
*/
#include "entity.h"
-#include "functions.h"
+#include "script.h"
#include "hitbox.h"
void CutsceneOrchestrator(Entity* this) {
diff --git a/src/object/deathFx.c b/src/object/deathFx.c
index 2f51e110..779a2f5e 100644
--- a/src/object/deathFx.c
+++ b/src/object/deathFx.c
@@ -6,10 +6,12 @@
*/
#include "object/deathFx.h"
#include "enemy.h"
+#include "sound.h"
#include "entity.h"
-#include "functions.h"
+#include "item.h"
+#include "physics.h"
#include "global.h"
-#include "sound.h"
+#include "vram.h"
void sub_08081790(DeathFxObject* this);
void DeathFx_Delete(DeathFxObject* this);
diff --git a/src/object/dirtParticle.c b/src/object/dirtParticle.c
index cfd0295a..f4e80932 100644
--- a/src/object/dirtParticle.c
+++ b/src/object/dirtParticle.c
@@ -4,8 +4,11 @@
*
* @brief Dirt Particle object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "physics.h"
+#include "player.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/doubleBookshelf.c b/src/object/doubleBookshelf.c
index 33519589..b0b706d5 100644
--- a/src/object/doubleBookshelf.c
+++ b/src/object/doubleBookshelf.c
@@ -4,9 +4,15 @@
*
* @brief Double Bookshelf object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
@@ -15,7 +21,7 @@ typedef struct {
/*0x82*/ u16 unk_82;
/*0x84*/ u8 unk_84;
/*0x85*/ u8 unk_85;
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} DoubleBookshelfEntity;
void sub_0809B334(DoubleBookshelfEntity*);
@@ -59,7 +65,7 @@ void DoubleBookshelf_Init(DoubleBookshelfEntity* this) {
if (child != NULL) {
(child->base).parent = super;
super->child = &child->base;
- if (CheckFlags(this->unk_86) == 0) {
+ if (CheckFlags(this->flag) == 0) {
PositionRelative(super, &child->base, 0x100000, 0x100000);
child->unk_84 = 0;
} else {
@@ -118,7 +124,7 @@ void sub_0809B0B0(DoubleBookshelfEntity* this) {
SetTile(SPECIAL_TILE_130, tilePos + 3, layer);
SetTile(SPECIAL_TILE_34, tilePos + 2, layer);
SetTile(SPECIAL_TILE_95, tilePos, layer);
- SetFlag(((DoubleBookshelfEntity*)super->parent)->unk_86);
+ SetFlag(((DoubleBookshelfEntity*)super->parent)->flag);
break;
case 3:
this->unk_84 = 0;
@@ -126,7 +132,7 @@ void sub_0809B0B0(DoubleBookshelfEntity* this) {
SetTile(SPECIAL_TILE_130, tilePos - 1, layer);
SetTile(SPECIAL_TILE_34, tilePos, layer);
SetTile(SPECIAL_TILE_95, tilePos + 2, layer);
- ClearFlag(((DoubleBookshelfEntity*)super->parent)->unk_86);
+ ClearFlag(((DoubleBookshelfEntity*)super->parent)->flag);
break;
case 4:
SetTile(SPECIAL_TILE_34, tilePos, layer);
diff --git a/src/object/elementsBackground.c b/src/object/elementsBackground.c
index f046d3b7..eaeb532f 100644
--- a/src/object/elementsBackground.c
+++ b/src/object/elementsBackground.c
@@ -5,7 +5,6 @@
* @brief Elements Background object
*/
#include "entity.h"
-#include "functions.h"
#include "screen.h"
void ElementsBackground_Init(Entity*);
diff --git a/src/object/enemyItem.c b/src/object/enemyItem.c
index 16cae432..b44b85b9 100644
--- a/src/object/enemyItem.c
+++ b/src/object/enemyItem.c
@@ -4,13 +4,16 @@
*
* @brief Enemy Item object
*/
-#include "functions.h"
+#include "scroll.h"
#include "object.h"
+#include "flags.h"
+#include "physics.h"
+#include "item.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unk_68[0x1e];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} EnemyItemEntity;
void sub_080A2500(EnemyItemEntity*);
@@ -21,7 +24,7 @@ void EnemyItem(EnemyItemEntity* this) {
Entity* entity;
LinkedList* list;
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
sub_080A2500(this);
}
if (super->action == 0) {
@@ -63,7 +66,7 @@ void sub_080A2508(EnemyItemEntity* this) {
entity = (EnemyItemEntity*)CreateObjectWithParent(super, GROUND_ITEM, super->type, 0);
if (entity != NULL) {
(entity->base).timer = 5;
- entity->unk_86 = this->unk_86;
+ entity->flag = this->flag;
}
sub_080A2500(this);
}
@@ -74,7 +77,7 @@ void sub_080A2534(EnemyItemEntity* this) {
entity = (EnemyItemEntity*)CreateObjectWithParent(super, GROUND_ITEM, super->type, 0);
if (entity != NULL) {
(entity->base).timer = 4;
- entity->unk_86 = this->unk_86;
+ entity->flag = this->flag;
}
sub_080A2500(this);
}
diff --git a/src/object/evilSpirit.c b/src/object/evilSpirit.c
index bec6e328..03c65712 100644
--- a/src/object/evilSpirit.c
+++ b/src/object/evilSpirit.c
@@ -1,7 +1,9 @@
#include "entity.h"
-#include "functions.h"
#include "flags.h"
#include "object.h"
+#include "asm.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
Entity base;
@@ -102,7 +104,6 @@ void EvilSpirit_Action1(EvilSpiritEntity* this) {
} else {
this->unk76 = this->unk7c - 0x20;
this->unk7a = this->unk7c + 0x50;
- ;
}
}
super->x = super->parent->x;
diff --git a/src/object/ezloCap.c b/src/object/ezloCap.c
index de1beb00..f342e00a 100644
--- a/src/object/ezloCap.c
+++ b/src/object/ezloCap.c
@@ -4,9 +4,13 @@
*
* @brief Ezlo Cap object
*/
-#include "functions.h"
#include "message.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "script.h"
+#include "player.h"
+#include "vram.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/ezloCapFlying.c b/src/object/ezloCapFlying.c
index 91c197a0..2d270232 100644
--- a/src/object/ezloCapFlying.c
+++ b/src/object/ezloCapFlying.c
@@ -4,8 +4,12 @@
*
* @brief Ezlo Cap Flying object
*/
-#include "functions.h"
+#include "asm.h"
#include "object.h"
+#include "sound.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/fairy.c b/src/object/fairy.c
index 0f2eb209..430da8d9 100644
--- a/src/object/fairy.c
+++ b/src/object/fairy.c
@@ -5,10 +5,13 @@
* @brief Fairy object
*/
#include "collision.h"
-#include "functions.h"
#include "hitbox.h"
-#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "physics.h"
+#include "player.h"
+#include "scroll.h"
typedef struct {
/*0x00*/ Entity base;
@@ -33,7 +36,7 @@ void Fairy_SubAction0(FairyEntity*);
void Fairy_SubAction1(FairyEntity*);
void Fairy_SubAction2(FairyEntity*);
-extern void sub_08081404(Entity*, u32);
+extern void ItemOnGround_SetFlagAndDelete(Entity*, u32);
void Fairy(FairyEntity* this) {
static void (*const Fairy_Actions[])(FairyEntity*) = {
@@ -167,7 +170,7 @@ void Fairy_Action2(FairyEntity* this) {
ProcessMovement1(super);
if ((AnyPrioritySet() == 0) && (super->type2 == 0)) {
if (--this->unk_78 == 0) {
- sub_08081404(super, 0);
+ ItemOnGround_SetFlagAndDelete(super, FALSE);
}
if (this->unk_78 < 0x78) {
super->spriteSettings.draw ^= 1;
@@ -177,7 +180,7 @@ void Fairy_Action2(FairyEntity* this) {
void Fairy_Action3(FairyEntity* this) {
if (*(u16*)&super->child->kind != 0x308) {
- sub_08081404(super, 0);
+ ItemOnGround_SetFlagAndDelete(super, FALSE);
} else {
CopyPosition(super->child, super);
super->z.HALF.HI--;
@@ -214,7 +217,7 @@ void Fairy_Action4(FairyEntity* this) {
if (--super->subtimer == 0) {
super->subtimer = 6;
if (--super->spriteOffsetY < -0x16) {
- sub_08081404(super, 1);
+ ItemOnGround_SetFlagAndDelete(super, TRUE);
}
}
if (super->spriteOffsetY < -0x11) {
diff --git a/src/object/fan.c b/src/object/fan.c
index f786981a..2f496c27 100644
--- a/src/object/fan.c
+++ b/src/object/fan.c
@@ -7,10 +7,12 @@
#include "collision.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "asm.h"
#include "object.h"
-#include "player.h"
#include "sound.h"
+#include "physics.h"
+#include "player.h"
+#include "map.h"
typedef struct {
Entity base;
diff --git a/src/object/fanWind.c b/src/object/fanWind.c
index a33a58d7..b5509bb9 100644
--- a/src/object/fanWind.c
+++ b/src/object/fanWind.c
@@ -6,7 +6,8 @@
*/
#include "collision.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
+#include "map.h"
void FanWind(Entity* this) {
u8* collisionData;
diff --git a/src/object/figurineDevice.c b/src/object/figurineDevice.c
index 6c553dc0..b38571f0 100644
--- a/src/object/figurineDevice.c
+++ b/src/object/figurineDevice.c
@@ -6,13 +6,24 @@
*/
#include "figurineMenu.h"
#include "fileselect.h"
-#include "functions.h"
#include "item.h"
#include "kinstone.h"
#include "message.h"
#include "object.h"
+#include "asm.h"
+#include "common.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "screen.h"
#include "tiles.h"
+#include "subtask.h"
+#include "color.h"
+#ifndef EU
+#include "script.h"
+#endif
typedef struct {
/*0x00*/ Entity base;
@@ -596,8 +607,8 @@ void sub_080882A8(FigurineDeviceEntity* this) {
static const u16 gUnk_08120AE4[] = { TEXT_INDEX(TEXT_CARLOV, 0x18), TEXT_INDEX(TEXT_CARLOV, 0x19) };
u8* ptr;
sub_08050384();
- sub_08057044(this->shells, gUnk_020227E8, 0x202020);
- sub_08057044(this->chance, &gUnk_020227E8[1], 0x202020);
+ NumberToAsciiPad3Digits(this->shells, &gUnk_020227E8[0], 0x202020);
+ NumberToAsciiPad3Digits(this->chance, &gUnk_020227E8[1], 0x202020);
ptr = (u8*)0x02000000;
if (ptr[7] == 0) {
ShowTextBox(gUnk_08120AE4[super->type2], (Font*)&gUnk_08120AB4); // TODO convert data
diff --git a/src/object/fileScreenObjects.c b/src/object/fileScreenObjects.c
index 3b01e789..ab8a1c1f 100644
--- a/src/object/fileScreenObjects.c
+++ b/src/object/fileScreenObjects.c
@@ -5,11 +5,15 @@
* @brief File Screen Objects object
*/
#include "fileselect.h"
-#include "functions.h"
#include "main.h"
#include "menu.h"
#include "object.h"
+#include "asm.h"
+#include "common.h"
+#include "flags.h"
+#include "physics.h"
#include "player.h"
+#include "gfx.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/fireballChain.c b/src/object/fireballChain.c
index af1aa68e..f9b08cbe 100644
--- a/src/object/fireballChain.c
+++ b/src/object/fireballChain.c
@@ -5,7 +5,7 @@
* @brief Fireball Chain object
*/
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
#include "global.h"
#include "projectile.h"
#include "projectile/winder.h"
diff --git a/src/object/fireplace.c b/src/object/fireplace.c
index 4fd32aec..2c3d3eed 100644
--- a/src/object/fireplace.c
+++ b/src/object/fireplace.c
@@ -4,14 +4,17 @@
*
* @brief Fireplace object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unused1[30];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} FireplaceEntity;
void Fireplace_Action1(FireplaceEntity* this);
@@ -31,7 +34,7 @@ void Fireplace_Init(FireplaceEntity* this) {
super->action = 1;
super->spriteSettings.draw = 1;
super->speed = 0x80;
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
sub_0809B7DC(this);
DeleteThisEntity();
} else {
@@ -44,7 +47,7 @@ void Fireplace_Init(FireplaceEntity* this) {
void Fireplace_Action1(FireplaceEntity* this) {
sub_0809B7C0(this);
if (super->timer) {
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
DeleteThisEntity();
}
}
diff --git a/src/object/flame.c b/src/object/flame.c
index 5b1b48a7..4fce1e8d 100644
--- a/src/object/flame.c
+++ b/src/object/flame.c
@@ -6,13 +6,16 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "physics.h"
#include "sound.h"
+#include "asm.h"
+#include "room.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unused1[30];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} FlameEntity;
extern void sub_0807AB44(Entity*, s32, s32);
@@ -43,7 +46,7 @@ void Flame_Init(FlameEntity* this) {
CopyPosition(super->parent, super);
break;
case 4:
- if (!CheckFlags(this->unk_86)) {
+ if (!CheckFlags(this->flag)) {
super->spriteSettings.draw = FALSE;
super->subAction = 1;
return;
@@ -85,7 +88,7 @@ void Flame_Action1(FlameEntity* this) {
CopyPosition(super->parent, super);
break;
case 4:
- val = CheckFlags(this->unk_86);
+ val = CheckFlags(this->flag);
if (super->subAction == 0) {
if (val)
return;
diff --git a/src/object/floatingPlatform.c b/src/object/floatingPlatform.c
index 3a260350..f9ec6f89 100644
--- a/src/object/floatingPlatform.c
+++ b/src/object/floatingPlatform.c
@@ -5,8 +5,10 @@
* @brief Floating Platform object
*/
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "player.h"
typedef struct {
Entity base;
diff --git a/src/object/fourElements.c b/src/object/fourElements.c
index e364d7cb..f163ee79 100644
--- a/src/object/fourElements.c
+++ b/src/object/fourElements.c
@@ -5,11 +5,17 @@
* @brief Four Elements object
*/
#include "collision.h"
-#include "functions.h"
#include "hitbox.h"
#include "message.h"
#include "object.h"
+#include "sound.h"
+#include "flags.h"
+#include "player.h"
#include "screen.h"
+#include "scroll.h"
+#include "manager/lightManager.h"
+#include "script.h"
+#include "fade.h"
typedef struct {
/*0x00*/ Entity base;
@@ -63,7 +69,7 @@ void FourElements_Init(FourElementsEntity* this) {
StartPlayerScript(script_PlayerGetElement);
gScreen.controls.layerFXControl = 0x640;
gScreen.controls.alphaBlend = 0x1000;
- sub_0805BC4C();
+ UnDarkRoom();
elementsBackground = CreateObjectWithParent(super, ELEMENTS_BACKGROUND, super->type - 0x40, 0);
if (elementsBackground != NULL) {
elementsBackground->parent = super;
diff --git a/src/object/frozenOctorok.c b/src/object/frozenOctorok.c
index be88eb5f..b7d2a2a9 100644
--- a/src/object/frozenOctorok.c
+++ b/src/object/frozenOctorok.c
@@ -5,9 +5,17 @@
* @brief Frozen Octorok object
*/
#include "enemy/octorokBoss.h"
-#include "functions.h"
#include "message.h"
#include "object.h"
+#include "common.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
+#include "vram.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
@@ -219,7 +227,7 @@ void FrozenOctorok_Action1(FrozenOctorokEntity* this) {
FrozenOctorok_Action1SubActions[super->subAction](this);
if (super->subtimer != 0) {
if ((gRoomTransition.frameCount & 7) == 0) {
- CreateSparkle(super->child);
+ CreateSparkleFx(super->child);
}
if (this->unk_7e != 0) {
super->child->zVelocity = super->child->zVelocity - (s16)this->unk_7e;
diff --git a/src/object/frozenWaterElement.c b/src/object/frozenWaterElement.c
index 848964b3..183fc31b 100644
--- a/src/object/frozenWaterElement.c
+++ b/src/object/frozenWaterElement.c
@@ -4,8 +4,14 @@
*
* @brief Frozen Water Element object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
diff --git a/src/object/furniture.c b/src/object/furniture.c
index ddcec22f..5ebf750d 100644
--- a/src/object/furniture.c
+++ b/src/object/furniture.c
@@ -5,10 +5,14 @@
* @brief Furniture object
*/
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
+#include "color.h"
+#include "map.h"
enum {
FURNITURE_INIT,
diff --git a/src/object/gentariCurtain.c b/src/object/gentariCurtain.c
index 97c3aad0..9607058b 100644
--- a/src/object/gentariCurtain.c
+++ b/src/object/gentariCurtain.c
@@ -7,10 +7,10 @@
#include "asm.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "object.h"
#include "room.h"
#include "tiles.h"
+#include "map.h"
typedef struct {
Entity base;
diff --git a/src/object/giantBookLadder.c b/src/object/giantBookLadder.c
index 5f18d1b4..d0d602c5 100644
--- a/src/object/giantBookLadder.c
+++ b/src/object/giantBookLadder.c
@@ -4,10 +4,12 @@
*
* @brief Giant Book Ladder object
*/
-#include "manager.h"
#include "map.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
#include "tiles.h"
+#include "game.h"
typedef struct {
Entity base;
@@ -16,7 +18,7 @@ typedef struct {
u16 unk76;
} GiantBookLadderEntity;
-void sub_0808E55C(GiantBookLadderEntity*);
+void GiantBookLadder_OnEnterRoom(GiantBookLadderEntity*);
u32 sub_0808E670(GiantBookLadderEntity*);
void GiantBookLadder(Entity* this) {
@@ -33,14 +35,14 @@ void GiantBookLadder(Entity* this) {
this->spritePriority.b0 = spriteDefPtr[1];
((GiantBookLadderEntity*)this)->unk76 = 0;
((GiantBookLadderEntity*)this)->unk74 = COORD_TO_TILE(this);
- sub_0808E55C((GiantBookLadderEntity*)this);
- RegisterTransitionManager(this, sub_0808E55C, 0);
+ GiantBookLadder_OnEnterRoom((GiantBookLadderEntity*)this);
+ RegisterTransitionHandler(this, GiantBookLadder_OnEnterRoom, NULL);
} else if ((this->type & 1) == 0) {
sub_0808E670((GiantBookLadderEntity*)this);
}
}
-void sub_0808E55C(GiantBookLadderEntity* this) {
+void GiantBookLadder_OnEnterRoom(GiantBookLadderEntity* this) {
u32 type;
u32 uVar4;
u32 unaff_r9;
diff --git a/src/object/giantLeaf.c b/src/object/giantLeaf.c
index 6293a9d0..3dc3cda8 100644
--- a/src/object/giantLeaf.c
+++ b/src/object/giantLeaf.c
@@ -6,6 +6,8 @@
*/
#include "map.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
void sub_0808D618(Entity* this);
diff --git a/src/object/giantTwig.c b/src/object/giantTwig.c
index 00beda17..92fcdbc1 100644
--- a/src/object/giantTwig.c
+++ b/src/object/giantTwig.c
@@ -4,9 +4,14 @@
*
* @brief Giant Twig object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
+#include "color.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/gleerokParticle.c b/src/object/gleerokParticle.c
index 7af41d2f..5cac9ce0 100644
--- a/src/object/gleerokParticle.c
+++ b/src/object/gleerokParticle.c
@@ -7,9 +7,9 @@
#include "asm.h"
#include "effects.h"
#include "entity.h"
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "physics.h"
#include "player.h"
#include "room.h"
diff --git a/src/object/graveyardKey.c b/src/object/graveyardKey.c
index 577d4b09..45549be8 100644
--- a/src/object/graveyardKey.c
+++ b/src/object/graveyardKey.c
@@ -9,10 +9,11 @@
#include "effects.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "physics.h"
#include "item.h"
#include "player.h"
#include "sound.h"
+#include "scroll.h"
typedef struct _struct_gUnk_08123FB0 {
void (*const funcEnt)(Entity*);
diff --git a/src/object/greatFairy.c b/src/object/greatFairy.c
index 3099571c..27440aa2 100644
--- a/src/object/greatFairy.c
+++ b/src/object/greatFairy.c
@@ -6,9 +6,16 @@
*/
#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "save.h"
#include "screen.h"
#include "script.h"
+#include "fade.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/guruguruBar.c b/src/object/guruguruBar.c
index 40fa7d41..d6e9ebc0 100644
--- a/src/object/guruguruBar.c
+++ b/src/object/guruguruBar.c
@@ -4,9 +4,8 @@
*
* @brief Guruguru Bar object
*/
-#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "physics.h"
#include "projectile.h"
#include "room.h"
diff --git a/src/object/gyorgBossObject.c b/src/object/gyorgBossObject.c
index 2de64ed0..3704d70b 100644
--- a/src/object/gyorgBossObject.c
+++ b/src/object/gyorgBossObject.c
@@ -4,14 +4,24 @@
*
* @brief Gyorg Boss object
*/
-#include "area.h"
#include "enemy/gyorg.h"
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "common.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "physics.h"
+#include "player.h"
#include "room.h"
#include "screen.h"
#include "screenTransitions.h"
+#include "scroll.h"
+#include "fade.h"
+#ifndef EU
+#include "area.h"
+#endif
struct GyorgChildSpawns {
s16 offsetX;
@@ -251,7 +261,7 @@ void GyorgBossObject_FightEnd(GyorgBossObjectEntity* this) {
sub_080A1E54(this);
if (--super->subtimer == 0) {
SetFlag(0x7B);
- sub_0808091C(&gUnk_0813ABD0, 8);
+ DoExitTransitionWithType(&gUnk_0813ABD0, 8);
return;
}
if (super->subtimer == 0x3C) {
diff --git a/src/object/heartContainer.c b/src/object/heartContainer.c
index 1817b8c3..732f9475 100644
--- a/src/object/heartContainer.c
+++ b/src/object/heartContainer.c
@@ -10,12 +10,13 @@
#include "functions.h"
#include "item.h"
#include "sound.h"
+#include "scroll.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unused1[28];
- /*0x84*/ u16 unk_84;
- /*0x86*/ u16 unk_86;
+ /*0x84*/ u16 flag;
+ /*0x86*/ u16 flag2;
} HeartContainerEntity;
static void HeartContainer_Init(HeartContainerEntity* this);
@@ -37,7 +38,7 @@ void HeartContainer(HeartContainerEntity* this) {
}
static void HeartContainer_Init(HeartContainerEntity* this) {
- if (CheckFlags(this->unk_84)) {
+ if (CheckFlags(this->flag)) {
DeleteThisEntity();
}
super->action = 1;
@@ -49,7 +50,7 @@ static void HeartContainer_Init(HeartContainerEntity* this) {
}
static void HeartContainer_Action1(HeartContainerEntity* this) {
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag2)) {
super->action = 2;
super->spriteSettings.draw = 1;
super->spriteRendering.b0 = 3;
@@ -74,7 +75,7 @@ static void HeartContainer_Action2(HeartContainerEntity* this) {
static void HeartContainer_Action3(HeartContainerEntity* this) {
sub_08080CB4(super);
if (!(gPlayerState.flags & PL_MINISH) && IsCollidingPlayer(super)) {
- SetFlag(this->unk_84);
+ SetFlag(this->flag);
CreateItemEntity(ITEM_HEART_CONTAINER, 0, 0);
DeleteThisEntity();
}
diff --git a/src/object/hiddenLadderDown.c b/src/object/hiddenLadderDown.c
index dd7ed7d5..0cdf073e 100644
--- a/src/object/hiddenLadderDown.c
+++ b/src/object/hiddenLadderDown.c
@@ -7,7 +7,7 @@
#include "asm.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "room.h"
#include "tiles.h"
typedef struct {
@@ -15,7 +15,7 @@ typedef struct {
/*0x68*/ u8 unused1[8];
/*0x70*/ u16 unk_70;
/*0x72*/ u8 unused2[20];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} HiddenLadderDownEntity;
void HiddenLadderDown_Init(HiddenLadderDownEntity* this);
@@ -39,7 +39,7 @@ void HiddenLadderDown_Init(HiddenLadderDownEntity* this) {
super->animIndex = 0;
this->unk_70 = COORD_TO_TILE(super);
puVar3 = &this->unk_70;
- if (CheckFlags(this->unk_86) != 0) {
+ if (CheckFlags(this->flag) != 0) {
super->action = 2;
super->spriteSettings.draw = TRUE;
SetTileType(TILE_TYPE_418, *puVar3 + TILE_POS(-1, -1), super->collisionLayer);
@@ -58,6 +58,6 @@ void HiddenLadderDown_Action1(HiddenLadderDownEntity* this) {
if (GetTileTypeAtTilePos(this->unk_70, super->collisionLayer) == 0x1a6) {
super->action = 2;
super->spriteSettings.draw = TRUE;
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
}
}
diff --git a/src/object/hittableLever.c b/src/object/hittableLever.c
index a2d97301..2fc017d2 100644
--- a/src/object/hittableLever.c
+++ b/src/object/hittableLever.c
@@ -4,8 +4,12 @@
*
* @brief Hittable Lever object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/houseDoorExterior.c b/src/object/houseDoorExterior.c
index 79ecf0d8..0e64d308 100644
--- a/src/object/houseDoorExterior.c
+++ b/src/object/houseDoorExterior.c
@@ -6,9 +6,11 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "main.h"
#include "npc.h"
#include "object.h"
+#include "asm.h"
+#include "player.h"
#include "room.h"
#include "script.h"
#include "sound.h"
diff --git a/src/object/houseDoorInterior.c b/src/object/houseDoorInterior.c
index f2a51b32..6648f24e 100644
--- a/src/object/houseDoorInterior.c
+++ b/src/object/houseDoorInterior.c
@@ -6,9 +6,10 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "player.h"
#include "npc.h"
#include "sound.h"
+#include "asm.h"
typedef struct {
Entity base;
diff --git a/src/object/itemForSale.c b/src/object/itemForSale.c
index cb37efd5..61d111f2 100644
--- a/src/object/itemForSale.c
+++ b/src/object/itemForSale.c
@@ -6,10 +6,13 @@
*/
#include "object/itemForSale.h"
-#include "functions.h"
#include "hitbox.h"
-#include "kinstone.h"
#include "message.h"
+#include "scroll.h"
+#include "asm.h"
+#include "ui.h"
+#include "room.h"
+#include "player.h"
typedef struct {
u8 before[0x20];
diff --git a/src/object/itemOnGround.c b/src/object/itemOnGround.c
index 7d627de4..860f52a4 100644
--- a/src/object/itemOnGround.c
+++ b/src/object/itemOnGround.c
@@ -8,12 +8,16 @@
#include "collision.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "scroll.h"
#include "hitbox.h"
#include "item.h"
#include "itemMetaData.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "physics.h"
#include "player.h"
+#include "script.h"
#include "sound.h"
#include "tiles.h"
@@ -51,7 +55,7 @@ void sub_080813D4(ItemOnGroundEntity* this);
void sub_080813E8(ItemOnGroundEntity* this);
void sub_080813F0(ItemOnGroundEntity* this);
bool32 CheckShouldPlayItemGetCutscene(ItemOnGroundEntity* this);
-void sub_08081404(ItemOnGroundEntity*, u32);
+void ItemOnGround_SetFlagAndDelete(ItemOnGroundEntity*, u32);
typedef struct {
u8 unk0[2];
@@ -107,7 +111,7 @@ void ItemOnGround_Init(ItemOnGroundEntity* this) {
sub_080810A8, sub_080810FC, sub_08081150, sub_08081134, sub_08081188, sub_080810A8,
sub_080810A8, sub_080811AC, sub_080811C8, sub_080811D8, sub_080810A8,
};
- if (this->unk_86 && CheckFlags(this->unk_86)) {
+ if (this->flag && CheckFlags(this->flag)) {
DeleteThisEntity();
}
@@ -257,7 +261,7 @@ void ItemOnGround_Action2(ItemOnGroundEntity* this) {
void sub_08081248(ItemOnGroundEntity* this) {
sub_08081500(this);
if (sub_080814C0(this)) {
- sub_08081404(this, 0);
+ ItemOnGround_SetFlagAndDelete(this, FALSE);
} else {
sub_0800442E(super);
}
@@ -270,7 +274,7 @@ void sub_0808126C(ItemOnGroundEntity* this) {
void sub_0808127C(ItemOnGroundEntity* this) {
if (sub_080814C0(this)) {
- sub_08081404(this, 0);
+ ItemOnGround_SetFlagAndDelete(this, FALSE);
} else {
sub_0808153C(this);
}
@@ -311,7 +315,7 @@ void nullsub_510(ItemOnGroundEntity* this) {
void ItemOnGround_Action3(ItemOnGroundEntity* this) {
Entity* other = super->child;
if (!(other->kind == PLAYER_ITEM && other->id == 3)) {
- sub_08081404(this, 0);
+ ItemOnGround_SetFlagAndDelete(this, FALSE);
} else {
CopyPosition(other, super);
super->z.HALF.HI--;
@@ -331,7 +335,7 @@ void ItemOnGround_Action4(ItemOnGroundEntity* this) {
super->spriteRendering.b3 = other->spriteRendering.b3;
GravityUpdate(super, Q_8_8(40.0));
} else {
- sub_08081404(this, 1);
+ ItemOnGround_SetFlagAndDelete(this, TRUE);
}
}
@@ -360,9 +364,9 @@ void sub_080813F0(ItemOnGroundEntity* this) {
}
}
-void sub_08081404(ItemOnGroundEntity* this, u32 arg1) {
- if (arg1 && this->unk_86) {
- SetFlag(this->unk_86);
+void ItemOnGround_SetFlagAndDelete(ItemOnGroundEntity* this, bool32 doSetFlag) {
+ if (doSetFlag && this->flag) {
+ SetFlag(this->flag);
}
DeleteThisEntity();
@@ -472,7 +476,7 @@ void sub_0808153C(ItemOnGroundEntity* this) {
void sub_08081598(ItemOnGroundEntity* this) {
if (super->health == 0) {
- sub_08081404(this, 1);
+ ItemOnGround_SetFlagAndDelete(this, 1);
}
COLLISION_OFF(super);
@@ -486,6 +490,6 @@ void sub_08081598(ItemOnGroundEntity* this) {
CopyPosition(super->child, super);
super->z.HALF.HI -= 4;
if (super->type != 0x5F && sub_08081420(this)) {
- sub_08081404(this, 1);
+ ItemOnGround_SetFlagAndDelete(this, 1);
}
}
diff --git a/src/object/jailBars.c b/src/object/jailBars.c
index b244af4e..8644a134 100644
--- a/src/object/jailBars.c
+++ b/src/object/jailBars.c
@@ -6,7 +6,7 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "beanstalkSubtask.h"
#include "room.h"
#include "sound.h"
#include "tiles.h"
@@ -14,7 +14,7 @@
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unused1[30];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} JailBarsEntity;
static void SetJailBarTiles(JailBarsEntity* this, u32);
@@ -34,7 +34,7 @@ void JailBars(JailBarsEntity* this) {
}
void JailBars_Init(JailBarsEntity* this) {
- if (CheckFlags(this->unk_86) == 0) {
+ if (CheckFlags(this->flag) == 0) {
super->action = 1;
SetJailBarTiles(this, 0);
} else {
@@ -48,7 +48,7 @@ void JailBars_Init(JailBarsEntity* this) {
}
void JailBars_Action1(JailBarsEntity* this) {
- if (CheckFlags(this->unk_86) != 0) {
+ if (CheckFlags(this->flag) != 0) {
super->action = 2;
SetJailBarTiles(this, 1);
SoundReq(SFX_10B);
diff --git a/src/object/japaneseSubtitle.c b/src/object/japaneseSubtitle.c
index 11e7f85f..5a14192e 100644
--- a/src/object/japaneseSubtitle.c
+++ b/src/object/japaneseSubtitle.c
@@ -4,9 +4,9 @@
*
* @brief Japanese Subtitle object
*/
-#include "entity.h"
#include "menu.h"
#include "object.h"
+#include "asm.h"
#include "physics.h"
extern void sub_0806FB00(Entity*, u32, u32, u32);
diff --git a/src/object/jarPortal.c b/src/object/jarPortal.c
index 99341c30..9741c9d8 100644
--- a/src/object/jarPortal.c
+++ b/src/object/jarPortal.c
@@ -5,9 +5,15 @@
* @brief Jar Portal object
*/
#include "area.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "common.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
#include "tiles.h"
+#include "effects.h"
typedef struct {
/*0x00*/ Entity base;
@@ -134,7 +140,7 @@ void sub_0808C01C(JarPortalEntity* this, u32 r1) {
gArea.portal_mode = 3;
}
}
- CreateMagicSparkles(super->x.HALF.HI, super->y.HALF.HI, super->collisionLayer);
+ CreateMagicSparklesFxAt(super->x.HALF.HI, super->y.HALF.HI, super->collisionLayer);
if (super->subtimer == 0) {
super->subtimer = 1;
SoundReq(SFX_NEAR_PORTAL);
diff --git a/src/object/keyStealingTakkuri.c b/src/object/keyStealingTakkuri.c
index dfd35e6a..000bc605 100644
--- a/src/object/keyStealingTakkuri.c
+++ b/src/object/keyStealingTakkuri.c
@@ -4,8 +4,14 @@
*
* @brief Key Stealing Takkuri object
*/
-#include "functions.h"
+#include "script.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/kinstoneSpark.c b/src/object/kinstoneSpark.c
index b32609f2..7b359ee0 100644
--- a/src/object/kinstoneSpark.c
+++ b/src/object/kinstoneSpark.c
@@ -4,9 +4,12 @@
*
* @brief Kinstone Fusion Particle object
*/
-#include "functions.h"
+#include "script.h"
#include "kinstone.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "color.h"
void sub_080A0ADC(Entity*);
void sub_080A0AF0(Entity*);
diff --git a/src/object/ladderUp.c b/src/object/ladderUp.c
index 8dcd7e67..b64d56d2 100644
--- a/src/object/ladderUp.c
+++ b/src/object/ladderUp.c
@@ -7,7 +7,6 @@
#include "asm.h"
#include "effects.h"
#include "entity.h"
-#include "functions.h"
#include "player.h"
#include "room.h"
#include "sound.h"
diff --git a/src/object/lavaPlatform.c b/src/object/lavaPlatform.c
index 5e806494..9624b606 100644
--- a/src/object/lavaPlatform.c
+++ b/src/object/lavaPlatform.c
@@ -4,9 +4,14 @@
*
* @brief Lava Platform object
*/
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/lightDoor.c b/src/object/lightDoor.c
index 3bb41e19..522084a0 100644
--- a/src/object/lightDoor.c
+++ b/src/object/lightDoor.c
@@ -4,15 +4,18 @@
*
* @brief Light Door object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
#include "screen.h"
#include "tiles.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unk_68[30];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} LightDoorEntity;
void LightDoor_Init(LightDoorEntity*);
@@ -31,7 +34,7 @@ void LightDoor(LightDoorEntity* this) {
void LightDoor_Init(LightDoorEntity* this) {
if (super->type == 0) {
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
DeleteThisEntity();
}
super->action = 1;
diff --git a/src/object/lightRay.c b/src/object/lightRay.c
index a48ffa53..1e4c53eb 100644
--- a/src/object/lightRay.c
+++ b/src/object/lightRay.c
@@ -4,9 +4,13 @@
*
* @brief Light Ray object
*/
-#include "functions.h"
#include "object.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
#include "screen.h"
+#include "fade.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/lightableSwitch.c b/src/object/lightableSwitch.c
index e8f22525..a8ed21cb 100644
--- a/src/object/lightableSwitch.c
+++ b/src/object/lightableSwitch.c
@@ -7,9 +7,9 @@
#include "asm.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "physics.h"
#include "room.h"
#include "sound.h"
#include "tiles.h"
@@ -19,8 +19,8 @@ typedef struct {
/*0x68*/ u8 unused1[12];
/*0x74*/ u16 unk_74;
/*0x76*/ u8 unused2[14];
- /*0x84*/ u16 unk_84;
- /*0x86*/ u16 unk_86;
+ /*0x84*/ u16 flag1;
+ /*0x86*/ u16 flag2;
} LightableSwitchEntity;
static void sub_0809EB30(LightableSwitchEntity* this);
@@ -69,10 +69,10 @@ void LightableSwitch_Type0_Init(LightableSwitchEntity* this) {
void LightableSwitch_Type0_Action1(LightableSwitchEntity* this) {
if ((super->contactFlags & CONTACT_NOW) != 0) {
- if (CheckFlags(this->unk_86) != 0) {
- ClearFlag(this->unk_86);
+ if (CheckFlags(this->flag2) != 0) {
+ ClearFlag(this->flag2);
} else {
- SetFlag(this->unk_86);
+ SetFlag(this->flag2);
}
EnqueueSFX(SFX_110);
}
@@ -82,7 +82,7 @@ void LightableSwitch_Type0_Action1(LightableSwitchEntity* this) {
static void sub_0809EABC(LightableSwitchEntity* this) {
bool32 anySet = 0;
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag2)) {
anySet = 1;
}
if (super->frameIndex != anySet) {
@@ -141,7 +141,7 @@ void LightableSwitch_Type1_Init(LightableSwitchEntity* this) {
super->hitbox = (Hitbox*)&gHitbox_0;
sub_0809EAD8(this);
UpdateSpriteForCollisionLayer(super);
- if (CheckFlags(this->unk_84)) {
+ if (CheckFlags(this->flag1)) {
super->action = 3;
super->frameIndex = 2;
}
@@ -152,21 +152,21 @@ void LightableSwitch_Type1_Action1(LightableSwitchEntity* this) {
super->action = 2;
super->timer = 16;
super->frameIndex = 2;
- SetFlag(this->unk_86);
+ SetFlag(this->flag2);
EnqueueSFX(SFX_110);
}
}
void LightableSwitch_Type1_Action2(LightableSwitchEntity* this) {
- if (CheckFlags(this->unk_84)) {
+ if (CheckFlags(this->flag1)) {
super->action = 3;
} else {
if (--super->timer == 0) {
super->action = 1;
super->frameIndex = 3;
- ClearFlag(this->unk_86);
+ ClearFlag(this->flag2);
EnqueueSFX(SFX_110);
}
}
diff --git a/src/object/lilypadLarge.c b/src/object/lilypadLarge.c
index 03cca48a..fceb7d0c 100644
--- a/src/object/lilypadLarge.c
+++ b/src/object/lilypadLarge.c
@@ -6,12 +6,19 @@
*/
#include "object/lilypadLarge.h"
#include "area.h"
-#include "functions.h"
#include "item.h"
#include "object.h"
-#include "map.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
+#include "scroll.h"
+extern u32 sub_080040A2(Entity*);
extern s8 gUnk_08126EE4[];
void LilypadLarge_Action1(LilypadLargeEntity*);
@@ -119,7 +126,7 @@ void LilypadLarge_Action1(LilypadLargeEntity* this) {
if (super->subtimer == 0) {
super->subtimer = 4;
while (super->subtimer != 0) {
- sub_080A2AF4(super, 8, 10);
+ CreateLargeRippleFxRandom(super, 8, 10);
super->subtimer--;
}
super->subtimer = 1;
@@ -194,7 +201,7 @@ void LilypadLarge_Action1(LilypadLargeEntity* this) {
}
if ((gRoomTransition.frameCount & 0xfU) == 0) {
- CreateLargeWaterTrace(super);
+ CreateLargeRippleFx(super);
}
sVar10 = super->x.WORD + this->unk_6c;
uVar4 = super->y.WORD + this->unk_70;
@@ -312,7 +319,7 @@ void LilypadLarge_Action1(LilypadLargeEntity* this) {
} else {
end:
if ((gRoomTransition.frameCount & 0x1fU) == 0) {
- sub_080A2AF4(super, 8, 10);
+ CreateLargeRippleFxRandom(super, 8, 10);
}
}
sub_08085F48(this);
@@ -403,7 +410,7 @@ void sub_08085B40(LilypadLargeEntity* this) {
super->action = 1;
super->subtimer = 4;
while (super->subtimer != 0) {
- sub_080A2AF4(super, 8, 10);
+ CreateLargeRippleFxRandom(super, 8, 10);
super->subtimer--;
}
super->subtimer = 1;
@@ -498,8 +505,8 @@ void sub_08085D60(LilypadLargeEntity* this) {
tmpY = gUnk_08120638[tmp + 1];
if (GetCollisionDataRelativeTo(super, tmpX, tmpY) == COLLISION_DATA_255) {
- if (sub_080806BC((super->x.HALF.HI - gRoomControls.origin_x) + tmpX,
- (super->y.HALF.HI - gRoomControls.origin_y) + tmpY, r4, 5) == 0) {
+ if (DoApplicableTransition((super->x.HALF.HI - gRoomControls.origin_x) + tmpX,
+ (super->y.HALF.HI - gRoomControls.origin_y) + tmpY, r4, 5) == 0) {
if (sub_0807BD14(&gPlayerEntity.base, r4 >> 3) != 0) {
super->direction = r4;
sub_08085E74(this);
diff --git a/src/object/lilypadLargeFalling.c b/src/object/lilypadLargeFalling.c
index d0b19b12..791f13dd 100644
--- a/src/object/lilypadLargeFalling.c
+++ b/src/object/lilypadLargeFalling.c
@@ -5,7 +5,6 @@
* @brief LilypadLargeFalling object
*/
#include "entity.h"
-#include "functions.h"
#include "object/lilypadLarge.h"
void LilypadLargeFalling(Entity* this) {
diff --git a/src/object/lilypadSmall.c b/src/object/lilypadSmall.c
index 2d92e4f0..12696e21 100644
--- a/src/object/lilypadSmall.c
+++ b/src/object/lilypadSmall.c
@@ -4,8 +4,10 @@
*
* @brief Lilypad Small object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/linkAnimation.c b/src/object/linkAnimation.c
index 71e1a494..ec523d61 100644
--- a/src/object/linkAnimation.c
+++ b/src/object/linkAnimation.c
@@ -5,10 +5,13 @@
* @brief Link Animation object. This is used during "item get" sequences and
* replaces the player entity for the duration.
*/
-#include "functions.h"
#include "message.h"
#include "object.h"
+#include "physics.h"
+#include "player.h"
#include "object/linkAnimation.h"
+#include "item.h"
+#include "pauseMenu.h"
typedef enum {
ITEMGET_INIT,
diff --git a/src/object/linkEmptyingBottle.c b/src/object/linkEmptyingBottle.c
index 0b4200a7..93e35f16 100644
--- a/src/object/linkEmptyingBottle.c
+++ b/src/object/linkEmptyingBottle.c
@@ -5,9 +5,13 @@
* @brief Link Emptying Bottle object
* Handles effects of using water, mineral water or a fairy in a bottle in PlayerItemBottle_UseOther.
*/
-#include "functions.h"
#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
diff --git a/src/object/linkFire.c b/src/object/linkFire.c
index 1a12c93f..b208398f 100644
--- a/src/object/linkFire.c
+++ b/src/object/linkFire.c
@@ -4,8 +4,9 @@
*
* @brief Link Fire object
*/
-#include "functions.h"
#include "object.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/linkHoldingItem.c b/src/object/linkHoldingItem.c
index 6e5bedd2..c0920698 100644
--- a/src/object/linkHoldingItem.c
+++ b/src/object/linkHoldingItem.c
@@ -4,12 +4,14 @@
*
* @brief Link Holding Item object
*/
-#include "functions.h"
+#include "scroll.h"
#include "game.h"
#include "item.h"
#include "itemMetaData.h"
#include "message.h"
#include "object.h"
+#include "sound.h"
+#include "player.h"
#include "save.h"
typedef struct {
diff --git a/src/object/litArea.c b/src/object/litArea.c
index 53b34d1f..80332d9a 100644
--- a/src/object/litArea.c
+++ b/src/object/litArea.c
@@ -6,7 +6,6 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "room.h"
#include "screen.h"
@@ -15,12 +14,12 @@ typedef struct {
/*0x68*/ u16 unk_68;
/*0x6a*/ u16 unk_6a;
/*0x6c*/ u8 unused1[26];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} LitAreaEntity;
void LitArea(LitAreaEntity* this) {
if (super->action == 0) {
- if (this->unk_86 != 0 && CheckFlags(this->unk_86) == 0) {
+ if (this->flag != 0 && CheckFlags(this->flag) == 0) {
return;
}
super->spriteSettings.draw = 1;
diff --git a/src/object/lockedDoor.c b/src/object/lockedDoor.c
index f4af4b0e..02b7614c 100644
--- a/src/object/lockedDoor.c
+++ b/src/object/lockedDoor.c
@@ -4,16 +4,20 @@
*
* @brief Looked Door object
*/
+#include "object/lockedDoor.h"
#include "asm.h"
-#include "common.h"
+#include "room.h"
#include "effects.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "physics.h"
#include "game.h"
#include "hitbox.h"
#include "sound.h"
#include "tiles.h"
+#include "vram.h"
+#include "player.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
@@ -25,8 +29,8 @@ typedef struct {
/*0x78*/ u8 unused2[6];
/*0x7e*/ u8 unk_7e;
/*0x7f*/ u8 unused3[5];
- /*0x84*/ u16 unk_84;
- /*0x86*/ u16 unk_86;
+ /*0x84*/ u16 flags;
+ /*0x86*/ u16 flag;
} LockedDoorEntity;
void LockedDoor_Init(LockedDoorEntity* this);
@@ -102,7 +106,7 @@ const u8 gLockedDoorInteractDirections[] = {
};
void LockedDoor_Init(LockedDoorEntity* this) {
- if (this->unk_84 != 0xFFFF && CheckFlags(this->unk_84)) {
+ if (this->flags != 0xFFFF && CheckFlags(this->flags)) {
DeleteThisEntity();
}
if (!sub_080837B0(this))
@@ -120,7 +124,7 @@ void LockedDoor_Init(LockedDoorEntity* this) {
this->unk_74 = GetTileIndex(this->unk_76, super->collisionLayer);
switch (super->type2) {
case 0:
- if (!CheckFlags(this->unk_86)) {
+ if (!CheckFlags(this->flag)) {
if (super->type & 0x10) {
super->action = 3;
} else {
@@ -132,14 +136,14 @@ void LockedDoor_Init(LockedDoorEntity* this) {
}
break;
case 1:
- if (!CheckFlags(this->unk_86)) {
+ if (!CheckFlags(this->flag)) {
sub_08083638(this);
} else {
sub_080836A0(this);
}
break;
case 2:
- if (!CheckFlags(this->unk_86)) {
+ if (!CheckFlags(this->flag)) {
super->frameIndex |= 4;
sub_080836DC(super, this->unk_7e, this->unk_76);
if (!AreaIsDungeon()) {
@@ -209,10 +213,10 @@ void LockedDoor_Action5(LockedDoorEntity* this) {
void LockedDoor_Action6(LockedDoorEntity* this) {
if (super->type2 == 0) {
- if (!CheckFlags(this->unk_86))
+ if (!CheckFlags(this->flag))
return;
} else {
- if (CheckFlags(this->unk_86))
+ if (CheckFlags(this->flag))
return;
}
sub_08083658(this);
@@ -220,22 +224,22 @@ void LockedDoor_Action6(LockedDoorEntity* this) {
void LockedDoor_Action7(LockedDoorEntity* this) {
if (super->type2 == 0) {
- if (CheckFlags(this->unk_86))
+ if (CheckFlags(this->flag))
return;
} else {
- if (!CheckFlags(this->unk_86))
+ if (!CheckFlags(this->flag))
return;
}
super->action = 3;
}
void LockedDoor_Action8(LockedDoorEntity* this) {
- if (super->interactType == INTERACTION_NONE && !CheckFlags(this->unk_86))
+ if (super->interactType == INTERACTION_NONE && !CheckFlags(this->flag))
return;
super->action = 1;
super->timer = 20;
sub_08083658(this);
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
ModDungeonKeys(-1);
}
diff --git a/src/object/macroAcorn.c b/src/object/macroAcorn.c
index 76773942..0fb1ac7b 100644
--- a/src/object/macroAcorn.c
+++ b/src/object/macroAcorn.c
@@ -7,6 +7,8 @@
#include "entity.h"
#include "map.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
#include "physics.h"
#include "tiles.h"
diff --git a/src/object/macroBook.c b/src/object/macroBook.c
index 2b43af8b..2d14e0b5 100644
--- a/src/object/macroBook.c
+++ b/src/object/macroBook.c
@@ -7,9 +7,11 @@
#include "asm.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "player.h"
#include "npc.h"
#include "tiles.h"
+#include "room.h"
+#include "map.h"
typedef struct {
Entity base;
diff --git a/src/object/macroDecorations.c b/src/object/macroDecorations.c
index 457dce52..9e124c33 100644
--- a/src/object/macroDecorations.c
+++ b/src/object/macroDecorations.c
@@ -9,6 +9,7 @@
#include "map.h"
#include "room.h"
#include "tiles.h"
+#include "color.h"
typedef struct {
Entity base;
diff --git a/src/object/macroMushroomStalk.c b/src/object/macroMushroomStalk.c
index 45eb8fe0..a8c544fb 100644
--- a/src/object/macroMushroomStalk.c
+++ b/src/object/macroMushroomStalk.c
@@ -5,10 +5,11 @@
* @brief Macro Mushroom Stalk object
*/
#include "area.h"
-#include "entity.h"
#include "main.h"
#include "object.h"
+#include "room.h"
#include "sound.h"
+#include "beanstalkSubtask.h"
void MacroMushroomStalk_Init(Entity*);
void MacroMushroomStalk_Action1(Entity*);
diff --git a/src/object/macroPlayer.c b/src/object/macroPlayer.c
index a313729b..270e648f 100644
--- a/src/object/macroPlayer.c
+++ b/src/object/macroPlayer.c
@@ -8,8 +8,11 @@
#include "entity.h"
#include "functions.h"
#include "object.h"
+#include "asm.h"
#include "physics.h"
#include "player.h"
+#include "beanstalkSubtask.h"
+#include "color.h"
typedef struct {
Entity base;
diff --git a/src/object/mask.c b/src/object/mask.c
index 9246fda1..0c961656 100644
--- a/src/object/mask.c
+++ b/src/object/mask.c
@@ -4,9 +4,16 @@
*
* @brief Mask object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "player.h"
#include "tiles.h"
+#include "item.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
@@ -16,7 +23,7 @@ typedef struct {
/*0x7c*/ u16 unk_7c;
/*0x7e*/ u16 unk_7e;
/*0x80*/ u8 unused2[6];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} MaskEntity;
void Mask_Init(MaskEntity* this);
@@ -36,7 +43,7 @@ void Mask(MaskEntity* this) {
void Mask_Init(MaskEntity* this) {
if (super->type2 & 0xC0) {
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
s32 field_0x0a;
switch (super->type2 & 0xC0) {
@@ -49,7 +56,7 @@ void Mask_Init(MaskEntity* this) {
DeleteThisEntity();
break;
default:
- ClearFlag(this->unk_86);
+ ClearFlag(this->flag);
}
break;
@@ -122,7 +129,7 @@ void Mask_Action2(MaskEntity* this) {
case 0x80:
EnqueueSFX(SFX_SECRET);
case 0x40:
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
break;
}
diff --git a/src/object/mazaalBossObject.c b/src/object/mazaalBossObject.c
index 9fc03361..f668bb52 100644
--- a/src/object/mazaalBossObject.c
+++ b/src/object/mazaalBossObject.c
@@ -5,14 +5,17 @@
* @brief Mazaal Boss object
*/
#include "enemy.h"
-#include "entity.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
+#include "flags.h"
#include "item.h"
#include "object.h"
+#include "physics.h"
#include "player.h"
#include "room.h"
#include "screen.h"
-#include "sound.h"
+#include "scroll.h"
+#include "script.h"
extern u16 script_MazaalBossObjectMazaal[];
diff --git a/src/object/metalDoor.c b/src/object/metalDoor.c
index 95f7f9a1..3281ff53 100644
--- a/src/object/metalDoor.c
+++ b/src/object/metalDoor.c
@@ -4,11 +4,12 @@
*
* @brief Metal Door object
*/
+#include "object/lockedDoor.h"
#include "asm.h"
#include "effects.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "physics.h"
#include "hitbox.h"
#include "room.h"
#include "sound.h"
@@ -24,11 +25,10 @@ typedef struct {
/*0x78*/ u16 unk_78;
/*0x7a*/ u16 unk_7a;
/*0x7c*/ u8 unused2[8];
- /*0x84*/ u16 unk_84;
- /*0x86*/ u16 unk_86;
+ /*0x84*/ u16 flag1;
+ /*0x86*/ u16 flag2;
} MetalDoorEntity;
-extern u32 sub_08083734(Entity*, u32);
void sub_080A080C(MetalDoorEntity* this);
void sub_080A0870(MetalDoorEntity* this);
void MetalDoor_Init(MetalDoorEntity* this);
@@ -45,7 +45,7 @@ void MetalDoor(MetalDoorEntity* this) {
}
void MetalDoor_Init(MetalDoorEntity* this) {
- if ((this->unk_84 != 0xffff) && CheckFlags(this->unk_84)) {
+ if ((this->flag1 != 0xffff) && CheckFlags(this->flag1)) {
DeleteThisEntity();
}
super->action = 1;
@@ -97,7 +97,7 @@ void MetalDoor_Action2(MetalDoorEntity* this) {
}
void MetalDoor_Action3(MetalDoorEntity* this) {
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag2)) {
super->action = 4;
super->timer = 12;
super->direction = 0x10;
diff --git a/src/object/minecart.c b/src/object/minecart.c
index 6d101de6..207fa4dd 100644
--- a/src/object/minecart.c
+++ b/src/object/minecart.c
@@ -4,9 +4,14 @@
*
* @brief Minecart object
*/
-#include "functions.h"
+#include "collision.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
diff --git a/src/object/minecartDoor.c b/src/object/minecartDoor.c
index 37667af6..274b34db 100644
--- a/src/object/minecartDoor.c
+++ b/src/object/minecartDoor.c
@@ -4,8 +4,14 @@
*
* @brief Minecart Door object
*/
-#include "functions.h"
+#include "object/lockedDoor.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
@@ -18,7 +24,7 @@ typedef struct {
/*0x78*/ u8 unk_78[0x6];
/*0x7e*/ u8 unk_7e;
/*0x7f*/ u8 unk_7f[0x7];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} MinecartDoorEntity;
extern bool32 sub_080837B0(Entity*); // lockedDoor
@@ -95,7 +101,7 @@ void MinecartDoor_Action2(MinecartDoorEntity* this) {
void MinecartDoor_Action3(MinecartDoorEntity* this) {
bool32 bVar3;
- if ((this->unk_7e != 0) && (CheckFlags(this->unk_86))) {
+ if ((this->unk_7e != 0) && CheckFlags(this->flag)) {
return;
}
if ((gPlayerState.flags & PL_IN_MINECART) != 0) {
@@ -128,7 +134,7 @@ void MinecartDoor_Action4(MinecartDoorEntity* this) {
}
bool32 sub_08096CEC(MinecartDoorEntity* this) {
- if (this->unk_7e != 0 && CheckFlags(this->unk_86)) {
+ if (this->unk_7e != 0 && CheckFlags(this->flag)) {
return TRUE;
} else {
if ((gPlayerState.flags & PL_IN_MINECART) != 0) {
diff --git a/src/object/mineralWaterSource.c b/src/object/mineralWaterSource.c
index 3692821b..dd602e0d 100644
--- a/src/object/mineralWaterSource.c
+++ b/src/object/mineralWaterSource.c
@@ -5,6 +5,8 @@
* @brief Mineral Water Source object
*/
#include "object.h"
+#include "asm.h"
+#include "physics.h"
void MineralWaterSource_Init(Entity*);
void MineralWaterSource_Action1(Entity*);
diff --git a/src/object/minishEmoticon.c b/src/object/minishEmoticon.c
index 147ca51d..40cb3a78 100644
--- a/src/object/minishEmoticon.c
+++ b/src/object/minishEmoticon.c
@@ -5,7 +5,8 @@
* @brief Minish Emoticon object
*/
#include "entity.h"
-#include "functions.h"
+#include "vram.h"
+#include "player.h"
void MinishEmoticon_Init(Entity*);
void MinishEmoticon_Action1(Entity*);
diff --git a/src/object/minishPortalCloseup.c b/src/object/minishPortalCloseup.c
index e9ded723..33308043 100644
--- a/src/object/minishPortalCloseup.c
+++ b/src/object/minishPortalCloseup.c
@@ -5,11 +5,12 @@
* @brief Minish Portal Closeup object
*/
#include "area.h"
-#include "functions.h"
#include "main.h"
#include "object.h"
+#include "common.h"
+#include "room.h"
#include "screen.h"
-#include "structures.h"
+#include "fade.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/minishPortalStone.c b/src/object/minishPortalStone.c
index 929f65ac..b8e7a960 100644
--- a/src/object/minishPortalStone.c
+++ b/src/object/minishPortalStone.c
@@ -4,14 +4,22 @@
*
* @brief Minish Portal Stone object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
#include "screen.h"
+#include "beanstalkSubtask.h"
+#include "manager/lightManager.h"
+#include "effects.h"
+#include "pauseMenu.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unk_68[0x1e];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} MinishPortalStoneEntity;
void MinishPortalStone_Init(MinishPortalStoneEntity* this);
@@ -37,17 +45,17 @@ void MinishPortalStone_Init(MinishPortalStoneEntity* this) {
super->action = 1;
super->spritePriority.b0 = 7;
super->hitbox = (Hitbox*)&gUnk_08123328;
- if ((this->unk_86 == 0xffff) || (CheckFlags(this->unk_86))) {
+ if ((this->flag == 0xffff) || CheckFlags(this->flag)) {
super->spriteSettings.draw = 1;
super->action = 4;
sub_08097CFC(this);
} else {
- sub_0805BC4C();
+ UnDarkRoom();
}
}
void MinishPortalStone_Action1(MinishPortalStoneEntity* this) {
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
SetPlayerControl(CONTROL_1);
gPauseMenuOptions.disabled = 1;
RequestPriorityDuration(super, 30);
@@ -67,7 +75,7 @@ void MinishPortalStone_Action3(MinishPortalStoneEntity* this) {
u32 tmp;
SetPriorityTimer(30);
sub_0800445C(super);
- CreateMagicSparkles(super->x.HALF.HI, super->y.HALF.HI, super->collisionLayer);
+ CreateMagicSparklesFxAt(super->x.HALF.HI, super->y.HALF.HI, super->collisionLayer);
if (--super->timer == 0) {
super->timer = 8;
tmp = ++super->subtimer;
diff --git a/src/object/minishSizedEntrance.c b/src/object/minishSizedEntrance.c
index cbe61fc8..b7819429 100644
--- a/src/object/minishSizedEntrance.c
+++ b/src/object/minishSizedEntrance.c
@@ -4,9 +4,12 @@
*
* @brief MinishSizedEntrance object
*/
-#include "functions.h"
#include "game.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "player.h"
+#include "vram.h"
void MinishSizedEntrance_Action1(Entity*);
void MinishSizedEntrance_Init(Entity*);
diff --git a/src/object/minishVillageObject.c b/src/object/minishVillageObject.c
index b7d09356..9c3330a7 100644
--- a/src/object/minishVillageObject.c
+++ b/src/object/minishVillageObject.c
@@ -4,10 +4,16 @@
*
* @brief Minish Village Object object
*/
-#include "functions.h"
+#include "script.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
#include "screen.h"
#include "tiles.h"
+#include "color.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/moleMittsParticle.c b/src/object/moleMittsParticle.c
index f83472bc..a124887a 100644
--- a/src/object/moleMittsParticle.c
+++ b/src/object/moleMittsParticle.c
@@ -5,8 +5,11 @@
* @brief Mole Mitts Particle object
*/
#include "area.h"
-#include "functions.h"
#include "object.h"
+#include "room.h"
+#include "player.h"
+#include "item.h"
+#include "color.h"
void MoleMittsParticle_Init(Entity*);
void MoleMittsParticle_Action1(Entity*);
diff --git a/src/object/object1F.c b/src/object/object1F.c
index 444f616a..bbe7e166 100644
--- a/src/object/object1F.c
+++ b/src/object/object1F.c
@@ -4,10 +4,10 @@
*
* @brief Object1F object
*/
+#include "object.h"
#include "asm.h"
#include "effects.h"
-#include "entity.h"
-#include "functions.h"
+#include "physics.h"
#include "player.h"
#include "tiles.h"
diff --git a/src/object/object30.c b/src/object/object30.c
index 3f31e5e3..fc145a17 100644
--- a/src/object/object30.c
+++ b/src/object/object30.c
@@ -5,9 +5,11 @@
* @brief Object30 object
*/
#include "collision.h"
-#include "functions.h"
#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "scroll.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/object37.c b/src/object/object37.c
index 35f32e93..c6f87a1a 100644
--- a/src/object/object37.c
+++ b/src/object/object37.c
@@ -4,10 +4,12 @@
*
* @brief Object37 object
*/
-#include "entity.h"
-#include "functions.h"
+#include "object.h"
+#include "asm.h"
+#include "player.h"
#include "item.h"
#include "save.h"
+#include "map.h"
typedef struct {
Entity base;
diff --git a/src/object/object53.c b/src/object/object53.c
index 737c8967..94cc73cd 100644
--- a/src/object/object53.c
+++ b/src/object/object53.c
@@ -4,9 +4,9 @@
*
* @brief Object53 object
*/
+#include "object.h"
#include "asm.h"
-#include "entity.h"
-#include "functions.h"
+#include "effects.h"
void Object53_Init(Entity*);
void Object53_Action1(Entity*);
diff --git a/src/object/object63.c b/src/object/object63.c
index bbf74160..8557fb2f 100644
--- a/src/object/object63.c
+++ b/src/object/object63.c
@@ -4,10 +4,9 @@
*
* @brief Object63 object
*/
-#include "asm.h"
-#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "physics.h"
+#include "item.h"
void Object63_Init(Entity*);
void Object63_Action1(Entity*);
diff --git a/src/object/object70.c b/src/object/object70.c
index 605e074b..5064feb1 100644
--- a/src/object/object70.c
+++ b/src/object/object70.c
@@ -4,8 +4,10 @@
*
* @brief Object70 object
*/
-#include "functions.h"
+#include "asm.h"
#include "object.h"
+#include "effects.h"
+#include "player.h"
void Object70_Init(Entity*);
void Object70_Action1(Entity*);
diff --git a/src/object/objectA.c b/src/object/objectA.c
index ac45f99f..c0af01b5 100644
--- a/src/object/objectA.c
+++ b/src/object/objectA.c
@@ -6,11 +6,12 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "game.h"
#include "hitbox.h"
#include "object.h"
+#include "effects.h"
#include "room.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
@@ -18,7 +19,7 @@ typedef struct {
/*0x68*/ u8 unused1[8];
/*0x70*/ u16 unk_70;
/*0x72*/ u8 unused2[20];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} ObjectAEntity;
extern u8 gUpdateVisibleTiles;
@@ -35,7 +36,7 @@ void ObjectA(ObjectAEntity* this) {
uVar2 = TILE_TYPE_52;
}
this->unk_70 = uVar2;
- if (CheckFlags(this->unk_86) != 0) {
+ if (CheckFlags(this->flag) != 0) {
SetTileType(this->unk_70, COORD_TO_TILE(super), super->collisionLayer);
if ((gRoomControls.reload_flags & 1) != 0) {
gUpdateVisibleTiles = 0;
@@ -46,8 +47,8 @@ void ObjectA(ObjectAEntity* this) {
}
} else if (super->interactType != INTERACTION_NONE) {
SetTileType(this->unk_70, COORD_TO_TILE(super), super->collisionLayer);
- SetFlag(this->unk_86);
- CreateDust(super);
+ SetFlag(this->flag);
+ CreateDeathFx(super);
ModDungeonKeys(-1);
DeleteThisEntity();
}
diff --git a/src/object/objectA2.c b/src/object/objectA2.c
index d73db1f5..39372890 100644
--- a/src/object/objectA2.c
+++ b/src/object/objectA2.c
@@ -4,10 +4,16 @@
*
* @brief Object A2 object
*/
-#include "functions.h"
#include "menu.h"
#include "object.h"
-#include "structures.h"
+#include "asm.h"
+#include "sound.h"
+#include "effects.h"
+#include "physics.h"
+#include "color.h"
+#ifndef EU
+#include "save.h"
+#endif
void ObjectA2_Init(Entity*);
void ObjectA2_Action1(Entity*);
diff --git a/src/object/objectA8.c b/src/object/objectA8.c
index c5e95687..b1c68fb1 100644
--- a/src/object/objectA8.c
+++ b/src/object/objectA8.c
@@ -5,10 +5,15 @@
* @brief ObjectA8 object
*/
#include "collision.h"
-#include "functions.h"
#include "hitbox.h"
#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "scroll.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
@@ -32,7 +37,7 @@ void ObjectA8_Action2Subaction0(ObjectA8Entity*);
void ObjectA8_Action2Subaction1(ObjectA8Entity*);
void ObjectA8_Action2Subaction2(ObjectA8Entity*);
-extern void sub_08081404(Entity*, u32);
+extern void ItemOnGround_SetFlagAndDelete(Entity*, u32);
void ObjectA8(ObjectA8Entity* this) {
static void (*const ObjectA8_Actions[])(ObjectA8Entity*) = {
@@ -160,7 +165,7 @@ void ObjectA8_Action3(ObjectA8Entity* this) {
ProcessMovement1(super);
if ((AnyPrioritySet() == 0) && (super->type == 0)) {
if (((gRoomTransition.frameCount & 1) != 0) && (--super->timer == 0)) {
- sub_08081404(super, 0);
+ ItemOnGround_SetFlagAndDelete(super, FALSE);
}
if (super->timer < 0x3c) {
super->spriteSettings.draw ^= 1;
@@ -170,7 +175,7 @@ void ObjectA8_Action3(ObjectA8Entity* this) {
void ObjectA8_Action4(ObjectA8Entity* this) {
if (*(u16*)&super->child->kind != 0xb08) {
- sub_08081404(super, 0);
+ ItemOnGround_SetFlagAndDelete(super, FALSE);
} else {
CopyPosition(super->child, super);
super->z.HALF.HI--;
@@ -217,7 +222,7 @@ void ObjectA8_Action6(ObjectA8Entity* this) {
if (--super->subtimer == 0) {
super->subtimer = 6;
if (--super->spriteOffsetY < -0x16) {
- sub_08081404(super, 1);
+ ItemOnGround_SetFlagAndDelete(super, TRUE);
}
}
if (super->spriteOffsetY < -0x11) {
diff --git a/src/object/objectBlockingStairs.c b/src/object/objectBlockingStairs.c
index 76ff017f..014485da 100644
--- a/src/object/objectBlockingStairs.c
+++ b/src/object/objectBlockingStairs.c
@@ -8,8 +8,10 @@
#include "effects.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "object.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "sound.h"
#include "tiles.h"
diff --git a/src/object/objectOnPillar.c b/src/object/objectOnPillar.c
index f48d7bcd..3d7b8c56 100644
--- a/src/object/objectOnPillar.c
+++ b/src/object/objectOnPillar.c
@@ -4,9 +4,15 @@
*
* @brief Object on Pillar object
*/
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
diff --git a/src/object/objectOnSpinyBeetle.c b/src/object/objectOnSpinyBeetle.c
index 52c575ca..20db5ff0 100644
--- a/src/object/objectOnSpinyBeetle.c
+++ b/src/object/objectOnSpinyBeetle.c
@@ -4,8 +4,11 @@
*
* @brief Object on Spiny Beetle object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "effects.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/octorokBossObject.c b/src/object/octorokBossObject.c
index ed704166..503403d2 100644
--- a/src/object/octorokBossObject.c
+++ b/src/object/octorokBossObject.c
@@ -4,9 +4,13 @@
*
* @brief Octorok Boss Object object
*/
-#include "functions.h"
#include "game.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
typedef struct HelperStruct {
u8 field_0x0; // [0,1,2,4] is later stored in super->subtimer
diff --git a/src/object/palaceArchway.c b/src/object/palaceArchway.c
index bcf23fb2..4d48b1db 100644
--- a/src/object/palaceArchway.c
+++ b/src/object/palaceArchway.c
@@ -5,6 +5,8 @@
* @brief Palace Archway object
*/
#include "object.h"
+#include "asm.h"
+#include "room.h"
#include "tiles.h"
void PalaceArchway_Init(Entity*);
diff --git a/src/object/paper.c b/src/object/paper.c
index eb2af45d..05529683 100644
--- a/src/object/paper.c
+++ b/src/object/paper.c
@@ -4,9 +4,11 @@
*
* @brief Paper object
*/
-#include "functions.h"
#include "map.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "player.h"
#include "tiles.h"
void Paper_Init(Entity*);
diff --git a/src/object/pinwheel.c b/src/object/pinwheel.c
index 35d161a8..dc69967e 100644
--- a/src/object/pinwheel.c
+++ b/src/object/pinwheel.c
@@ -7,13 +7,14 @@
#include "entity.h"
#include "flags.h"
#include "object.h"
+#include "effects.h"
typedef struct {
/*0x00*/ Entity base;
- /*0x68*/ u16 unk_68;
+ /*0x68*/ u16 flag;
} PinwheelEntity;
-static const u16 gUnk_08125050[] = {
+static const u16 gPinwheelFlags[] = {
KUMOUE_02_AWASE_01, KUMOUE_02_AWASE_02, KUMOUE_02_AWASE_03, KUMOUE_02_AWASE_04, KUMOUE_02_AWASE_05, BEGIN_1,
};
extern u32 gUnk_020342F8;
@@ -38,9 +39,9 @@ void Pinwheel(PinwheelEntity* this) {
}
void Pinwheel_Init(PinwheelEntity* this) {
- this->unk_68 = gUnk_08125050[super->type2];
+ this->flag = gPinwheelFlags[super->type2];
super->spritePriority.b0 = 7;
- if (CheckLocalFlag(this->unk_68) != 0) {
+ if (CheckLocalFlag(this->flag) != 0) {
super->action = 2;
} else {
super->action = 1;
@@ -49,9 +50,9 @@ void Pinwheel_Init(PinwheelEntity* this) {
}
void Pinwheel_Action1(PinwheelEntity* this) {
- if (CheckLocalFlag(this->unk_68) != 0) {
+ if (CheckLocalFlag(this->flag) != 0) {
super->action = 2;
- CreateDust(super);
+ CreateDeathFx(super);
}
}
void Pinwheel_Action2(PinwheelEntity* this) {
diff --git a/src/object/playerClone.c b/src/object/playerClone.c
index 174b7a1d..f606108c 100644
--- a/src/object/playerClone.c
+++ b/src/object/playerClone.c
@@ -8,7 +8,7 @@
#include "collision.h"
#include "effects.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
#include "player.h"
#include "room.h"
#include "sound.h"
diff --git a/src/object/pot.c b/src/object/pot.c
index adfcb75d..758c6b92 100644
--- a/src/object/pot.c
+++ b/src/object/pot.c
@@ -6,12 +6,16 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
+#include "object/pot.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "effects.h"
+#include "physics.h"
#include "object/itemOnGround.h"
#include "player.h"
#include "room.h"
+#include "script.h"
#include "sound.h"
#include "tiles.h"
@@ -22,7 +26,7 @@ typedef struct {
/*0x72*/ u8 unused2[11];
/*0x7d*/ u8 unk_7d;
/*0x7e*/ u8 unused3[8];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} PotEntity;
void Pot_Action5(PotEntity*);
@@ -60,7 +64,7 @@ void Pot(PotEntity* this) {
}
void Pot_Init(PotEntity* this) {
- if (super->type2 == 1 && CheckFlags(this->unk_86)) {
+ if (super->type2 == 1 && CheckFlags(this->flag)) {
DeleteThisEntity();
}
@@ -306,7 +310,7 @@ static void BreakPot(PotEntity* this, Entity* parent) {
}
if (super->type2 == 1) {
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
}
DeleteThisEntity();
@@ -327,7 +331,7 @@ u32 sub_0808288C(Entity* this, u32 form, u32 arg2, u32 arg3) {
if (entity != NULL) {
if (arg3 == 2) {
entity->base.timer = 5;
- entity->unk_86 = ((PotEntity*)this)->unk_86; // This function is also used by flyingSkull.
+ entity->flag = ((PotEntity*)this)->flag; // This function is also used by flyingSkull.
} else {
entity->base.timer = 0;
}
diff --git a/src/object/pressurePlate.c b/src/object/pressurePlate.c
index df373091..68c17a1d 100644
--- a/src/object/pressurePlate.c
+++ b/src/object/pressurePlate.c
@@ -5,9 +5,12 @@
* @brief Pressure Plate object
*/
#include "collision.h"
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
typedef struct {
Entity base;
diff --git a/src/object/pullableLever.c b/src/object/pullableLever.c
index c8f9b086..f986123c 100644
--- a/src/object/pullableLever.c
+++ b/src/object/pullableLever.c
@@ -4,9 +4,12 @@
*
* @brief Pullable Lever object
*/
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "flags.h"
+#include "physics.h"
+#include "player.h"
#include "sound.h"
typedef struct {
diff --git a/src/object/pullableMushroom.c b/src/object/pullableMushroom.c
index 44d17deb..bd674d2c 100644
--- a/src/object/pullableMushroom.c
+++ b/src/object/pullableMushroom.c
@@ -4,11 +4,16 @@
*
* @brief Pullable Mushroom object
*/
-#include "functions.h"
#include "game.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/pushableFurniture.c b/src/object/pushableFurniture.c
index 4a0dfda7..f869c62d 100644
--- a/src/object/pushableFurniture.c
+++ b/src/object/pushableFurniture.c
@@ -6,8 +6,14 @@
*/
#include "object/pushableFurniture.h"
-#include "functions.h"
#include "tiles.h"
+#include "flags.h"
+#include "sound.h"
+#include "asm.h"
+#include "room.h"
+#include "player.h"
+#include "physics.h"
+#include "map.h"
extern const s16 gUnk_080B4488[];
@@ -73,7 +79,7 @@ void PushableFurniture_Init(PushableFurnitureEntity* this) {
this->unk_7e = (s8)super->subtimer + super->x.HALF_U.HI;
}
if (super->parent == NULL) {
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
condition++;
}
} else {
@@ -228,7 +234,7 @@ bool32 sub_0808FC5C(PushableFurnitureEntity* this) {
this->unk_81 = 1;
if (super->parent == NULL) {
- SetFlag((u32)this->unk_86);
+ SetFlag((u32)this->flag);
} else {
if ((this->unk_82 & 0x80) != 0) {
puVar5 = super->parent->spriteAnimation + 2;
diff --git a/src/object/pushableGrave.c b/src/object/pushableGrave.c
index 4ba81982..e059b866 100644
--- a/src/object/pushableGrave.c
+++ b/src/object/pushableGrave.c
@@ -4,9 +4,15 @@
*
* @brief Pushable Grave object
*/
-#include "functions.h"
+#include "beanstalkSubtask.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
diff --git a/src/object/pushableLever.c b/src/object/pushableLever.c
index 592a51e2..fb523054 100644
--- a/src/object/pushableLever.c
+++ b/src/object/pushableLever.c
@@ -4,8 +4,12 @@
*
* @brief Pushable Lever object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
diff --git a/src/object/pushableRock.c b/src/object/pushableRock.c
index f58afa79..f2401fab 100644
--- a/src/object/pushableRock.c
+++ b/src/object/pushableRock.c
@@ -4,8 +4,12 @@
*
* @brief Pushable Rock object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
#include "tiles.h"
typedef struct {
diff --git a/src/object/pushableStatue.c b/src/object/pushableStatue.c
index 35fbb3bd..bda7a547 100644
--- a/src/object/pushableStatue.c
+++ b/src/object/pushableStatue.c
@@ -5,10 +5,16 @@
* @brief Pushable Statue object
*/
#include "area.h"
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
+#include "vram.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/railtrack.c b/src/object/railtrack.c
index f5ceab8d..3639f929 100644
--- a/src/object/railtrack.c
+++ b/src/object/railtrack.c
@@ -7,10 +7,10 @@
#include "asm.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "room.h"
#include "sound.h"
#include "tiles.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
@@ -19,10 +19,10 @@ typedef struct {
/*0x74*/ u16 unk_74;
/*0x76*/ u16 unk_76;
/*0x78*/ u16 unk_78;
- /*0x7a*/ u16 unk_7a;
+ /*0x7a*/ u16 flagValue;
/*0x7c*/ union SplitHWord unk_7c;
/*0x7e*/ u8 unused2[8];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} RailtrackEntity;
void sub_08085394(RailtrackEntity* this);
@@ -58,8 +58,8 @@ void Railtrack_Init(RailtrackEntity* this) {
}
super->animationState = super->type2 & 2;
if (super->type == 3) {
- uVar1 = CheckFlags(this->unk_86);
- this->unk_7a = uVar1;
+ uVar1 = CheckFlags(this->flag);
+ this->flagValue = uVar1;
if ((u16)(uVar1 & -1) != 0) {
super->animationState = (super->animationState + 2) & 3;
super->action = 3;
@@ -71,11 +71,11 @@ void Railtrack_Init(RailtrackEntity* this) {
}
void Railtrack_Action1(RailtrackEntity* this) {
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
super->action = 2;
super->subtimer = 8;
if (super->type == 1) {
- ClearFlag(this->unk_86);
+ ClearFlag(this->flag);
}
super->animationState = (super->animationState + this->unk_7c.HALF.LO) & 3;
InitializeAnimation(super, super->animationState);
@@ -88,7 +88,7 @@ void Railtrack_Action2(RailtrackEntity* this) {
if (--super->subtimer == 0) {
super->action = 3;
super->subtimer = super->timer;
- this->unk_7a = CheckFlags(this->unk_86);
+ this->flagValue = CheckFlags(this->flag);
super->animationState = (super->animationState + this->unk_7c.HALF.LO) & 3;
InitializeAnimation(super, super->animationState);
sub_08085394(this);
@@ -103,13 +103,13 @@ void Railtrack_Action3(RailtrackEntity* this) {
case 1:
break;
case 2:
- if (CheckFlags(this->unk_86) == 0) {
+ if (CheckFlags(this->flag) == 0) {
super->action = 1;
return;
}
break;
case 3:
- if (CheckFlags(this->unk_86) == this->unk_7a) {
+ if (CheckFlags(this->flag) == this->flagValue) {
super->subtimer = 255;
} else {
super->subtimer = 1;
diff --git a/src/object/rotatingTrapdoor.c b/src/object/rotatingTrapdoor.c
index 3351b1d7..b6b5f587 100644
--- a/src/object/rotatingTrapdoor.c
+++ b/src/object/rotatingTrapdoor.c
@@ -6,7 +6,7 @@
*/
#include "asm.h"
#include "entity.h"
-#include "functions.h"
+#include "player.h"
#include "room.h"
#include "sound.h"
diff --git a/src/object/rupee.c b/src/object/rupee.c
index 49ff7835..22059aed 100644
--- a/src/object/rupee.c
+++ b/src/object/rupee.c
@@ -4,9 +4,10 @@
*
* @brief Rupee object
*/
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "physics.h"
void sub_08086A6C(Entity*);
void Rupee_Init(Entity*);
diff --git a/src/object/shrinkingHieroglyphs.c b/src/object/shrinkingHieroglyphs.c
index c490b834..d8b34eea 100644
--- a/src/object/shrinkingHieroglyphs.c
+++ b/src/object/shrinkingHieroglyphs.c
@@ -5,9 +5,10 @@
* @brief Shrinking Hieroglyphs object
*/
#include "entity.h"
-#include "functions.h"
#include "player.h"
#include "sound.h"
+#include "vram.h"
+#include "physics.h"
typedef struct {
Entity base;
diff --git a/src/object/smallIceBlock.c b/src/object/smallIceBlock.c
index 8aab1f91..dfde7891 100644
--- a/src/object/smallIceBlock.c
+++ b/src/object/smallIceBlock.c
@@ -9,6 +9,12 @@
#include "hitbox.h"
#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
#include "tiles.h"
typedef struct {
@@ -18,7 +24,7 @@ typedef struct {
/*0x6e*/ u8 unk_6e[0x2];
/*0x70*/ u16 tilePos;
/*0x72*/ u8 unk_72[0x14];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} SmallIceBlockEntity;
extern const s16 gUnk_080B4488[];
@@ -51,7 +57,7 @@ void SmallIceBlock_Init(SmallIceBlockEntity* this) {
case 0:
case 1:
case 2:
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
DeleteThisEntity();
}
}
@@ -81,7 +87,7 @@ void SmallIceBlock_Action1(SmallIceBlockEntity* this) {
EnqueueSFX(SFX_ICE_BLOCK_MELT);
SmallIceBlock_Action3(this);
if (super->type == 0) {
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
}
} else {
if (!sub_0800442E(super)) {
@@ -138,10 +144,10 @@ void SmallIceBlock_Action3(SmallIceBlockEntity* this) {
}
SetAffineInfo(super, 0x100, gUnk_08123748[super->timer >> 5], 0);
if (super->type == 1) {
- CreateGroundItemWithFlags(super, ITEM_SMALL_KEY, 0, this->unk_86);
+ CreateGroundItemWithFlags(super, ITEM_SMALL_KEY, 0, this->flag);
SoundReq(SFX_SECRET);
} else if (super->type == 2) {
- CreateGroundItemWithFlags(super, ITEM_BIG_KEY, 0, this->unk_86);
+ CreateGroundItemWithFlags(super, ITEM_BIG_KEY, 0, this->flag);
SoundReq(SFX_SECRET);
}
super->action = 4;
diff --git a/src/object/smoke.c b/src/object/smoke.c
index 62b4d1ac..534d91c2 100644
--- a/src/object/smoke.c
+++ b/src/object/smoke.c
@@ -5,6 +5,8 @@
* @brief Smoke object
*/
#include "object.h"
+#include "asm.h"
+#include "physics.h"
void Smoke_Type0(Entity*);
void Smoke_Type1(Entity*);
diff --git a/src/object/smokeParticle.c b/src/object/smokeParticle.c
index ac05de1f..68963f44 100644
--- a/src/object/smokeParticle.c
+++ b/src/object/smokeParticle.c
@@ -4,8 +4,13 @@
*
* @brief Smoke Particle object
*/
-#include "functions.h"
+#include "collision.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "script.h"
+#include "player.h"
+#include "room.h"
#include "tiles.h"
void SmokeParticle_Init(Entity*);
diff --git a/src/object/specialFx.c b/src/object/specialFx.c
index cdd72a0b..63afabd3 100644
--- a/src/object/specialFx.c
+++ b/src/object/specialFx.c
@@ -5,8 +5,15 @@
* @brief Special FX object
*/
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "script.h"
+#include "sound.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
+#include "item.h"
typedef struct {
Entity base;
diff --git a/src/object/steam.c b/src/object/steam.c
index 7cef37d1..f13bde3c 100644
--- a/src/object/steam.c
+++ b/src/object/steam.c
@@ -8,6 +8,7 @@
#include "entity.h"
#include "player.h"
#include "room.h"
+#include "script.h"
#include "screen.h"
const u8 gUnk_08123484[];
diff --git a/src/object/stoneTablet.c b/src/object/stoneTablet.c
index 99e45cbe..efd6bbfe 100644
--- a/src/object/stoneTablet.c
+++ b/src/object/stoneTablet.c
@@ -5,9 +5,9 @@
* @brief Stone Tablet object
*/
#include "entity.h"
-#include "functions.h"
#include "room.h"
#include "tiles.h"
+#include "beanstalkSubtask.h"
void StoneTablet_Init(Entity*);
void StoneTablet_Action1(Entity*);
diff --git a/src/object/swordParticle.c b/src/object/swordParticle.c
index f86879a0..d5232947 100644
--- a/src/object/swordParticle.c
+++ b/src/object/swordParticle.c
@@ -4,9 +4,13 @@
*
* @brief Sword Particle object
*/
-#include "functions.h"
#include "item.h"
#include "object.h"
+#include "sound.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/swordsmanNewsletter.c b/src/object/swordsmanNewsletter.c
index bc17266a..2afc5657 100644
--- a/src/object/swordsmanNewsletter.c
+++ b/src/object/swordsmanNewsletter.c
@@ -6,6 +6,7 @@
*/
#include "entity.h"
#include "message.h"
+#include "player.h"
extern void AddInteractableCheckableObject(Entity*);
void SwordsmanNewsletter_Init(Entity*);
diff --git a/src/object/thunderbolt.c b/src/object/thunderbolt.c
index 543c08c4..d79159cc 100644
--- a/src/object/thunderbolt.c
+++ b/src/object/thunderbolt.c
@@ -4,8 +4,12 @@
*
* @brief Thunderbolt object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "script.h"
+#include "sound.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/titleScreenObject.c b/src/object/titleScreenObject.c
index dc94e9fc..fa199270 100644
--- a/src/object/titleScreenObject.c
+++ b/src/object/titleScreenObject.c
@@ -4,8 +4,8 @@
*
* @brief Title Screen object
*/
-#include "functions.h"
#include "object.h"
+#include "asm.h"
void TitleScreenObject_Type0(Entity*);
void TitleScreenObject_Type1(Entity*);
diff --git a/src/object/trapdoor.c b/src/object/trapdoor.c
index 809643dd..1704c770 100644
--- a/src/object/trapdoor.c
+++ b/src/object/trapdoor.c
@@ -6,6 +6,10 @@
*/
#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "flags.h"
+#include "physics.h"
+#include "player.h"
void sub_08099ECC(Entity*);
void Trapdoor_Init(Entity*);
diff --git a/src/object/treeHidingPortal.c b/src/object/treeHidingPortal.c
index 283d64be..da087e26 100644
--- a/src/object/treeHidingPortal.c
+++ b/src/object/treeHidingPortal.c
@@ -7,17 +7,18 @@
#include "effects.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
#include "player.h"
#include "room.h"
#include "sound.h"
#include "tiles.h"
+#include "kinstone.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unused1[30];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} TreeHidingPortalEntity;
extern const s16 gUnk_080B4468[];
@@ -42,7 +43,7 @@ void TreeHidingPortal(TreeHidingPortalEntity* this) {
}
void TreeHidingPortal_Init(TreeHidingPortalEntity* this) {
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
sub_0809E96C(this);
DeleteThisEntity();
}
@@ -56,7 +57,7 @@ void TreeHidingPortal_Action1(TreeHidingPortalEntity* this) {
if (sub_0800419C(super, &gPlayerEntity.base, 0x30, 0x30)) {
if (CheckGlobalFlag(EZERO_1ST)) {
if (((gRoomTransition.frameCount & 3) == 0)) {
- CreateSparkle(super);
+ CreateSparkleFx(super);
}
}
}
@@ -79,7 +80,7 @@ void TreeHidingPortal_Action2(TreeHidingPortalEntity* this) {
void TreeHidingPortal_Action3(TreeHidingPortalEntity* this) {
if (--super->timer == 0) {
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
SetPlayerControl(0);
SoundReq(SFX_SECRET_BIG);
DeleteThisEntity();
diff --git a/src/object/treeThorns.c b/src/object/treeThorns.c
index 3fe27355..3c7b9f06 100644
--- a/src/object/treeThorns.c
+++ b/src/object/treeThorns.c
@@ -7,6 +7,7 @@
#include "entity.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
#include "physics.h"
#include "room.h"
#include "tiles.h"
diff --git a/src/object/unusedSkull.c b/src/object/unusedSkull.c
index 6bfb48a5..5198aeba 100644
--- a/src/object/unusedSkull.c
+++ b/src/object/unusedSkull.c
@@ -4,15 +4,19 @@
*
* @brief Unused Skull object
*/
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
#include "tiles.h"
typedef struct {
/*0x00*/ Entity base;
/*0x68*/ u8 unk_68[0x1e];
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} UnusedSkullEntity;
void UnusedSkull_Init(UnusedSkullEntity*);
@@ -40,9 +44,9 @@ void UnusedSkull_Init(UnusedSkullEntity* this) {
super->collisionMask = 2;
super->hitbox = (Hitbox*)&gHitbox_4;
SetTile(SPECIAL_TILE_80, COORD_TO_TILE(super), super->collisionLayer);
- if (super->type == 1 || CheckFlags(this->unk_86)) {
+ if (super->type == 1 || CheckFlags(this->flag)) {
super->action = 3;
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
InitializeAnimation(super, 1);
} else {
InitializeAnimation(super, super->type);
@@ -62,7 +66,7 @@ void UnusedSkull_Action2(UnusedSkullEntity* this) {
GetNextFrame(super);
if ((super->frame & 1) != 0) {
super->action = 3;
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
EnqueueSFX(SFX_BUTTON_PRESS);
}
}
diff --git a/src/object/vaati3PlayerObject.c b/src/object/vaati3PlayerObject.c
index 6420cbab..5a7980e0 100644
--- a/src/object/vaati3PlayerObject.c
+++ b/src/object/vaati3PlayerObject.c
@@ -7,7 +7,9 @@
#include "entity.h"
#include "physics.h"
#include "player.h"
+#ifndef EU
#include "room.h"
+#endif
void Vaati3PlayerObject(Entity* this) {
if (this->action == 0) {
diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c
index 67798907..9c263eea 100644
--- a/src/object/warpPoint.c
+++ b/src/object/warpPoint.c
@@ -4,10 +4,15 @@
*
* @brief Warp Point object
*/
-#include "functions.h"
#include "game.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
@@ -18,7 +23,7 @@ typedef struct {
/*0x7d*/ u8 unk_7d;
/*0x7e*/ u8 unused3[6];
/*0x84*/ u16 unk_84;
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} WarpPointEntity;
extern void EnableDungeonWarp(u32);
@@ -58,7 +63,7 @@ void WarpPoint_Init(WarpPointEntity* this) {
super->hitbox = (Hitbox*)&gHitbox_1;
super->updatePriority = PRIO_NO_BLOCK;
InitializeAnimation(super, 0);
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
sub_0808B830(this);
} else {
if (AreaIsDungeon() && IsDungeonWarpActive(super->type)) {
@@ -77,7 +82,7 @@ void WarpPoint_Init(WarpPointEntity* this) {
}
void WarpPoint_Action1(WarpPointEntity* this) {
- if (CheckFlags(this->unk_86)) {
+ if (CheckFlags(this->flag)) {
sub_0808B830(this);
if (AreaIsDungeon()) {
EnableDungeonWarp(super->type);
diff --git a/src/object/waterDropObject.c b/src/object/waterDropObject.c
index 056afa57..b4dbec44 100644
--- a/src/object/waterDropObject.c
+++ b/src/object/waterDropObject.c
@@ -5,7 +5,6 @@
* @brief Water Drop object
*/
#include "entity.h"
-#include "functions.h"
void WaterDropObject(Entity* this) {
u32 iVar2;
diff --git a/src/object/waterElement.c b/src/object/waterElement.c
index 6f55a27c..4ff3d9fa 100644
--- a/src/object/waterElement.c
+++ b/src/object/waterElement.c
@@ -4,7 +4,6 @@
*
* @brief Water Element object
*/
-#include "functions.h"
#include "object.h"
void WaterElement_Init(Entity*);
diff --git a/src/object/waterfallOpening.c b/src/object/waterfallOpening.c
index c63c937a..f6f02a3f 100644
--- a/src/object/waterfallOpening.c
+++ b/src/object/waterfallOpening.c
@@ -6,11 +6,12 @@
*/
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "menu.h"
#include "room.h"
#include "sound.h"
#include "tiles.h"
+#include "vram.h"
+#include "map.h"
typedef struct {
Entity base;
diff --git a/src/object/well.c b/src/object/well.c
index 0e19e21a..082ba849 100644
--- a/src/object/well.c
+++ b/src/object/well.c
@@ -6,10 +6,10 @@
*/
#include "asm.h"
#include "entity.h"
-#include "functions.h"
#include "player.h"
#include "room.h"
#include "tiles.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/whirlwind.c b/src/object/whirlwind.c
index add24319..218ee28b 100644
--- a/src/object/whirlwind.c
+++ b/src/object/whirlwind.c
@@ -5,9 +5,15 @@
* @brief Whirlwind object
*/
#include "area.h"
-#include "functions.h"
+#include "script.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "physics.h"
+#include "player.h"
+#include "color.h"
void Whirlwind_Init(Entity*);
void Whirlwind_Action1(Entity*);
diff --git a/src/object/whiteTriangleEffect.c b/src/object/whiteTriangleEffect.c
index 2d7f24e3..ce12c336 100644
--- a/src/object/whiteTriangleEffect.c
+++ b/src/object/whiteTriangleEffect.c
@@ -4,8 +4,9 @@
*
* @brief White Triangle Effect object
*/
-#include "functions.h"
#include "object.h"
+#include "common.h"
+#include "room.h"
#include "screen.h"
typedef struct {
diff --git a/src/object/windTribeFlag.c b/src/object/windTribeFlag.c
index 99b8572f..deac4c39 100644
--- a/src/object/windTribeFlag.c
+++ b/src/object/windTribeFlag.c
@@ -5,6 +5,7 @@
* @brief Wind Tribe Flag object
*/
#include "object.h"
+#include "asm.h"
void WindTribeFlag(Entity* this) {
if (this->action == 0) {
diff --git a/src/object/windTribeTeleporter.c b/src/object/windTribeTeleporter.c
index 5a238478..70d84512 100644
--- a/src/object/windTribeTeleporter.c
+++ b/src/object/windTribeTeleporter.c
@@ -5,10 +5,15 @@
* @brief Wind Tribe Teleporter object
*/
#include "collision.h"
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "sound.h"
+#include "room.h"
+#include "player.h"
#include "screenTransitions.h"
+#if defined(DEMO_JP) || defined(USA) || defined(DEMO_USA)
+#include "flags.h"
+#endif
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/object/windcrest.c b/src/object/windcrest.c
index ad1b63a3..f6dbba59 100644
--- a/src/object/windcrest.c
+++ b/src/object/windcrest.c
@@ -6,7 +6,6 @@
*/
#include "effects.h"
#include "entity.h"
-#include "functions.h"
#include "save.h"
#include "script.h"
#include "sound.h"
diff --git a/src/objectUtils.c b/src/objectUtils.c
index 21ec9568..965b0437 100644
--- a/src/objectUtils.c
+++ b/src/objectUtils.c
@@ -1,17 +1,19 @@
-
-#include "global.h"
#include "entity.h"
#include "physics.h"
#include "room.h"
#include "object.h"
-#include "functions.h"
+#include "asm.h"
+#include "effects.h"
+#include "player.h"
+#include "pauseMenu.h"
#include "definitions.h"
+#include "vram.h"
#include "object/linkAnimation.h"
#include "object/itemOnGround.h"
+#include "color.h"
extern const Hitbox* const gObjectHitboxes[];
-u32 LoadObjectSprite(Entity* this, s32 type, const ObjectDefinition* definition);
extern const ObjectDefinition gObjectDefinitions[];
static Entity* CreateSpeechBubble(Entity*, u32, s32, s32);
@@ -119,20 +121,20 @@ u32 LoadObjectSprite(Entity* this, s32 type, const ObjectDefinition* definition)
return 2;
}
-Entity* CreateObject(u32 subtype, u32 form, u32 type2) {
+Entity* CreateObject(Object id, u32 type, u32 type2) {
Entity* entity = GetEmptyEntity();
if (entity != NULL) {
entity->kind = OBJECT;
- entity->id = subtype;
- entity->type = form;
+ entity->id = id;
+ entity->type = type;
entity->type2 = type2;
AppendEntityToList(entity, 6);
}
return entity;
}
-Entity* CreateObjectWithParent(Entity* parent, u32 subtype, u32 form, u32 type2) {
- Entity* entity = CreateObject(subtype, form, type2);
+Entity* CreateObjectWithParent(Entity* parent, Object id, u32 type, u32 type2) {
+ Entity* entity = CreateObject(id, type, type2);
if (entity != NULL) {
entity->parent = parent;
CopyPosition(parent, entity);
@@ -141,15 +143,15 @@ Entity* CreateObjectWithParent(Entity* parent, u32 subtype, u32 form, u32 type2)
return entity;
}
-Entity* CreateFx(Entity* parentEnt, u32 form, u32 parameter) {
- return CreateObjectWithParent(parentEnt, SPECIAL_FX, form, parameter);
+Entity* CreateFx(Entity* parentEnt, Effect type, u32 type2) {
+ return CreateObjectWithParent(parentEnt, SPECIAL_FX, type, type2);
}
-void CreateDust(Entity* parent) {
+void CreateDeathFx(Entity* parent) {
CreateFx(parent, FX_DEATH, 0);
}
-void CreateDustAt(s32 xOff, s32 yOff, u32 layer) {
+void CreateDeathFxAt(s32 xOff, s32 yOff, u32 layer) {
Entity* ent;
ent = CreateObject(SPECIAL_FX, FX_DEATH, 0);
@@ -160,41 +162,41 @@ void CreateDustAt(s32 xOff, s32 yOff, u32 layer) {
}
}
-void CreateDustSmall(Entity* parent) {
+void CreateDashFx(Entity* parent) {
CreateFx(parent, FX_DASH, 0);
}
-void CreateExplosionBroken(Entity* parent) {
+void CreateExplosionBrokenFx(Entity* parent) {
CreateFx(parent, FX_6, 0);
}
-void CreateWaterSplash(Entity* parent) {
+void CreateWaterSplashFx(Entity* parent) {
CreateFx(parent, FX_WATER_SPLASH, 0);
}
-Entity* CreateGroundItem(Entity* parent, u32 form, u32 subtype) {
+Entity* CreateGroundItem(Entity* parent, u32 item, u32 subvalue) {
Entity* ent;
- ent = CreateObjectWithParent(parent, GROUND_ITEM, form, subtype);
+ ent = CreateObjectWithParent(parent, GROUND_ITEM, item, subvalue);
if (ent != NULL) {
ent->timer = 5;
}
return ent;
}
-Entity* CreateGroundItemWithFlags(Entity* parent, u32 form, u32 subtype, u32 flags) {
+Entity* CreateGroundItemWithFlags(Entity* parent, u32 item, u32 subvalue, u32 flags) {
Entity* ent;
- ent = CreateObjectWithParent(parent, GROUND_ITEM, form, subtype);
+ ent = CreateObjectWithParent(parent, GROUND_ITEM, item, subvalue);
if (ent != NULL) {
ItemOnGroundEntity* this = (ItemOnGroundEntity*)ent;
ent->timer = 5;
- this->unk_86 = flags;
+ this->flag = flags;
}
return ent;
}
-Entity* CreateWaterTrace(Entity* parent) {
+Entity* CreateRippleFx(Entity* parent) {
Entity* ent;
ent = CreateFx(parent, FX_RIPPLE, 0);
@@ -204,12 +206,12 @@ Entity* CreateWaterTrace(Entity* parent) {
return ent;
}
-void CreateRandomWaterTrace(Entity* parent, int range) {
- s32 sVar1, sVar2, sVar3;
+void CreateRippleFxRandom(Entity* parent, s32 range) {
+ s32 sVar1, sVar2;
Entity* ent;
u32 uVar3;
- ent = CreateWaterTrace(parent);
+ ent = CreateRippleFx(parent);
if (ent != NULL) {
uVar3 = Random();
sVar1 = (int)uVar3 % (++range);
@@ -228,7 +230,7 @@ void CreateRandomWaterTrace(Entity* parent, int range) {
}
}
-Entity* CreateLargeWaterTrace(Entity* parent) {
+Entity* CreateLargeRippleFx(Entity* parent) {
Entity* ent = CreateFx(parent, FX_RIPPLE_LARGE, 0);
if (ent != NULL) {
ent->spritePriority.b0 = 7;
@@ -236,22 +238,22 @@ Entity* CreateLargeWaterTrace(Entity* parent) {
return ent;
}
-void sub_080A2AF4(Entity* parent, s32 param_2, s32 param_3) {
+void CreateLargeRippleFxRandom(Entity* parent, s32 minDistance, s32 maxDistance) {
Entity* entity;
s32 radius;
s32 angle;
- entity = CreateLargeWaterTrace(parent);
+ entity = CreateLargeRippleFx(parent);
if (entity != NULL) {
angle = Random();
- radius = (angle % (param_3 - param_2 + 1)) + param_2;
+ radius = (angle % (maxDistance - minDistance + 1)) + minDistance;
angle = angle >> 0x10 & 0xff;
entity->x.WORD += FixedDiv(FixedMul(gSineTable[angle], radius << 8), 0x100) << 8;
entity->y.WORD -= FixedDiv(FixedMul(gSineTable[angle + 0x40], radius << 8), 0x100) << 8;
}
}
-void CreateSparkle(Entity* entity) {
+void CreateSparkleFx(Entity* parent) {
Entity* sparkle;
u32 rand;
s32 y;
@@ -268,10 +270,10 @@ void CreateSparkle(Entity* entity) {
if (4 < y) {
y = -y;
}
- PositionRelative(entity, sparkle, x << 0x10, y << 0x10);
- SortEntityAbove(entity, sparkle);
- sparkle->spriteOffsetX = entity->spriteOffsetX;
- sparkle->spriteOffsetY = entity->spriteOffsetY;
+ PositionRelative(parent, sparkle, x << 0x10, y << 0x10);
+ SortEntityAbove(parent, sparkle);
+ sparkle->spriteOffsetX = parent->spriteOffsetX;
+ sparkle->spriteOffsetY = parent->spriteOffsetY;
}
}
diff --git a/src/physics.c b/src/physics.c
index 99bc50df..28213602 100644
--- a/src/physics.c
+++ b/src/physics.c
@@ -2,12 +2,13 @@
#include "asm.h"
#include "color.h"
#include "common.h"
-#include "functions.h"
+#include "structures.h"
#include "physics.h"
#include "player.h"
#include "playeritem.h"
#include "room.h"
#include "sound.h"
+#include "vram.h"
const u8 gSpriteSortAboveTable[];
const u8 gSpriteSortBelowTable[];
@@ -556,7 +557,7 @@ void sub_0806FEBC(Entity* ent, u32 param_2, Entity* param_3) {
*((u32*)ptr) = 0;
ptr->unk_04.WORD = 0;
ptr->unk_08.WORD = 0;
- ptr->unk_0C = (u32)param_3;
+ ptr->unk_0C = param_3;
ptr->unk_00.unk0 = 1;
ptr->unk_00.unk1 = 1;
}
@@ -646,9 +647,9 @@ void sub_0807000C(Entity* this) {
}
static bool32 sub_0807007C(struct_gUnk_020000C0* this, u32 param_2) {
- u8* ptr2;
- u8* ptr3;
- u32* spritePtr;
+ SpriteFrame* frames;
+ SpriteFrame* frame;
+ const SpritePtr* spritePtr;
struct_gUnk_020000C0_1* ptr1 = &this->unk_00[param_2];
if ((ptr1->unk_00.unk3) == 0)
return 0;
@@ -657,14 +658,14 @@ static bool32 sub_0807007C(struct_gUnk_020000C0* this, u32 param_2) {
if (ptr1->unk_01 == 0xff)
return 0;
- spritePtr = &((u32*)gSpritePtrs)[ptr1->unk_02 * 4];
- ptr2 = (u8*)(spritePtr[1]);
- if (ptr2 == 0)
+ spritePtr = &gSpritePtrs[ptr1->unk_02];
+ frames = spritePtr->frames;
+ if (frames == 0)
return 0;
- ptr3 = &ptr2[ptr1->unk_01 * 4];
- ptr1->unk_08.BYTES.byte1 = *ptr3;
- ptr1->unk_0C = spritePtr[2] + ((*(u16*)&ptr3[2]) << 5);
+ frame = &frames[ptr1->unk_01];
+ ptr1->unk_08.BYTES.byte1 = frame->numTiles;
+ ptr1->unk_0C = spritePtr->ptr + (frame->firstTileIndex << 5);
return 1;
}
diff --git a/src/player.c b/src/player.c
index c394ea0d..e1cba46b 100644
--- a/src/player.c
+++ b/src/player.c
@@ -17,14 +17,20 @@
#include "main.h"
#include "message.h"
#include "object.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
#include "player.h"
#include "playeritem.h"
#include "playerItem/playerItemBottle.h"
#include "save.h"
-#include "screen.h"
#include "screenTransitions.h"
+#include "scroll.h"
#include "sound.h"
#include "tiles.h"
+#include "ui.h"
+#include "pauseMenu.h"
+#include "fade.h"
#define kGravityRate Q_8_8(32)
#define kWalkSpeedSlopeSubtractor Q_8_8(0.3125)
@@ -559,7 +565,7 @@ static void PlayerNormal(PlayerEntity* this) {
if (gPlayerState.item == NULL)
UpdateAnimationSingleFrame(super);
if (gPlayerState.swim_state != 0 && (gRoomTransition.frameCount & 7) == 0)
- CreateWaterTrace(super);
+ CreateRippleFx(super);
return;
}
}
diff --git a/src/playerItem.c b/src/playerItem.c
index 266d12d0..c50b9160 100644
--- a/src/playerItem.c
+++ b/src/playerItem.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "functions.h"
#include "player.h"
#include "playeritem.h"
diff --git a/src/playerItem/playerItemBoomerang.c b/src/playerItem/playerItemBoomerang.c
index bcc151a8..b5d12dd7 100644
--- a/src/playerItem/playerItemBoomerang.c
+++ b/src/playerItem/playerItemBoomerang.c
@@ -6,9 +6,12 @@
*/
#include "asm.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
#include "item.h"
+#include "room.h"
#include "sound.h"
+#include "vram.h"
+#include "collision.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/playerItem/playerItemBottle.c b/src/playerItem/playerItemBottle.c
index 47eeed56..d02a133a 100644
--- a/src/playerItem/playerItemBottle.c
+++ b/src/playerItem/playerItemBottle.c
@@ -6,12 +6,16 @@
*/
#include "playerItem/playerItemBottle.h"
-#include "functions.h"
#include "item.h"
#include "object.h"
+#include "asm.h"
+#include "physics.h"
+#include "player.h"
#include "save.h"
#include "sound.h"
#include "tiles.h"
+#include "vram.h"
+#include "collision.h"
void PlayerItemBottle_UseEmptyBottle(Entity*);
void PlayerItemBottle_Action1(PlayerItemBottleEntity*);
diff --git a/src/playerItem/playerItemBow.c b/src/playerItem/playerItemBow.c
index fec8aea4..827aa51f 100644
--- a/src/playerItem/playerItemBow.c
+++ b/src/playerItem/playerItemBow.c
@@ -7,12 +7,16 @@
#include "asm.h"
#include "effects.h"
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "playeritem.h"
#include "save.h"
#include "sound.h"
#include "tiles.h"
+#include "vram.h"
+#include "collision.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/playerItem/playerItemDashSword.c b/src/playerItem/playerItemDashSword.c
index 0256561c..f12237d2 100644
--- a/src/playerItem/playerItemDashSword.c
+++ b/src/playerItem/playerItemDashSword.c
@@ -5,8 +5,10 @@
* @brief Dash Sword Player Item
*/
#include "entity.h"
-#include "functions.h"
#include "player.h"
+#include "vram.h"
+#include "collision.h"
+#include "asm.h"
extern Entity* DoTileInteractionOffset(Entity*, u32, s32, s32);
diff --git a/src/playerItem/playerItemFireRodProjectile.c b/src/playerItem/playerItemFireRodProjectile.c
index c80c7894..698bf3a3 100644
--- a/src/playerItem/playerItemFireRodProjectile.c
+++ b/src/playerItem/playerItemFireRodProjectile.c
@@ -7,10 +7,12 @@
#include "asm.h"
#include "effects.h"
#include "entity.h"
-#include "functions.h"
#include "physics.h"
#include "playeritem.h"
#include "sound.h"
+#include "collision.h"
+#include "room.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/playerItem/playerItemGust.c b/src/playerItem/playerItemGust.c
index 286c06f3..0ca4ef45 100644
--- a/src/playerItem/playerItemGust.c
+++ b/src/playerItem/playerItemGust.c
@@ -6,8 +6,10 @@
*/
#include "asm.h"
#include "entity.h"
-#include "functions.h"
+#include "collision.h"
#include "object.h"
+#include "room.h"
+#include "physics.h"
#include "player.h"
#include "playeritem.h"
diff --git a/src/playerItem/playerItemGustBig.c b/src/playerItem/playerItemGustBig.c
index 7281139d..45b52c4a 100644
--- a/src/playerItem/playerItemGustBig.c
+++ b/src/playerItem/playerItemGustBig.c
@@ -4,13 +4,15 @@
*
* @brief Gust Big Player Item
*/
+#include "playeritem.h"
#include "asm.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
#include "global.h"
#include "player.h"
#include "sound.h"
#include "tiles.h"
+#include "collision.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/playerItem/playerItemGustJar.c b/src/playerItem/playerItemGustJar.c
index 10cbca1b..3425e6e4 100644
--- a/src/playerItem/playerItemGustJar.c
+++ b/src/playerItem/playerItemGustJar.c
@@ -5,9 +5,10 @@
* @brief Gust Jar Player Item
*/
#include "entity.h"
-#include "functions.h"
#include "player.h"
#include "sound.h"
+#include "vram.h"
+#include "asm.h"
extern const u8* gUnk_08132714[]; // Anim index lists?
// TODO spriteAnimations in here
diff --git a/src/playerItem/playerItemHeldObject.c b/src/playerItem/playerItemHeldObject.c
index 0783cd04..18013074 100644
--- a/src/playerItem/playerItemHeldObject.c
+++ b/src/playerItem/playerItemHeldObject.c
@@ -4,10 +4,11 @@
*
* @brief Held Object Player Item
*/
+#include "object.h"
#include "asm.h"
#include "effects.h"
-#include "entity.h"
-#include "functions.h"
+#include "physics.h"
+#include "collision.h"
#include "player.h"
#include "sound.h"
#include "tiles.h"
diff --git a/src/playerItem/playerItemLantern.c b/src/playerItem/playerItemLantern.c
index 7c16acbc..fe6fccf6 100644
--- a/src/playerItem/playerItemLantern.c
+++ b/src/playerItem/playerItemLantern.c
@@ -5,10 +5,13 @@
* @brief Lantern Player Item
*/
#include "entity.h"
-#include "functions.h"
#include "item.h"
#include "object.h"
+#include "physics.h"
#include "player.h"
+#include "vram.h"
+#include "asm.h"
+#include "collision.h"
void PlayerItemLantern_Init(Entity* this);
void PlayerItemLantern_Action1(Entity* this);
diff --git a/src/playerItem/playerItemPacciCane.c b/src/playerItem/playerItemPacciCane.c
index a6ef2553..82cb79f9 100644
--- a/src/playerItem/playerItemPacciCane.c
+++ b/src/playerItem/playerItemPacciCane.c
@@ -6,11 +6,11 @@
*/
#include "common.h"
#include "entity.h"
-#include "functions.h"
-#include "message.h"
#include "save.h"
#include "sound.h"
-#include "structures.h"
+#include "pauseMenu.h"
+#include "vram.h"
+#include "asm.h"
void PlayerItemPacciCane_Action1(Entity*);
void PlayerItemPacciCane_Init(Entity* this);
diff --git a/src/playerItem/playerItemPacciCaneProjectile.c b/src/playerItem/playerItemPacciCaneProjectile.c
index 251274c9..3e7aa03e 100644
--- a/src/playerItem/playerItemPacciCaneProjectile.c
+++ b/src/playerItem/playerItemPacciCaneProjectile.c
@@ -4,10 +4,14 @@
*
* @brief Pacci Cane Projectile Player Item
*/
+#include "playeritem.h"
#include "asm.h"
#include "entity.h"
-#include "functions.h"
+#include "collision.h"
#include "object.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "sound.h"
#include "tiles.h"
diff --git a/src/playerItem/playerItemShield.c b/src/playerItem/playerItemShield.c
index 7df31ebd..f10623cc 100644
--- a/src/playerItem/playerItemShield.c
+++ b/src/playerItem/playerItemShield.c
@@ -6,10 +6,11 @@
*/
#include "collision.h"
#include "entity.h"
-#include "functions.h"
#include "player.h"
#include "playeritem.h"
#include "sound.h"
+#include "vram.h"
+#include "asm.h"
const Hitbox gUnk_081271CC = { 0, 0, { 1, 0, 0, 1 }, 8, 8 };
diff --git a/src/playerItem/playerItemSpiralBeam.c b/src/playerItem/playerItemSpiralBeam.c
index e381d594..8baeee41 100644
--- a/src/playerItem/playerItemSpiralBeam.c
+++ b/src/playerItem/playerItemSpiralBeam.c
@@ -7,8 +7,12 @@
#include "asm.h"
#include "effects.h"
#include "entity.h"
-#include "functions.h"
+#include "playeritem.h"
+#include "physics.h"
#include "sound.h"
+#include "collision.h"
+#include "room.h"
+#include "player.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/playerItem/playerItemSword.c b/src/playerItem/playerItemSword.c
index 1bf1d9e7..d82e19c4 100644
--- a/src/playerItem/playerItemSword.c
+++ b/src/playerItem/playerItemSword.c
@@ -7,10 +7,14 @@
#include "asm.h"
#include "effects.h"
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "sound.h"
#include "tiles.h"
+#include "vram.h"
+#include "collision.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/playerItem/playerItemSwordBeam.c b/src/playerItem/playerItemSwordBeam.c
index 4b110c43..e538407e 100644
--- a/src/playerItem/playerItemSwordBeam.c
+++ b/src/playerItem/playerItemSwordBeam.c
@@ -4,14 +4,17 @@
*
* @brief Sword Beam Player Item
*/
+#include "playeritem.h"
#include "asm.h"
-#include "common.h"
#include "effects.h"
#include "entity.h"
-#include "functions.h"
+#include "collision.h"
#include "physics.h"
#include "player.h"
#include "sound.h"
+#include "object.h"
+#include "room.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/playerItemDefinitions.c b/src/playerItemDefinitions.c
index 1eaaff4c..c944cae5 100644
--- a/src/playerItemDefinitions.c
+++ b/src/playerItemDefinitions.c
@@ -1,4 +1,3 @@
-#include "entity.h"
#include "definitions.h"
#define MULTI_FORM(index, unk) \
diff --git a/src/playerItemUtils.c b/src/playerItemUtils.c
index 446bbdc7..42da7cff 100644
--- a/src/playerItemUtils.c
+++ b/src/playerItemUtils.c
@@ -1,10 +1,10 @@
#include "common.h"
#include "entity.h"
#include "flags.h"
-#include "functions.h"
#include "item.h"
#include "message.h"
#include "object.h"
+#include "room.h"
#include "player.h"
#include "save.h"
#include "sound.h"
@@ -12,7 +12,6 @@
static Entity* GiveItemWithCutscene(u32, u32, u32);
static void InitTileMessage(u32, u32);
-Entity* CreateLinkAnimation(Entity*, u32, u32);
void SetPlayerItemGetState(Entity*, u32, u32);
void CreateItemEntity(u32 type, u32 type2, u32 delay) {
diff --git a/src/playerUtils.c b/src/playerUtils.c
index 312eca72..b417ff74 100644
--- a/src/playerUtils.c
+++ b/src/playerUtils.c
@@ -4,7 +4,7 @@
#include "collision.h"
#include "common.h"
#include "entity.h"
-#include "functions.h"
+#include "structures.h"
#include "game.h"
#include "global.h"
#include "item.h"
@@ -13,15 +13,24 @@
#include "manager/diggingCaveEntranceManager.h"
#include "message.h"
#include "object.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "physics.h"
#include "player.h"
#include "room.h"
#include "save.h"
#include "screen.h"
#include "screenTransitions.h"
+#include "scroll.h"
#include "tileMap.h"
#include "tiles.h"
+#include "backgroundAnimations.h"
+#include "itemDefinitions.h"
+#include "ui.h"
+#include "fade.h"
-static void sub_08077E54(ItemBehavior* beh);
+static void sub_08077E54(ItemBehavior* this);
extern void sub_0800857C(Entity*);
extern void InitDefaultPriority(Entity*);
@@ -46,14 +55,10 @@ bool32 IsTryingToPickupObject(void);
ItemBehavior* CreateItem(u32);
u32 sub_080789A8(void);
ItemBehavior* CreateItem1(u32);
-void DeleteItemBehavior(ItemBehavior*, u32);
bool32 sub_08079E90(u32);
-void PlayerMinishSetNormalAndCollide(void);
-void sub_08078D60(void);
void* CreateItemGetPlayerItemWithParent(ItemBehavior*);
u32 sub_08079FD4(Entity*, u32);
void LoadRoomGfx(void);
-SurfaceType GetSurfaceCalcType(Entity*, s32, s32);
void sub_0807AAF8(Entity*, u32);
void sub_0807A750(u32, u32, const u8*, u32);
@@ -63,15 +68,12 @@ extern ItemBehavior* (*const gCreateItemsFuncs[])(Item);
extern void UnregisterInteractTile(u32, u32);
-extern const u8 gMapTileTypeToCollisionData[]; // collisionData for tileType?
-
extern u8 gUpdateVisibleTiles;
bool32 sub_0807BF88(u32, u32, RoomResInfo*);
void LoadRoomTileSet(void);
-void ForceSetPlayerState(u32 framestate);
InteractableObject* sub_080784E4(void);
u32 sub_08079778(void);
@@ -81,34 +83,27 @@ extern const KeyValuePair gMapActTileToSurfaceType[];
u32 sub_0807BEEC(u32 param_1, u32 param_2, u32 param_3);
-bool32 sub_0807B434(u32 position, u32 layer);
+bool32 sub_0807B434(u32 tilePos, u32 layer);
void sub_0807B820(u32);
void sub_0807B8A8(u32);
void sub_0807B930(u32);
-bool32 sub_0807B464(u32 param_1, u32 param_2);
+bool32 sub_0807B464(u32 tilePos, u32 layer);
void sub_0807B55C(u32, u32, u16*);
void sub_0807B480(u32, u32);
bool32 sub_0807B600(u32);
-bool32 sub_0807B464(u32 tilePos, u32 param_2);
-
-bool32 sub_0807B464(u32 param_1, u32 param_2);
-
-extern void CreateRandomWaterTrace(Entity* parent, int range);
void sub_08079520(Entity* this);
bool32 ToggleDiving(Entity*);
extern const u16* sub_0806FC50(u32 param_1, u32 param_2);
-bool32 sub_08079F48(u32 param_1, u32 param_2);
+bool32 sub_08079F48(u32 direction, u32 collisionData);
extern void FillActTileForLayer(MapLayer* mapLayer);
-extern u16 gUnk_080B77C0[];
-
void sub_0807BFA8(void);
void sub_0807C8B0(u16*, u32, u32);
void sub_0807C69C(u8*, u32, u32);
@@ -123,18 +118,7 @@ extern const u8 gMapTileTypeToCollisionData[];
// collisions for tiles > 0x4000
extern const u8 gMapSpecialTileToCollisionData[];
-extern u16 gUnk_080B77C0[];
-
-void sub_0807BFA8(void);
-void sub_0807C8B0(u16*, u32, u32);
-void sub_0807C69C(u8*, u32, u32);
-void sub_0807C460(void);
-void sub_0807BBE4(void);
-void CreateCollisionDataBorderAroundRoom(void);
-void sub_0807C5F4(u16*, u16*);
-void sub_0807C5B0(void);
-
-extern u8 gUnk_080082DC[];
+extern const u8 gUnk_080082DC[];
extern u32 sub_08004202(Entity*, u8*, u32);
// This just reuses the first 12 bytes of gUnk_02022830 to store a MapDataDefinition there temporarily.
@@ -154,9 +138,6 @@ u32 sub_0807A180(Entity*, Entity*, u32, u32);
extern u32 gUsedPalettes;
-extern void ClearBgAnimations(void);
-extern void LoadBgAnimations(u16*);
-
void sub_0807BFA8(void);
void UpdateActiveItems(PlayerEntity* this) {
@@ -3090,11 +3071,11 @@ void PlayerUpdateSwimming(Entity* this) {
}
if (this->direction & DIR_NOT_MOVING_CHECK) {
if ((gRoomTransition.frameCount & 0xf) == 0) {
- CreateRandomWaterTrace(this, 4);
+ CreateRippleFxRandom(this, 4);
}
} else {
if ((gRoomTransition.frameCount & 7) == 0) {
- CreateWaterTrace(this);
+ CreateRippleFx(this);
}
}
}
@@ -3228,7 +3209,7 @@ void sub_0807B178(PlayerEntity* this) {
void sub_0807B1A8(PlayerEntity* this) {
gUnk_0811C298[this->unk_6e](this);
if ((gRoomTransition.frameCount & 7) == 0) {
- CreateSparkle(super);
+ CreateSparkleFx(super);
}
}
@@ -3839,18 +3820,18 @@ void LoadRoomTileSet(void) {
MemFill16(0xffff, gMapTop.tileTypes, 0x1000);
gMapTop.tileTypes[0] = 0;
- if ((void*)gRoomControls.tileSet != (gArea.pCurrentRoomInfo)->tileSet) {
- gRoomControls.tileSet = (u32)(gArea.pCurrentRoomInfo)->tileSet;
- LoadMapData((gArea.pCurrentRoomInfo)->tileSet);
+ if ((void*)gRoomControls.tileSet != gArea.pCurrentRoomInfo->tileSet) {
+ gRoomControls.tileSet = (u32)gArea.pCurrentRoomInfo->tileSet;
+ LoadMapData(gArea.pCurrentRoomInfo->tileSet);
}
- LoadMapData((gArea.pCurrentRoomInfo)->tiles);
+ LoadMapData(gArea.pCurrentRoomInfo->tiles);
paletteBuffer = gPaletteBuffer;
MemCopy(&paletteBuffer[0x30], &paletteBuffer[0x150], 0x20);
- gUsedPalettes |= 0x200000;
+ USE_PALETTE(21);
- if ((gArea.pCurrentRoomInfo)->bg_anim != NULL) {
- LoadBgAnimations((gArea.pCurrentRoomInfo)->bg_anim);
+ if (gArea.pCurrentRoomInfo->bg_anim != NULL) {
+ LoadBgAnimations(gArea.pCurrentRoomInfo->bg_anim);
}
tileTypes = gMapBottom.tileTypes;
diff --git a/src/projectile/arrowProjectile.c b/src/projectile/arrowProjectile.c
index c47f0414..eeba0cf0 100644
--- a/src/projectile/arrowProjectile.c
+++ b/src/projectile/arrowProjectile.c
@@ -6,9 +6,14 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "physics.h"
+#include "player.h"
extern void (*const ArrowProjectile_Functions[])(Entity*);
extern void (*const ArrowProjectile_Actions[])(Entity*);
@@ -95,7 +100,7 @@ void ArrowProjectile_Action3(Entity* this) {
void ArrowProjectile_Action4(Entity* this) {
if (GravityUpdate(this, Q_8_8(40.0)) == 0) {
- CreateDust(this);
+ CreateDeathFx(this);
DeleteThisEntity();
} else {
if (--this->timer == 0) {
diff --git a/src/projectile/ballAndChain.c b/src/projectile/ballAndChain.c
index a727240a..fa1c5d0f 100644
--- a/src/projectile/ballAndChain.c
+++ b/src/projectile/ballAndChain.c
@@ -5,9 +5,9 @@
* @brief Ball and Chain Projectile
*/
#include "entity.h"
-#include "functions.h"
#include "hitbox.h"
#include "projectile.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/projectile/boneProjectile.c b/src/projectile/boneProjectile.c
index 336920a2..c15e3da7 100644
--- a/src/projectile/boneProjectile.c
+++ b/src/projectile/boneProjectile.c
@@ -6,8 +6,11 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
+#include "script.h"
+#include "asm.h"
extern void (*const BoneProjectile_Functions[])(Entity*);
extern void (*const BoneProjectile_Actions[])(Entity*);
diff --git a/src/projectile/cannonballProjectile.c b/src/projectile/cannonballProjectile.c
index c5b4244f..8e52b1df 100644
--- a/src/projectile/cannonballProjectile.c
+++ b/src/projectile/cannonballProjectile.c
@@ -6,8 +6,11 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "effects.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
+#include "asm.h"
extern void (*const CannonballProjectile_Functions[])(Entity*);
extern void (*const CannonballProjectile_Actions[])(Entity*);
@@ -65,13 +68,13 @@ void CannonballProjectile_Action2(Entity* this) {
bool32 sub_080AB5F4(Entity* this) {
switch (GetTileHazardType(this)) {
case 1:
- CreatePitFallFX(this);
+ CreatePitFallFx(this);
return TRUE;
case 2:
- CreateDrownFX(this);
+ CreateDrownFx(this);
return TRUE;
case 3:
- CreateLavaDrownFX(this);
+ CreateLavaDrownFx(this);
return TRUE;
}
return FALSE;
diff --git a/src/projectile/dekuSeedProjectile.c b/src/projectile/dekuSeedProjectile.c
index f3b2f5e7..326e4ad1 100644
--- a/src/projectile/dekuSeedProjectile.c
+++ b/src/projectile/dekuSeedProjectile.c
@@ -6,8 +6,13 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "sound.h"
+#include "flags.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
+#include "script.h"
+#include "asm.h"
extern void (*const DekuSeedProjectile_Functions[])(Entity*);
extern void (*const DekuSeedProjectile_Actions[])(Entity*);
diff --git a/src/projectile/dirtBallProjectile.c b/src/projectile/dirtBallProjectile.c
index a03009de..06690e5f 100644
--- a/src/projectile/dirtBallProjectile.c
+++ b/src/projectile/dirtBallProjectile.c
@@ -5,11 +5,13 @@
* @brief Dirt Ball Projectile
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
#include "physics.h"
#include "player.h"
-#include "sound.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/projectile/fireProjectile.c b/src/projectile/fireProjectile.c
index cd81f3d3..c121411a 100644
--- a/src/projectile/fireProjectile.c
+++ b/src/projectile/fireProjectile.c
@@ -5,8 +5,11 @@
* @brief Fire Projectile
*/
#include "enemy.h"
+#include "sound.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
+#include "script.h"
extern void (*const FireProjectile_Actions[])(Entity*);
diff --git a/src/projectile/gleerokProjectile.c b/src/projectile/gleerokProjectile.c
index 3fd4bbf5..223d05ce 100644
--- a/src/projectile/gleerokProjectile.c
+++ b/src/projectile/gleerokProjectile.c
@@ -5,9 +5,13 @@
* @brief Gleerok Projectile
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
#include "entity.h"
-#include "functions.h"
#include "player.h"
+#include "room.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/projectile/guardLineOfSight.c b/src/projectile/guardLineOfSight.c
index d117507c..6ac4146c 100644
--- a/src/projectile/guardLineOfSight.c
+++ b/src/projectile/guardLineOfSight.c
@@ -7,10 +7,10 @@
#include "asm.h"
#include "collision.h"
#include "entity.h"
-#include "functions.h"
#include "hitbox.h"
#include "physics.h"
#include "projectile.h"
+#include "map.h"
extern u32 sub_080644C8(Entity*);
diff --git a/src/projectile/gyorgMaleEnergyProjectile.c b/src/projectile/gyorgMaleEnergyProjectile.c
index b3ee446d..c5d91c8c 100644
--- a/src/projectile/gyorgMaleEnergyProjectile.c
+++ b/src/projectile/gyorgMaleEnergyProjectile.c
@@ -5,8 +5,9 @@
* @brief Gyorg Male Energy Projectile
*/
#include "enemy.h"
+#include "sound.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
#include "physics.h"
#include "player.h"
diff --git a/src/projectile/gyorgTail.c b/src/projectile/gyorgTail.c
index a6f30104..e11b7daa 100644
--- a/src/projectile/gyorgTail.c
+++ b/src/projectile/gyorgTail.c
@@ -6,7 +6,6 @@
*/
#include "asm.h"
#include "entity.h"
-#include "functions.h"
#include "hitbox.h"
#include "physics.h"
#include "projectile.h"
diff --git a/src/projectile/iceProjectile.c b/src/projectile/iceProjectile.c
index 7a430b38..41031cfb 100644
--- a/src/projectile/iceProjectile.c
+++ b/src/projectile/iceProjectile.c
@@ -5,8 +5,11 @@
* @brief Ice Projectile
*/
#include "enemy.h"
+#include "sound.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
+#include "script.h"
extern void (*const IceProjectile_Actions[])(Entity*);
diff --git a/src/projectile/keatonDagger.c b/src/projectile/keatonDagger.c
index cf1fa109..90e89e05 100644
--- a/src/projectile/keatonDagger.c
+++ b/src/projectile/keatonDagger.c
@@ -8,7 +8,7 @@
#include "player.h"
#include "physics.h"
-extern void sub_0803C0AC(Entity*);
+extern void StealRupees(Entity*);
extern const Hitbox* const gUnk_08129998[];
@@ -21,7 +21,7 @@ void KeatonDagger(Entity* this) {
parent = this->parent;
if (((parent == NULL) || (parent->health == 0)) || (parent->next == NULL)) {
if (((this->contactFlags & CONTACT_NOW) != 0) && (this->contactedEntity == &gPlayerEntity.base)) {
- sub_0803C0AC(this);
+ StealRupees(this);
}
DeleteEntity(this);
} else {
diff --git a/src/projectile/lakituCloudProjectile.c b/src/projectile/lakituCloudProjectile.c
index 8c0a11f2..ec6d6b88 100644
--- a/src/projectile/lakituCloudProjectile.c
+++ b/src/projectile/lakituCloudProjectile.c
@@ -5,8 +5,12 @@
* @brief Lakitu Cloud Projectile
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "player.h"
+#include "physics.h"
extern void SoundReqClipped(Entity*, u32);
extern void sub_08079D84(void);
diff --git a/src/projectile/lakituLightning.c b/src/projectile/lakituLightning.c
index 279ef9e9..78536197 100644
--- a/src/projectile/lakituLightning.c
+++ b/src/projectile/lakituLightning.c
@@ -6,8 +6,10 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "effects.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
extern void (*const LakituLightning_Functions[])(Entity*);
extern void (*const LakituLightning_Actions[])(Entity*);
diff --git a/src/projectile/mandiblesProjectile.c b/src/projectile/mandiblesProjectile.c
index 99ceb48b..29a9507c 100644
--- a/src/projectile/mandiblesProjectile.c
+++ b/src/projectile/mandiblesProjectile.c
@@ -5,12 +5,17 @@
* @brief Mandibles Projectile
*/
#include "enemy.h"
+#include "sound.h"
#include "entity.h"
-#include "functions.h"
-#include "game.h"
+#include "room.h"
#include "hitbox.h"
#include "physics.h"
#include "tiles.h"
+#include "player.h"
+#include "asm.h"
+#ifndef EU
+#include "game.h"
+#endif
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/projectile/moblinSpear.c b/src/projectile/moblinSpear.c
index 2e58a091..a89eba94 100644
--- a/src/projectile/moblinSpear.c
+++ b/src/projectile/moblinSpear.c
@@ -5,6 +5,8 @@
* @brief Moblin Spear Projectile
*/
#include "enemy.h"
+#include "sound.h"
+#include "projectile.h"
#include "entity.h"
#include "physics.h"
diff --git a/src/projectile/octorokBossProjectile.c b/src/projectile/octorokBossProjectile.c
index 8ca0d67d..5c7dea7e 100644
--- a/src/projectile/octorokBossProjectile.c
+++ b/src/projectile/octorokBossProjectile.c
@@ -6,9 +6,13 @@
*/
#include "collision.h"
#include "enemy.h"
-#include "entity.h"
-#include "functions.h"
+#include "sound.h"
+#include "effects.h"
#include "projectile.h"
+#include "entity.h"
+#include "physics.h"
+#include "player.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/projectile/projectile5.c b/src/projectile/projectile5.c
index f84d2a7b..f1895384 100644
--- a/src/projectile/projectile5.c
+++ b/src/projectile/projectile5.c
@@ -6,6 +6,7 @@
*/
#include "asm.h"
#include "enemy.h"
+#include "projectile.h"
#include "entity.h"
#include "physics.h"
#include "player.h"
diff --git a/src/projectile/removableDust.c b/src/projectile/removableDust.c
index c6b7a5ff..d5ccd5f4 100644
--- a/src/projectile/removableDust.c
+++ b/src/projectile/removableDust.c
@@ -5,9 +5,13 @@
* @brief Removable Dust Projectile
*/
#include "enemy.h"
+#include "sound.h"
+#include "flags.h"
+#include "common.h"
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "player.h"
#include "physics.h"
#include "room.h"
#include "tiles.h"
diff --git a/src/projectile/rockProjectile.c b/src/projectile/rockProjectile.c
index a2e75f11..b7888f58 100644
--- a/src/projectile/rockProjectile.c
+++ b/src/projectile/rockProjectile.c
@@ -5,8 +5,12 @@
* @brief Rock Projectile
*/
#include "enemy.h"
+#include "sound.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
+#include "script.h"
+#include "asm.h"
extern void (*const RockProjectile_Functions[])(Entity*);
extern void (*const RockProjectile_Actions[])(Entity*);
diff --git a/src/projectile/spiderWeb.c b/src/projectile/spiderWeb.c
index 6a386f64..069e881b 100644
--- a/src/projectile/spiderWeb.c
+++ b/src/projectile/spiderWeb.c
@@ -6,9 +6,14 @@
*/
#include "enemy.h"
#include "entity.h"
-#include "functions.h"
#include "hitbox.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "flags.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
typedef struct {
@@ -16,7 +21,7 @@ typedef struct {
/*0x68*/ u8 unused1[28];
/*0x84*/ u8 unk_84;
/*0x85*/ u8 unused2;
- /*0x86*/ u16 unk_86;
+ /*0x86*/ u16 flag;
} SpiderWebEntity;
typedef struct {
@@ -134,7 +139,7 @@ void SpiderWeb_Init(SpiderWebEntity* this) {
&gUnk_080FD42C,
&gUnk_080FD434,
};
- if (CheckFlags(this->unk_86) != 0) {
+ if (CheckFlags(this->flag) != 0) {
DeleteThisEntity();
}
super->action = 1;
@@ -251,7 +256,7 @@ void sub_080AAA68(Entity* this) {
}
void sub_080AAAA8(SpiderWebEntity* this) {
- SetFlag(this->unk_86);
+ SetFlag(this->flag);
RestorePrevTileEntity(TILE(super->x.HALF.HI, super->y.HALF.HI), super->collisionLayer);
DeleteThisEntity();
}
diff --git a/src/projectile/spikedRollers.c b/src/projectile/spikedRollers.c
index bc641510..2c5b6298 100644
--- a/src/projectile/spikedRollers.c
+++ b/src/projectile/spikedRollers.c
@@ -5,7 +5,7 @@
* @brief Spiked Rollers Projectile
*/
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/projectile/stalfosProjectile.c b/src/projectile/stalfosProjectile.c
index bbe7b728..24f9b6d4 100644
--- a/src/projectile/stalfosProjectile.c
+++ b/src/projectile/stalfosProjectile.c
@@ -5,8 +5,12 @@
* @brief Stalfos Projectile
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
+#include "asm.h"
extern void (*const StalfosProjectile_Functions[])(Entity*);
extern void (*const StalfosProjectile_Actions[])(Entity*);
diff --git a/src/projectile/torchTrapProjectile.c b/src/projectile/torchTrapProjectile.c
index 5176b451..ee472563 100644
--- a/src/projectile/torchTrapProjectile.c
+++ b/src/projectile/torchTrapProjectile.c
@@ -6,8 +6,8 @@
*/
#include "collision.h"
#include "enemy.h"
-#include "entity.h"
-#include "functions.h"
+#include "projectile.h"
+#include "physics.h"
extern void (*const TorchTrapProjectile_Functions[])(Entity*);
extern void (*const TorchTrapProjectile_Actions[])(Entity*);
diff --git a/src/projectile/v1DarkMagicProjectile.c b/src/projectile/v1DarkMagicProjectile.c
index dd3d1d0b..b0a95ad3 100644
--- a/src/projectile/v1DarkMagicProjectile.c
+++ b/src/projectile/v1DarkMagicProjectile.c
@@ -5,10 +5,14 @@
* @brief V1 Dark Magic Projectile
*/
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
#include "physics.h"
#include "player.h"
+#include "asm.h"
+#include "color.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/projectile/v1EyeLaser.c b/src/projectile/v1EyeLaser.c
index a79f5c94..f5f38f5f 100644
--- a/src/projectile/v1EyeLaser.c
+++ b/src/projectile/v1EyeLaser.c
@@ -5,8 +5,9 @@
* @brief V1 Eye Laser Projectile
*/
#include "entity.h"
-#include "functions.h"
#include "projectile.h"
+#include "room.h"
+#include "physics.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/projectile/v1FireProjectile.c b/src/projectile/v1FireProjectile.c
index bdf914bf..66a30bb4 100644
--- a/src/projectile/v1FireProjectile.c
+++ b/src/projectile/v1FireProjectile.c
@@ -5,9 +5,12 @@
* @brief V1 Fire Projectile
*/
#include "enemy.h"
+#include "sound.h"
#include "entity.h"
-#include "functions.h"
#include "player.h"
+#include "room.h"
+#include "physics.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/projectile/v2Projectile.c b/src/projectile/v2Projectile.c
index b96a2be5..9223dedd 100644
--- a/src/projectile/v2Projectile.c
+++ b/src/projectile/v2Projectile.c
@@ -6,9 +6,16 @@
*/
#include "enemy.h"
#include "entity.h"
-#include "functions.h"
#include "object.h"
+#include "asm.h"
+#include "sound.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "tiles.h"
+#include "color.h"
+#include "map.h"
typedef struct {
/*0x00*/ Entity base;
@@ -56,7 +63,7 @@ void V2Projectile_OnCollision(V2ProjectileEntity* this) {
}
case 3:
case 0x14: {
- CreateDust(super);
+ CreateDeathFx(super);
DeleteThisEntity();
break;
}
diff --git a/src/projectile/v3ElectricProjectile.c b/src/projectile/v3ElectricProjectile.c
index 2fe12fb2..539792b2 100644
--- a/src/projectile/v3ElectricProjectile.c
+++ b/src/projectile/v3ElectricProjectile.c
@@ -6,10 +6,12 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "sound.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
#include "physics.h"
#include "player.h"
+#include "asm.h"
typedef struct {
/*0x00*/ Entity base;
diff --git a/src/projectile/v3HandProjectile.c b/src/projectile/v3HandProjectile.c
index ff594836..b896a9db 100644
--- a/src/projectile/v3HandProjectile.c
+++ b/src/projectile/v3HandProjectile.c
@@ -6,8 +6,9 @@
*/
#include "collision.h"
#include "enemy.h"
-#include "entity.h"
-#include "functions.h"
+#include "sound.h"
+#include "projectile.h"
+#include "physics.h"
#include "player.h"
extern void (*const V3HandProjectile_Functions[])(Entity*);
diff --git a/src/projectile/v3TennisBallProjectile.c b/src/projectile/v3TennisBallProjectile.c
index abc6d35c..0456d5cd 100644
--- a/src/projectile/v3TennisBallProjectile.c
+++ b/src/projectile/v3TennisBallProjectile.c
@@ -6,8 +6,11 @@
*/
#include "collision.h"
#include "enemy.h"
+#include "sound.h"
+#include "effects.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
extern void (*const V3TennisBallProjectile_Functions[])(Entity*);
extern void (*const V3TennisBallProjectile_Actions[])(Entity*);
diff --git a/src/projectile/windProjectile.c b/src/projectile/windProjectile.c
index 2682b104..3e97e606 100644
--- a/src/projectile/windProjectile.c
+++ b/src/projectile/windProjectile.c
@@ -5,8 +5,11 @@
* @brief Wind Projectile
*/
#include "enemy.h"
+#include "sound.h"
+#include "projectile.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
+#include "script.h"
extern void (*const WindProjectile_Actions[])(Entity*);
diff --git a/src/projectile/winder.c b/src/projectile/winder.c
index d8b5c5d8..aac4bba7 100644
--- a/src/projectile/winder.c
+++ b/src/projectile/winder.c
@@ -9,8 +9,10 @@
#include "collision.h"
#include "common.h"
#include "entity.h"
-#include "functions.h"
+#include "physics.h"
#include "projectile.h"
+#include "room.h"
+#include "map.h"
extern s16 gUnk_080B4488[];
diff --git a/src/projectileUtils.c b/src/projectileUtils.c
index e11be579..79154830 100644
--- a/src/projectileUtils.c
+++ b/src/projectileUtils.c
@@ -1,6 +1,8 @@
#include "entity.h"
#include "definitions.h"
-#include "functions.h"
+#include "vram.h"
+#include "room.h"
+#include "color.h"
extern const ProjectileDefinition gProjectileDefinitions[];
diff --git a/src/room.c b/src/room.c
index a75c098a..fd039c6e 100644
--- a/src/room.c
+++ b/src/room.c
@@ -3,8 +3,9 @@
#include "area.h"
#include "common.h"
#include "enemy.h"
+#include "effects.h"
#include "flags.h"
-#include "functions.h"
+#include "script.h"
#include "game.h"
#include "manager/bombableWallManager.h"
#include "map.h"
diff --git a/src/roomInit.c b/src/roomInit.c
index 4c5dbfa7..4db08d58 100644
--- a/src/roomInit.c
+++ b/src/roomInit.c
@@ -2,25 +2,40 @@
#include "common.h"
#include "effects.h"
#include "flags.h"
-#include "functions.h"
#include "game.h"
#include "item.h"
#include "kinstone.h"
#include "main.h"
-#include "npc.h"
#include "object.h"
+#include "asm.h"
+#include "room.h"
+#include "player.h"
+#include "physics.h"
#include "save.h"
#include "screen.h"
#include "screenTransitions.h"
#include "sound.h"
#include "tiles.h"
#include "windcrest.h"
+#include "enemy/armos.h"
+#include "manager/lightManager.h"
+#include "manager/hyruleTownTileSetManager.h"
+#include "manager/staticBackgroundManager.h"
+#include "manager/verticalMinishPathBackgroundManager.h"
+#include "manager/horizontalMinishPathBackgroundManager.h"
+#include "manager/minishRaftersBackgroundManager.h"
+#include "manager/miscManager.h"
+#include "npc/bigGoron.h"
+#include "scroll.h"
+#include "subtask.h"
+#include "beanstalkSubtask.h"
+#include "fade.h"
extern u32 sub_08060354(void);
-extern void sub_08057E64(void);
+extern void MinishVillageTileSetManger_LoadInitialGfxGroup(void);
extern void sub_0809F814(u32);
extern void sub_080300E8(void);
-extern void sub_08058D34(void);
+extern void RollingBarrelManager_OnEnterRoom(void);
extern void sub_0807BB98(u32, u32, u32, u32);
extern void sub_080AF2E4(void);
extern void sub_08059994(void);
@@ -46,7 +61,7 @@ u32 sub_unk3_ArmosInteriors_RuinsEntranceNorth(u32 arg0) {
}
void sub_StateChange_ArmosInteriors_RuinsEntranceNorth(void) {
- sub_08030118(0);
+ Armos_SetFlagFromTransition(0);
}
u32 sub_unk3_ArmosInteriors_RuinsEntranceSouth(void) {
@@ -54,7 +69,7 @@ u32 sub_unk3_ArmosInteriors_RuinsEntranceSouth(void) {
}
void sub_StateChange_ArmosInteriors_RuinsEntranceSouth(void) {
- sub_08030118(1);
+ Armos_SetFlagFromTransition(1);
}
u32 sub_unk3_ArmosInteriors_RuinsLeft(void) {
@@ -62,7 +77,7 @@ u32 sub_unk3_ArmosInteriors_RuinsLeft(void) {
}
void sub_StateChange_ArmosInteriors_RuinsLeft(void) {
- sub_08030118(2);
+ Armos_SetFlagFromTransition(2);
}
u32 sub_unk3_ArmosInteriors_RuinsMiddleLeft(void) {
@@ -70,7 +85,7 @@ u32 sub_unk3_ArmosInteriors_RuinsMiddleLeft(void) {
}
void sub_StateChange_ArmosInteriors_RuinsMiddleLeft(void) {
- sub_08030118(3);
+ Armos_SetFlagFromTransition(3);
}
u32 sub_unk3_ArmosInteriors_RuinsMiddleRight(void) {
@@ -78,7 +93,7 @@ u32 sub_unk3_ArmosInteriors_RuinsMiddleRight(void) {
}
void sub_StateChange_ArmosInteriors_RuinsMiddleRight(void) {
- sub_08030118(4);
+ Armos_SetFlagFromTransition(4);
}
u32 sub_unk3_ArmosInteriors_RuinsRight(void) {
@@ -86,7 +101,7 @@ u32 sub_unk3_ArmosInteriors_RuinsRight(void) {
}
void sub_StateChange_ArmosInteriors_RuinsRight(void) {
- sub_08030118(5);
+ Armos_SetFlagFromTransition(5);
}
u32 sub_unk3_ArmosInteriors_6(void) {
@@ -94,7 +109,7 @@ u32 sub_unk3_ArmosInteriors_6(void) {
}
void sub_StateChange_ArmosInteriors_6(void) {
- sub_08030118(6);
+ Armos_SetFlagFromTransition(6);
}
u32 sub_unk3_ArmosInteriors_RuinsGrassPath(void) {
@@ -102,7 +117,7 @@ u32 sub_unk3_ArmosInteriors_RuinsGrassPath(void) {
}
void sub_StateChange_ArmosInteriors_RuinsGrassPath(void) {
- sub_08030118(7);
+ Armos_SetFlagFromTransition(7);
}
u32 sub_unk3_ArmosInteriors_8(void) {
@@ -110,7 +125,7 @@ u32 sub_unk3_ArmosInteriors_8(void) {
}
void sub_StateChange_ArmosInteriors_8(void) {
- sub_08030118(8);
+ Armos_SetFlagFromTransition(8);
}
u32 sub_unk3_ArmosInteriors_FortressOfWindsLeft(void) {
@@ -118,7 +133,7 @@ u32 sub_unk3_ArmosInteriors_FortressOfWindsLeft(void) {
}
void sub_StateChange_ArmosInteriors_FortressOfWindsLeft(void) {
- sub_08030118(9);
+ Armos_SetFlagFromTransition(9);
gArea.dungeon_idx = 3;
gArea.areaMetadata = AR_HAS_NO_ENEMIES | AR_HAS_MAP | AR_IS_DUNGEON | AR_HAS_KEYS;
}
@@ -128,7 +143,7 @@ u32 sub_unk3_ArmosInteriors_FortressOfWindsRight(void) {
}
void sub_StateChange_ArmosInteriors_FortressOfWindsRight(void) {
- sub_08030118(10);
+ Armos_SetFlagFromTransition(10);
gArea.dungeon_idx = 3;
gArea.areaMetadata = AR_HAS_NO_ENEMIES | AR_HAS_MAP | AR_IS_DUNGEON | AR_HAS_KEYS;
}
@@ -713,7 +728,7 @@ void sub_StateChange_HyruleCastle_4(void) {
}
void sub_0804BCDC(void) {
- sub_0808091C(&gUnk_0813AB80, TRANSITION_FADE_BLACK_SLOW);
+ DoExitTransitionWithType(&gUnk_0813AB80, TRANSITION_FADE_BLACK_SLOW);
}
u32 sub_unk3_HyruleCastle_5(void) {
@@ -861,7 +876,7 @@ void sub_StateChange_Dojos_Grimblade(void) {
if (!CheckLocalFlag(3)) {
LoadRoomEntityList(&gUnk_080D827C);
} else {
- sub_0805BC4C();
+ UnDarkRoom();
SetTileType(TILE_TYPE_118, TILE_POS(2, 2), LAYER_TOP);
SetTileType(TILE_TYPE_118, TILE_POS(12, 2), LAYER_TOP);
}
@@ -1796,7 +1811,7 @@ void sub_StateChange_MinishVillage_Main(void) {
if (!CheckLocalFlag(KOBITO_MORI_1ST)) {
LoadRoomEntityList(&gUnk_080DC4C0);
}
- sub_08057E64();
+ MinishVillageTileSetManger_LoadInitialGfxGroup();
}
u32 sub_unk3_MinishVillage_SideHouse(void) {
@@ -1814,8 +1829,8 @@ typedef struct {
extern struct_086D4460 gUnk_086D4460;
void sub_unk2_MinishVillage_SideHouse(void) {
- LoadResourceAsync(&gUnk_086D4460.LO, 0x6000000, 0x4000);
- LoadResourceAsync(&gUnk_086D4460.HI, 0x6008000, 0x4000);
+ LoadResourceAsync(&gUnk_086D4460.LO, BG_SCREEN_ADDR(0), BG_SCREEN_SIZE * 8);
+ LoadResourceAsync(&gUnk_086D4460.HI, BG_SCREEN_ADDR(16), BG_SCREEN_SIZE * 8);
LoadPaletteGroup(0x19);
}
@@ -2342,7 +2357,7 @@ u32 sub_unk3_DeepwoodShrine_InsideBarrel(void) {
}
void sub_StateChange_DeepwoodShrine_InsideBarrel(void) {
- sub_08058D34();
+ RollingBarrelManager_OnEnterRoom();
gArea.areaMetadata |= AR_HAS_NO_ENEMIES;
gMain.substate = GAMEMAIN_BARRELUPDATE;
}
diff --git a/src/save.c b/src/save.c
index 46dcb0d3..9b58b364 100644
--- a/src/save.c
+++ b/src/save.c
@@ -3,8 +3,6 @@
#include "sound.h"
#include "menu.h"
#include "main.h"
-#include "functions.h"
-#include "game.h"
#include "fileselect.h"
typedef struct SaveFileStatus {
diff --git a/src/script.c b/src/script.c
index bb2cfe75..a9c1271a 100644
--- a/src/script.c
+++ b/src/script.c
@@ -1,14 +1,25 @@
#include "area.h"
-#include "functions.h"
#include "game.h"
#include "item.h"
#include "kinstone.h"
#include "main.h"
#include "npc.h"
#include "object.h"
-#include "screen.h"
+#include "asm.h"
+#include "common.h"
+#include "sound.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
+#include "scroll.h"
#include "script.h"
#include "ui.h"
+#include "save.h"
+#include "subtask.h"
+#include "pauseMenu.h"
+#include "fade.h"
void InitScriptExecutionContext(ScriptExecutionContext* context, Script* script);
void sub_0807DE80(Entity*);
diff --git a/src/scroll.c b/src/scroll.c
index 973bfcbd..47ba7688 100644
--- a/src/scroll.c
+++ b/src/scroll.c
@@ -6,14 +6,16 @@
#include "common.h"
#include "effects.h"
#include "entity.h"
-#include "functions.h"
#include "game.h"
#include "kinstone.h"
#include "manager/diggingCaveEntranceManager.h"
#include "map.h"
#include "object.h"
+#include "sound.h"
+#include "room.h"
+#include "physics.h"
+#include "player.h"
#include "screen.h"
-#include "structures.h"
#include "tileMap.h"
#include "tiles.h"
@@ -55,12 +57,12 @@ u32 sub_08080278();
void sub_08080C80(MapDataDefinition*);
void sub_08080368();
void FillActTileForLayer(MapLayer* mapLayer);
-bool32 sub_08080794(const Transition* transition, u32 param_2, u32 param_3, u32 param_4);
-bool32 sub_08080808(const Transition* transition, u32 param_2, u32 param_3, u32 param_4);
-void sub_080808D8(s32);
-void sub_080808E4(s32);
-void sub_08080904(s32);
-void sub_08080910(s32);
+bool32 IsPosInBorderTransitionRegion(const Transition* transition, u32 param_2, u32 param_3, u32 facing_direction);
+bool32 IsPosInTransitionRect(const Transition* transition, u32 param_2, u32 param_3, u32 facing_direction);
+void SetRoomTransitionTypeForAreaWarp(s32);
+void SetRoomTransitionTypeForBorderWarp(s32);
+void SetRoomTransitionTypeForArea2Warp(s32);
+void SetRoomTransitionTypeForBorder2Warp(s32);
extern const s8 gShakeOffsets[];
@@ -482,89 +484,90 @@ void sub_08080368(void) {
}
u32 sub_080803D0(void) {
- s32 sp00, sp04, sp08, sp0c, sp10, sp14, sp18, sp1c;
- s32 r2, r4, r7, r8, r9, r10;
-
- sp18 = gRoomControls.scroll_x - gRoomControls.origin_x;
- sp10 = gRoomControls.camera_target->x.HALF.HI - gRoomControls.origin_x;
- sp1c = gRoomControls.scroll_y - gRoomControls.origin_y;
- sp14 = gRoomControls.camera_target->y.HALF.HI - gRoomControls.origin_y;
- sp08 = 0x3c;
+ s32 delta_x, delta_y, dd_x, dd_y, pos_x, pos_y, scroll_x, scroll_y;
+ s32 xy49, r4, r7, r8, delta_yy, delta_xx;
+
+ scroll_x = gRoomControls.scroll_x - gRoomControls.origin_x;
+ pos_x = gRoomControls.camera_target->x.HALF.HI - gRoomControls.origin_x;
+ scroll_y = gRoomControls.scroll_y - gRoomControls.origin_y;
+ pos_y = gRoomControls.camera_target->y.HALF.HI - gRoomControls.origin_y;
+ dd_x = 0x3c;
+
do {
r7 = 0;
- sp08 += 6;
- r10 = sp08 * sp08;
- sp0c = sp08 * 2 / 3;
- r9 = sp0c * sp0c;
-
- sp00 = sp08;
- sp04 = 0;
- r4 = (-(sp08 * 2) + 1) * r9 + r10 * 2;
- r2 = sp00 * r9 / r10;
- while (sp04 <= r2) {
-
- if ((sp1c + 0xa8) > sp14 + sp04) {
- if (sp18 + 0xf8 > sp00 + sp10) {
+ dd_x += 6;
+ delta_xx = dd_x * dd_x;
+ dd_y = dd_x * 2 / 3;
+ delta_yy = dd_y * dd_y;
+
+ delta_x = dd_x;
+ delta_y = 0;
+ r4 = (-(dd_x * 2) + 1) * delta_yy + delta_xx * 2;
+ xy49 = delta_x * delta_yy / delta_xx; // = x * 4/9
+ while (delta_y <= xy49) {
+
+ if (scroll_y + 0xa8 > pos_y + delta_y) {
+ if (scroll_x + 0xf8 > delta_x + pos_x) {
r7 |= 1;
}
- if (sp18 < sp10 - sp00 + 8) {
+ if (scroll_x < pos_x - delta_x + 8) {
r7 |= 2;
}
}
- if (sp1c < (sp14 - sp04) + 8) {
- if (sp18 + 0xf8 > sp00 + sp10) {
+ if (scroll_y < pos_y - delta_y + 8) {
+ if (scroll_x + 0xf8 > delta_x + pos_x) {
r7 |= 4;
}
- if (sp18 < sp10 - sp00 + 8) {
+ if (scroll_x < pos_x - delta_x + 8) {
r7 |= 8;
}
}
if (r4 > 0) {
- r4 += ((-(sp00 << 0x2) + 4) * r9) + (r10 * (6 + 4 * sp04));
- sp00--;
- r2 = sp00 * r9 / r10;
+ r4 += ((-(delta_x << 0x2) + 4) * delta_yy) + (delta_xx * (6 + 4 * delta_y));
+ delta_x--;
+ xy49 = delta_x * delta_yy / delta_xx;
} else {
- r4 += (r10 * (6 + 4 * sp04));
+ r4 += (delta_xx * (6 + 4 * delta_y));
}
- sp04++;
+ delta_y++;
}
- sp00 = 0;
- sp04 = sp0c;
- r4 = r9 * 2 + (sp04 * -2 + 1) * r10;
- r2 = sp04 * r10 / r9;
- while (sp00 <= r2) {
- if (sp1c + 0xa8 > sp14 + sp04) {
- if (sp18 + 0xf8 > sp10 + sp00) {
+ delta_x = 0;
+ delta_y = dd_y;
+ r4 = delta_yy * 2 + (delta_y * -2 + 1) * delta_xx;
+ xy49 = delta_y * delta_xx / delta_yy; // y * 9 / 4
+ while (delta_x <= xy49) {
+ if (scroll_y + 0xa8 > pos_y + delta_y) {
+ if (scroll_x + 0xf8 > pos_x + delta_x) {
r7 |= 0x10;
}
- if (sp18 < sp10 + 8 - sp00) {
+ if (scroll_x < pos_x + 8 - delta_x) {
r7 |= 0x20;
}
}
- if (sp1c < (sp14 - sp04) + 8) {
- if (sp18 + 0xf8 > sp10 + sp00) {
+ if (scroll_y < pos_y - delta_y + 8) {
+ if (scroll_x + 0xf8 > pos_x + delta_x) {
r7 |= 0x40;
}
- if (sp18 < sp10 + 8 - sp00) {
+ if (scroll_x < pos_x + 8 - delta_x) {
r7 |= 0x80;
}
}
if (r4 > 0) {
- r4 += r9 * (6 + (4 * sp00)) + (sp04 * -4 + 4) * r10;
- sp04--;
- r2 = sp04 * r10 / r9;
+ r4 += delta_yy * (6 + (4 * delta_x)) + (delta_y * -4 + 4) * delta_xx;
+ delta_y--;
+ xy49 = delta_y * delta_xx / delta_yy;
} else {
- r4 += r9 * (6 + (4 * sp00));
+ r4 += delta_yy * (6 + (4 * delta_x));
}
- sp00++;
+ delta_x++;
}
} while (r7 != 0);
- return sp08;
+ return dd_x;
}
void UpdateIsDiggingCave(void) {
@@ -592,78 +595,70 @@ void ClearTileMaps(void) {
MemClear(&gMapDataTopSpecial, 0x8000);
}
-bool32 sub_080806BC(u32 x, u32 y, u32 param_3, u32 param_4) {
+bool32 DoApplicableTransition(u32 x, u32 y, u32 direction, u32 warp_types) {
static bool32 (*const gUnk_0811E7AC[])(const Transition*, u32, u32, u32) = {
- sub_08080794,
- sub_08080808,
- sub_08080794,
- sub_08080808,
+ IsPosInBorderTransitionRegion,
+ IsPosInTransitionRect,
+ IsPosInBorderTransitionRegion,
+ IsPosInTransitionRect,
};
- u32 uVar1;
- s32 iVar2;
- const Transition* puVar3;
-
- puVar3 = (gArea.pCurrentRoomInfo->exits);
- while (*(u16*)puVar3 != 0xffff) {
- u32 uVar3 = *(u16*)puVar3;
- if ((((1 << uVar3) & param_4) != 0) && (gUnk_0811E7AC[uVar3](puVar3, x, y, param_3))) {
- DoExitTransition((const ScreenTransitionData*)puVar3);
+
+ const Transition* transition = gArea.pCurrentRoomInfo->exits;
+ while (transition->warp_type != WARP_TYPE_END_OF_LIST) {
+ if (((1 << transition->warp_type) & warp_types) != 0 &&
+ gUnk_0811E7AC[transition->warp_type](transition, x, y, direction)) {
+ DoExitTransition(transition);
return 1;
}
- puVar3++;
+ transition++;
}
return 0;
}
-const Transition* sub_08080734(u32 param_1, u32 param_2) {
- u32 warpType;
- s32 iVar2;
- u32 uVar4;
- const Transition* puVar3;
-
- puVar3 = (gArea.pCurrentRoomInfo->exits);
- uVar4 = 10;
- while (*(u16*)puVar3 != 0xffff) {
- if ((((1 << *(u16*)puVar3) & uVar4) != 0) && (sub_08080808(puVar3, param_1, param_2, 0))) {
- return puVar3;
+const Transition* FindApplicableAreaTransition(u32 pos_x, u32 pos_y) {
+ const Transition* transition = gArea.pCurrentRoomInfo->exits;
+ u32 warp_types = 0xa;
+ while (transition->warp_type != WARP_TYPE_END_OF_LIST) {
+ if (((1 << transition->warp_type) & warp_types) != 0 && IsPosInTransitionRect(transition, pos_x, pos_y, 0)) {
+ return transition;
}
- puVar3++;
+ transition++;
}
return NULL;
}
-bool32 sub_08080794(const Transition* transition, u32 x, u32 y, u32 param_4) {
+bool32 IsPosInBorderTransitionRegion(const Transition* transition, u32 pos_x, u32 pos_y, u32 facing_direction) {
u32 shapeBitmask;
- switch (param_4) {
+ switch (facing_direction) {
default:
- return 0;
+ return FALSE;
case 0:
- if (gRoomControls.width / 2 < x) {
- shapeBitmask = 2;
+ if (gRoomControls.width / 2 < pos_x) {
+ shapeBitmask = TRANSITION_SHAPE_BORDER_NORTH_EAST;
} else {
- shapeBitmask = 1;
+ shapeBitmask = TRANSITION_SHAPE_BORDER_NORTH_WEST;
}
break;
case 1:
- if (gRoomControls.height / 2 < y) {
- shapeBitmask = 8;
+ if (gRoomControls.height / 2 < pos_y) {
+ shapeBitmask = TRANSITION_SHAPE_BORDER_EAST_SOUTH;
} else {
- shapeBitmask = 4;
+ shapeBitmask = TRANSITION_SHAPE_BORDER_EAST_NORTH;
}
break;
case 2:
- if (gRoomControls.width / 2 < x) {
- shapeBitmask = 0x20;
+ if (gRoomControls.width / 2 < pos_x) {
+ shapeBitmask = TRANSITION_SHAPE_BORDER_SOUTH_EAST;
} else {
- shapeBitmask = 0x10;
+ shapeBitmask = TRANSITION_SHAPE_BORDER_SOUTH_WEST;
}
break;
case 3:
- if (gRoomControls.height / 2 < y) {
- shapeBitmask = 0x80;
+ if (gRoomControls.height / 2 < pos_y) {
+ shapeBitmask = TRANSITION_SHAPE_BORDER_WEST_SOUTH;
} else {
- shapeBitmask = 0x40;
+ shapeBitmask = TRANSITION_SHAPE_BORDER_WEST_NORTH;
}
break;
}
@@ -674,65 +669,62 @@ bool32 sub_08080794(const Transition* transition, u32 x, u32 y, u32 param_4) {
return FALSE;
}
-bool32 sub_08080808(const Transition* param_1, u32 x, u32 y, u32 param_4) {
- static const u8 gUnk_0811E7BC[] = { 6, 6, 6, 14, 14, 6, 22, 6 };
- const u8* ptr;
- u32 temp;
- u32 temp2;
- u32 temp3;
- u32 temp4;
- ptr = &gUnk_0811E7BC[param_1->shape * 2];
- temp = ptr[0];
- temp2 = x - param_1->startX;
- if ((temp2 + temp <= ptr[0] * 2)) {
- temp3 = ptr[1];
- temp4 = y - param_1->startY;
- if (temp4 + temp3 <= ptr[1] * 2) {
+bool32 IsPosInTransitionRect(const Transition* transition, u32 pos_x, u32 pos_y, u32 facing_direction) {
+ static const u8 gShapeDimensions[] = { 6, 6, 6, 14, 14, 6, 22, 6 };
+ const u8* shape;
+ u32 shape_x;
+ u32 delta_x;
+ u32 shape_y;
+ u32 delta_y;
+ shape = &gShapeDimensions[transition->shape * 2];
+ shape_x = shape[0];
+ delta_x = pos_x - transition->startX;
+ if (delta_x + shape_x <= shape_x * 2) {
+ shape_y = shape[1];
+ delta_y = pos_y - transition->startY;
+ if (delta_y + shape_y <= shape_y * 2) {
return TRUE;
- } else {
- return FALSE;
}
- } else {
- return FALSE;
}
+ return FALSE;
}
-void DoExitTransition(const ScreenTransitionData* data) {
- static void (*const gUnk_0811E7C4[])(s32) = {
- sub_080808D8,
- sub_080808E4,
- sub_08080904,
- sub_08080910,
+void DoExitTransition(const Transition* data) {
+ static void (*const sSetRoomTransitionTypes[])(s32) = {
+ SetRoomTransitionTypeForAreaWarp,
+ SetRoomTransitionTypeForBorderWarp,
+ SetRoomTransitionTypeForArea2Warp,
+ SetRoomTransitionTypeForBorder2Warp,
};
PlayerRoomStatus* status;
gRoomTransition.transitioningOut = 1;
status = &gRoomTransition.player_status;
- if ((u16)data->playerXPos <= 0x3ff) {
- status->start_pos_x = data->playerXPos;
+ if (data->endX <= 0x3ff) {
+ status->start_pos_x = data->endX;
} else {
- status->start_pos_x = (gRoomControls.camera_target)->x.HALF.HI | 0x8000;
+ status->start_pos_x = gRoomControls.camera_target->x.HALF.HI | 0x8000;
}
- if ((u16)data->playerYPos <= 0x3ff) {
- status->start_pos_y = data->playerYPos;
+ if (data->endY <= 0x3ff) {
+ status->start_pos_y = data->endY;
} else {
- status->start_pos_y = (gRoomControls.camera_target)->y.HALF.HI | 0x8000;
+ status->start_pos_y = gRoomControls.camera_target->y.HALF.HI | 0x8000;
}
status->area_next = data->area;
status->room_next = data->room;
- status->layer = data->playerLayer;
- status->spawn_type = data->spawn_type;
- status->start_anim = data->playerState;
+ status->layer = data->layer;
+ status->spawn_type = data->transition_type;
+ status->start_anim = data->facing_direction;
if (data->transitionSFX != SFX_NONE) {
SoundReq(data->transitionSFX);
}
- gUnk_0811E7C4[data->type](data->field_0xa);
+ sSetRoomTransitionTypes[data->warp_type](data->shape);
}
-void sub_080808D8(s32 param_1) {
+void SetRoomTransitionTypeForAreaWarp(s32 param_1) {
gRoomTransition.type = TRANSITION_DEFAULT;
}
-void sub_080808E4(s32 param_1) {
+void SetRoomTransitionTypeForBorderWarp(s32 param_1) {
if (CheckAreaOverworld(gRoomTransition.player_status.area_next)) {
gRoomTransition.type = TRANSITION_DEFAULT;
} else {
@@ -740,15 +732,15 @@ void sub_080808E4(s32 param_1) {
}
}
-void sub_08080904(s32 param_1) {
+void SetRoomTransitionTypeForArea2Warp(s32 param_1) {
gRoomTransition.type = TRANSITION_CUT;
}
-void sub_08080910(s32 param_1) {
+void SetRoomTransitionTypeForBorder2Warp(s32 param_1) {
gRoomTransition.type = TRANSITION_CUT;
}
-void sub_0808091C(const ScreenTransitionData* screenTransition, u32 transitionType) {
+void DoExitTransitionWithType(const Transition* screenTransition, u32 transitionType) {
DoExitTransition(screenTransition);
gRoomTransition.type = transitionType;
}
@@ -874,7 +866,7 @@ void UpdateDoorTransition() {
case ACT_TILE_241:
case ACT_TILE_40:
case ACT_TILE_41:
- sub_080806BC(x, y, 0xff, 10);
+ DoApplicableTransition(x, y, 0xff, 10);
break;
}
}
@@ -973,7 +965,7 @@ void sub_08080CB4(Entity* this) {
case 0x5c:
case 0x62:
if ((gRoomTransition.frameCount & 0xf) == 0) {
- CreateSparkle(this);
+ CreateSparkleFx(this);
}
break;
}
diff --git a/src/staffroll.c b/src/staffroll.c
index f0ff11ae..f0354a95 100644
--- a/src/staffroll.c
+++ b/src/staffroll.c
@@ -14,6 +14,8 @@
#include "save.h"
#include "screen.h"
#include "subtask.h"
+#include "sound.h"
+#include "fade.h"
typedef struct {
/*0x00*/ Menu base;
@@ -30,6 +32,23 @@ typedef struct {
} StaffrollMenu;
#define gStaffrollMenu (*(StaffrollMenu*)&gMenu)
+typedef struct {
+ /*0x0*/ u8 menuType;
+ /*0x1*/ u16 font;
+ /*0x3*/ u8 unk_3; // TODO padding?
+ /*0x4*/ u16 transitionTimer;
+ /*0x6*/ u16 gfxEntry;
+ /*0x8*/ u16 bg2XOffset;
+ /*0xa*/ u16 sm_unk_14;
+} PACKED StaffrollEntry;
+
+static_assert(sizeof(StaffrollEntry) == 0xc);
+
+typedef struct {
+ u8 paletteGroup;
+ u8 gfxGroup;
+} PACKED StaffrollGfxEntry;
+
const Font gUnk_08127280 = {
&gBG1Buffer[0x21], BG_TILE_ADDR(0x188), gTextGfxBuffer, 0, 61472, 240, 0, 0, 0, 0, 0, 5, 0, 1, 0
};
diff --git a/src/subtask.c b/src/subtask.c
index 3bc20af4..61a40f79 100644
--- a/src/subtask.c
+++ b/src/subtask.c
@@ -1,11 +1,6 @@
#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"
@@ -14,6 +9,9 @@
#include "subtask.h"
#include "ui.h"
#include "windcrest.h"
+#include "affine.h"
+#include "beanstalkSubtask.h"
+#include "fade.h"
extern Screen gUnk_03001020;
extern u8 gPaletteBufferBackup[];
@@ -188,7 +186,7 @@ void Subtask_Exit(void) {
}
// Used by Subtask_FastTravel and EnterPortalSubtask?
-void sub_080A71F4(const ScreenTransitionData* exitTransition) {
+void sub_080A71F4(const Transition* exitTransition) {
if (exitTransition != NULL) {
DoExitTransition(exitTransition);
}
diff --git a/src/subtask/subtaskAuxCutscene.c b/src/subtask/subtaskAuxCutscene.c
index f916ae62..2297e727 100644
--- a/src/subtask/subtaskAuxCutscene.c
+++ b/src/subtask/subtaskAuxCutscene.c
@@ -6,9 +6,6 @@
#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"
@@ -17,6 +14,8 @@
#include "screen.h"
#include "sound.h"
#include "subtask.h"
+#include "affine.h"
+#include "fade.h"
typedef void(AuxCutsceneState)(void);
typedef void(CutsceneMainState)(void);
diff --git a/src/subtask/subtaskFastTravel.c b/src/subtask/subtaskFastTravel.c
index b457a10c..400291e1 100644
--- a/src/subtask/subtaskFastTravel.c
+++ b/src/subtask/subtaskFastTravel.c
@@ -7,17 +7,20 @@
#include "subtask.h"
#include "common.h"
#include "menu.h"
-#include "functions.h"
#include "message.h"
#include "sound.h"
#include "save.h"
+#include "affine.h"
+#include "asm.h"
+#include "pauseMenu.h"
+#include "fade.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[];
+extern const Transition gUnk_08128024[];
void Subtask_FastTravel(void) {
FlushSprites();
@@ -179,10 +182,10 @@ void sub_080A6EE0(u32 param_1) {
u32 x;
u32 y;
RoomHeader* roomHeader;
- const ScreenTransitionData* ptr = &gUnk_08128024[param_1];
+ const Transition* ptr = &gUnk_08128024[param_1];
- x = (u16)ptr->playerXPos;
- y = (u16)ptr->playerYPos;
+ x = (u16)ptr->endX;
+ y = (u16)ptr->endY;
roomHeader = &gAreaRoomHeaders[ptr->area][ptr->room];
x += roomHeader->map_x;
y += roomHeader->map_y;
diff --git a/src/subtask/subtaskLocalMapHint.c b/src/subtask/subtaskLocalMapHint.c
index 357e3f7e..f3095bcb 100644
--- a/src/subtask/subtaskLocalMapHint.c
+++ b/src/subtask/subtaskLocalMapHint.c
@@ -7,10 +7,13 @@
#include "menu.h"
#include "subtask.h"
#include "kinstone.h"
-#include "functions.h"
+#include "player.h"
#include "screen.h"
#include "sound.h"
#include "common.h"
+#include "affine.h"
+#include "vram.h"
+#include "fade.h"
void Subtask_LocalMapHint() {
extern void (*const gUnk_08128F1C[])(void);
diff --git a/src/subtask/subtaskMapHint.c b/src/subtask/subtaskMapHint.c
index 1bbe2670..d514770d 100644
--- a/src/subtask/subtaskMapHint.c
+++ b/src/subtask/subtaskMapHint.c
@@ -5,16 +5,13 @@
* @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"
+#include "affine.h"
+#include "fade.h"
void sub_080A6438();
diff --git a/src/subtask/subtaskWorldEvent.c b/src/subtask/subtaskWorldEvent.c
index 0c7c5b5b..b44f3b33 100644
--- a/src/subtask/subtaskWorldEvent.c
+++ b/src/subtask/subtaskWorldEvent.c
@@ -7,7 +7,7 @@
#include "asm.h"
#include "common.h"
#include "flags.h"
-#include "functions.h"
+#include "manager/hyruleTownTileSetManager.h"
#include "game.h"
#include "kinstone.h"
#include "main.h"
@@ -16,6 +16,8 @@
#include "room.h"
#include "screen.h"
#include "subtask.h"
+#include "affine.h"
+#include "fade.h"
void Subtask_WorldEvent_Update(void);
diff --git a/src/text.c b/src/text.c
index b8ee3169..90f04386 100644
--- a/src/text.c
+++ b/src/text.c
@@ -1,9 +1,8 @@
#include "global.h"
#include "common.h"
-#include "structures.h"
-#include "functions.h"
#include "asm.h"
#include "enemy.h"
+#include "effects.h"
#include "message.h"
#include "fileselect.h"
@@ -741,7 +740,7 @@ void sub_0805F918(u32 idx, u32 idx2, void* dest) {
idx3++;
}
}
- LoadResourceAsync((const void*)&gUnk_02036AD8, (u32)dest, 0xe0);
+ LoadResourceAsync(&gUnk_02036AD8, dest, 0xe0);
}
u32 sub_0805F9A0(u32 r0) {
diff --git a/src/title.c b/src/title.c
index 238e11d1..3130a234 100644
--- a/src/title.c
+++ b/src/title.c
@@ -11,12 +11,17 @@
#include "common.h"
#include "screen.h"
#include "object.h"
+#include "room.h"
+#include "player.h"
#include "message.h"
-#include "functions.h"
#include "save.h"
-#include "area.h"
-#include "item.h"
#include "game.h"
+#include "affine.h"
+#include "fade.h"
+#ifdef DEMO_JP
+#include "item.h"
+#include "flags.h"
+#endif
typedef struct {
u8 filler0[0x4];
diff --git a/src/ui.c b/src/ui.c
index 8c529f57..b12cfc9a 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -1,6 +1,6 @@
+#include "ui.h"
#include "area.h"
#include "common.h"
-#include "functions.h"
#include "game.h"
#include "global.h"
#include "item.h"
@@ -9,6 +9,8 @@
#include "save.h"
#include "screen.h"
#include "sound.h"
+#include "affine.h"
+#include "vram.h"
#include "structures.h"
extern void sub_0805ECEC(u32, u32, u32, u32);
@@ -609,7 +611,7 @@ void sub_0801CAFC(UIElement* element, u32 frameIndex) {
void sub_0801CB20(UIElement* element, UIElementDefinition* definition) {
if (definition->unk_e == 0) {
- SpritePtr* ptr = &gSpritePtrs[definition->spriteIndex];
+ const SpritePtr* ptr = &gSpritePtrs[definition->spriteIndex];
SpriteFrame* frame = &ptr->frames[element->frameIndex];
u32* firstTile = (u32*)(ptr->ptr + frame->firstTileIndex * 0x20);
u8 numTiles = frame->numTiles;
diff --git a/src/vram.c b/src/vram.c
index 68b1433c..495a7c07 100644
--- a/src/vram.c
+++ b/src/vram.c
@@ -1,6 +1,8 @@
#include "common.h"
#include "fileselect.h"
-#include "structures.h"
+#include "vram.h"
+#include "gfx.h"
+#include "color.h"
extern u32 gFixedTypeGfxData[];
diff --git a/src/worldEvent/worldEvent1.c b/src/worldEvent/worldEvent1.c
index 92a17ddd..e4e6a808 100644
--- a/src/worldEvent/worldEvent1.c
+++ b/src/worldEvent/worldEvent1.c
@@ -4,14 +4,10 @@
*
* @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);
diff --git a/src/worldEvent/worldEvent10.c b/src/worldEvent/worldEvent10.c
index 69d7691e..6074760a 100644
--- a/src/worldEvent/worldEvent10.c
+++ b/src/worldEvent/worldEvent10.c
@@ -7,6 +7,9 @@
#include "fade.h"
#include "menu.h"
#include "object.h"
+#include "common.h"
+#include "flags.h"
+#include "room.h"
#include "subtask.h"
void WorldEvent_Beanstalk_0(void);
diff --git a/src/worldEvent/worldEvent12.c b/src/worldEvent/worldEvent12.c
index 3fa18c50..0cba9c61 100644
--- a/src/worldEvent/worldEvent12.c
+++ b/src/worldEvent/worldEvent12.c
@@ -12,6 +12,7 @@
#include "room.h"
#include "script.h"
#include "subtask.h"
+#include "save.h"
extern Script script_GormanFirstAppearance;
const EntityData gUnk_080FF2C0[] = {
diff --git a/src/worldEvent/worldEvent14.c b/src/worldEvent/worldEvent14.c
index 249a7774..c6e4c462 100644
--- a/src/worldEvent/worldEvent14.c
+++ b/src/worldEvent/worldEvent14.c
@@ -12,6 +12,7 @@
#include "room.h"
#include "script.h"
#include "subtask.h"
+#include "save.h"
extern Script script_GhostBrotherKinstone;
const EntityData gUnk_080FF17C[] = {
diff --git a/src/worldEvent/worldEvent17.c b/src/worldEvent/worldEvent17.c
index 0be153e6..4e6caf61 100644
--- a/src/worldEvent/worldEvent17.c
+++ b/src/worldEvent/worldEvent17.c
@@ -13,6 +13,11 @@
#include "subtask.h"
#include "manager/bombableWallManager.h"
#include "tiles.h"
+#include "flags.h"
+#include "sound.h"
+#include "asm.h"
+#include "effects.h"
+#include "physics.h"
// Called Goron Kinstone Fusion Script
void sub_08054EB8(Entity* this, ScriptExecutionContext* context) {
diff --git a/src/worldEvent/worldEvent19.c b/src/worldEvent/worldEvent19.c
index 12437991..4e319336 100644
--- a/src/worldEvent/worldEvent19.c
+++ b/src/worldEvent/worldEvent19.c
@@ -5,12 +5,13 @@
* @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"
+#include "manager/staticBackgroundManager.h"
+#include "npc/bigGoron.h"
extern Script script_BigGoronKinstone1;
extern Script script_BigGoronKinstone2;
diff --git a/src/worldEvent/worldEvent21.c b/src/worldEvent/worldEvent21.c
index e5540fa9..2fc9625d 100644
--- a/src/worldEvent/worldEvent21.c
+++ b/src/worldEvent/worldEvent21.c
@@ -9,6 +9,7 @@
#include "npc.h"
#include "room.h"
#include "subtask.h"
+#include "script.h"
extern Script script_CarlovKinstone;
const EntityData gUnk_080FF264[] = {
diff --git a/src/worldEvent/worldEvent22.c b/src/worldEvent/worldEvent22.c
index 3fc0a672..46fe2037 100644
--- a/src/worldEvent/worldEvent22.c
+++ b/src/worldEvent/worldEvent22.c
@@ -4,11 +4,11 @@
*
* @brief World Event 22
*/
-#include "functions.h"
+#include "script.h"
#include "menu.h"
#include "npc.h"
#include "room.h"
-#include "screen.h"
+#include "fade.h"
extern void sub_0804B0B0(u32, u32);
extern void sub_08055B70(u32, u32, u32, u32);
diff --git a/src/worldEvent/worldEvent25.c b/src/worldEvent/worldEvent25.c
index b50b5ce8..d24fa8dc 100644
--- a/src/worldEvent/worldEvent25.c
+++ b/src/worldEvent/worldEvent25.c
@@ -7,6 +7,7 @@
#include "fade.h"
#include "menu.h"
#include "object.h"
+#include "room.h"
#include "script.h"
#include "subtask.h"
diff --git a/src/worldEvent/worldEvent3.c b/src/worldEvent/worldEvent3.c
index adb20f68..a40483f1 100644
--- a/src/worldEvent/worldEvent3.c
+++ b/src/worldEvent/worldEvent3.c
@@ -6,7 +6,6 @@
*/
#include "fade.h"
#include "flags.h"
-#include "functions.h"
#include "menu.h"
#include "subtask.h"
diff --git a/src/worldEvent/worldEvent4.c b/src/worldEvent/worldEvent4.c
index 114cec1c..ceb4b226 100644
--- a/src/worldEvent/worldEvent4.c
+++ b/src/worldEvent/worldEvent4.c
@@ -6,10 +6,7 @@
*/
#include "fade.h"
#include "flags.h"
-#include "functions.h"
-#include "kinstone.h"
#include "menu.h"
-#include "screen.h"
#include "sound.h"
#include "subtask.h"
diff --git a/src/worldEvent/worldEvent6.c b/src/worldEvent/worldEvent6.c
index bfc96630..fdc90450 100644
--- a/src/worldEvent/worldEvent6.c
+++ b/src/worldEvent/worldEvent6.c
@@ -7,6 +7,9 @@
#include "fade.h"
#include "menu.h"
#include "object.h"
+#include "flags.h"
+#include "effects.h"
+#include "room.h"
#include "sound.h"
#include "subtask.h"
diff --git a/src/worldEvent/worldEvent7.c b/src/worldEvent/worldEvent7.c
index 601990ad..1984868d 100644
--- a/src/worldEvent/worldEvent7.c
+++ b/src/worldEvent/worldEvent7.c
@@ -7,6 +7,7 @@
#include "fade.h"
#include "menu.h"
#include "object.h"
+#include "flags.h"
#include "sound.h"
#include "subtask.h"
diff --git a/tools/src/asset_processor/offsets.cpp b/tools/src/asset_processor/offsets.cpp
index f865a85a..631bb05e 100644
--- a/tools/src/asset_processor/offsets.cpp
+++ b/tools/src/asset_processor/offsets.cpp
@@ -5,6 +5,6 @@ OffsetCalculator::OffsetCalculator(const std::filesystem::path& asmOutputFile, c
}
void OffsetCalculator::addAsset(int start, const std::string& symbol) {
- asmOutput << "\t.equiv offset_" << symbol << ", " << start - baseOffset << std::endl;
- cOutput << "#define offset_" << symbol << " " << start - baseOffset << std::endl;
+ asmOutput << "\t.equiv offset_" << symbol << ", 0x" << std::hex << start - baseOffset << std::endl;
+ cOutput << "#define offset_" << symbol << " 0x" << std::hex << start - baseOffset << std::endl;
} \ No newline at end of file