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,10 +3,54 @@ #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; @@ -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, @@ -188,20 +188,6 @@ typedef struct { 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; @@ -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 }, - 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, + { 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, 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, + { 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_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, - 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, + { 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_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, - 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, 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_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_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_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_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, 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 }, - 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 }, - 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_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, 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, 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; +bool32 IsPlayerOnHole(HoleManager*); +void DoHoleTransition(HoleManager*); +void HoleManager_UpdateParallaxBackground(HoleManager*); +void HoleManager_OnEnterRoom(HoleManager*); -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; +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 sub_08059A58(HyruleTownTileSetManager*); -void sub_08059A2C(HyruleTownTileSetManager*); +void HyruleTownTileSetManager_UpdateLoadGfxGroups(HyruleTownTileSetManager*); +void HyruleTownTileSetManager_OnEnterRoom(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 }; +// 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_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; + u32 gfx1; + void* dest1; + u32 gfx2; + void* dest2; +} HyruleTownTileSetManagerGfxInfo; -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 +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" +#include "game.h" +#include "assets/gfx_offsets.h" +#include "pauseMenu.h" +#include "gfx.h" -void sub_08057E30(void*); -bool32 sub_08057E40(MinishVillageTileSetManager*); -void sub_08057E7C(u32); +void MinishVillageTileSetManager_OnEnterRoom(void*); +bool32 MinishVillageTileSetManager_UpdateRoomGfxGroup(MinishVillageTileSetManager*); +void MinishVillageTileSetManager_LoadGfxGroup(u32); -extern const u8 gGlobalGfxAndPalettes[]; - -const u16 gUnk_08108050[0x2A] = { +// 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, +}; +// 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 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 -}; +const u8 gMinishVillateTileSetManagerPaletteGroups[] = { 0x16, 0x17, 0x17, 0x18, 0x18 }; -const u8 gUnk_081081E4[] = { 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]); } -bool32 sub_08057E40(MinishVillageTileSetManager* this) { - u32 tmp = CheckRegionsOnScreen(gUnk_08108050); - if (tmp != 0xFF) { - gRoomVars.graphicsGroups[0] = tmp; +void MinishVillageTileSetManager_OnEnterRoom(void* this) { + MinishVillageTileSetManager_LoadGfxGroup(gRoomVars.graphicsGroups[0]); +} + +bool32 MinishVillageTileSetManager_UpdateRoomGfxGroup(MinishVillageTileSetManager* this) { + u32 gfxGroup = CheckRegionsOnScreen(gMinishVillageTileSetManagerRegions); + if (gfxGroup != 0xFF) { + gRoomVars.graphicsGroups[0] = gfxGroup; return TRUE; - } else { - return FALSE; + } + return FALSE; +} + +void MinishVillageTileSetManger_LoadInitialGfxGroup(void) { + u32 gfxGroup = CheckRegionsOnScreen(gMinishVillageTileSetManagerRegions); + if (gfxGroup != 0xFF) { + MinishVillageTileSetManager_LoadGfxGroup(gfxGroup); } } -void sub_08057E64(void) { - u32 tmp = CheckRegionsOnScreen(gUnk_08108050); - if (tmp != 0xFF) { - sub_08057E7C(tmp); - } -} - -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]); + 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); } -u32 sub_08056FEC(u32 this, u8* param_2) { - u32 uVar1; - int iVar2; - int iVar3; - int iVar4; - u8 local_1c[8]; +/** + * 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; - uVar1 = DecToHex(this, param_2, this); - uVar1 = uVar1 & 0xfffffff; - iVar4 = 0; + 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; + 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'; } - param_2[iVar3] = 0; - return iVar4; + output[i] = '\0'; + return length; } -void sub_08057044(u32 a1, struct_020227E8* a2, u32 a3) { - u32 z[2]; - u32 tmp = sub_08056FEC(a1, (u8*)z); - u32 first = z[0]; +/** + * 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 "entity.h" -#include "functions.h" -#include "global.h" #include "sound.h" +#include "entity.h" +#include "item.h" +#include "physics.h" +#include "global.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; + 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; - 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; do { r7 = 0; - sp08 += 6; - r10 = sp08 * sp08; - sp0c = sp08 * 2 / 3; - r9 = sp0c * sp0c; + dd_x += 6; + delta_xx = dd_x * dd_x; + dd_y = dd_x * 2 / 3; + delta_yy = dd_y * dd_y; - sp00 = sp08; - sp04 = 0; - r4 = (-(sp08 * 2) + 1) * r9 + r10 * 2; - r2 = sp00 * r9 / r10; - while (sp04 <= r2) { + 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 ((sp1c + 0xa8) > sp14 + sp04) { - if (sp18 + 0xf8 > sp00 + sp10) { + 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