From d3fa739c9471c94ff9efc9f0dd704e4bb9d356d4 Mon Sep 17 00:00:00 2001 From: theo3 Date: Sat, 18 Dec 2021 21:15:00 -0800 Subject: [PATCH] tile entity functions --- asm/code_0804B058.s | 352 -- include/functions.h | 3 +- include/manager.h | 12 + include/room.h | 3 +- linker.ld | 5 +- src/code_0804B9F8.c | 37 - src/fade.c | 53 +- src/loadRoom.c | 222 -- src/manager/manager24.c | 12 - src/room.c | 7050 +++------------------------------------ src/roomInit.c | 6667 ++++++++++++++++++++++++++++++++++++ src/sub_08050008.c | 8 - 12 files changed, 7114 insertions(+), 7310 deletions(-) delete mode 100644 asm/code_0804B058.s delete mode 100644 src/code_0804B9F8.c delete mode 100644 src/loadRoom.c create mode 100644 src/roomInit.c delete mode 100644 src/sub_08050008.c diff --git a/asm/code_0804B058.s b/asm/code_0804B058.s deleted file mode 100644 index d8682f83..00000000 --- a/asm/code_0804B058.s +++ /dev/null @@ -1,352 +0,0 @@ - .include "asm/macros.inc" - .text - .syntax unified - - thumb_func_start GetCurrentRoomProperty -GetCurrentRoomProperty: @ 0x0804B128 - push {lr} - adds r2, r0, #0 - ldr r0, _0804B138 @ =gCurrentRoomProperties - ldr r1, [r0] - cmp r1, #0 - bne _0804B13C - movs r0, #0 - b _0804B166 - .align 2, 0 -_0804B138: .4byte gCurrentRoomProperties -_0804B13C: - cmp r2, #0x7f - bls _0804B150 - ldr r0, _0804B14C @ =gRoomVars - movs r1, #7 - ands r1, r2 - lsls r1, r1, #2 - adds r0, #0x8c - b _0804B162 - .align 2, 0 -_0804B14C: .4byte gRoomVars -_0804B150: - cmp r2, #7 - bls _0804B15C - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - b _0804B166 -_0804B15C: - ldr r0, _0804B168 @ =gRoomVars - lsls r1, r2, #2 - adds r0, #0x6c -_0804B162: - adds r1, r1, r0 - ldr r0, [r1] -_0804B166: - pop {pc} - .align 2, 0 -_0804B168: .4byte gRoomVars - - thumb_func_start sub_0804B16C -sub_0804B16C: @ 0x0804B16C - push {r4, lr} - ldr r4, _0804B1A4 @ =gUnk_02017660 -_0804B170: - ldrh r0, [r4, #4] - cmp r0, #0 - beq _0804B198 - ldrb r0, [r4, #1] - bl CheckLocalFlag - cmp r0, #0 - beq _0804B198 - ldrh r3, [r4, #4] - ldrb r1, [r4, #6] - movs r0, #1 - ands r0, r1 - movs r2, #1 - cmp r0, #0 - beq _0804B190 - movs r2, #2 -_0804B190: - movs r0, #0x74 - adds r1, r3, #0 - bl SetTileType -_0804B198: - adds r4, #8 - ldr r0, _0804B1A8 @ =gPaletteBuffer - cmp r4, r0 - blo _0804B170 - pop {r4, pc} - .align 2, 0 -_0804B1A4: .4byte gUnk_02017660 -_0804B1A8: .4byte gPaletteBuffer - - thumb_func_start LoadRoomTileEntities -LoadRoomTileEntities: @ 0x0804B1AC - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - beq _0804B25A - b _0804B254 -_0804B1B6: - ldrb r0, [r4] - subs r0, #1 - cmp r0, #0xc - bhi _0804B252 - lsls r0, r0, #2 - ldr r1, _0804B1C8 @ =_0804B1CC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804B1C8: .4byte _0804B1CC -_0804B1CC: @ jump table - .4byte _0804B200 @ case 0 - .4byte _0804B208 @ case 1 - .4byte _0804B252 @ case 2 - .4byte _0804B210 @ case 3 - .4byte _0804B252 @ case 4 - .4byte _0804B252 @ case 5 - .4byte _0804B218 @ case 6 - .4byte _0804B252 @ case 7 - .4byte _0804B22C @ case 8 - .4byte _0804B234 @ case 9 - .4byte _0804B23C @ case 10 - .4byte _0804B244 @ case 11 - .4byte _0804B24C @ case 12 -_0804B200: - adds r0, r4, #0 - bl sub_0804B290 - b _0804B252 -_0804B208: - adds r0, r4, #0 - bl sub_0804B29C - b _0804B252 -_0804B210: - adds r0, r4, #0 - bl sub_0804B300 - b _0804B252 -_0804B218: - ldr r0, _0804B224 @ =gArea - ldr r1, _0804B228 @ =0x00000864 - adds r0, r0, r1 - ldrb r1, [r4, #3] - str r1, [r0] - b _0804B252 - .align 2, 0 -_0804B224: .4byte gArea -_0804B228: .4byte 0x00000864 -_0804B22C: - adds r0, r4, #0 - bl sub_0804B334 - b _0804B252 -_0804B234: - adds r0, r4, #0 - bl sub_0804B340 - b _0804B252 -_0804B23C: - adds r0, r4, #0 - bl sub_0804B260 - b _0804B252 -_0804B244: - adds r0, r4, #0 - bl sub_0804B27C - b _0804B252 -_0804B24C: - ldr r1, _0804B25C @ =gRoomVars - ldrb r0, [r4, #3] - strb r0, [r1, #9] -_0804B252: - adds r4, #8 -_0804B254: - ldrb r0, [r4] - cmp r0, #0 - bne _0804B1B6 -_0804B25A: - pop {r4, pc} - .align 2, 0 -_0804B25C: .4byte gRoomVars - - thumb_func_start sub_0804B260 -sub_0804B260: @ 0x0804B260 - push {lr} - ldrb r0, [r0, #1] - lsls r0, r0, #5 - ldr r1, _0804B274 @ =gUnk_080015BC - adds r0, r0, r1 - ldr r1, _0804B278 @ =gUnk_02034398 - movs r2, #0x20 - bl MemCopy - pop {pc} - .align 2, 0 -_0804B274: .4byte gUnk_080015BC -_0804B278: .4byte gUnk_02034398 - - thumb_func_start sub_0804B27C -sub_0804B27C: @ 0x0804B27C - push {lr} - ldr r1, _0804B28C @ =gArea - ldrb r0, [r0, #1] - strb r0, [r1, #1] - bl sub_08054524 - pop {pc} - .align 2, 0 -_0804B28C: .4byte gArea - - thumb_func_start sub_0804B290 -sub_0804B290: @ 0x0804B290 - push {lr} - ldrb r0, [r0, #1] - bl SetLocalFlag - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804B29C -sub_0804B29C: @ 0x0804B29C - push {r4, lr} - adds r2, r0, #0 - ldr r4, _0804B2EC @ =gUnk_02017660 - movs r1, #0 -_0804B2A4: - ldrh r0, [r4, #4] - cmp r0, #0 - bne _0804B2F4 - adds r0, r2, #0 - adds r1, r4, #0 - movs r2, #8 - bl MemCopy - ldrb r1, [r4, #6] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0804B2FC - ldr r0, _0804B2F0 @ =gRoomControls - ldrb r1, [r0, #0xf] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0804B2FC - ldrb r0, [r4, #1] - bl CheckLocalFlag - cmp r0, #0 - bne _0804B2FC - ldrb r1, [r4, #1] - movs r0, #0x52 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _0804B2FC - ldrh r1, [r4, #4] - bl sub_0806F704 - b _0804B2FC - .align 2, 0 -_0804B2EC: .4byte gUnk_02017660 -_0804B2F0: .4byte gRoomControls -_0804B2F4: - adds r1, #1 - adds r4, #8 - cmp r1, #7 - bls _0804B2A4 -_0804B2FC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804B300 -sub_0804B300: @ 0x0804B300 - push {r4, lr} - adds r4, r0, #0 - bl GetEmptyManager - adds r1, r0, #0 - cmp r1, #0 - beq _0804B332 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x24 - strb r0, [r1, #9] - ldrh r0, [r4, #4] - strh r0, [r1, #0x38] - ldrh r0, [r4, #6] - strh r0, [r1, #0x3a] - ldrb r0, [r4, #2] - adds r2, r1, #0 - adds r2, #0x35 - strb r0, [r2] - ldrb r0, [r4, #1] - strh r0, [r1, #0x3e] - adds r0, r1, #0 - movs r1, #6 - bl AppendEntityToList -_0804B332: - pop {r4, pc} - - thumb_func_start sub_0804B334 -sub_0804B334: @ 0x0804B334 - push {lr} - ldrb r0, [r0, #3] - movs r1, #1 - bl sub_0805BB00 - pop {pc} - - thumb_func_start sub_0804B340 -sub_0804B340: @ 0x0804B340 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #2] - bl CheckLocalFlag - cmp r0, #0 - beq _0804B35A - ldrh r0, [r4, #6] - ldrh r1, [r4, #4] - ldrb r2, [r4, #1] - bl SetTileType - b _0804B380 -_0804B35A: - ldr r1, _0804B384 @ =gRoomVars - ldrb r0, [r1, #1] - cmp r0, #0 - bne _0804B380 - movs r0, #1 - strb r0, [r1, #1] - bl GetEmptyManager - adds r1, r0, #0 - cmp r1, #0 - beq _0804B380 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x2a - strb r0, [r1, #9] - adds r0, r1, #0 - movs r1, #6 - bl AppendEntityToList -_0804B380: - pop {r4, pc} - .align 2, 0 -_0804B384: .4byte gRoomVars - - thumb_func_start sub_0804B388 -sub_0804B388: @ 0x0804B388 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #0x34 - cmp r4, #1 - bne _0804B396 - movs r0, #0x26 -_0804B396: - adds r1, r5, #0 - adds r2, r4, #0 - bl SetTileType - movs r0, #0xf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0804B3BA - adds r0, #0x38 - strb r4, [r0] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0806F704 -_0804B3BA: - movs r0, #1 - rsbs r0, r0, #0 - bl sub_080526F8 - pop {r4, r5, pc} diff --git a/include/functions.h b/include/functions.h index b9cff99a..d9125a19 100644 --- a/include/functions.h +++ b/include/functions.h @@ -107,7 +107,6 @@ extern void sub_080AD9B0(void); extern void sub_080AD918(void); extern void sub_0801E104(void); extern void sub_080A57F4(void); -extern void sub_0804B29C(void*); extern void sub_08030118(u32); extern void sub_080575C8(u32); extern void sub_08057688(void); @@ -295,4 +294,6 @@ extern void sub_0801855C(void); extern u32 sub_0807CAEC(u32); extern void sub_0807CAC8(u32); extern void LoadObjPalette(Entity*, u32); + +void sub_0804B3C4(void*); #endif diff --git a/include/manager.h b/include/manager.h index d3b34bba..013678b2 100644 --- a/include/manager.h +++ b/include/manager.h @@ -149,6 +149,18 @@ extern struct { extern DiggingCaveEntrance* diggingCaveEntrances[]; +typedef struct { + Manager manager; + u8 field_0x20[0x15]; + u8 field_0x35; + u8 field_0x36; + u8 field_0x37; + s16 x; + u16 y; + u16 tile; + u16 field_0x3e; +} Manager24; + typedef struct { u8 unk_00; u8 unk_01; diff --git a/include/room.h b/include/room.h index 777e6cea..58d323b1 100644 --- a/include/room.h +++ b/include/room.h @@ -74,7 +74,8 @@ typedef struct { u8 filler4[48]; u8 filler5[28]; u32 animFlags; - void* field_0x6c[24]; + void* field_0x6c[8]; + void* field_0x8c[16]; } RoomVars; static_assert(sizeof(RoomVars) == 0xCC); extern RoomVars gRoomVars; diff --git a/linker.ld b/linker.ld index f20f38ab..916842e9 100644 --- a/linker.ld +++ b/linker.ld @@ -481,11 +481,8 @@ SECTIONS { src/createEnemy.o(.text); src/code_0804AA84.o(.text); asm/code_0804AA84.o(.text); - src/loadRoom.o(.text); - asm/code_0804B058.o(.text); src/room.o(.text); - src/code_0804B9F8.o(.text); - src/sub_08050008.o(.text); + src/roomInit.o(.text); src/fade.o(.text); asm/code_08050038.o(.text); src/fileScreen.o(.text); diff --git a/src/code_0804B9F8.c b/src/code_0804B9F8.c deleted file mode 100644 index 0c1937b3..00000000 --- a/src/code_0804B9F8.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "global.h" -#include "utils.h" -#include "fileScreen.h" - -extern u16 gPaletteBuffer[]; -extern u32 gUsedPalettes; - -// function pointer to overlay (0x03005e98) in ram calls rom function MakeFadeBuff256 -extern u32 gMakeFadeBuff256; -typedef void (*fptrMakeFadeBuff256)(u8*, u8*, u16, u8); - -void FadeMain() { - fptrMakeFadeBuff256 func; - u32 usedPalettesTmp, palIdx; - - struct_020354C0* ptrUnk = gUnk_020354C0; - usedPalettesTmp = gUsedPalettes; - gUsedPalettes = 0; - palIdx = 0; - - while (usedPalettesTmp != 0) { - if ((usedPalettesTmp & 1) == 1) { - func = (fptrMakeFadeBuff256)&gMakeFadeBuff256; - func(&((u8*)gPaletteBuffer)[palIdx], &PAL_RAM[palIdx], ptrUnk->unk2, ptrUnk->unk1); - } - palIdx += 0x20; - - ptrUnk++; - usedPalettesTmp /= 2; - } -} - -void sub_0804FFE4() { - MemClear(&gFadeControl, sizeof(gFadeControl)); - MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0)); - gFadeControl.mask = 0xffffffff; -} diff --git a/src/fade.c b/src/fade.c index f3d1447e..8ca58d5a 100644 --- a/src/fade.c +++ b/src/fade.c @@ -1,6 +1,7 @@ #include "global.h" #include "functions.h" #include "screen.h" +#include "utils.h" typedef struct { u8 field_0x0; @@ -11,10 +12,52 @@ typedef struct { extern struct_03000000 gUnk_03000000; extern u32 gUsedPalettes; +extern u16 gPaletteBuffer[]; + +// function pointer to overlay (0x03005e98) in ram calls rom function MakeFadeBuff256 +extern u32 gMakeFadeBuff256; +typedef void (*fptrMakeFadeBuff256)(u8*, u8*, u16, u8); + +void sub_0804FF84(u32 arg0) { + gSaveHeader->brightnessPref = arg0; + gUsedPalettes = 0xffffffff; +} + +void FadeMain() { + fptrMakeFadeBuff256 func; + u32 usedPalettesTmp, palIdx; + + struct_020354C0* ptrUnk = gUnk_020354C0; + usedPalettesTmp = gUsedPalettes; + gUsedPalettes = 0; + palIdx = 0; + + while (usedPalettesTmp != 0) { + if ((usedPalettesTmp & 1) == 1) { + func = (fptrMakeFadeBuff256)&gMakeFadeBuff256; + func(&((u8*)gPaletteBuffer)[palIdx], &PAL_RAM[palIdx], ptrUnk->unk2, ptrUnk->unk1); + } + palIdx += 0x20; + + ptrUnk++; + usedPalettesTmp /= 2; + } +} + +void sub_0804FFE4() { + MemClear(&gFadeControl, sizeof(gFadeControl)); + MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0)); + gFadeControl.mask = 0xffffffff; +} + +void sub_08050008() { + MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0)); + gFadeControl.mask = 0xFFFFFFFF; +} void sub_08050024() { sub_0801E104(); - DoFade(5, 0x80 << 1); + DoFade(5, 256); } void sub_08050038(u32 arg0) { @@ -31,22 +74,22 @@ void DoFade(u32 fadeType, u32 fadeSpeed) { gFadeControl.active = 1; gFadeControl.fadeDuration = 0x100; gFadeControl.field_0xe = 0; - if ((gFadeControl.fadeType & 2) != 0) { + if (gFadeControl.fadeType & 2) { gFadeControl.field_0x2 = 0xf8; } else { gFadeControl.field_0x2 = 0; } - if ((fadeType & 8) != 0) { + if (fadeType & 8) { gUnk_03000000.spritesOffset = 1; gScreen.bg1.control |= BGCNT_MOSAIC; gScreen.bg2.control |= BGCNT_MOSAIC; gScreen.bg3.control |= BGCNT_MOSAIC; } - if ((fadeType & 0x10) != 0) { + if (fadeType & 0x10) { sub_0801E1B8(gFadeControl.field_0x16, gFadeControl.field_0x18); sub_0801E1EC(gFadeControl.field_0x12, gFadeControl.field_0x14, gFadeControl.field_0x10); if ((fadeType & 1) == 0) { - gFadeControl.fadeType &= 0xfffb; + gFadeControl.fadeType &= ~4; sub_08050008(); gUsedPalettes = 0xffffffff; } diff --git a/src/loadRoom.c b/src/loadRoom.c deleted file mode 100644 index 4ca4aa43..00000000 --- a/src/loadRoom.c +++ /dev/null @@ -1,222 +0,0 @@ -#include "global.h" -#include "area.h" -#include "room.h" -#include "flags.h" -#include "functions.h" -#include "utils.h" - -extern void sub_0804B058(EntityData* dat); -extern void sub_0801AC98(); -extern u32 sub_08049D1C(u32); -extern Entity* LoadRoomEntity(EntityData*); -extern void* GetRoomProperty(u32, u32, u32); - -extern void** gCurrentRoomProperties; -extern void*** gAreaTable[]; -extern u8 gUnk_081091E4[]; - -extern void sub_080186EC(); -extern void sub_0804B16C(); -extern void sub_080A7C7C(void); -extern Entity* GetEmptyEntityByKind(u32 kind); - -void RegisterRoomEntity(Entity*, EntityData*); -void sub_0804AF0C(Entity*, EntityData*); -void sub_0804AFB0(void** properties); - -void LoadRoomEntityList(EntityData* listPtr) { - if (listPtr != NULL) { - while (listPtr->kind != 0xFF) { - LoadRoomEntity(listPtr++); - } - } -} - -NONMATCH("asm/loadRoomEntity.s", Entity* LoadRoomEntity(EntityData* dat)) { - int kind; - Entity* v4; - Entity* v5; - - kind = dat->kind & 0xF; - if ((dat->flags & 0xF0) == 0x50 && DeepFindEntityByID(kind, dat->id)) - return NULL; - v4 = GetEmptyEntityByKind(kind); - v5 = v4; - if (v4 != NULL) { - v4->kind = kind; - v4->id = dat->id; - v4->type = dat->type; - RegisterRoomEntity(v4, dat); - if ((dat->flags & 0xF0) != 16) { - v5->type2 = dat->type2; - v5->actionDelay = (dat->type2 & 0xFF00) >> 8; - if (kind == 9) - return v5; - sub_0804AF0C(v5, dat); - if (!v5->next) - return v5; - if ((dat->kind & 0x10) == 0) { - if ((dat->kind & 0x20) != 0) { - v5->collisionLayer = 2; - return v5; - } - if ((gRoomControls.unk6 & 2) == 0) { - sub_08016A30(v5); - } - } - v5->collisionLayer = 1; - } - } - return v5; -} -END_NONMATCH - -void RegisterRoomEntity(Entity* ent, EntityData* dat) { - u32 list; - u32 kind; - void* offset; - - list = dat->flags & 0xF; - kind = dat->kind & 0xF; - if (ent->prev == NULL) { - if (list == 0xF) { - AppendEntityToList(ent, gUnk_081091E4[kind]); - } else if (list == 8) { - AppendEntityToList(ent, 8); - } else { - AppendEntityToList(ent, list); - } - } - offset = &ent->field_0x78; - if (kind == MANAGER) - offset = &ent->y; - MemCopy(dat, offset, sizeof(EntityData)); -} - -void sub_0804AF0C(Entity* ent, EntityData* dat) { - switch (dat->flags & 0xf0) { - case 0x0: - ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; - ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; - break; - case 0x20: - ent->field_0x6c.HALF.HI |= 0x20; - ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; - ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; - break; - case 0x40: - ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; - ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; - if (!StartCutscene(ent, (u16*)dat->spritePtr)) - DeleteEntity(ent); - break; - } -} - -void sub_0804AF90(void) { - sub_0804AFB0(gArea.pCurrentRoomInfo->properties); - sub_080A7C7C(); -} - -void sub_0804AFB0(void** properties) { - u32 i; - - gCurrentRoomProperties = properties; - for (i = 0; i < 8; ++i) { - gRoomVars.field_0x6c[i] = gCurrentRoomProperties[i]; - } -} - -u32 sub_0804AFDC() { - u32 result; - u32 (*func)(); - - result = 1; - func = (u32(*)())GetCurrentRoomProperty(6); - if (func != NULL) - result = func(); - return result; -} - -void sub_0804AFF4(void) { - void (*func)(); - - sub_080186EC(); - func = (void (*)())GetCurrentRoomProperty(5); - if (func) { - func(); - } - func = (void (*)())GetCurrentRoomProperty(7); - if (func) { - func(); - } - sub_0804B16C(); -} - -void LoadRoom(void) { - LoadRoomEntityList(GetCurrentRoomProperty(1)); - LoadRoomEntityList(GetCurrentRoomProperty(0)); - - if (CheckGlobalFlag(TABIDACHI)) - sub_0804B058(GetCurrentRoomProperty(2)); - - LoadRoomTileEntities(GetCurrentRoomProperty(3)); - sub_0801AC98(); -} - -void sub_0804B058(EntityData* dat) { - Entity* ent; - u32 uVar2; - - if ((dat != NULL) && dat->kind != 0xff) { - uVar2 = 0; - do { - if ((uVar2 < 0x20) && ((dat->kind & 0xF) == 3)) { - if (sub_08049D1C(uVar2) != 0) { - ent = LoadRoomEntity(dat); - if ((ent != NULL) && (ent->kind == 3)) { - ent->field_0x6c.HALF.LO = uVar2 | 0x80; - } - } - } else { - LoadRoomEntity(dat); - } - uVar2++; - dat++; - } while (dat->kind != 0xff); - } -} - -void sub_0804B0B0(u32 arg0, u32 arg1) { - LoadRoomEntityList(GetRoomProperty(arg0, arg1, 1)); -} - -void SetCurrentRoomPropertyList(u32 area, u32 room) { - gCurrentRoomProperties = NULL; - if (gAreaTable[area] != NULL) { - gCurrentRoomProperties = gAreaTable[area][room]; - } -} - -void sub_0804B0E8(u32 arg0, u32 arg1) { - void (*func)(); - - // init function at index 4 of room data - - func = (void (*)())GetRoomProperty(arg0, arg1, 4); - if (func != NULL) { - func(); - } -} - -void* GetRoomProperty(u32 area, u32 room, u32 property) { - void** temp; - temp = NULL; - if (gAreaTable[area] != NULL) { - temp = gAreaTable[area][room]; - if (temp != NULL) { - temp = temp[property]; - } - } - return temp; -} diff --git a/src/manager/manager24.c b/src/manager/manager24.c index df298020..141e1a01 100644 --- a/src/manager/manager24.c +++ b/src/manager/manager24.c @@ -6,18 +6,6 @@ #include "object.h" #include "area.h" -typedef struct { - Manager manager; - u8 field_0x20[0x15]; - u8 field_0x35; - u8 field_0x36; - u8 field_0x37; - s16 x; - u16 y; - u16 tile; - u16 field_0x3e; -} Manager24; - extern void (*const gUnk_08108CDC[])(Manager24*); u32 sub_0805BFC4(u32, u32); diff --git a/src/room.c b/src/room.c index ed1b1148..45af78fe 100644 --- a/src/room.c +++ b/src/room.c @@ -1,6676 +1,390 @@ #include "global.h" - -#include "main.h" -#include "random.h" - -#include "functions.h" -#include "structures.h" - -#include "audio.h" -#include "effects.h" -#include "screen.h" -#include "flags.h" -#include "item.h" -#include "save.h" -#include "script.h" - #include "area.h" #include "room.h" +#include "flags.h" +#include "functions.h" +#include "utils.h" -#include "entity.h" -#include "npc.h" -#include "player.h" +extern void sub_0804B058(EntityData* dat); +extern void sub_0801AC98(); +extern u32 sub_08049D1C(u32); +extern Entity* LoadRoomEntity(EntityData*); +extern void* GetRoomProperty(u32, u32, u32); + +extern void** gCurrentRoomProperties; +extern void*** gAreaTable[]; +extern u8 gUnk_081091E4[]; + +extern void sub_080186EC(); +extern void sub_0804B16C(); +extern void sub_080A7C7C(void); +extern Entity* GetEmptyEntityByKind(u32 kind); + +void RegisterRoomEntity(Entity*, EntityData*); +void sub_0804AF0C(Entity*, EntityData*); +void sub_0804AFB0(void** properties); + +void sub_08054524(void); +void sub_0806F704(Entity*, u32); + +void sub_0805BB00(u32, u32); + +typedef struct { + u8 type; + u8 _1; + u8 _2; + u8 _3; + u16 _4; + u8 _6; + u8 _7; +} TileEntity; +extern TileEntity gUnk_02017660[]; + +static void sub_0804B290(TileEntity*); +static void sub_0804B29C(TileEntity*); +static void sub_0804B300(TileEntity*); +static void sub_0804B334(TileEntity*); +static void sub_0804B340(TileEntity*); +static void sub_0804B260(TileEntity*); +static void sub_0804B27C(TileEntity*); + + +typedef struct { + u8 filler[0x20]; +} VarStruct; +extern VarStruct gUnk_080015BC[]; + +void LoadRoomEntityList(EntityData* listPtr) { + if (listPtr != NULL) { + while (listPtr->kind != 0xFF) { + LoadRoomEntity(listPtr++); + } + } +} + +NONMATCH("asm/loadRoomEntity.s", Entity* LoadRoomEntity(EntityData* dat)) { + int kind; + Entity* v4; + Entity* v5; + + kind = dat->kind & 0xF; + if ((dat->flags & 0xF0) == 0x50 && DeepFindEntityByID(kind, dat->id)) + return NULL; + v4 = GetEmptyEntityByKind(kind); + v5 = v4; + if (v4 != NULL) { + v4->kind = kind; + v4->id = dat->id; + v4->type = dat->type; + RegisterRoomEntity(v4, dat); + if ((dat->flags & 0xF0) != 16) { + v5->type2 = dat->type2; + v5->actionDelay = (dat->type2 & 0xFF00) >> 8; + if (kind == 9) + return v5; + sub_0804AF0C(v5, dat); + if (!v5->next) + return v5; + if ((dat->kind & 0x10) == 0) { + if ((dat->kind & 0x20) != 0) { + v5->collisionLayer = 2; + return v5; + } + if ((gRoomControls.unk6 & 2) == 0) { + sub_08016A30(v5); + } + } + v5->collisionLayer = 1; + } + } + return v5; +} +END_NONMATCH + +void RegisterRoomEntity(Entity* ent, EntityData* dat) { + u32 list; + u32 kind; + void* offset; + + list = dat->flags & 0xF; + kind = dat->kind & 0xF; + if (ent->prev == NULL) { + if (list == 0xF) { + AppendEntityToList(ent, gUnk_081091E4[kind]); + } else if (list == 8) { + AppendEntityToList(ent, 8); + } else { + AppendEntityToList(ent, list); + } + } + offset = &ent->field_0x78; + if (kind == MANAGER) + offset = &ent->y; + MemCopy(dat, offset, sizeof(EntityData)); +} + +void sub_0804AF0C(Entity* ent, EntityData* dat) { + switch (dat->flags & 0xf0) { + case 0x0: + ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; + ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; + break; + case 0x20: + ent->field_0x6c.HALF.HI |= 0x20; + ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; + ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; + break; + case 0x40: + ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; + ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; + if (!StartCutscene(ent, (u16*)dat->spritePtr)) + DeleteEntity(ent); + break; + } +} + +void sub_0804AF90(void) { + sub_0804AFB0(gArea.pCurrentRoomInfo->properties); + sub_080A7C7C(); +} + +void sub_0804AFB0(void** properties) { + u32 i; + + gCurrentRoomProperties = properties; + for (i = 0; i < 8; ++i) { + gRoomVars.field_0x6c[i] = gCurrentRoomProperties[i]; + } +} + +u32 sub_0804AFDC() { + u32 result; + u32 (*func)(); + + result = 1; + func = (u32(*)())GetCurrentRoomProperty(6); + if (func != NULL) + result = func(); + return result; +} + +void sub_0804AFF4(void) { + void (*func)(); + + sub_080186EC(); + func = (void (*)())GetCurrentRoomProperty(5); + if (func) { + func(); + } + func = (void (*)())GetCurrentRoomProperty(7); + if (func) { + func(); + } + sub_0804B16C(); +} + +void LoadRoom(void) { + LoadRoomEntityList(GetCurrentRoomProperty(1)); + LoadRoomEntityList(GetCurrentRoomProperty(0)); + + if (CheckGlobalFlag(TABIDACHI)) + sub_0804B058(GetCurrentRoomProperty(2)); + + LoadRoomTileEntities(GetCurrentRoomProperty(3)); + sub_0801AC98(); +} + +void sub_0804B058(EntityData* dat) { + Entity* ent; + u32 uVar2; + + if ((dat != NULL) && dat->kind != 0xff) { + uVar2 = 0; + do { + if ((uVar2 < 0x20) && ((dat->kind & 0xF) == 3)) { + if (sub_08049D1C(uVar2) != 0) { + ent = LoadRoomEntity(dat); + if ((ent != NULL) && (ent->kind == 3)) { + ent->field_0x6c.HALF.LO = uVar2 | 0x80; + } + } + } else { + LoadRoomEntity(dat); + } + uVar2++; + dat++; + } while (dat->kind != 0xff); + } +} + +void sub_0804B0B0(u32 arg0, u32 arg1) { + LoadRoomEntityList(GetRoomProperty(arg0, arg1, 1)); +} + +void SetCurrentRoomPropertyList(u32 area, u32 room) { + gCurrentRoomProperties = NULL; + if (gAreaTable[area] != NULL) { + gCurrentRoomProperties = gAreaTable[area][room]; + } +} + +void sub_0804B0E8(u32 arg0, u32 arg1) { + void (*func)(); + + // init function at index 4 of room data + + func = (void (*)())GetRoomProperty(arg0, arg1, 4); + if (func != NULL) { + func(); + } +} + +void* GetRoomProperty(u32 area, u32 room, u32 property) { + void** temp; + temp = NULL; + if (gAreaTable[area] != NULL) { + temp = gAreaTable[area][room]; + if (temp != NULL) { + temp = temp[property]; + } + } + return temp; +} + +void* GetCurrentRoomProperty(u32 idx) { + if (gCurrentRoomProperties == NULL) + return NULL; + + if (idx >= 0x80) { + return gRoomVars.field_0x8c[idx & 7]; + } else if (idx <= 7) { + return gRoomVars.field_0x6c[idx]; + } else { + return gCurrentRoomProperties[idx]; + } +} + +void sub_0804B16C(void) { + TileEntity* tile = gUnk_02017660; + do { + if (tile->_4 != 0 && CheckLocalFlag(tile->_1)) { + SetTileType(0x74, tile->_4, tile->_6 & 1 ? 2 : 1); + } + } while (++tile < gUnk_02017660 + 8); +} + +void LoadRoomTileEntities(TileEntity* list) { + TileEntity* t = list; + + if (t == NULL) + return; + + for (t; t->type != 0; ++t) { + switch (t->type) { + case 1: + sub_0804B290(t); + break; + case 2: + sub_0804B29C(t); + break; + case 4: + sub_0804B300(t); + break; + case 7: + gArea.pMusicIndex = t->_3; + break; + case 9: + sub_0804B334(t); + break; + case 10: + sub_0804B340(t); + break; + case 11: + sub_0804B260(t); + break; + case 12: + sub_0804B27C(t); + break; + case 13: + gRoomVars.field_0x9 = t->_3; + break; + } + } +} + +static void sub_0804B260(TileEntity* tile) { + MemCopy(&gUnk_080015BC[tile->_1], &gRoomVars.filler4[44], 0x20); +} + +static void sub_0804B27C(TileEntity* tile) { + gArea.locationIndex = tile->_1; + sub_08054524(); +} + +static void sub_0804B290(TileEntity* tile) { + SetLocalFlag(tile->_1); +} + +static void sub_0804B29C(TileEntity* tile) { + TileEntity* t = gUnk_02017660; + u32 i = 0; + for (i = 0; i < 8; ++i, ++t) { + if (!t->_4) { + MemCopy(tile, t, sizeof(TileEntity)); + if ((t->_6 & 1) && (gRoomControls.unk6 & 2) && !CheckLocalFlag(t->_1)) { + Entity* e = CreateObject(0x52, t->_1, 0); + if (e != NULL) { + sub_0806F704(e, t->_4); + } + } + return; + } + } +} + +static void sub_0804B300(TileEntity* tile) { + Manager24* mgr = (Manager24*)GetEmptyManager(); + if (mgr != NULL) { + mgr->manager.type = 9; + mgr->manager.subtype = 0x24; + mgr->x = tile->_4; + mgr->y = *(u16*)&tile->_6; + mgr->field_0x35 = tile->_2; + mgr->field_0x3e = tile->_1; + AppendEntityToList((Entity*)mgr, 6); + } +} + +static void sub_0804B334(TileEntity* tile) { + sub_0805BB00(tile->_3, 1); +} + +static void sub_0804B340(TileEntity* tile) { + if (CheckLocalFlag(*(u16*)&tile->_2)) { + SetTileType(*(u16*)&tile->_6, tile->_4, tile->_1); + } else if (!gRoomVars.filler_0x1) { + Manager* mgr; + gRoomVars.filler_0x1 = 1; + mgr = GetEmptyManager(); + if (mgr != NULL) { + mgr->type = 9; + mgr->subtype = 0x2a; + AppendEntityToList((Entity*)mgr, 6); + } + } +} + +void sub_0804B388(u32 a1, u32 a2) { + Entity* e; + SetTileType(a2 == 1 ? 38 : 52, a1, a2); + e = CreateObject(0xF, 2, 0); + if (e != NULL) { + e->collisionLayer = a2; + sub_0806F704(e, a1); + } + sub_080526F8(-1); +} void sub_0804B3C4(void* arg0) { sub_0804B29C(arg0); } - -u32 sub_unk3_ArmosInteriors_RuinsEntranceNorth(u32 arg0) { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsEntranceNorth() { - sub_08030118(0); -} - -u32 sub_unk3_ArmosInteriors_RuinsEntranceSouth() { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsEntranceSouth() { - sub_08030118(1); -} - -u32 sub_unk3_ArmosInteriors_RuinsLeft() { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsLeft() { - sub_08030118(2); -} - -u32 sub_unk3_ArmosInteriors_RuinsMiddleLeft() { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsMiddleLeft() { - sub_08030118(3); -} - -u32 sub_unk3_ArmosInteriors_RuinsMiddleRight() { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsMiddleRight() { - sub_08030118(4); -} - -u32 sub_unk3_ArmosInteriors_RuinsRight() { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsRight() { - sub_08030118(5); -} - -u32 sub_unk3_ArmosInteriors_6() { - return 1; -} - -void sub_StateChange_ArmosInteriors_6() { - sub_08030118(6); -} - -u32 sub_unk3_ArmosInteriors_RuinsGrassPath() { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsGrassPath() { - sub_08030118(7); -} - -u32 sub_unk3_ArmosInteriors_8() { - return 1; -} - -void sub_StateChange_ArmosInteriors_8() { - sub_08030118(8); -} - -u32 sub_unk3_ArmosInteriors_FortressOfWindsLeft() { - return 1; -} - -void sub_StateChange_ArmosInteriors_FortressOfWindsLeft() { - sub_08030118(9); - gArea.dungeon_idx = 3; - gArea.areaMetadata = 0x4e; -} - -u32 sub_unk3_ArmosInteriors_FortressOfWindsRight() { - return 1; -} - -void sub_StateChange_ArmosInteriors_FortressOfWindsRight() { - sub_08030118(10); - gArea.dungeon_idx = 3; - gArea.areaMetadata = 0x4e; -} - -u32 sub_unk3_CrenelMinishPaths_CrenelBean() { - return 1; -} - -void sub_StateChange_CrenelMinishPaths_CrenelBean() { - sub_080575C8(35); - sub_08057688(); -} - -u32 sub_unk3_CrenelMinishPaths_CrenelWater() { - return 1; -} - -void sub_StateChange_CrenelMinishPaths_CrenelWater() { - sub_080575C8(35); -} - -void sub_unk1_CrenelMinishPaths_CrenelWater() { - sub_080575C8(35); -} - -u32 sub_unk3_CrenelMinishPaths_Rainfall() { - return 1; -} - -void sub_StateChange_CrenelMinishPaths_Rainfall() { - sub_080580B0(34); -} - -void sub_unk1_CrenelMinishPaths_Rainfall() { - sub_080580B0(34); -} - -u32 sub_unk3_CrenelMinishPaths_MelarisMine() { - return 1; -} - -void sub_StateChange_CrenelMinishPaths_MelarisMine(void) { - sub_080580B0(0x22); - // white sword - if (GetInventoryValue(0x2)) - SetGlobalFlag(WHITE_SWORD_END); -} - -void sub_unk1_CrenelMinishPaths_MelarisMine() { - sub_080580B0(34); -} - -u32 sub_unk3_MinishPaths1_ToMinishVillage() { - return 1; -} - -void sub_StateChange_MinishPaths1_ToMinishVillage() { - sub_080575C8(30); -} - -void sub_unk1_MinishPaths1_ToMinishVillage() { - sub_080575C8(30); -} - -u32 sub_unk3_MinishPaths1_CastorWilds() { - return 1; -} - -void sub_StateChange_MinishPaths1_CastorWilds() { - sub_080575C8(33); -} - -void sub_unk1_MinishPaths1_CastorWilds() { - sub_080575C8(33); -} - -u32 sub_unk3_MinishPaths1_HyruleTown() { - return 1; -} - -void sub_StateChange_MinishPaths1_HyruleTown() { - sub_080575C8(31); -} - -void sub_unk1_MinishPaths1_HyruleTown() { - sub_080575C8(31); -} - -u32 sub_unk3_MinishPaths1_LonLonRanch() { - return 1; -} - -void sub_StateChange_MinishPaths1_LonLonRanch() { - sub_080575C8(32); -} - -void sub_unk1_MinishPaths1_LonLonRanch() { - sub_080575C8(32); -} - -u32 sub_unk3_MinishPaths1_MayorsCabin() { - return 1; -} - -extern EntityData Entities_MinishPaths1_MayorsCabin_gUnk_080D6138; - -void sub_StateChange_MinishPaths1_MayorsCabin(void) { - - sub_080575C8(0x20); - - if (gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY > 0x40) - LoadRoomEntityList(&Entities_MinishPaths1_MayorsCabin_gUnk_080D6138); -} - -void sub_unk1_MinishPaths1_MayorsCabin() { - sub_080575C8(32); -} - -u32 sub_unk3_HouseInteriors1_Mayor() { - return 1; -} - -extern EntityData Entities_HouseInteriors1_Mayor_080D6210; - -void sub_StateChange_HouseInteriors1_Mayor(void) { - - if ((u16)gScreenTransition.player_status.start_pos.HALF.y > 0x40) - LoadRoomEntityList(&Entities_HouseInteriors1_Mayor_080D6210); -} - -u32 sub_unk3_HouseInteriors1_PostOffice() { - return 1; -} - -extern EntityData gUnk_080D6340; -extern EntityData gUnk_080D6360; -extern EntityData gUnk_080D6380; -extern EntityData gUnk_080D63A0; -extern EntityData gUnk_080D63C0; -extern EntityData gUnk_080D63E0; -extern EntityData gUnk_080D6400; -extern EntityData gUnk_080D6420; -extern EntityData gUnk_080D6440; - -extern u16 gUnk_080D64F8; -extern u16 gUnk_080D6508; - -void sub_StateChange_HouseInteriors1_PostOffice(void) { - u16 itemID; - s32 i; - u16* itemArr; - u16* flagArr; - s32 j; - - if (CheckKinstoneFused(0x2c)) { - LoadRoomEntityList(&gUnk_080D6340); - } - j = 0; - itemArr = &gUnk_080D64F8; - for (i = 7; i >= 0; i--) { - itemID = *itemArr; - itemArr++; - if (GetInventoryValue(itemID)) { - j++; - } - } - if (CheckLocalFlag(BILL01_TESSIN_RESERVED)) { - flagArr = &gUnk_080D6508; - i = 0; - while (i < j) { - if (CheckLocalFlag(*flagArr) == 0) { - SetLocalFlag(*flagArr); - ClearLocalFlag(BILL01_TESSIN_RESERVED); - SetLocalFlag(BILL01_TESSIN_BRANDNEW); - break; - } - i++; - flagArr++; - } - } - - if (CheckLocalFlag(BILL01_TESSIN_1)) - LoadRoomEntityList(&gUnk_080D6360); - - if (CheckLocalFlag(BILL01_TESSIN_2)) - LoadRoomEntityList(&gUnk_080D6380); - - if (CheckLocalFlag(BILL01_TESSIN_3)) - LoadRoomEntityList(&gUnk_080D63A0); - - if (CheckLocalFlag(BILL01_TESSIN_4)) - LoadRoomEntityList(&gUnk_080D63C0); - - if (CheckLocalFlag(BILL01_TESSIN_5)) - LoadRoomEntityList(&gUnk_080D63E0); - - if (CheckLocalFlag(BILL01_TESSIN_6)) - LoadRoomEntityList(&gUnk_080D6400); - - if (CheckLocalFlag(BILL01_TESSIN_7)) - LoadRoomEntityList(&gUnk_080D6420); - - if (CheckLocalFlag(BILL01_TESSIN_8)) - LoadRoomEntityList(&gUnk_080D6440); -} - -u32 sub_unk3_HouseInteriors1_Library2F() { - return 1; -} - -extern EntityData gUnk_080D6578; -extern EntityData gUnk_080D6638; -extern EntityData gUnk_080D6558; -extern EntityData gUnk_080D6618; - -void sub_StateChange_HouseInteriors1_Library2F(void) { - // flippers - if (GetInventoryValue(0x46) == 0) { - LoadRoomEntityList(&gUnk_080D6578); - if (CheckLocalFlag(MIZUKAKI_BOOK_ALLBACK) == 0) { - LoadRoomEntityList(&gUnk_080D6638); - return; - } - } else { - LoadRoomEntityList(&gUnk_080D6558); - } - LoadRoomEntityList(&gUnk_080D6618); -} - -u32 sub_unk3_HouseInteriors1_Library1F() { - return 1; -} - -extern EntityData gUnk_080D6714; -extern EntityData gUnk_additional_9_HouseInteriors1_Library1F; -extern EntityData gUnk_additional_8_HouseInteriors1_Library1F; - -void sub_StateChange_HouseInteriors1_Library1F(void) { - if (gSave.global_progress > 4) { - LoadRoomEntityList(&gUnk_080D6714); - } - // flippers - if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && CheckLocalFlag(MIZUKAKI_KOBITO)) { - LoadRoomEntityList(&gUnk_additional_9_HouseInteriors1_Library1F); - } else { - LoadRoomEntityList(&gUnk_additional_8_HouseInteriors1_Library1F); - } -} - -u32 sub_unk3_HouseInteriors1_Inn1F() { - return 1; -} - -extern EntityData gUnk_080D6924; - -void sub_StateChange_HouseInteriors1_Inn1F(void) { - if (gSave.global_progress > 7) { - LoadRoomEntityList(&gUnk_080D6924); - } -} - -extern u32* gUnk_080D6A74[]; - -u32 sub_unk3_HouseInteriors1_InnWestRoom(void) { - u32 index; - - if (CheckLocalFlag(YADO_CHECKIN)) { - index = (s32)Random() % 3; - ClearLocalFlag(BILL05_YADO1F_MATSU_T0); - } else { - index = 0; - SetLocalFlag(BILL05_YADO1F_MATSU_T0); - } - gRoomVars.field_0x6c[3] = gUnk_080D6A74[index]; - return 1; -} - -extern void* script_08010A5C[]; - -void sub_StateChange_HouseInteriors1_InnWestRoom(void) { - if (CheckLocalFlag(YADO_CHECKIN)) { - ClearLocalFlag(YADO_CHECKIN); - DoFade(5, 256); - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; - sub_080751E8(1, 2, &script_08010A5C); - } -} - -extern u32* gUnk_080D6B18[]; - -u32 sub_unk3_HouseInteriors1_InnMiddleRoom(void) { - u32 index; - - if (CheckLocalFlag(YADO_CHECKIN) != 0) { - index = Random() & 1; - ClearLocalFlag(BILL06_YADO1F_TAKE_T0); - } else { - index = 0; - SetLocalFlag(BILL06_YADO1F_TAKE_T0); - } - gRoomVars.field_0x6c[3] = gUnk_080D6B18[index]; - return 1; -} - -void sub_StateChange_HouseInteriors1_InnMiddleRoom(void) { - if (CheckLocalFlag(YADO_CHECKIN) != 0) { - ClearLocalFlag(YADO_CHECKIN); - DoFade(5, 256); - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; - sub_080751E8(1, 2, &script_08010A5C); - } -} - -extern u32* gUnk_080D6BB8[]; - -u32 sub_unk3_HouseInteriors1_InnEastRoom(void) { - s32 index; - - if (CheckLocalFlag(YADO_CHECKIN) != 0) { - index = (s32)Random() % 3; - ClearLocalFlag(BILL07_YADO1F_UME_T0); - } else { - index = 0; - SetLocalFlag(BILL07_YADO1F_UME_T0); - } - gRoomVars.field_0x6c[3] = gUnk_080D6BB8[index]; - return 1; -} - -void sub_StateChange_HouseInteriors1_InnEastRoom(void) { - if (CheckLocalFlag(YADO_CHECKIN)) { - ClearLocalFlag(YADO_CHECKIN); - DoFade(5, 256); - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x60; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; - sub_080751E8(1, 2, &script_08010A5C); - } -} - -u32 sub_unk3_HouseInteriors1_InnWest2F() { - return 1; -} - -extern EntityData UpperInn_Oracles; -extern EntityData UpperInn_NoFarore; -extern EntityData UpperInn_NoNayru; -extern EntityData UpperInn_NoDin; -extern EntityData UpperInn_Farore; -extern EntityData UpperInn_Nayru; -extern EntityData UpperInn_Din; - -void sub_StateChange_HouseInteriors1_InnWest2F(void) { - int iVar1; - - if (gSave.global_progress < 4) - return; - - if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { - if (!CheckGlobalFlag(NEW_HOUSE_NAYRU)) - if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) - LoadRoomEntityList(&UpperInn_NoDin); - else - LoadRoomEntityList(&UpperInn_Nayru); - else - LoadRoomEntityList(&UpperInn_Farore); - } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { - if (CheckGlobalFlag(NEW_HOUSE_DIN)) - LoadRoomEntityList(&UpperInn_Farore); - else if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) - LoadRoomEntityList(&UpperInn_NoNayru); - else - LoadRoomEntityList(&UpperInn_Din); - } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { - if (CheckGlobalFlag(NEW_HOUSE_DIN)) - LoadRoomEntityList(&UpperInn_Nayru); - else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) - LoadRoomEntityList(&UpperInn_Din); - else - LoadRoomEntityList(&UpperInn_NoFarore); - } else - LoadRoomEntityList(&UpperInn_Oracles); -} - -u32 sub_unk3_HouseInteriors1_InnEast2F() { - return 1; -} - -void sub_StateChange_HouseInteriors1_InnEast2F() { -} - -u32 sub_unk3_HouseInteriors1_InnMinishHeartPiece() { - return 1; -} - -void sub_StateChange_HouseInteriors1_InnMinishHeartPiece() { -} - -u32 sub_unk3_HouseInteriors1_SchoolWest() { - return 1; -} - -extern EntityData gUnk_080D7038; - -void sub_StateChange_HouseInteriors1_SchoolWest(void) { - if (gSave.global_progress < 8) { - LoadRoomEntityList(&gUnk_080D7038); - } - if (gRoomVars.field_0x0 == 0) { - sub_08052CA4(2, 0, 0x2c8, 0xa8); - } -} - -u32 sub_unk3_HouseInteriors1_SchoolEast() { - return 1; -} - -extern EntityData gUnk_080D7140; -extern EntityData gUnk_080D7170; -extern EntityData gUnk_080D71A0; -extern EntityData gUnk_080D71D0; -extern EntityData gUnk_080D71F0; - -void sub_StateChange_HouseInteriors1_SchoolEast(void) { - - if (gSave.global_progress == 6) - LoadRoomEntityList(&gUnk_080D7140); - - if (gSave.global_progress == 7) - LoadRoomEntityList(&gUnk_080D7170); - - if ((gSave.global_progress < 8) || (LoadRoomEntityList(&gUnk_080D71A0), gSave.global_progress < 8)) - LoadRoomEntityList(&gUnk_080D71D0); - else - LoadRoomEntityList(&gUnk_080D71F0); -} - -extern u32 gUnk_080D7348; - -u32 sub_unk3_HyruleCastle_0(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080D7348; - gRoomVars.field_0x6c[2] = 0; - } - return 1; -} - -extern EntityData gUnk_080D7328; - -void sub_StateChange_HyruleCastle_0(void) { - if (!CheckGlobalFlag(LV2_CLEAR)) { - LoadRoomEntityList(&gUnk_080D7328); - } - -#if defined(JP) || defined(DEMO_JP) - if (CheckGlobalFlag(CASTLE_BGM) || CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } -#elif defined(EU) - if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } -#else - if (CheckGlobalFlag(CASTLE_BGM)) { - gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; - } else if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } -#endif -} - -extern u32 gUnk_080D7410; - -u32 sub_unk3_HyruleCastle_1(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080D7410; - gRoomVars.field_0x6c[2] = 0; - } - return 1; -} - -extern EntityData gUnk_080D73B0; -extern EntityData gUnk_080D73E0; - -void sub_StateChange_HyruleCastle_1(void) { - if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } else { - if (!CheckGlobalFlag(LV2_CLEAR)) { - LoadRoomEntityList(&gUnk_080D73B0); - } - if (!CheckGlobalFlag(LV1_CLEAR) && CheckGlobalFlag(TABIDACHI)) { - LoadRoomEntityList(&gUnk_080D73E0); - } -#ifndef EU - if (CheckGlobalFlag(CASTLE_BGM)) { - gArea.pMusicIndex = gArea.musicIndex; - } -#endif - } -} - -u32 sub_unk3_HyruleCastle_2() { - return 1; -} - -extern EntityData gUnk_080D74C8; -extern EntityData gUnk_080D7588; -extern EntityData gUnk_080D75D8; -extern EntityData gUnk_080D7618; - -void sub_StateChange_HyruleCastle_2(void) { -#ifndef EU - if (CheckGlobalFlag(CASTLE_BGM)) { - gArea.pMusicIndex = gArea.musicIndex; - } -#endif - - if (CheckGlobalFlag(ENDING)) { - LoadRoomEntityList(&gUnk_080D7618); - gArea.pMusicIndex = gArea.musicIndex; - } else if (CheckGlobalFlag(TABIDACHI) == 0) { - LoadRoomEntityList(&gUnk_080D74C8); - gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; - } else if (CheckGlobalFlag(LV1_CLEAR) == 0) { - LoadRoomEntityList(&gUnk_080D7588); - } else { - LoadRoomEntityList(&gUnk_080D75D8); - } -} - -u32 sub_unk3_HyruleCastle_3() { - return 1; -} - -extern EntityData gUnk_additional_8_HyruleCastle_3; - -void sub_StateChange_HyruleCastle_3(void) { - if (CheckLocalFlag(SOUGEN_08_TORITSUKI)) { - LoadRoomEntityList(&gUnk_additional_8_HyruleCastle_3); - } -} - -u32 sub_unk3_HyruleCastle_4(void) { - if (!CheckLocalFlag(CASTLE_04_MEZAME)) { - gScreenTransition.player_status.spawn_type = PL_SPAWN_SPECIAL; - ClearGlobalFlag(ZELDA_CHASE); - } - return 1; -} - -extern u32 script_08009E88; - -void sub_StateChange_HyruleCastle_4(void) { - if (!CheckLocalFlag(CASTLE_04_MEZAME)) { - DoFade(5, 256); - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0xb0; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x40; - sub_080751E8(0, 6, &script_08009E88); -#ifdef EU - SoundReq(0x80010000); - gArea.musicIndex = gArea.pMusicIndex; - } -#else - } - - if (!CheckGlobalFlag(TABIDACHI)) { - sub_08052878(); -#if !(defined(JP) || defined(DEMO_JP)) - } else { -#else - } -#endif - if (CheckGlobalFlag(CASTLE_BGM)) { -#if defined(JP) || defined(DEMO_JP) - gArea.pMusicIndex = gArea.musicIndex; -#else - gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; -#endif - } -#if !(defined(JP) || defined(DEMO_JP)) - } -#endif -#endif -} - -extern ScreenTransitionData gUnk_0813AB80; - -void sub_0804BCDC() { - sub_0808091C(&gUnk_0813AB80, 4); -} - -u32 sub_unk3_HyruleCastle_5() { - return 1; -} - -void sub_StateChange_HyruleCastle_5() { -} - -u32 sub_unk3_87_Main() { - return 1; -} - -void sub_StateChange_87_Main() { -} - -u32 sub_unk3_45_Main() { - return 1; -} - -void sub_StateChange_45_Main() { -} - -u32 sub_unk3_4D_Main() { - return 1; -} - -void sub_StateChange_4D_Main() { -} - -u32 sub_unk3_57_Main() { - return 1; -} - -void sub_StateChange_57_Main() { -} - -u32 sub_unk3_5F_Main() { - return 1; -} - -void sub_StateChange_5F_Main() { -} - -u32 sub_unk3_67_Main() { - return 1; -} - -void sub_StateChange_67_Main() { -} - -u32 sub_unk3_6F_Main() { - return 1; -} - -void sub_StateChange_6F_Main() { -} - -u32 sub_unk3_77_Main() { - return 1; -} - -void sub_StateChange_77_Main() { -} - -u32 sub_unk3_7F_Main() { - return 1; -} - -void sub_StateChange_7F_Main() { -} - -u32 sub_unk3_8F_Main() { - return 1; -} - -void sub_StateChange_8F_Main() { -} - -u32 sub_unk3_GreatFairies_Entrance() { - return 1; -} - -void sub_StateChange_GreatFairies_Entrance() { -} - -u32 sub_unk3_GreatFairies_Exit() { - return 1; -} - -extern EntityData gUnk_080D7D34; - -void sub_StateChange_GreatFairies_Exit(void) { - // four sword - if (GetInventoryValue(0x6)) { - SetTile(0x4072, 0x14d, 1); - SetTile(0x4072, 0x10c, 1); - SetTile(0x4090, 0x14c, 1); - SetTile(0x4090, 0x18c, 1); - LoadRoomEntityList(&gUnk_080D7D34); - } -} - -u32 sub_unk3_Dojos_Grayblade() { - return 1; -} - -void sub_StateChange_Dojos_Grayblade() { -} - -u32 sub_unk3_Dojos_Splitblade() { - return 1; -} - -void sub_StateChange_Dojos_Splitblade() { -} - -u32 sub_unk3_Dojos_Greatblade() { - return 1; -} - -void sub_StateChange_Dojos_Greatblade() { -} - -u32 sub_unk3_Dojos_Scarblade() { - return 1; -} - -void sub_StateChange_Dojos_Scarblade() { -} - -u32 sub_unk3_Dojos_Swiftblade() { - return 1; -} - -void sub_StateChange_Dojos_Swiftblade() { -} - -u32 sub_unk3_Dojos_Grimblade() { - return 1; -} - -extern EntityData gUnk_080D827C; - -void sub_StateChange_Dojos_Grimblade(void) { - if (!CheckLocalFlag(3)) { - LoadRoomEntityList(&gUnk_080D827C); - } else { - sub_0805BC4C(); - SetTileType(0x76, 0x82, 2); - SetTileType(0x76, 0x8c, 2); - } -} - -u32 sub_unk3_Dojos_Waveblade() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade() { -} - -u32 sub_unk3_Dojos_7() { - return 1; -} - -void sub_StateChange_Dojos_7() { -} - -u32 sub_unk3_Dojos_8() { - return 1; -} - -void sub_StateChange_Dojos_8() { -} - -u32 sub_unk3_Dojos_9() { - return 1; -} - -void sub_StateChange_Dojos_9() { -} - -u32 sub_unk3_Dojos_ToGrimblade() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade() { -} - -u32 sub_unk3_Dojos_ToSplitblade() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade() { -} - -u32 sub_unk3_Dojos_ToGreatblade() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade() { -} - -u32 sub_unk3_Dojos_ToScarblade() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade() { -} - -u32 sub_unk3_GoronCave_StairsToCave() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave() { -} - -u32 sub_unk3_GoronCave_Main() { - return 1; -} - -extern EntityData gUnk_080D8B24; -extern EntityData gUnk_080D8AC4; -extern EntityData gUnk_080D8A74; -extern EntityData gUnk_080D8A34; -extern EntityData gUnk_080D8A04; -extern EntityData gUnk_080D89E4; - -extern u32 gUnk_080D8BBC; -extern u32 gUnk_080D8BFA; -extern u32 gUnk_080D8C68; - -void sub_StateChange_GoronCave_Main(void) { - if (!CheckLocalFlag(GORON_DOUKUTU_APPEAR)) - SetLocalFlag(GORON_DOUKUTU_APPEAR); - - if (CheckKinstoneFused(0x2f)) - LoadRoomEntityList(&gUnk_080D8B24); - else if (CheckKinstoneFused(0x2b)) - LoadRoomEntityList(&gUnk_080D8AC4); - else if (CheckKinstoneFused(0x26)) - LoadRoomEntityList(&gUnk_080D8A74); - else if (CheckKinstoneFused(0x2a)) - LoadRoomEntityList(&gUnk_080D8A34); - else if (CheckKinstoneFused(0x25)) - LoadRoomEntityList(&gUnk_080D8A04); - else - LoadRoomEntityList(&gUnk_080D89E4); - - if (CheckKinstoneFused(0x25)) - sub_0807BB68(&gUnk_080D8BBC, 0x7c5, 1); - - if (CheckKinstoneFused(0x26)) - sub_0807BB68(&gUnk_080D8BFA, 0x503, 1); - - if (CheckKinstoneFused(0x2f)) - sub_0807BB68(&gUnk_080D8C68, 0x281, 1); -} - -#if 0 -typedef struct { - u32 a; - u16 x, y; - u16 entCnt; - u16 shakeTime, shakeMag, sfx; -} struct_080D8E54; - -typedef struct { - u32 field_0x0; - u32 field_0x4; -} struct_0804BF38; - -extern struct_080D8E54 gUnk_080D8E50[]; - -void sub_0804BF38(u32 arg0, struct_0804BF38* arg1) -{ - u32 numEnts; - u32 iVar2; - u32 iVar3; - Entity *fx; - u32 entCnt; - u32 xOff; - - iVar2 = arg1->field_0x4; - iVar3 = iVar2 * 0x10; - sub_0807BB68(gUnk_080D8E50[iVar2].a, ((gUnk_080D8E50[iVar3].x >> 4) & 0x3f | (gUnk_080D8E50[iVar3].y >> 4) & 0x3f) << 6, 1); - numEnts = gUnk_080D8E50[iVar3].entCnt; - entCnt = 0; - - if (numEnts != 0) { - for (xOff = 0; entCnt < numEnts; xOff += 0x10, entCnt++) { - fx = CreateObject(SPECIAL_FX, 0xf, 0); - if (fx != NULL) { - fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.roomOriginX + xOff; - fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.roomOriginY + (entCnt & 1) * 8; - } - fx = CreateObject(SPECIAL_FX, 0x54, 0); - if (fx != NULL) { - fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.roomOriginX + xOff; - fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.roomOriginY + -0xc + (entCnt & 1) * 8; - fx->direction = 0; - fx->speed = 0x100; - } - } - } - - sub_08080964(gUnk_080D8E50[iVar3].shakeTime, gUnk_080D8E50[iVar3].shakeMag); - SoundReq(gUnk_080D8E50[iVar2].sfx); -} -#else -ASM_FUNC("asm/non_matching/sub_0804BF38.inc", void sub_0804BF38(Entity* this, ScriptExecutionContext* context)) -#endif - -u32 sub_unk3_EzloCutscene_Main() { - return 1; -} - -void sub_StateChange_EzloCutscene_Main() { -} - -u32 sub_unk3_RoyalValley_Main() { - return 1; -} - -extern EntityData gUnk_080D90C8; -extern EntityData gUnk_080D9108; -extern EntityData gUnk_080D9098; - -void sub_StateChange_RoyalValley_Main(void) { - if (!CheckGlobalFlag(HAKA_KEY_LOST)) { - if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) == 1) { - LoadRoomEntityList(&gUnk_080D90C8); - LoadRoomEntityList(&gUnk_080D9108); - } - } else if (!CheckGlobalFlag(HAKA_KEY_FOUND)) - LoadRoomEntityList(&gUnk_080D9108); - - if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) != 2) { - LoadRoomEntityList(&gUnk_080D9098); - SetTileType(0x17a, 0x58e, 1); - SetTileType(0x17b, 0x58f, 1); - SetTileType(0x17c, 0x5ce, 1); - SetTileType(0x17d, 0x5cf, 1); - } - - sub_08054570(); - sub_08059278(); - SetTile(0x4072, 0xa47, 1); - SetTile(0x4072, 0xc47, 1); - - if (CheckGlobalFlag(MAZE_CLEAR)) - if (gScreenTransition.player_status.start_pos.WORD == 0x2780078) // todo: wtf - SoundReq(SFX_SECRET); - - ClearGlobalFlag(MAZE_CLEAR); -} - -u32 sub_unk3_RoyalValley_ForestMaze() { - return 1; -} - -void sub_StateChange_RoyalValley_ForestMaze(void) { - gArea.areaMetadata |= 0x40; - sub_0804C128(gArea.filler[7] |= 1); -} - -ASM_FUNC("asm/non_matching/sub_0804C128.inc", void sub_0804C128(u32 arg0)) - -ASM_FUNC("asm/non_matching/sub_0804C258.inc", void sub_0804C258(void)) - -ASM_FUNC("asm/non_matching/sub_0804C290.inc", void sub_0804C290(void)) - -u32 sub_unk3_RoyalValleyGraves_HeartPiece() { - return 1; -} - -void sub_StateChange_RoyalValleyGraves_HeartPiece() { -} - -u32 sub_unk3_RoyalValleyGraves_Gina() { - return 1; -} - -void sub_StateChange_RoyalValleyGraves_Gina() { -} - -u32 sub_unk3_MinishRafters_Cafe() { - return 1; -} - -void sub_StateChange_MinishRafters_Cafe() { - sub_08058324(0); -} - -u32 sub_unk3_MinishRafters_Stockwell() { - return 1; -} - -void sub_StateChange_MinishRafters_Stockwell() { - sub_08058324(1); -} - -u32 sub_unk3_MinishRafters_DrLeft() { - return 1; -} - -extern EntityData gUnk_080D9800; - -void sub_StateChange_MinishRafters_DrLeft(void) { - - sub_08058324(2); - - if (CheckGlobalFlag(MIZUKAKI_START) && !CheckGlobalFlag(MIZUKAKI_HARIFALL)) - LoadRoomEntityList(&gUnk_080D9800); -} - -void sub_unk1_MinishRafters_DrLeft() { - sub_StateChange_MinishRafters_DrLeft(); -} - -u32 sub_unk3_MinishRafters_Bakery() { - return 1; -} - -void sub_StateChange_MinishRafters_Bakery() { - sub_08058324(3); -} - -u32 sub_unk3_CastorWilds_Main() { - return 1; -} - -extern EntityData gUnk_080D9CC8; -extern EntityData gUnk_080D9CE8; -extern EntityData gUnk_080D9C38; - -void sub_StateChange_CastorWilds_Main(void) { - - SetGlobalFlag(DASHBOOTS); - - if (CheckKinstoneFused(0x5b)) - LoadRoomEntityList(&gUnk_080D9CC8); - - if ((gSave.windcrests & 0x20000000) == 0) - LoadRoomEntityList(&gUnk_080D9CE8); - - if (!GetInventoryValue(ITEM_PEGASUS_BOOTS)) - LoadRoomEntityList(&gUnk_080D9C38); -} - -void sub_unk1_CastorWilds_Main(void) { - if ((gSave.windcrests & 0x20000000) == 0) - LoadRoomEntityList(&gUnk_080D9CE8); -} - -u32 sub_unk3_CastorCaves_South() { - return 1; -} - -void sub_StateChange_CastorCaves_South() { -} - -u32 sub_unk3_CastorCaves_North() { - return 1; -} - -void sub_StateChange_CastorCaves_North() { -} - -u32 sub_unk3_CastorCaves_WindRuins() { - return 1; -} - -void sub_StateChange_CastorCaves_WindRuins() { -} - -u32 sub_unk3_CastorCaves_Darknut() { - return 1; -} - -void sub_StateChange_CastorCaves_Darknut() { -} - -u32 sub_unk3_CastorCaves_HeartPiece() { - return 1; -} - -void sub_StateChange_CastorCaves_HeartPiece() { -} - -extern u32 gUnk_080DA230; - -u32 sub_unk3_CastorDarknut_Main(void) { - if (!CheckLocalFlag(LV4_0a_TSUBO)) - gRoomVars.field_0x6c[0] = &gUnk_080DA230; - - return 1; -} - -void sub_StateChange_CastorDarknut_Main() { -} - -u32 sub_unk3_CastorDarknut_Hall() { - return 1; -} - -void sub_StateChange_CastorDarknut_Hall() { -} - -u32 sub_unk3_GreatFairies_Graveyard() { - return 1; -} - -void sub_StateChange_GreatFairies_Graveyard() { -} - -u32 sub_unk3_GreatFairies_MinishWoods() { - return 1; -} - -void sub_StateChange_GreatFairies_MinishWoods() { -} - -u32 sub_unk3_GreatFairies_MtCrenel() { - return 1; -} - -void sub_StateChange_GreatFairies_MtCrenel() { -} - -u32 sub_unk3_GardenFountains_East() { - return 1; -} - -void sub_StateChange_GardenFountains_East() { -} - -u32 sub_unk3_GardenFountains_West() { - return 1; -} - -void sub_StateChange_GardenFountains_West() { -} - -u32 sub_unk3_MinishHouseInteriors_GentariMain() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_GentariMain() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_GentariExit() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_GentariExit() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_Festari() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_Festari() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_Red() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_Red() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_Green() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_Green() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_Blue() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_Blue() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_SideArea() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_SideArea() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_ShoeMinish() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_ShoeMinish() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_PotMinish() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_PotMinish() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_BarrelMinish() { - return 1; -} - -extern EntityData gUnk_080DAB44; -extern EntityData gUnk_080DAB64; -extern EntityData gUnk_080DAB84; -extern EntityData gUnk_080DAC54; -extern EntityData gUnk_080DAD24; -extern EntityData gUnk_080DABC4; -extern EntityData gUnk_080DAC94; -extern EntityData gUnk_080DAD64; -extern EntityData gUnk_080DAC04; -extern EntityData gUnk_080DACD4; -extern EntityData gUnk_080DADA4; - -void sub_StateChange_MinishHouseInteriors_BarrelMinish(void) { - u32 uVar1; - - if (!GetInventoryValue(ITEM_JABBERNUT)) - LoadRoomEntityList(&gUnk_080DAB44); - else - LoadRoomEntityList(&gUnk_080DAB64); - - if (CheckGlobalFlag(DRUG_COUNT) && sub_08060354()) { - SetRoomFlag(0); - if (!CheckGlobalFlag(DRUG_1)) - uVar1 = 0x3200; - else if (!CheckGlobalFlag(DRUG_2)) - uVar1 = 0x4600; - else - uVar1 = 0x4880; - } else { - if (CheckGlobalFlag(DRUG_3)) - uVar1 = 0x4900; - else if (CheckGlobalFlag(DRUG_2)) - uVar1 = 0x4a00; - else if (CheckGlobalFlag(DRUG_1)) - uVar1 = 0x5200; - else - uVar1 = 0x9200; - } - if (uVar1 & 0x8000) - LoadRoomEntityList(&gUnk_080DAB84); - - if (uVar1 & 0x4000) - LoadRoomEntityList(&gUnk_080DAC54); - - if (uVar1 & 0x2000) - LoadRoomEntityList(&gUnk_080DAD24); - - if (uVar1 & 0x1000) - LoadRoomEntityList(&gUnk_080DABC4); - - if (uVar1 & 0x800) - LoadRoomEntityList(&gUnk_080DAC94); - - if (uVar1 & 0x400) - LoadRoomEntityList(&gUnk_080DAD64); - - if (uVar1 & 0x200) - LoadRoomEntityList(&gUnk_080DAC04); - - if (uVar1 & 0x100) - LoadRoomEntityList(&gUnk_080DACD4); - - if (uVar1 & 0x80) - LoadRoomEntityList(&gUnk_080DADA4); - - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_MelariMinesSouthwest() { - return 1; -} - -extern EntityData gUnk_080DAEE8; - -void sub_StateChange_MinishHouseInteriors_MelariMinesSouthwest(void) { - if (CheckGlobalFlag(WHITE_SWORD_END)) - LoadRoomEntityList(&gUnk_080DAEE8); - - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_MelariMinesSoutheast() { - return 1; -} - -extern EntityData gUnk_080DAF80; - -void sub_StateChange_MinishHouseInteriors_MelariMinesSoutheast(void) { - if (CheckGlobalFlag(WHITE_SWORD_END)) - LoadRoomEntityList(&gUnk_080DAF80); - - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_MelariMinesEast() { - return 1; -} - -extern EntityData gUnk_080DB018; - -void sub_StateChange_MinishHouseInteriors_MelariMinesEast(void) { - if (CheckGlobalFlag(WHITE_SWORD_END)) - LoadRoomEntityList(&gUnk_080DB018); - - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_HyruleFieldSouthwest() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_HyruleFieldSouthwest() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_HyruleFieldOutsideLinksHouse() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_HyruleFieldOutsideLinksHouse() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_NextToKnuckle() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_NextToKnuckle() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_Librari() { - return 1; -} - -extern EntityData gUnk_080DB238; - -void sub_StateChange_MinishHouseInteriors_Librari(void) { - if (gSave.global_progress > 8) - LoadRoomEntityList(&gUnk_080DB238); - - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_HyruleFieldExit() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_HyruleFieldExit() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_HyruleTown() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_HyruleTown() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_MinishWoodsBomb() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_MinishWoodsBomb() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_LakeHyliaOcarina() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_LakeHyliaOcarina() { - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_MayorsHouse() { - return 1; -} - -extern EntityData gUnk_080DB4D0; -extern EntityData gUnk_080DB4A0; - -void sub_StateChange_TownMinishHoles_MayorsHouse(void) { - if (!GetInventoryValue(ITEM_FLIPPERS) && !GetInventoryValue(ITEM_QST_BOOK3) && CheckLocalFlag(KOBITO_DOUKUTU_04_T0)) - LoadRoomEntityList(&gUnk_080DB4D0); - else - LoadRoomEntityList(&gUnk_080DB4A0); - - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_WestOracle() { - return 1; -} - -void sub_StateChange_TownMinishHoles_WestOracle() { - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_DrLeft() { - return 1; -} - -void sub_StateChange_TownMinishHoles_DrLeft() { - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_Carpenter() { - return 1; -} - -void sub_StateChange_TownMinishHoles_Carpenter() { - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_Cafe() { - return 1; -} - -void sub_StateChange_TownMinishHoles_Cafe() { - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_5() { - return 1; -} - -void sub_StateChange_TownMinishHoles_5() { - sub_0801AFE4(); -} - -extern u32 gUnk_080DB910; - -u32 sub_unk3_TownMinishHoles_LibraryBookshelf(void) { - if (CheckGlobalFlag(MIZUKAKI_START) && !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { - gRoomVars.field_0x6c[1] = &gUnk_080DB910; - } - return 1; -} - -extern EntityData gUnk_080DB8F0; -extern EntityData gUnk_additional_a_TownMinishHoles_LibraryBookshelf; - -void sub_StateChange_TownMinishHoles_LibraryBookshelf(void) { - LoadRoomEntityList(&gUnk_080DB8F0); - if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START)) { - LoadRoomEntityList(&gUnk_additional_a_TownMinishHoles_LibraryBookshelf); - } - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_LibrariBookHouse() { - return 1; -} - -extern EntityData gUnk_080DBA08; - -void sub_StateChange_TownMinishHoles_LibrariBookHouse(void) { - if (GetInventoryValue(ITEM_FLIPPERS) || !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { - LoadRoomEntityList(&gUnk_080DBA08); - } - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_RemShoeShop() { - return 1; -} - -extern EntityData gUnk_080DBB50; -extern EntityData gUnk_080DBB70; -extern EntityData gUnk_080DBB10; -extern EntityData gUnk_080DBAD0; -extern EntityData gUnk_080DBB90; - -void sub_StateChange_TownMinishHoles_RemShoeShop(void) { - u32 tilePos; - u32 i; - - if (!CheckLocalFlag(KOBITO_DOUKUTU_00_T0)) { - LoadRoomEntityList(&gUnk_080DBB50); - } - - if (GetInventoryValue(ITEM_PEGASUS_BOOTS) == 1) { - LoadRoomEntityList(&gUnk_080DBB70); - LoadRoomEntityList(&gUnk_080DBB10); - } else { - LoadRoomEntityList(&gUnk_080DBAD0); - } - if (!CheckLocalFlag(KOBITO_DOUKUTU_05_T0)) { - tilePos = 0x140; - for (i = 0; i < 0x13; i++, tilePos++) { - SetTileType(0x4072, tilePos, 1); - } - } - LoadRoomEntityList(&gUnk_080DBB90); - sub_0801AFE4(); -} - -u32 sub_unk3_MinishCaves_BeanPesto() { - return 1; -} - -void sub_StateChange_MinishCaves_BeanPesto() { -} - -u32 sub_unk3_MinishCaves_SoutheastWater1() { - return 1; -} - -void sub_StateChange_MinishCaves_SoutheastWater1() { -} - -u32 sub_unk3_MinishCaves_SoutheastWater2() { - return 1; -} - -void sub_StateChange_MinishCaves_SoutheastWater2() { -} - -u32 sub_unk3_MinishCaves_Ruins() { - return 1; -} - -void sub_StateChange_MinishCaves_Ruins() { -} - -u32 sub_unk3_MinishCaves_OutsideLinksHouse() { - return 1; -} - -void sub_StateChange_MinishCaves_OutsideLinksHouse() { -} - -u32 sub_unk3_MinishCaves_MinishWoodsNorth1() { - return 1; -} - -void sub_StateChange_MinishCaves_MinishWoodsNorth1() { -} - -u32 sub_unk3_MinishCaves_MinishWoodsNorth2() { - return 1; -} - -void sub_StateChange_MinishCaves_MinishWoodsNorth2() { -} - -u32 sub_unk3_MinishCaves_LakeHyliaNorth() { - return 1; -} - -void sub_StateChange_MinishCaves_LakeHyliaNorth() { -} - -u32 sub_unk3_MinishCaves_LakeHyliaLibrari() { - return 1; -} - -void sub_StateChange_MinishCaves_LakeHyliaLibrari() { -} - -u32 sub_unk3_MinishCaves_MinishWoodsSouthwest() { - return 1; -} - -void sub_StateChange_MinishCaves_MinishWoodsSouthwest() { -} - -u32 sub_unk3_MinishVillage_Main() { - return 1; -} - -extern EntityData gUnk_080DC390; -extern EntityData gUnk_080DC3F0; -extern EntityData gUnk_080DC430; -extern EntityData gUnk_080DC530; -extern EntityData gUnk_080DC470; -extern EntityData gUnk_080DC4C0; - -void sub_StateChange_MinishVillage_Main(void) { - if (!GetInventoryValue(ITEM_JABBERNUT)) { - LoadRoomEntityList(&gUnk_080DC390); - if (!CheckLocalFlagByBank(0x200, 0x80)) { - LoadRoomEntityList(&gUnk_080DC3F0); - } - } else { - LoadRoomEntityList(&gUnk_080DC430); - if (!GetInventoryValue(ITEM_GUST_JAR)) { - LoadRoomEntityList(&gUnk_080DC530); - } - } - if ((!CheckLocalFlagByBank(FLAG_BANK_2, M_ELDER_TALK2ND)) && GetInventoryValue(ITEM_GUST_JAR)) { - LoadRoomEntityList(&gUnk_080DC470); - } - if (!CheckLocalFlag(0x8d)) { - LoadRoomEntityList(&gUnk_080DC4C0); - } - sub_08057E64(); -} - -u32 sub_unk3_MinishVillage_SideHouse() { - return 1; -} - -void sub_StateChange_MinishVillage_SideHouse() { -} - -typedef struct { - u8 LO[0x4000]; - u8 HI[0x4000]; -} struct_086D4460; - -extern struct_086D4460 gUnk_086D4460; - -void sub_unk2_MinishVillage_SideHouse(void) { - LoadResourceAsync(&gUnk_086D4460.LO, 0x6000000, 0x4000); - LoadResourceAsync(&gUnk_086D4460.HI, 0x6008000, 0x4000); - LoadPaletteGroup(0x19); -} - -u32 sub_unk3_CastleGardenMinishHoles_East() { - return 1; -} - -void sub_StateChange_CastleGardenMinishHoles_East() { -} - -u32 sub_unk3_CastleGardenMinishHoles_West() { - return 1; -} - -void sub_StateChange_CastleGardenMinishHoles_West() { -} - -u32 sub_unk3_37_0() { - return 1; -} - -void sub_StateChange_37_0() { -} - -u32 sub_unk3_37_1() { - return 1; -} - -void sub_StateChange_37_1() { -} - -u32 sub_unk3_MinishCracks_LonLonRanchNorth() { - return 1; -} - -void sub_StateChange_MinishCracks_LonLonRanchNorth() { -} - -u32 sub_unk3_MinishCracks_LakeHyliaEast() { - return 1; -} - -void sub_StateChange_MinishCracks_LakeHyliaEast() { -} - -u32 sub_unk3_MinishCracks_HyruleCastleGarden() { - return 1; -} - -void sub_StateChange_MinishCracks_HyruleCastleGarden() { -} - -u32 sub_unk3_MinishCracks_MtCrenel() { - return 1; -} - -void sub_StateChange_MinishCracks_MtCrenel() { -} - -u32 sub_unk3_MinishCracks_EastHyruleCastle() { - return 1; -} - -void sub_StateChange_MinishCracks_EastHyruleCastle() { -} - -u32 sub_unk3_MinishCracks_5() { - return 1; -} - -void sub_StateChange_MinishCracks_5() { -} - -u32 sub_unk3_MinishCracks_CastleWildsBowHole() { - return 1; -} - -extern EntityData gUnk_080DCB10; - -void sub_StateChange_MinishCracks_CastleWildsBowHole(void) { - if (!GetInventoryValue(ITEM_BOW)) { - LoadRoomEntityList(&gUnk_080DCB10); - } -} - -u32 sub_unk3_MinishCracks_RuinsEntrance() { - return 1; -} - -void sub_StateChange_MinishCracks_RuinsEntrance() { -} - -u32 sub_unk3_MinishCracks_MinishWoodsSouth() { - return 1; -} - -void sub_StateChange_MinishCracks_MinishWoodsSouth() { -} - -u32 sub_unk3_MinishCracks_CastorWildsNorth() { - return 1; -} - -void sub_StateChange_MinishCracks_CastorWildsNorth() { -} - -u32 sub_unk3_MinishCracks_CastorWildsWest() { - return 1; -} - -void sub_StateChange_MinishCracks_CastorWildsWest() { -} - -u32 sub_unk3_MinishCracks_CastorWildsMiddle() { - return 1; -} - -void sub_StateChange_MinishCracks_CastorWildsMiddle() { -} - -u32 sub_unk3_MinishCracks_RuinsTektite() { - return 1; -} - -void sub_StateChange_MinishCracks_RuinsTektite() { -} - -u32 sub_unk3_MinishCracks_CastorWildsNextToBow() { - return 1; -} - -void sub_StateChange_MinishCracks_CastorWildsNextToBow() { -} - -u32 sub_unk3_MinishCracks_E() { - return 1; -} - -void sub_StateChange_MinishCracks_E() { -} - -u32 sub_unk3_MinishCracks_F() { - return 1; -} - -void sub_StateChange_MinishCracks_F() { -} - -u32 sub_unk3_MinishCracks_10() { - return 1; -} - -void sub_StateChange_MinishCracks_10() { -} - -u32 sub_unk3_MinishCracks_11() { - return 1; -} - -void sub_StateChange_MinishCracks_11() { -} - -u32 sub_unk3_MelarisMine_Main() { - return 1; -} - -extern EntityData gUnk_additional_8_MelarisMine_Main; -extern EntityData gUnk_additional_9_MelarisMine_Main; -extern EntityData gUnk_080DD294; - -void sub_StateChange_MelarisMine_Main(void) { - if (!CheckGlobalFlag(WHITE_SWORD_END)) { - LoadRoomEntityList(&gUnk_additional_8_MelarisMine_Main); - } - if (!CheckLocalFlag(0x7f)) { - LoadRoomEntityList(&gUnk_additional_9_MelarisMine_Main); - } else { - LoadRoomEntityList(&gUnk_080DD294); - } - SetLocalFlag(0x8e); -} - -u32 sub_unk3_CloudTops_House() { - return 1; -} - -extern EntityData gUnk_080DD364; - -void sub_StateChange_CloudTops_House(void) { - if (!(gSave.windcrests & 0x4000000)) { - LoadRoomEntityList(&gUnk_080DD364); - } -} - -void sub_unk1_CloudTops_House(void) { - if (!(gSave.windcrests & 0x4000000)) { - LoadRoomEntityList(&gUnk_080DD364); - } -} - -u32 sub_unk3_CloudTops_Middle() { - return 1; -} - -void sub_StateChange_CloudTops_Middle() { -} - -u32 sub_unk3_CloudTops_Bottom() { - return 1; -} - -extern EntityData gUnk_080DD7E0; -extern EntityData gUnk_080DD840; - -void sub_StateChange_CloudTops_Bottom(void) { - - if (CheckGlobalFlag(KUMOTATSUMAKI)) { - sub_0809F814(0x6de); - } -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlag(0xf0)) { -#else - if (CheckLocalFlag(0xf3)) { -#endif - sub_0809F814(0xe0); - } else { - LoadRoomEntityList(&gUnk_080DD7E0); - } -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlag(0xf2)) { -#else - if (CheckLocalFlag(0xf5)) { -#endif - sub_0809F814(0xba3); - } else { - LoadRoomEntityList(&gUnk_080DD840); - } -} - -u32 sub_unk3_Ruins_Entrance() { - return 1; -} - -void sub_StateChange_Ruins_Entrance() { - sub_080300E8(); -#if defined(JP) || defined(EU) || defined(DEMO_JP) - SetLocalFlag(0x25); -#else - SetLocalFlag(0x24); -#endif -} - -u32 sub_unk3_Ruins_Beanstalk() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk() { -} - -u32 sub_unk3_Ruins_TripleTektites() { - return 1; -} - -extern EntityData gUnk_080DDE88; - -void sub_StateChange_Ruins_TripleTektites(void) { - - if (CheckKinstoneFused(0x41)) { - LoadRoomEntityList(&gUnk_080DDE88); - } -} - -void sub_unk1_Ruins_TripleTektites(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_03_00)) { -#else - if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_02_00)) { -#endif - SetDirtTile(0x85); - } -} - -u32 sub_unk3_Ruins_LadderToTektites() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites() { -} - -u32 sub_unk3_Ruins_FortressEntrance() { - return 1; -} - -extern EntityData gUnk_080DE008; - -void sub_StateChange_Ruins_FortressEntrance(void) { - sub_080300E8(); - if (CheckGlobalFlag(LV3_CLEAR) && !CheckLocalFlag(3)) { - LoadRoomEntityList(&gUnk_080DE008); - } -} - -u32 sub_unk3_Ruins_Armos() { - return 1; -} - -extern EntityData gUnk_080DE1E0; -extern EntityData gUnk_080DE200; - -void sub_StateChange_Ruins_Armos(void) { - sub_080300E8(); -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x31)) { -#else - if (!CheckLocalFlag(0x30)) { -#endif - LoadRoomEntityList(&gUnk_080DE1E0); - } -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x32)) { -#else - if (!CheckLocalFlag(0x31)) { -#endif - LoadRoomEntityList(&gUnk_080DE200); - } -} - -u32 sub_unk3_DeepwoodShrine_Madderpillar() { - return 1; -} - -extern EntityData gUnk_080DE4C8; - -void sub_StateChange_DeepwoodShrine_Madderpillar(void) { - if ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) < (gRoomControls.height >> 1)) { - if (!CheckLocalFlag(0x17)) { - LoadRoomEntityList(&gUnk_080DE4C8); - } - } -} - -u32 sub_unk3_DeepwoodShrine_BluePortal() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_BluePortal() { -} - -u32 sub_unk3_DeepwoodShrine_StairsToB1() { - return 1; -} - -extern EntityData gUnk_080DE814; -extern EntityData gUnk_additional_8_DeepwoodShrine_StairsToB1; - -void sub_StateChange_DeepwoodShrine_StairsToB1(void) { - if (!CheckLocalFlag(0x4b)) { - LoadRoomEntityList(&gUnk_080DE814); - } else { - if (!CheckLocalFlag(0x4c)) { - LoadRoomEntityList(&gUnk_additional_8_DeepwoodShrine_StairsToB1); - SetTileType(0x79, 0x285, 1); - } else { - SetTileType(0x7a, 0x285, 1); - if (!CheckLocalFlag(0x24)) { - SetTileType(0x73, 0x205, 1); - } - } - } -} - -u32 sub_unk3_DeepwoodShrine_PotBridge() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_PotBridge() { -} - -u32 sub_unk3_DeepwoodShrine_DoubleStatue() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_DoubleStatue() { -} - -u32 sub_unk3_DeepwoodShrine_Map() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Map() { -} - -u32 sub_unk3_DeepwoodShrine_Barrel() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Barrel(void) { - if (gSave.unk7 == 0) { - goto a; - } - if (gSave.unk7 != 2) { - a: - SetTileType(0x90, 0x20b, 1); - SetTileType(0x90, 0x411, 1); - } else { - SetTileType(0x90, 0x211, 1); - SetTileType(0x90, 0x40b, 1); - } - if (CheckLocalFlag(0x15)) { - SetTileType(0x76, 0x304, 2); - } - if (CheckLocalFlag(0x16)) { - SetTileType(0x76, 0x318, 2); - } -} - -u32 sub_unk3_DeepwoodShrine_Button() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Button() { -} - -u32 sub_unk3_DeepwoodShrine_Mulldozer() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Mulldozer() { -} - -u32 sub_unk3_DeepwoodShrine_Pillars() { - return 1; -} -void sub_StateChange_DeepwoodShrine_Pillars() { -} - -u32 sub_unk3_DeepwoodShrine_Lever() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Lever() { -} - -u32 sub_unk3_DeepwoodShrine_Entrance() { - return 1; -} - -#if defined(DEMO_USA) || defined(DEMO_JP) -void sub_StateChange_DeepwoodShrine_Entrance() { -#ifdef DEMO_USA - if (gSaveHeader->saveFileId != 0 && GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { -#else -#ifdef DEMO_JP - if (GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { -#endif -#endif - SetTileType(0x365, 0x349, 1); - SetTileType(0x365, 0x34a, 1); - SetTileType(0x365, 0x34b, 1); - } -} -#else -void sub_StateChange_DeepwoodShrine_Entrance() { -} -#endif - -u32 sub_unk3_DeepwoodShrine_Torch() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Torch() { -} - -u32 sub_unk3_DeepwoodShrine_BossKey() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_BossKey() { -} - -u32 sub_unk3_DeepwoodShrine_Compass() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Compass() { -} - -u32 sub_unk3_DeepwoodShrine_13() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_13() { -} - -u32 sub_unk3_DeepwoodShrine_LilyPadWest() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_LilyPadWest() { -} - -u32 sub_unk3_DeepwoodShrine_LilyPadEast() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_LilyPadEast() { -} - -u32 sub_unk3_DeepwoodShrineBoss_Main() { - return 1; -} - -extern EntityData gUnk_additional_a_DeepwoodShrineBoss_Main; - -extern u8 gUpdateVisibleTiles; -extern u32 gUsedPalettes; - -void sub_StateChange_DeepwoodShrineBoss_Main(void) { - - if (!CheckLocalFlag(0x48)) { - SetLocalFlag(0x48); - MenuFadeIn(5, 0); - gUpdateVisibleTiles = 0; - gFadeControl.active = 0; - gUsedPalettes = 0; - *(u16*)0x5000000 = 0x7fff; - DispReset(1); - } - if (CheckGlobalFlag(LV1_CLEAR)) { - LoadRoomEntityList(&gUnk_additional_a_DeepwoodShrineBoss_Main); - } else { - SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; - } -} - -u32 sub_unk3_DeepwoodShrine_PreBoss() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_PreBoss() { -} - -u32 sub_unk3_DeepwoodShrine_InsideBarrel() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_InsideBarrel(void) { - sub_08058D34(); - gArea.areaMetadata |= 0x40; - gMain.transition = 5; -} - -u32 sub_unk3_DeepwoodShrineEntry_Main() { - return 1; -} - -extern EntityData gUnk_080DFB78; - -void sub_StateChange_DeepwoodShrineEntry_Main(void) { - if (CheckGlobalFlag(LV1_CLEAR) && !CheckLocalFlagByBank(FLAG_BANK_1, LV1_CLEAR_MES)) { - LoadRoomEntityList(&gUnk_080DFB78); - } -} - -u32 sub_unk3_CaveOfFlames_AfterCane() { - return 1; -} - -void sub_StateChange_CaveOfFlames_AfterCane() { -} - -u32 sub_unk3_CaveOfFlames_SpinyChus() { - return 1; -} - -void sub_StateChange_CaveOfFlames_SpinyChus() { -} - -u32 sub_unk3_CaveOfFlames_CartToSpinyChus() { - return 1; -} - -void sub_StateChange_CaveOfFlames_CartToSpinyChus() { -} - -u32 sub_unk3_CaveOfFlames_Entrance() { - return 1; -} - -#ifdef DEMO_USA -void sub_StateChange_CaveOfFlames_Entrance() { - if (GetInventoryValue(ITEM_FIRE_ELEMENT) == 0) { - SetTileType(0x365, 0x287, 2); - SetTileType(0x365, 0x288, 2); - SetTileType(0x365, 0x289, 2); - } -} -#else -void sub_StateChange_CaveOfFlames_Entrance() { -} -#endif - -u32 sub_unk3_CaveOfFlames_MainCart() { - return 1; -} - -void sub_StateChange_CaveOfFlames_MainCart() { -} - -u32 sub_unk3_CaveOfFlames_NorthEntrance() { - return 1; -} - -void sub_StateChange_CaveOfFlames_NorthEntrance() { -} - -u32 sub_unk3_CaveOfFlames_CartWest() { - return 1; -} - -void sub_StateChange_CaveOfFlames_CartWest() { -} - -u32 sub_unk3_CaveOfFlames_Helmasaur() { - return 1; -} - -void sub_StateChange_CaveOfFlames_Helmasaur() { -} - -u32 sub_unk3_CaveOfFlames_Rollobite() { - return 1; -} - -void sub_StateChange_CaveOfFlames_Rollobite() { -} - -u32 sub_unk3_CaveOfFlames_MinishLava() { - return 1; -} - -void sub_StateChange_CaveOfFlames_MinishLava() { -} - -u32 sub_unk3_CaveOfFlames_MinishSpikes() { - return 1; -} - -void sub_StateChange_CaveOfFlames_MinishSpikes() { -} - -u32 sub_unk3_CaveOfFlames_RollobiteSwitch() { - return 1; -} - -void sub_StateChange_CaveOfFlames_RollobiteSwitch() { -} - -extern u32 gUnk_080E103C; - -u32 sub_unk3_CaveOfFlames_BeforeGleerok(void) { - if (CheckGlobalFlag(LV2_CLEAR)) { - gRoomVars.field_0x6c[1] = &gUnk_080E103C; - } - return 1; -} - -void sub_StateChange_CaveOfFlames_BeforeGleerok() { -} - -u32 sub_unk3_CaveOfFlames_PathBossKey() { - return 1; -} - -void sub_StateChange_CaveOfFlames_PathBossKey() { -} - -u32 sub_unk3_CaveOfFlames_PathBossKey2() { - return 1; -} - -void sub_StateChange_CaveOfFlames_PathBossKey2() { -} - -u32 sub_unk3_CaveOfFlames_Compass() { - return 1; -} - -void sub_StateChange_CaveOfFlames_Compass() { -} - -u32 sub_unk3_CaveOfFlames_Bobomb() { - return 1; -} - -void sub_StateChange_CaveOfFlames_Bobomb() { -} - -u32 sub_unk3_CaveOfFlames_BossDoor() { - return 1; -} - -void sub_StateChange_CaveOfFlames_BossDoor() { -} - -u32 sub_unk3_CaveOfFlames_18() { - return 1; -} - -void sub_StateChange_CaveOfFlames_18() { -} - -u32 sub_unk3_CaveOfFlamesBoss_Main() { - return 1; -} - -extern EntityData gUnk_additional_a_CaveOfFlamesBoss_Main; - -extern u32 gUnk_0200B650; - -void sub_StateChange_CaveOfFlamesBoss_Main(void) { - - if (CheckGlobalFlag(LV2_CLEAR)) { - gUnk_0200B650 = 0; - gScreen.lcd.displayControl &= ~DISPCNT_BG1_ON; - sub_0807AABC(&gPlayerEntity); - LoadRoomEntityList(&gUnk_additional_a_CaveOfFlamesBoss_Main); - } else { - SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; - } -} - -u32 sub_unk3_FortressOfWinds_Eyegore() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Eyegore() { -} - -u32 sub_unk3_FortressOfWinds_BeforeMazaal() { - return 1; -} - -void sub_StateChange_FortressOfWinds_BeforeMazaal(void) { - gScreenTransition.field_0x38 = 0; - gScreenTransition.field_0x39 = 0x5a; -} - -u32 sub_unk3_FortressOfWinds_EastKeyLever() { - return 1; -} - -void sub_StateChange_FortressOfWinds_EastKeyLever() { - sub_080300E8(); -} - -u32 sub_unk3_FortressOfWinds_PitPlatforms() { - return 1; -} - -void sub_StateChange_FortressOfWinds_PitPlatforms() { -} - -u32 sub_unk3_FortressOfWinds_WestKeyLever() { - return 1; -} - -void sub_StateChange_FortressOfWinds_WestKeyLever() { - sub_080300E8(); -} - -u32 sub_unk3_FortressOfWinds_Darknut() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Darknut() { -} - -u32 sub_unk3_FortressOfWinds_EyeBridge() { - return 1; -} - -void sub_StateChange_FortressOfWinds_EyeBridge() { -} - -u32 sub_unk3_FortressOfWinds_Pit() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Pit() { -} - -u32 sub_unk3_FortressOfWinds_Wallmaster() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Wallmaster() { -} - -u32 sub_unk3_FortressOfWinds_Clone() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Clone() { -} - -u32 sub_unk3_FortressOfWinds_SpikeTraps() { - return 1; -} - -void sub_StateChange_FortressOfWinds_SpikeTraps() { -} - -u32 sub_unk3_FortressOfWinds_Mazaal() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Mazaal(void) { - - if (!CheckFlags(0x31)) { - if (gScreenTransition.field_0x38 == 0) { - SoundReq(SONG_STOP_BGM); - } else { - if (gScreenTransition.field_0x39 == 0) { - SoundReq(SONG_STOP); - SetPlayerControl(3); - } - } - gArea.musicIndex = gArea.pMusicIndex; - } -} - -u32 sub_unk3_FortressOfWinds_Stalfos() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Stalfos() { -} - -u32 sub_unk3_FortressOfWinds_EntranceMoleMitts() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade0() { -} - -u32 sub_unk3_FortressOfWinds_Main2F() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade1() { -} - -u32 sub_unk3_FortressOfWinds_MinishHole() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade2() { -} - -u32 sub_unk3_FortressOfWinds_BossKey() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade3() { -} - -u32 sub_unk3_FortressOfWinds_WestStairs2F() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade4() { -} - -u32 sub_unk3_FortressOfWinds_EastStairs2F() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade5() { -} - -u32 sub_unk3_FortressOfWinds_WestStairs1F() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade6() { -} - -u32 sub_unk3_FortressOfWinds_CenterStairs1F() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade7() { -} - -u32 sub_unk3_FortressOfWinds_EastStairs1F() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade8() { -} - -u32 sub_unk3_FortressOfWinds_Wizzrobe() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade9() { -} - -u32 sub_unk3_FortressOfWinds_HeartPiece() { - return 1; -} - -void sub_StateChange_Dojos_70() { -} - -u32 sub_unk3_InnerMazaal_Main() { - return 1; -} - -void sub_StateChange_Dojos_71() { -} - -u32 sub_unk3_FortressOfWindsTop_Main() { - return 1; -} - -extern EntityData gUnk_080E3850; - -void sub_StateChange_FortressOfWindsTop_Main(void) { - SetGlobalFlag(LV3_CLEAR); - UpdateGlobalProgress(); - sub_0805B4D0(3); - if (!GetInventoryValue(ITEM_OCARINA) && CheckLocalFlag(0x45)) { - LoadRoomEntityList(&gUnk_080E3850); - } -} - -u32 sub_unk3_TempleOfDroplets_WestHole() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_WestHole() { - sub_0804D0B4(); -} - -void sub_0804D0B4(void) { - if (!CheckLocalFlag(0x29)) { - SetLocalFlag(0x29); - SetLocalFlag(0x4b); - SetLocalFlag(0x4e); - } -} - -u32 sub_unk3_TempleOfDroplets_NorthSplit() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_NorthSplit() { -} - -u32 sub_unk3_TempleOfDroplets_EastHole() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_EastHole() { -} - -u32 sub_unk3_TempleOfDroplets_Entrance() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_Entrance() { -} - -u32 sub_unk3_TempleOfDroplets_NorthwestStairs() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_NorthwestStairs() { -} - -u32 sub_unk3_TempleOfDroplets_ScissorsMiniboss() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_ScissorsMiniboss() { -} - -u32 sub_unk3_TempleOfDroplets_WaterfallNorthwest() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_WaterfallNorthwest() { -} - -u32 sub_unk3_TempleOfDroplets_WaterfallNortheast() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_WaterfallNortheast() { -} - -u32 sub_unk3_TempleOfDroplets_Element() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_Element() { -} - -u32 sub_unk3_TempleOfDroplets_IceCorner() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_IceCorner() { -} - -u32 sub_unk3_TempleOfDroplets_IcePitMaze() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_IcePitMaze() { -} - -u32 sub_unk3_TempleOfDroplets_HoleToBlueChuchu() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_HoleToBlueChuchu() { -} - -u32 sub_unk3_TempleOfDroplets_WaterfallSoutheast() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_WaterfallSoutheast() { -} - -u32 sub_unk3_TempleOfDroplets_WaterfallSouthwest() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_WaterfallSouthwest() { -} - -u32 sub_unk3_TempleOfDroplets_BigOcto() { - return 1; -} - -extern EntityData gUnk_additional_a_TempleOfDroplets_BigOcto; - -void sub_StateChange_TempleOfDroplets_BigOcto(void) { - ChangeLightLevel(0x100); - if (CheckGlobalFlag(LV4_CLEAR)) { - LoadRoomEntityList(&gUnk_additional_a_TempleOfDroplets_BigOcto); - } else { - SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; - } -} - -u32 sub_unk3_TempleOfDroplets_ToBigBlueChuchu() { - return 1; -} - -void sub_StateChange_Dojos_72() { -} - -u32 sub_unk3_TempleOfDroplets_BigBlueChuchu() { - return 1; -} - -extern EntityData gUnk_080E4BD8; - -void sub_StateChange_TempleOfDroplets_BigBlueChuchu(void) { - if (!CheckLocalFlag(0x48)) { - ClearLocalFlag(0x46); - LoadRoomEntityList(&gUnk_080E4BD8); - } -} - -u32 sub_unk3_TempleOfDroplets_BigBlueChuchuKey() { - return 1; -} - -extern EntityData gUnk_080E4CF8; -extern EntityData gUnk_080E4CD8; - -void sub_StateChange_TempleOfDroplets_BigBlueChuchuKey(void) { - sub_0804D0B4(); - if (CheckLocalFlag(0x6c)) { - LoadRoomEntityList(&gUnk_080E4CD8); - } else { - LoadRoomEntityList(&gUnk_080E4CF8); - } - if (!CheckLocalFlag(0x4b)) { - ClearLocalFlag(0x49); - } -} - -u32 sub_unk3_TempleOfDroplets_BossKey() { - return 1; -} - -void sub_StateChange_Dojos_73() { -} - -u32 sub_unk3_TempleOfDroplets_NorthSmallKey() { - return 1; -} - -void sub_StateChange_Dojos_74() { -} - -u32 sub_unk3_TempleOfDroplets_BlockCloneButtonPuzzle() { - return 1; -} - -void sub_StateChange_Dojos_75() { -} - -u32 sub_unk3_TempleOfDroplets_BlockClonePuzzle() { - return 1; -} - -void sub_StateChange_Dojos_76() { -} - -u32 sub_unk3_TempleOfDroplets_BlockCloneIceBridge() { - return 1; -} - -void sub_StateChange_Dojos_77() { -} - -u32 sub_unk3_TempleOfDroplets_StairsToScissorsMiniboss() { - return 1; -} - -void sub_StateChange_Dojos_78() { -} - -u32 sub_unk3_TempleOfDroplets_SpikeBar() { - return 1; -} - -void sub_StateChange_Dojos_79() { -} - -u32 sub_unk3_TempleOfDroplets_Lanterns() { - return 1; -} - -void sub_StateChange_Dojos_80() { -} - -u32 sub_unk3_TempleOfDroplets_LilypadIceBlocks() { - return 1; -} - -extern EntityData gUnk_080E5660; -extern EntityData gUnk_080E5680; - -void sub_StateChange_TempleOfDroplets_LilypadIceBlocks(void) { - if (!CheckLocalFlag(0x59)) { - LoadRoomEntityList(&gUnk_080E5660); - } else { - LoadRoomEntityList(&gUnk_080E5680); - } -} - -u32 sub_unk3_TempleOfDroplets_Pit() { - return 1; -} - -void sub_StateChange_Dojos_81() { -} - -u32 sub_unk3_TempleOfDroplets_FireBars() { - return 1; -} - -void sub_StateChange_Dojos_82() { -} - -u32 sub_unk3_TempleOfDroplets_LanternMaze() { - return 1; -} - -void sub_StateChange_Dojos_83() { -} - -u32 sub_unk3_TempleOfDroplets_Madderpillars() { - return 1; -} - -void sub_StateChange_Dojos_84() { -} - -u32 sub_unk3_TempleOfDroplets_AfterMadderpillars() { - return 1; -} - -void sub_StateChange_Dojos_85() { -} - -u32 sub_unk3_TempleOfDroplets_BlueChuchuKeyLever() { - return 1; -} - -extern EntityData gUnk_080E5E3C; -extern EntityData gUnk_080E5E5C; - -void sub_StateChange_TempleOfDroplets_BlueChuchuKeyLever(void) { - sub_0804D0B4(); - if (!CheckLocalFlag(0x4b)) { - LoadRoomEntityList(&gUnk_080E5E3C); - } else { - LoadRoomEntityList(&gUnk_080E5E5C); - } -} - -u32 sub_unk3_TempleOfDroplets_MulldozerKey() { - return 1; -} - -void sub_StateChange_Dojos_86() { -} - -u32 sub_unk3_TempleOfDroplets_BombWall() { - return 1; -} - -void sub_StateChange_Dojos_87() { -} - -u32 sub_unk3_TempleOfDroplets_LilypadWestB2() { - return 1; -} - -void sub_StateChange_Dojos_88() { -} - -u32 sub_unk3_TempleOfDroplets_CompassRoom() { - return 1; -} - -void sub_StateChange_Dojos_89() { -} - -u32 sub_unk3_TempleOfDroplets_LanternScissors() { - return 1; -} - -void sub_StateChange_Dojos_90() { -} - -u32 sub_unk3_TempleOfDroplets_LilypadMiddleB2() { - return 1; -} - -void sub_StateChange_Dojos_91() { -} - -u32 sub_unk3_TempleOfDroplets_LilypadEastB2() { - return 1; -} - -void sub_StateChange_Dojos_92() { -} - -u32 sub_unk3_TempleOfDroplets_FlameBarBlockPuzzle() { - return 1; -} - -void sub_StateChange_Dojos_93() { -} - -u32 sub_unk3_RoyalCrypt_KingGustaf() { - return 1; -} - -extern EntityData gUnk_080E693C; - -void sub_StateChange_RoyalCrypt_KingGustaf(void) { - if (!CheckLocalFlag(0x32)) { - LoadRoomEntityList(&gUnk_080E693C); - } -} - -u32 sub_unk3_RoyalCrypt_WaterRope() { - return 1; -} - -void sub_StateChange_Dojos_94() { -} - -u32 sub_unk3_RoyalCrypt_Gibdo() { - return 1; -} - -void sub_StateChange_Dojos_95() { -} - -u32 sub_unk3_RoyalCrypt_3() { - return 1; -} - -void sub_StateChange_Dojos_96() { -} - -u32 sub_unk3_RoyalCrypt_KeyBlock() { - return 1; -} - -void sub_StateChange_Dojos_97() { -} - -u32 sub_unk3_RoyalCrypt_5() { - return 1; -} - -void sub_StateChange_Dojos_98() { -} - -u32 sub_unk3_RoyalCrypt_6() { - return 1; -} - -void sub_StateChange_Dojos_99() { -} - -u32 sub_unk3_RoyalCrypt_MushroomPit() { - return 1; -} - -void sub_StateChange_RoyalCrypt_MushroomPit() { - sub_08054570(); -} - -u32 sub_unk3_RoyalCrypt_Entrance() { - return 1; -} - -extern EntityData gUnk_080E718C; -extern EntityData gUnk_080E71AC; - -void sub_StateChange_RoyalCrypt_Entrance(void) { - SetTileType(0x312, 0x108, 1); - sub_08054570(); - if (!CheckLocalFlag(0xc4)) { - LoadRoomEntityList(&gUnk_080E718C); - } - if (!CheckLocalFlag(0xc5)) { - LoadRoomEntityList(&gUnk_080E71AC); - } -} - -u32 sub_unk3_PalaceOfWinds_0() { - return 1; -} - -extern EntityData gUnk_additional_9_PalaceOfWinds_0; -extern EntityData gUnk_080E72C4; -extern EntityData gUnk_additional_8_PalaceOfWinds_0; - -void sub_StateChange_PalaceOfWinds_0(void) { - Manager19_Main(NULL); - if (CheckGlobalFlag(LV5_CLEAR)) { - LoadRoomEntityList(&gUnk_additional_9_PalaceOfWinds_0); - } - if (!CheckLocalFlag(0x7b)) { - LoadRoomEntityList(&gUnk_080E72C4); - } else { - SetGlobalFlag(LV5_CLEAR); - if (!GetInventoryValue(ITEM_WIND_ELEMENT)) { - SetPlayerControl(3); - LoadRoomEntityList(&gUnk_additional_8_PalaceOfWinds_0); - gArea.musicIndex = gArea.pMusicIndex; - SoundReq(SONG_STOP_BGM); - } - } -} - -u32 sub_unk3_PalaceOfWinds_1() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_1() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_2() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_2() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_3() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_3() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_4() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_4() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_5() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_5() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_6() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_6() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_7() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_7() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_8() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_8() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_9() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_9() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_10() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_10() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_11() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_11() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_12() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_12() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_13() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_13() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_14() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_14() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_15() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_15() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_16() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_16() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_17() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_17() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_18() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_18() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_19() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_19() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_20() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_20() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_21() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_21() { -} - -u32 sub_unk3_PalaceOfWinds_22() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_22() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_23() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_23() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_24() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_24() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_25() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_25() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_26() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_26() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_27() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_27() { -} - -u32 sub_unk3_PalaceOfWinds_28() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_28() { -} - -u32 sub_unk3_PalaceOfWinds_29() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_29() { -} - -u32 sub_unk3_PalaceOfWinds_30() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_30() { -} - -u32 sub_unk3_PalaceOfWinds_31() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_31() { -} - -u32 sub_unk3_PalaceOfWinds_32() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_32() { -} - -u32 sub_unk3_PalaceOfWinds_33() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_33() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_34() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_34() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_35() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_35() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_36() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_36() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_37() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_37() { -} - -u32 sub_unk3_PalaceOfWinds_38() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_38() { -} - -u32 sub_unk3_PalaceOfWinds_39() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_39() { -} - -u32 sub_unk3_PalaceOfWinds_40() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_40() { -} - -u32 sub_unk3_PalaceOfWinds_41() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_41() { -} - -u32 sub_unk3_PalaceOfWinds_42() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_42() { -} - -u32 sub_unk3_PalaceOfWinds_43() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_43() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_44() { - return 1; -} - -extern EntityData gUnk_080EA09C; - -void sub_StateChange_PalaceOfWinds_44(void) { - Manager19_Main(NULL); - if (!CheckLocalFlag(0x70)) { - LoadRoomEntityList(&gUnk_080EA09C); - } -} - -u32 sub_unk3_PalaceOfWinds_45() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_45() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_46() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_46() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_47() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_47() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_48() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_48() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_49() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_49() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_50() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_50() { -} - -u32 sub_unk3_PalaceOfWindsBoss_Main() { - return 1; -} - -void sub_StateChange_PalaceOfWindsBoss_Main() { -} - -u32 sub_unk3_Vaati2_Main() { - return 1; -} - -void sub_StateChange_Vaati2_Main(void) { - SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; -} - -u32 sub_unk3_Vaati3_Main() { - return 1; -} - -void sub_StateChange_Vaati3_Main(void) { - Manager2F_Main(NULL); - - if ((gScreenTransition.field_0x38 & 1) && gScreenTransition.field_0x39) { - if (gScreenTransition.field_0x3c == 1) { - gPlayerEntity.x.HALF.HI = gScreenTransition.field_0x48; - gPlayerEntity.y.HALF.HI = gScreenTransition.field_0x4a + 8; - } else { - if (gScreenTransition.field_0x3c) { - return; - } - gPlayerEntity.x.HALF.HI = gScreenTransition.field_0x44; - gPlayerEntity.y.HALF.HI = gScreenTransition.field_0x46 + 8; - } - } -} - -u32 sub_unk3_DarkHyruleCastleBridge_Main() { - return 1; -} - -void sub_StateChange_DarkHyruleCastleBridge_Main() { - sub_0805B4D0(6); -} - -u32 sub_unk3_VaatisArms_First() { - return 1; -} - -void sub_StateChange_VaatisArms_First() { -} - -u32 sub_unk3_VaatisArms_Second() { - return 1; -} - -void sub_StateChange_VaatisArms_Second() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_ZeldaStatuePlatform() { - sub_080534AC(); - return 1; -} - -extern EntityData gUnk_080EAD68; -extern EntityData gUnk_080EADB8; - -void sub_StateChange_DarkHyruleCastleOutside_ZeldaStatuePlatform(void) { - sub_0805B4D0(4); - if (!CheckLocalFlag(0x77)) { - LoadRoomEntityList(&gUnk_080EAD68); - } else if (!CheckLocalFlag(0x79)) { - LoadRoomEntityList(&gUnk_080EADB8); - SetTileType(0x4072, 0x145, 1); - SetTileType(0x4072, 0x149, 1); - gArea.pMusicIndex = 0; - } -} - -extern u16 gUnk_080EAE00; - -void sub_0804D7EC(void) { - u16 temp; - u16* tilePos; - - tilePos = &gUnk_080EAE00; - while (*tilePos != 0) { - temp = *tilePos; - tilePos++; - SetTileType(0x4072, temp, 1); - } -} - -void sub_0804D810(void) { - u16 uVar1; - u16* puVar2; - - puVar2 = &gUnk_080EAE00; - while (*puVar2 != 0) { - uVar1 = *puVar2; - puVar2++; - sub_0807BA8C(uVar1, 1); - } -} - -u32 sub_unk3_DarkHyruleCastleOutside_Garden() { - return 1; -} - -extern EntityData gUnk_080EAE60; -extern EntityData gUnk_080EAEC0; -extern EntityData gUnk_080EAF20; - -void sub_StateChange_DarkHyruleCastleOutside_Garden(void) { - gArea.areaMetadata = 0x40; - gArea.locationIndex = 0; - if (CheckGlobalFlag(ENDING)) { - if (!CheckLocalFlag(0x7f)) { - LoadRoomEntityList(&gUnk_080EAEC0); - SetLocalFlag(0x7f); - gArea.pMusicIndex = 0x11; - } else { - LoadRoomEntityList(&gUnk_080EAF20); - gArea.pMusicIndex = gArea.musicIndex; - } - } else { - if (CheckLocalFlag(0x79)) { - gArea.pMusicIndex = gArea.musicIndex; - } - if (!CheckLocalFlag(1)) { - LoadRoomEntityList(&gUnk_080EAE60); - } - } - ClearGlobalFlag(0x5d); -} - -u32 sub_unk3_DarkHyruleCastleOutside_OutsideNorthwest() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade0() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_OutsideNortheast() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade1() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_OutsideEast() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade2() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouthwest() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade3() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouth() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade4() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_OutsideSoutheast() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade5() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_8() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade6() { -} - -extern u32 gUnk_080EB604; -extern u32 gUnk_080EB5D4; - -u32 sub_unk3_DarkHyruleCastle_0(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080EB604; - gRoomVars.field_0x6c[2] = 0; - gArea.musicIndex = gArea.pMusicIndex = BGM_BEAT_VAATI; - } else if (CheckLocalFlag(0x79)) { - gRoomVars.field_0x6c[0] = NULL; - if (!CheckLocalFlag(0x7a)) { - SetGlobalFlag(ZELDA_CHASE); - gRoomVars.field_0x6c[0] = &gUnk_080EB5D4; - gRoomVars.field_0x6c[7] = sub_0804D9B0; - gRoomVars.field_0x6c[2] = 0; - } - } - return 1; -} - -void sub_StateChange_DarkHyruleCastle_0(void) { - if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } - - if (CheckLocalFlag(0x79)) { - sub_0804D9B0(); - } -} - -extern EntityData gUnk_080EB684; - -void sub_0804D9B0(void) { - sub_0807BB98(0x797, 1, 5, 1); - sub_0807BB98(0x357, 1, 5, 1); - sub_0807BB98(0x55f, 1, 2, 1); - LoadRoomEntityList(&gUnk_080EB684); - gArea.pMusicIndex = gArea.musicIndex; -} - -u32 sub_unk3_DarkHyruleCastle_1() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade7() { -} - -u32 sub_unk3_DarkHyruleCastle_2() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade8() { -} - -u32 sub_unk3_DarkHyruleCastle_3() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade9() { -} - -u32 sub_unk3_DarkHyruleCastle_4() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade0() { -} - -u32 sub_unk3_DarkHyruleCastle_5() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade1() { -} - -u32 sub_unk3_DarkHyruleCastle_6(void) { - if (!CheckLocalFlag(0x77)) { - gRoomVars.field_0x6c[0] = 0; - gRoomVars.field_0x6c[2] = 0; - } - return 1; -} - -extern EntityData gUnk_080EB9F4; -extern EntityData gUnk_080EBAA4; -extern EntityData gUnk_080EBAF4; - -void sub_StateChange_DarkHyruleCastle_6(void) { - if (!CheckLocalFlag(0x77)) { - LoadRoomEntityList(&gUnk_080EB9F4); - } else { - if (!CheckLocalFlag(0x78)) { - LoadRoomEntityList(&gUnk_080EBAA4); - SetLocalFlag(0x75); - } - if (CheckLocalFlag(0x7b)) { - LoadRoomEntityList(&gUnk_080EBAF4); - SetLocalFlag(0x76); - } - } -} - -u32 sub_unk3_DarkHyruleCastle_7() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade2() { -} - -u32 sub_unk3_DarkHyruleCastle_8() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade3() { -} - -u32 sub_unk3_DarkHyruleCastle_9() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade4() { -} - -u32 sub_unk3_DarkHyruleCastle_10() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade5() { -} - -u32 sub_unk3_DarkHyruleCastle_11() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade6() { -} - -u32 sub_unk3_DarkHyruleCastle_12() { - return 1; -} -void sub_StateChange_Dojos_ToSplitblade7() { -} - -u32 sub_unk3_DarkHyruleCastle_13() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade8() { -} - -u32 sub_unk3_DarkHyruleCastle_14() { - return 1; -} - -extern EntityData gUnk_080EC2CC; - -void sub_StateChange_DarkHyruleCastle_14(void) { - if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x4c)) { - LoadRoomEntityList(&gUnk_080EC2CC); - } -} - -u32 sub_unk3_DarkHyruleCastle_15() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade9() { -} - -u32 sub_unk3_DarkHyruleCastle_16() { - return 1; -} - -extern EntityData gUnk_080EC4E8; - -void sub_StateChange_DarkHyruleCastle_16(void) { - if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x4d)) { - LoadRoomEntityList(&gUnk_080EC4E8); - } -} - -u32 sub_unk3_DarkHyruleCastle_17() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade0() { -} - -u32 sub_unk3_DarkHyruleCastle_18() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade1() { -} - -u32 sub_unk3_DarkHyruleCastle_19() { - return 1; -} - -extern EntityData gUnk_080EC820; - -void sub_StateChange_DarkHyruleCastle_19(void) { - if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x53)) { - LoadRoomEntityList(&gUnk_080EC820); - } -} - -u32 sub_unk3_DarkHyruleCastle_20() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade2() { -} - -u32 sub_unk3_DarkHyruleCastle_21() { - return 1; -} - -extern EntityData gUnk_080ECA60; - -void sub_StateChange_DarkHyruleCastle_21(void) { - if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x56)) { - LoadRoomEntityList(&gUnk_080ECA60); - } -} - -u32 sub_unk3_DarkHyruleCastle_22() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade3() { -} - -u32 sub_unk3_DarkHyruleCastle_23() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade4() { -} - -u32 sub_unk3_DarkHyruleCastle_24() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade5() { -} - -u32 sub_unk3_DarkHyruleCastle_25() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade6() { -} - -u32 sub_unk3_DarkHyruleCastle_26() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade7() { -} - -u32 sub_unk3_DarkHyruleCastle_27() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade8() { -} - -u32 sub_unk3_DarkHyruleCastle_28(void) { - if (CheckLocalFlag(0x79)) { - gRoomVars.field_0x6c[2] = 0; - } - return 1; -} - -extern EntityData gUnk_080ECFCC; - -void sub_StateChange_DarkHyruleCastle_28(void) { - if (CheckLocalFlag(0x79)) { - sub_0807BB98(0x90, 1, 1, 5); - LoadRoomEntityList(&gUnk_080ECFCC); - gArea.pMusicIndex = gArea.musicIndex; - } -} - -u32 sub_unk3_DarkHyruleCastle_29() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade9() { -} - -u32 sub_unk3_DarkHyruleCastle_30() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade0() { -} - -extern u32 gUnk_080ED1E4; - -u32 sub_unk3_DarkHyruleCastle_31(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080ED1E4; - gRoomVars.field_0x6c[2] = 0; - } - return 1; -} - -void sub_StateChange_DarkHyruleCastle_31(void) { - if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } -} - -u32 sub_unk3_DarkHyruleCastle_32() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade1() { -} - -u32 sub_unk3_DarkHyruleCastle_33() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade2() { -} - -u32 sub_unk3_DarkHyruleCastle_34() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade3() { -} - -u32 sub_unk3_DarkHyruleCastle_35() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade4() { -} - -u32 sub_unk3_DarkHyruleCastle_36() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade5() { -} - -u32 sub_unk3_DarkHyruleCastle_37() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade6() { -} - -u32 sub_unk3_DarkHyruleCastle_38() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade7() { -} - -u32 sub_unk3_DarkHyruleCastle_39() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade8() { -} - -u32 sub_unk3_DarkHyruleCastle_40() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade9() { -} - -u32 sub_unk3_DarkHyruleCastle_41() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave0() { -} - -u32 sub_unk3_DarkHyruleCastle_42() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave1() { -} - -u32 sub_unk3_DarkHyruleCastle_43() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave2() { -} - -u32 sub_unk3_DarkHyruleCastle_44() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave3() { -} - -u32 sub_unk3_DarkHyruleCastle_45() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave4() { -} - -u32 sub_unk3_DarkHyruleCastle_46() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave5() { -} - -u32 sub_unk3_DarkHyruleCastle_47() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave6() { -} - -u32 sub_unk3_DarkHyruleCastle_48() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave7() { -} - -u32 sub_unk3_DarkHyruleCastle_49() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave8() { -} - -u32 sub_unk3_DarkHyruleCastle_50() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave9() { -} - -u32 sub_unk3_DarkHyruleCastle_51() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk0() { -} - -u32 sub_unk3_DarkHyruleCastle_52() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk1() { -} - -u32 sub_unk3_DarkHyruleCastle_53(void) { - if (CheckLocalFlag(0x79)) { - gRoomVars.field_0x6c[2] = 0; - gRoomVars.field_0x6c[0] = 0; - } - return 1; -} - -extern EntityData gUnk_080EE314; - -void sub_StateChange_DarkHyruleCastle_53(void) { - if (CheckLocalFlag(0x79)) { - sub_0807BB98(3, 2, 5, 1); - LoadRoomEntityList(&gUnk_080EE314); - gArea.pMusicIndex = gArea.musicIndex; - } -} - -u32 sub_unk3_DarkHyruleCastle_54() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk2() { -} - -u32 sub_unk3_DarkHyruleCastle_55(void) { - if (CheckLocalFlag(0x79)) { - gRoomVars.field_0x6c[2] = 0; - } - return 1; -} - -extern EntityData gUnk_080EE5DC; - -void sub_StateChange_DarkHyruleCastle_55(void) { - if (CheckLocalFlag(0x79)) { - sub_0807BB98(0x392, 2, 2, 5); - LoadRoomEntityList(&gUnk_080EE5DC); - gArea.pMusicIndex = gArea.musicIndex; - } -} - -u32 sub_unk3_DarkHyruleCastle_56() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk3() { -} - -u32 sub_unk3_DarkHyruleCastle_57() { - return 1; -} - -extern EntityData gUnk_080EE71C; - -void sub_StateChange_DarkHyruleCastle_57(void) { - if (CheckLocalFlag(1)) { - LoadRoomEntityList(&gUnk_080EE71C); - } -} - -u32 sub_unk3_DarkHyruleCastle_58() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk4() { -} - -ASM_FUNC("asm/non_matching/sub_unk3_HyruleTown_0.inc", u32 sub_unk3_HyruleTown_0(void)) - -extern EntityData gUnk_080EEB6C; -extern EntityData gUnk_080EEB8C; -extern EntityData gUnk_080EE88C; -extern EntityData gUnk_080EE8FC; -extern EntityData gUnk_080EE91C; -extern EntityData gUnk_080EECBC; -extern EntityData gUnk_080EE93C; -extern EntityData gUnk_080EE95C; -extern EntityData gUnk_080EE97C; -extern EntityData gUnk_080EE9BC; -extern EntityData gUnk_080EE99C; -extern EntityData gUnk_080EE9DC; -extern EntityData gUnk_080EEA3C; -extern EntityData gUnk_080EEA1C; -extern EntityData gUnk_080EE9FC; -extern EntityData gUnk_080EEA5C; -extern EntityData gUnk_080EEABC; -extern EntityData gUnk_080EEA7C; -extern EntityData gUnk_080EEA9C; -extern EntityData gUnk_080EEBAC; - -void sub_StateChange_HyruleTown_0(void) { - sub_08054570(); - TryLoadPrologueHyruleTown(); -#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) - SetTileType(0x176, 0x66b, 1); -#endif - if (gSave.global_progress == 1) { - sub_0801D000(0); - } else { - sub_08018C58(0xdb4); - if (!CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE04_DANRO)) { - LoadRoomEntityList(&gUnk_080EEB6C); - } - if (!CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE06_DANRO)) { - LoadRoomEntityList(&gUnk_080EEB8C); - } - - if ((!GetInventoryValue(ITEM_KINSTONE_BAG)) && CheckGlobalFlag(LV1_CLEAR)) { - LoadRoomEntityList(&gUnk_080EE88C); - } - if (!CheckKinstoneFused(0x28)) { - LoadRoomEntityList(&gUnk_080EE8FC); - } - if (CheckKinstoneFused(0x33)) { - LoadRoomEntityList(&gUnk_080EE91C); - } - if (CheckGlobalFlag(MACHI_MACHIHOKORI)) { - LoadRoomEntityList(&gUnk_080EE93C); - } else { - LoadRoomEntityList(&gUnk_080EECBC); - } - if (CheckKinstoneFused(0x1b) && (gSave.global_progress > 3)) { - if (!(CheckGlobalFlag(NEW_HOUSE_DIN) || CheckGlobalFlag(NEW_HOUSE_NAYRU) || - CheckGlobalFlag(NEW_HOUSE_FARORE))) { - if (!(CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || - CheckGlobalFlag(RENTED_HOUSE_FARORE))) { - LoadRoomEntityList(&gUnk_080EE95C); - } else { - if (!CheckGlobalFlag(TATEKAKE_HOUSE)) { - LoadRoomEntityList(&gUnk_080EE97C); - } else { - LoadRoomEntityList(&gUnk_080EE9BC); - } - } - } else { - LoadRoomEntityList(&gUnk_080EE99C); - } - } - if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { - LoadRoomEntityList(&gUnk_080EE9FC); - } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { - LoadRoomEntityList(&gUnk_080EEA1C); - } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { - LoadRoomEntityList(&gUnk_080EEA3C); - } else { - LoadRoomEntityList(&gUnk_080EE9DC); - } - if ((gSave.global_progress > 4) && !CheckKinstoneFused(0xb) && - (CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || - CheckGlobalFlag(RENTED_HOUSE_FARORE))) { - LoadRoomEntityList(&gUnk_080EEA5C); - } - // rocs cape -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0xcd) && GetInventoryValue(ITEM_ROCS_CAPE)) { -#else - if (!CheckLocalFlag(0xd0) && GetInventoryValue(ITEM_ROCS_CAPE)) { -#endif - LoadRoomEntityList(&gUnk_080EEABC); - } - if ((gSave.global_progress > 3) && CheckGlobalFlag(INLOCK)) { - LoadRoomEntityList(&gUnk_080EEA7C); - } - if ((gSave.global_progress < 6) && !CheckGlobalFlag(MIZUKAKI_START)) { - LoadRoomEntityList(&gUnk_080EEA9C); - } - if ((gSave.windcrests & 0x8000000) == 0) { - LoadRoomEntityList(&gUnk_080EEBAC); - } - sub_0804E150(); - } -} - -void sub_unk1_HyruleTown_8(void) { - if ((gSave.windcrests & 0x8000000) == 0) { - LoadRoomEntityList(&gUnk_080EEBAC); - } -} - -ASM_FUNC("asm/non_matching/sub_0804E150.inc", void sub_0804E150(void)) - -u32 sub_unk3_HyruleTownMinishCaves_Entrance() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_Entrance() { -} - -u32 sub_unk3_HyruleTownMinishCaves_NorthRoom() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_NorthRoom() { -} - -u32 sub_unk3_HyruleTownMinishCaves_PacciJump() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_PacciJump() { -} - -u32 sub_unk3_HyruleTownMinishCaves_MulldozerFight() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_MulldozerFight() { -} - -u32 sub_unk3_HyruleTownMinishCaves_WestChest() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_WestChest() { -} - -u32 sub_unk3_HyruleTownMinishCaves_Flippers() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_Flippers() { -} - -u32 sub_unk3_HyruleTownMinishCaves_Librari() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_Librari() { -} - -u32 sub_unk3_HyruleTownMinishCaves_WestFrozenChest() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_WestFrozenChest() { -} - -u32 sub_unk3_HyruleTownMinishCaves_CrossIntersection() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_CrossIntersection() { -} - -u32 sub_unk3_HyruleTownMinishCaves_SoutheastCorner() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_SoutheastCorner() { -} - -u32 sub_unk3_HyruleTownMinishCaves_Entrance2() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_Entrance2() { -} - -u32 sub_unk3_HyruleTownUnderground_Main() { - return 1; -} - -void sub_StateChange_HyruleTownUnderground_Main() { -} - -u32 sub_unk3_HyruleTownUnderground_Well() { - return 1; -} - -void sub_StateChange_HyruleTownUnderground_Well() { -} - -extern u32 gUnk_080F09A0; - -u32 sub_unk3_CastleGarden_Main(void) { - if (GetInventoryValue(ITEM_FOURSWORD)) { - gRoomVars.field_0x6c[1] = &gUnk_080F09A0; - } - return 1; -} - -extern EntityData gUnk_080F0650; -extern EntityData gUnk_080F0800; -extern EntityData gUnk_080F08F0; -extern EntityData gUnk_080F0850; -extern EntityData gUnk_080F0870; -extern EntityData gUnk_080F0890; -extern EntityData gUnk_080F0920; - -void sub_StateChange_CastleGarden_Main(void) { - if (!CheckGlobalFlag(TABIDACHI)) { - LoadRoomEntityList(&gUnk_080F0650); -#ifdef EU - gArea.pMusicIndex = BGM_FESTIVAL_APPROACH; -#else - gArea.pMusicIndex = BGM_BEANSTALK; - SetGlobalFlag(CASTLE_BGM); - } else { - if (CheckGlobalFlag(CASTLE_BGM)) { -#if defined(JP) || defined(DEMO_JP) - gArea.pMusicIndex = gArea.musicIndex; -#else - gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; -#endif - } -#endif - } -#if defined(JP) || defined(DEMO_JP) || defined(EU) - if (!CheckLocalFlag(0x9b)) { -#else - if (!CheckLocalFlag(0x9c)) { -#endif - LoadRoomEntityList(&gUnk_080F0800); - SetTileType(0x4072, 600, 1); - SetTileType(0x4072, 0x298, 1); - SetTileType(0x4072, 0x266, 1); - SetTileType(0x4072, 0x2a6, 1); - } else { - if (!GetInventoryValue(ITEM_FOURSWORD)) { - LoadRoomEntityList(&gUnk_080F08F0); - SetTileType(0x4072, 0x9e, 1); - SetTileType(0x4072, 0x9f, 1); - SetTileType(0x4072, 0xa0, 1); - } - LoadRoomEntityList(&gUnk_080F0850); - if (!GetInventoryValue(ITEM_WATER_ELEMENT)) { - LoadRoomEntityList(&gUnk_080F0870); - } else { - LoadRoomEntityList(&gUnk_080F0890); - } - SetTileType(0x4072, 600, 1); - SetTileType(0x4072, 0x298, 1); -#if defined(JP) || defined(DEMO_JP) || defined(EU) - if (CheckLocalFlag(0x11)) { -#else - if (CheckLocalFlag(0x10)) { -#endif - LoadRoomEntityList(&gUnk_080F0920); -#if defined(JP) || defined(DEMO_JP) || defined(EU) - ClearLocalFlag(0x11); -#else - ClearLocalFlag(0x10); -#endif - } - } - sub_080AF284(); -} - -u32 sub_unk3_SimonsSimulation_Main() { - ClearLocalFlag(1); - return 1; -} - -extern u8* gUnk_080F0D58[4]; -extern Entity* gUnk_080F0CB8[15]; -extern u8* gUnk_080F0E08[]; -extern struct { - u32 unk_00; - u32 unk_04; -} gUnk_080F0E1C[]; - -void sub_StateChange_SimonsSimulation_Main() { - u32 r; - u32 index; - u32 tmp; - tmp = CheckGlobalFlag(LV4_CLEAR); - index = BOOLCAST(tmp); - if (CheckGlobalFlag(LV5_CLEAR)) { - index = 2; - } - if (CheckGlobalFlag(GAMECLEAR)) { - index = 3; - } - r = Random(); - index = gUnk_080F0D58[index][r & 0x1f]; - LoadRoomEntityList((EntityData*)gUnk_080F0CB8[index & 0xF]); - index >>= 4; - r >>= 8; - index = gUnk_080F0E08[index][r & 0x1F]; - if (!CheckLocalFlag(0xC6)) { - SetLocalFlag(0xC6); - index = 0xE; - } - sub_0804B3C4(&gUnk_080F0E1C[index]); - SoundReq(SONG_STOP_BGM); -} - -u32 sub_unk3_HouseInteriors2_Stranger() { - return 1; -} - -extern EntityData gUnk_080F1C68; -extern EntityData gUnk_080F1C88; - -void sub_StateChange_HouseInteriors2_Stranger(void) { - if (!CheckGlobalFlag(POWERGLOVE_HINT)) { - LoadRoomEntityList(&gUnk_080F1C68); - } else { - LoadRoomEntityList(&gUnk_080F1C88); - } -} - -u32 sub_unk3_HouseInteriors2_WestOracle() { - return 1; -} - -extern EntityData gUnk_080F1D90; -extern EntityData gUnk_080F1DB0; -extern EntityData gUnk_080F1DD0; - -void sub_StateChange_HouseInteriors2_WestOracle(void) { - if (CheckGlobalFlag(NEW_HOUSE_DIN)) { - LoadRoomEntityList(&gUnk_080F1D90); - } else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) { - LoadRoomEntityList(&gUnk_080F1DB0); - } else if (CheckGlobalFlag(NEW_HOUSE_FARORE)) { - LoadRoomEntityList(&gUnk_080F1DD0); - } -} - -u32 sub_unk3_HouseInteriors2_2() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk5() { -} - -u32 sub_unk3_HouseInteriors2_3() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk6() { -} - -u32 sub_unk3_HouseInteriors2_DrLeft() { - return 1; -} - -extern EntityData gUnk_080F2174; -extern EntityData gUnk_080F2194; -extern EntityData gUnk_080F21B4; - -void sub_StateChange_HouseInteriors2_DrLeft(void) { - LoadRoomEntityList(&gUnk_080F2174); - if (!GetInventoryValue(ITEM_QST_BOOK2) && CheckGlobalFlag(MIZUKAKI_HARIFALL)) { - LoadRoomEntityList(&gUnk_080F2194); - } - if (gScreenTransition.player_status.spawn_type == PL_SPAWN_MINISH) { - LoadRoomEntityList(&gUnk_080F21B4); - } -} - -u32 sub_unk3_HouseInteriors2_Romio() { - return 1; -} - -extern EntityData gUnk_080F23BC; -extern EntityData gUnk_080F238C; -extern EntityData gUnk_additional_c_HouseInteriors2_Romio; - -void sub_StateChange_HouseInteriors2_Romio(void) { - if (gSave.global_progress > 7) { - LoadRoomEntityList(&gUnk_080F23BC); - } - if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START)) { - LoadRoomEntityList(&gUnk_080F238C); - } else { - LoadRoomEntityList(&gUnk_additional_c_HouseInteriors2_Romio); - } -} - -u32 sub_unk3_HouseInteriors2_Julietta() { - return 1; -} - -extern EntityData gUnk_080F2570; -extern EntityData gUnk_080F2590; -extern EntityData gUnk_080F25C0; -extern EntityData gUnk_080F2600; - -void sub_StateChange_HouseInteriors2_Julietta(void) { - switch (gSave.global_progress) { - case 0: - case 2: - case 4: - LoadRoomEntityList(&gUnk_080F2570); - break; - case 1: - case 3: - break; - case 5: - if (!GetInventoryValue(ITEM_FLIPPERS)) { - if (!CheckGlobalFlag(MIZUKAKI_START)) { - LoadRoomEntityList(&gUnk_080F2570); - break; - } - if (!GetInventoryValue(0x39)) { - LoadRoomEntityList(&gUnk_080F25C0); - } - } else { - LoadRoomEntityList(&gUnk_080F2590); - } - break; - case 8: - case 9: - LoadRoomEntityList(&gUnk_080F2600); - case 6: - case 7: - LoadRoomEntityList(&gUnk_080F2590); - } -} - -u32 sub_unk3_HouseInteriors2_Percy() { - return 1; -} - -extern EntityData gUnk_additional_9_HouseInteriors2_Percy; -extern EntityData gUnk_080F2860; -extern EntityData gUnk_additional_a_HouseInteriors2_Percy; -extern EntityData gUnk_080F27D8; -extern EntityData gUnk_080F2798; - -void sub_StateChange_HouseInteriors2_Percy(void) { - if (CheckKinstoneFused(0x21)) { - if (!CheckLocalFlag(0x42)) { - if (!CheckLocalFlag(0x43)) { - LoadRoomEntityList(&gUnk_additional_9_HouseInteriors2_Percy); - LoadRoomTileEntities(&gUnk_080F2860); - } else { - LoadRoomEntityList(&gUnk_additional_a_HouseInteriors2_Percy); - } - } else if (!CheckLocalFlag(0x3f)) { - LoadRoomEntityList(&gUnk_080F27D8); - } else { - LoadRoomEntityList(&gUnk_080F2798); - } - } -} - -u32 sub_unk3_HouseInteriors2_EastOracle() { - return 1; -} - -extern EntityData gUnk_080F28D4; -extern EntityData gUnk_080F28F4; -extern EntityData gUnk_080F2914; - -void sub_StateChange_HouseInteriors2_EastOracle(void) { - if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { - LoadRoomEntityList(&gUnk_080F28D4); - } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { - LoadRoomEntityList(&gUnk_080F28F4); - } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { - LoadRoomEntityList(&gUnk_080F2914); - } -} - -u32 sub_unk3_HouseInteriors2_A() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk7() { -} - -u32 sub_unk3_HouseInteriors2_B() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk8() { -} - -u32 sub_unk3_HouseInteriors2_Cucco() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk9() { -} - -u32 sub_unk3_HouseInteriors2_LinksHouseEntrance() { - return 1; -} - -extern EntityData gUnk_080F2E2C; - -void sub_StateChange_HouseInteriors2_LinksHouseEntrance(void) { - if (!CheckGlobalFlag(OUTDOOR)) { - gArea.musicIndex = gArea.pMusicIndex; - SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); - } - if (!CheckGlobalFlag(START)) { - LoadRoomEntityList(&gUnk_080F2E2C); - } -} - -u32 sub_unk3_HouseInteriors2_LinksHouseSmith() { - return 1; -} - -extern EntityData gUnk_080F2E94; -extern EntityData gUnk_080F2EC4; - -void sub_StateChange_HouseInteriors2_LinksHouseSmith(void) { - if (!CheckGlobalFlag(OUTDOOR)) { - gArea.musicIndex = gArea.pMusicIndex; - SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); - } - if (!CheckGlobalFlag(START)) { - LoadRoomEntityList(&gUnk_080F2E94); - } else { - LoadRoomEntityList(&gUnk_080F2EC4); - } -} - -u32 sub_unk3_HouseInteriors2_Dampe() { - return 1; -} - -extern EntityData gUnk_080F2FD4; - -void sub_StateChange_HouseInteriors2_Dampe(void) { - if (!CheckLocalFlag(0x69) || GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) > 1) { - LoadRoomEntityList(&gUnk_080F2FD4); - } -} - -u32 sub_unk3_HouseInteriors2_Stockwell() { - return 1; -} - -extern EntityData gUnk_080F30CC; - -void sub_StateChange_HouseInteriors2_Stockwell(void) { - if ((GetInventoryValue(ITEM_QST_DOGFOOD) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) && (gPlayerState.flags & PL_MINISH) == 0) { - LoadRoomEntityList(&gUnk_080F30CC); - } -} - -u32 sub_unk3_HouseInteriors2_LinksHouseBedroom() { - return 1; -} - -extern EntityData gUnk_080F31D8; -extern u32 script_08009B30; - -void sub_StateChange_HouseInteriors2_LinksHouseBedroom(void) { - if (!CheckGlobalFlag(START) && !CheckLocalFlag(0x46)) { - sub_080A71C4(5, 1, 4, 4); - gUpdateVisibleTiles = 0; - DoFade(5, 256); - sub_080751E8(0, 6, &script_08009B30); - } - if (!CheckGlobalFlag(OUTDOOR)) { - gArea.musicIndex = gArea.pMusicIndex; - SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); - } - if ((gPlayerState.flags & 8) == 0) { - LoadRoomEntityList(&gUnk_080F31D8); - } -} - -extern u32 script_08009E58; - -void sub_0804E864(void) { - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x90; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; - sub_080751E8(1, 6, &script_08009E58); - ModHealth(0xa0); -} - -u32 sub_unk3_HouseInteriors4_Carpenter() { - return 1; -} - -extern EntityData gUnk_080F3260; - -void sub_StateChange_HouseInteriors4_Carpenter(void) { - if (GetInventoryValue(ITEM_PACCI_CANE)) { - LoadRoomEntityList(&gUnk_080F3260); - SetTileType(0x4072, 0x202, 1); - SetTileType(0x4072, 0x242, 1); - SetTileType(0x4072, 0x204, 1); - SetTileType(0x4072, 0x244, 1); - } -} - -u32 sub_unk3_HouseInteriors4_Swiftblade() { - return 1; -} - -void sub_StateChange_HouseInteriors4_Swiftblade() { - sub_08054564(); -} - -u32 sub_unk3_HouseInteriors4_RanchHouseWest() { - return 1; -} - -extern EntityData gUnk_080F36FC; -extern EntityData gUnk_080F3604; - -void sub_StateChange_HouseInteriors4_RanchHouseWest(void) { - if (!CheckGlobalFlag(INLOCK)) { - LoadRoomEntityList(&gUnk_080F36FC); - } else if (gSave.global_progress < 4) { - LoadRoomEntityList(&gUnk_080F3604); - } -} - -u32 sub_unk3_HouseInteriors4_RanchHouseEast() { - return 1; -} - -extern EntityData gUnk_080F37D0; - -void sub_StateChange_HouseInteriors4_RanchHouseEast(void) { - if (CheckGlobalFlag(INLOCK)) { - LoadRoomEntityList(&gUnk_080F37D0); - } -} - -u32 sub_unk3_HouseInteriors4_FarmHouse() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites0() { -} - -u32 sub_unk3_HouseInteriors4_Mayor() { - return 1; -} - -extern EntityData gUnk_080F3A48; - -void sub_StateChange_HouseInteriors4_Mayor(void) { - if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(ITEM_QST_BOOK3)) { - LoadRoomEntityList(&gUnk_080F3A48); - } - gScreenTransition.player_status.field_0x20 = 0xf28; - gScreenTransition.player_status.field_0x22 = 0x82d; -} - -extern u32 Enemies_LakeHylia_Main; -extern u32 gUnk_080F3EA4; - -u32 sub_unk3_LakeHylia_Main(void) { - if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) { - gRoomVars.field_0x6c[2] = &gUnk_080F3EA4; - } else { - gRoomVars.field_0x6c[2] = &Enemies_LakeHylia_Main; - } - return 1; -} - -extern EntityData gUnk_080F3C64; -extern EntityData gUnk_080F3C94; -extern EntityData gUnk_080F3C44; - -void sub_StateChange_LakeHylia_Main(void) { - if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) { - LoadRoomEntityList(&gUnk_080F3C64); - } - if (CheckKinstoneFused(0x12)) { - LoadRoomEntityList(&gUnk_080F3C94); - } - if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { - LoadRoomEntityList(&gUnk_080F3C44); - } - SetTile(0x4091, 0x590, 1); - SetTile(0x4091, 0x591, 1); - SetTile(0x4091, 0x592, 1); - SetTile(0x4091, 0x593, 1); - SetTile(0x4091, 0x594, 1); - SetTile(0x4091, 0x5d0, 1); - SetTile(0x4091, 0x610, 1); - SetTile(0x4091, 0x650, 1); - SetTile(0x4091, 0x5d4, 1); - SetTile(0x4091, 0x614, 1); - SetTile(0x4091, 0x654, 1); - SetTile(0x4091, 0x690, 1); - SetTile(0x4091, 0x691, 1); - SetTile(0x4091, 0x692, 1); - SetTile(0x4091, 0x693, 1); - SetTile(0x4091, 0x694, 1); -} - -u32 sub_unk3_LakeHylia_Beanstalk() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites1() { -} - -u32 sub_unk3_LakeWoodsCave_Main() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites2() { -} - -u32 sub_unk3_HyliaDigCaves_Middle() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites3() { -} - -u32 sub_unk3_HyliaDigCaves_North() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites4() { -} - -u32 sub_unk3_CastorWildsDigCave_Main() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites5() { -} - -u32 sub_unk3_HyruleDigCaves_Main() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites6() { -} - -u32 sub_unk3_CrenelDigCave_Main() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites7() { -} - -u32 sub_unk3_DigCaves1_HyruleFieldFarm() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites8() { -} - -u32 sub_unk3_DigCaves1_TrilbyHighlands() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites9() { -} - -u32 sub_unk3_VeilFallsDigCave_Main() { - return 1; -} - -void sub_StateChange_VeilFallsDigCave_Main() { -} - -u32 sub_unk3_OuterFortressOfWinds_EntranceHall(void) { - gArea.areaMetadata |= 0x48; - return 1; -} - -void sub_StateChange_OuterFortressOfWinds_EntranceHall() { -} - -u32 sub_unk3_OuterFortressOfWinds_2F(void) { - gArea.areaMetadata |= 0x48; - return 1; -} - -void sub_StateChange_OuterFortressOfWinds_2F() { -} - -u32 sub_unk3_OuterFortressOfWinds_3F(void) { - gArea.areaMetadata |= 0x48; - return 1; -} - -void sub_StateChange_OuterFortressOfWinds_3F() { -} - -u32 sub_unk3_OuterFortressOfWinds_MoleMitts(void) { - sub_0801DD58(0x58, 5); - gArea.areaMetadata |= 0x48; - return 1; -} - -void sub_StateChange_OuterFortressOfWinds_MoleMitts() { -} - -u32 sub_unk3_OuterFortressOfWinds_SmallKey(void) { - sub_0801DD58(0x58, 6); - gArea.areaMetadata |= 0x48; - return 1; -} - -void sub_StateChange_OuterFortressOfWinds_SmallKey() { -} - -extern u32 gUnk_080F4EB0; - -u32 sub_unk3_MinishWoods_Main(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080F4EB0; - gRoomVars.field_0x6c[2] = NULL; - } - return 1; -} - -extern EntityData gUnk_080F4D50; -extern EntityData gUnk_080F4DB0; -extern EntityData gUnk_080F4DD0; -extern EntityData gUnk_080F4DF0; -extern EntityData gUnk_080F4F10; -extern EntityData gUnk_080F4E10; - -void sub_StateChange_MinishWoods_Main(void) { - if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } - if (!CheckGlobalFlag(EZERO_1ST)) { - LoadRoomEntityList(&gUnk_080F4D50); - } -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x3d)) { - if (!CheckLocalFlag(0x3a)) { -#else - if (!CheckLocalFlag(0x3e)) { - if (!CheckLocalFlag(0x3b)) { -#endif - LoadRoomEntityList(&gUnk_080F4DB0); - } else { - LoadRoomEntityList(&gUnk_080F4DD0); - } - LoadRoomEntityList(&gUnk_080F4DF0); - } - if (CheckKinstoneFused(0x4e)) { - LoadRoomEntityList(&gUnk_080F4F10); - } - if ((s32)gSave.windcrests > -1) { - LoadRoomEntityList(&gUnk_080F4E10); - } -#ifdef DEMO_USA - SetTileType(0x177, 0x5b4, 1); - SetTileType(0x177, 0x5f4, 1); -#endif -} - -void sub_unk1_MinishWoods_Main(void) { - if ((s32)gSave.windcrests > -1) { - LoadRoomEntityList(&gUnk_080F4E10); - } -} - -u32 sub_unk3_Empty_Main() { - return 1; -} - -void sub_StateChange_Empty_Main() { -} - -extern u32 gUnk_080F5348; - -u32 sub_unk3_SanctuaryEntrance_Main(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080F5348; - gRoomVars.field_0x6c[7] = sub_0804ED18; - gRoomVars.field_0x6c[2] = NULL; - } - return 1; -} - -extern EntityData gUnk_080F5328; -extern EntityData gUnk_080F5308; - -void sub_StateChange_SanctuaryEntrance_Main(void) { - if (GetInventoryValue(ITEM_GREEN_SWORD)) { - LoadRoomEntityList(&gUnk_080F5328); -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x15)) { -#else - if (!CheckLocalFlag(0x14)) { -#endif - LoadRoomEntityList(&gUnk_080F5308); - } - } -} - -void sub_0804ED18(void) { - gArea.pMusicIndex = gArea.musicIndex; -} - -u32 sub_unk3_Sanctuary_Hall() { - return 1; -} - -void sub_StateChange_Sanctuary_Hall(void) { - sub_080AF2E4(); - if (CheckGlobalFlag(SEIIKI_BGM)) { - gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; - } -} - -u32 sub_unk3_Sanctuary_Main() { - return 1; -} - -extern EntityData gUnk_080F54E8; -extern EntityData gUnk_080F5508; -extern EntityData gUnk_080F5558; -extern EntityData gUnk_080F5598; -extern EntityData gUnk_080F55D8; -extern EntityData gUnk_080F5528; -extern EntityData gUnk_080F5578; -extern EntityData gUnk_080F55B8; - -void sub_StateChange_Sanctuary_Main(void) { - if (!CheckLocalFlag(0x79)) { - LoadRoomEntityList(&gUnk_080F54E8); - } - if (!CheckLocalFlag(0x7a)) { - if (GetInventoryValue(ITEM_GREEN_SWORD) && !GetInventoryValue(ITEM_RED_SWORD) && GetInventoryValue(ITEM_EARTH_ELEMENT) && GetInventoryValue(ITEM_FIRE_ELEMENT)) { - LoadRoomEntityList(&gUnk_080F5508); - } - } else { - if (!CheckLocalFlag(0x7b)) { - if (GetInventoryValue(ITEM_RED_SWORD) && !GetInventoryValue(ITEM_BLUE_SWORD) && GetInventoryValue(ITEM_WATER_ELEMENT)) { - LoadRoomEntityList(&gUnk_080F5558); - } - } else { - if (!CheckLocalFlag(0x7c)) { - if (!GetInventoryValue(ITEM_FOURSWORD) && GetInventoryValue(ITEM_WIND_ELEMENT)) { - LoadRoomEntityList(&gUnk_080F5598); - } - } else { - LoadRoomEntityList(&gUnk_080F55D8); - } - } - } - if (CheckLocalFlag(0x7a)) { - LoadRoomEntityList(&gUnk_080F5528); - } - if (CheckLocalFlag(0x7b)) { - LoadRoomEntityList(&gUnk_080F5578); - } - if (CheckLocalFlag(0x7c)) { - LoadRoomEntityList(&gUnk_080F55B8); - } - if (CheckGlobalFlag(SEIIKI_BGM)) { - gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; - } -} - -u32 sub_unk3_Sanctuary_StainedGlass() { - return 1; -} - -extern EntityData gUnk_080F5660; - -void sub_StateChange_Sanctuary_StainedGlass(void) { - if (!CheckLocalFlag(0x78) && CheckLocalFlag(0x7c)) { - LoadRoomEntityList(&gUnk_080F5660); - } - if (CheckGlobalFlag(SEIIKI_BGM)) { - gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; - } -} - -u32 sub_unk3_HouseInteriors3_StockwellShop() { - return 1; -} - -extern EntityData gUnk_080F5758; -extern EntityData gUnk_080F57E8; -extern EntityData gUnk_080F57A8; -extern EntityData gUnk_080F57C8; -extern EntityData gUnk_080F5888; -extern EntityData gUnk_080F58A8; -extern EntityData gUnk_080F5868; -extern EntityData gUnk_080F5828; -extern EntityData gUnk_080F5848; -extern EntityData gUnk_080F5788; - -void sub_StateChange_HouseInteriors3_StockwellShop(void) { - LoadRoomEntityList(&gUnk_080F5758); - if (!GetInventoryValue(0x36) && CheckLocalFlagByBank(0x200, 0x8f)) { - LoadRoomEntityList(&gUnk_080F57E8); - } - if (!CheckLocalFlag(0x55)) { - LoadRoomEntityList(&gUnk_080F57A8); - } else { - if (gBombBagSizes[gSave.stats.bombBagType] >= 30) { - LoadRoomEntityList(&gUnk_080F57C8); - } - if (!GetInventoryValue(ITEM_BOOMERANG) && !GetInventoryValue(ITEM_MAGIC_BOOMERANG)) { - LoadRoomEntityList(&gUnk_080F5888); -#ifndef EU - } else { - if (!CheckLocalFlag(0xcd)) { - LoadRoomEntityList(&gUnk_080F58A8); - } -#endif - } - } - if (GetInventoryValue(ITEM_BOW) || CheckGlobalFlag(LV3_CLEAR)) { - LoadRoomEntityList(&gUnk_080F5868); - if (!CheckLocalFlag(0x56)) { - LoadRoomEntityList(&gUnk_080F5828); - } else { - LoadRoomEntityList(&gUnk_080F5848); - } - } - if (gSave.stats.filler3[0] == 0) { - LoadRoomEntityList(&gUnk_080F5788); - } -} - -u32 sub_unk3_HouseInteriors3_Cafe() { - return 1; -} - -void sub_StateChange_HouseInteriors3_Cafe() { -} - -u32 sub_unk3_HouseInteriors3_RemShoeShop() { - return 1; -} - -extern EntityData gUnk_080F5B3C; - -void sub_StateChange_HouseInteriors3_RemShoeShop(void) { -#ifndef EU - if (GetInventoryValue(0x38) == 1) { - LoadRoomEntityList(&gUnk_080F5B3C); - } -#endif -} - -u32 sub_unk3_HouseInteriors3_Bakery() { - return 1; -} -void sub_StateChange_HouseInteriors3_Bakery() { -} - -u32 sub_unk3_HouseInteriors3_Simon(void) { - if (CheckGlobalFlag(MAROYA_WAKEUP)) { - gScreenTransition.player_status.spawn_type = 5; - } - return 1; -} - -extern EntityData gUnk_080F5DD0; -extern u32 script_08011C50; - -void sub_StateChange_HouseInteriors3_Simon(void) { - if (gSave.global_progress > 7) { - LoadRoomEntityList(&gUnk_080F5DD0); - } - if (CheckGlobalFlag(MAROYA_WAKEUP)) { - sub_080751E8(1, 2, &script_08011C50); - } -} - -u32 sub_unk3_HouseInteriors3_FigurineHouse() { - return 1; -} - -extern EntityData gUnk_080F5E68; - -void sub_StateChange_HouseInteriors3_FigurineHouse(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlagByBank(0x100, 0xce)) { -#else - if (!CheckLocalFlagByBank(0x100, 0xd1)) { -#endif - LoadRoomEntityList(&gUnk_080F5E68); - } -} - -u32 sub_unk3_HouseInteriors3_BorlovEntrance() { - return 1; -} - -extern EntityData gUnk_additional_8_HouseInteriors3_BorlovEntrance; -extern EntityData gUnk_additional_9_HouseInteriors3_BorlovEntrance; -extern EntityData gUnk_additional_a_HouseInteriors3_BorlovEntrance; - -void sub_StateChange_HouseInteriors3_BorlovEntrance(void) { - if (gSave.global_progress > 4) { - LoadRoomEntityList(&gUnk_additional_8_HouseInteriors3_BorlovEntrance); - } - if (!CheckLocalFlag(0x92)) { - LoadRoomEntityList(&gUnk_additional_9_HouseInteriors3_BorlovEntrance); - } else { - LoadRoomEntityList(&gUnk_additional_a_HouseInteriors3_BorlovEntrance); - } -} - -u32 sub_unk3_HouseInteriors3_Carlov() { - return 1; -} - -void sub_StateChange_HouseInteriors3_Carlov() { -} - -u32 sub_unk3_HouseInteriors3_Borlov() { - return 1; -} - -void sub_StateChange_HouseInteriors3_Borlov() { -} - -u32 sub_unk3_WindTribeTower_Entrance(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByBank(0x100, 0xd9)) { -#else - if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByBank(0x100, 0xdc)) { -#endif - SetGlobalFlag(WARP_EVENT_END); - } - return 1; -} - -extern EntityData gUnk_080F61BC; - -void sub_StateChange_WindTribeTower_Entrance(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlagByBank(0x100, 0xd9)) { -#else - if (CheckLocalFlagByBank(0x100, 0xdc)) { -#endif - SetLocalFlag(0x90); - } - if (CheckKinstoneFused(0xf)) { - LoadRoomEntityList(&gUnk_080F61BC); - } - if (!CheckGlobalFlag(WARP_EVENT_END)) { - SetTileType(0x4072, 0x4c7, 1); - SetTileType(0x4072, 0x507, 1); - } - sub_08052CA4(8, 0, 0x1e8, 0x158); -} - -u32 sub_unk3_WindTribeTower_Floor2() { - return 1; -} - -extern EntityData gUnk_080F62E4; -extern EntityData gUnk_080F6324; - -void sub_StateChange_WindTribeTower_Floor2(void) { - if (!CheckGlobalFlag(WARP_EVENT_END)) { - LoadRoomEntityList(&gUnk_080F62E4); - } else { - if (CheckLocalFlag(99)) { - LoadRoomEntityList(&gUnk_080F6324); - } - } -} - -u32 sub_unk3_WindTribeTower_Floor3() { - return 1; -} - -void sub_StateChange_WindTribeTower_Floor3() { -} - -u32 sub_unk3_WindTribeTower_Floor4() { - return 1; -} - -extern EntityData gUnk_080F6564; -extern EntityData gUnk_080F6584; - -void sub_StateChange_WindTribeTower_Floor4(void) { - if (!CheckLocalFlag(0xb1)) { - LoadRoomEntityList(&gUnk_080F6564); - } else { - LoadRoomEntityList(&gUnk_080F6584); - } -} - -u32 sub_unk3_WindTribeTowerRoof_Main() { - return 1; -} - -extern EntityData gUnk_080F66AC; - -void sub_StateChange_WindTribeTowerRoof_Main(void) { - sub_0805B4D0(5); - if (CheckGlobalFlag(LV5_CLEAR) && !CheckLocalFlagByBank(0x100, 5)) { - LoadRoomEntityList(&gUnk_080F66AC); - } - sub_08052CA4(8, 0, 0x1e8, 0x158); -#ifndef EU - gArea.areaMetadata |= 0x80; -#endif -} - -u32 sub_unk3_Beanstalks_MountCrenel() { - return 1; -} - -void sub_StateChange_Beanstalks_MountCrenel() { -} - -u32 sub_unk3_Beanstalks_LakeHylia() { - return 1; -} - -void sub_StateChange_Beanstalks_LakeHylia() { -} - -u32 sub_unk3_Beanstalks_Ruins() { - return 1; -} - -void sub_StateChange_Beanstalks_Ruins() { -} - -u32 sub_unk3_Beanstalks_EasternHills() { - return 1; -} - -void sub_StateChange_Beanstalks_EasternHills() { -} - -u32 sub_unk3_Beanstalks_WesternWoods() { - return 1; -} - -void sub_StateChange_Beanstalks_WesternWoods() { -} - -u32 sub_unk3_Beanstalks_MountCrenelClimb() { - return 1; -} - -void sub_StateChange_Beanstalks_MountCrenelClimb() { -} - -u32 sub_unk3_Beanstalks_LakeHyliaClimb() { - return 1; -} - -void sub_StateChange_Beanstalks_LakeHyliaClimb() { -} - -u32 sub_unk3_Beanstalks_RuinsClimb() { - return 1; -} - -void sub_StateChange_Beanstalks_RuinsClimb() { -} - -u32 sub_unk3_Beanstalks_EasternHillsClimb() { - return 1; -} - -void sub_StateChange_Beanstalks_EasternHillsClimb() { -} - -u32 sub_unk3_Beanstalks_WesternWoodsClimb() { - return 1; -} - -void sub_StateChange_Beanstalks_WesternWoodsClimb() { -} - -u32 sub_unk3_HyruleField_WesternWoodSouth() { - return 1; -} - -void sub_StateChange_HyruleField_WesternWoodSouth() { - Manager18_Main(0); -} - -u32 sub_unk3_HyruleField_LinksHouseExterior(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x6b)) { -#else - if (!CheckLocalFlag(0x6d)) { -#endif - DoFade(7, 256); - } - SetGlobalFlag(OUTDOOR); - return 1; -} - -extern EntityData gUnk_080F70A8; -extern EntityData gUnk_080F70D8; -extern EntityData gUnk_080F7088; - -void sub_StateChange_HyruleField_LinksHouseExterior(void) { - Manager18_Main(NULL); -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x6b)) { -#else - if (!CheckLocalFlag(0x6d)) { -#endif - LoadRoomEntityList(&gUnk_080F70A8); - ClearGlobalFlag(ZELDA_CHASE); - } - if (!CheckGlobalFlag(TABIDACHI)) { - gArea.pMusicIndex = BGM_FESTIVAL_APPROACH; - } - if ((gSave.windcrests & 0x40000000) == 0) { - LoadRoomEntityList(&gUnk_080F70D8); - } - if (gSave.global_progress > 3) { - LoadRoomEntityList(&gUnk_080F7088); - } -} - -void sub_unk1_HyruleField_LinksHouseExterior(void) { - if ((gSave.windcrests & 0x40000000) == 0) { - LoadRoomEntityList(&gUnk_080F70D8); - } -} - -u32 sub_unk3_HyruleField_FromMinishWoods() { - return 1; -} - -void sub_StateChange_HyruleField_FromMinishWoods() { - Manager18_Main(NULL); -} - -u32 sub_unk3_HyruleField_FromMinishWoodsNorth() { - return 1; -} - -void sub_StateChange_HyruleField_FromMinishWoodsNorth() { - Manager18_Main(NULL); -} - -extern u32 gUnk_080F7680; - -u32 sub_unk3_HyruleField_Farmers(void) { - if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { - gRoomVars.field_0x6c[2] = &gUnk_080F7680; - } - return 1; -} - -extern EntityData gUnk_080F7500; -extern EntityData gUnk_080F7550; - -void sub_StateChange_HyruleField_Farmers(void) { - Manager18_Main(NULL); - if (gSave.global_progress > 3) { - LoadRoomEntityList(&gUnk_080F7500); - } - if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { - LoadRoomEntityList(&gUnk_080F7550); - SetTileType(0x4072, 0x311, 1); - SetTileType(0x4072, 0x351, 1); - SetTileType(0x4072, 0x3d9, 1); - SetTileType(0x4072, 0x419, 1); - } -} - -u32 sub_unk3_HyruleField_LonLonRanch() { - return 1; -} - -extern EntityData gUnk_080F77F0; -extern EntityData gUnk_080F77C0; -extern EntityData gUnk_080F7810; -extern EntityData gUnk_080F7860; -extern EntityData gUnk_080F78A0; - -void sub_StateChange_HyruleField_LonLonRanch(void) { - - Manager18_Main(0); - if (CheckLocalFlagByBank(0x200, 0x8f)) { - if (!CheckGlobalFlag(INLOCK)) { - LoadRoomEntityList(&gUnk_080F77C0); - } - } else if (GetInventoryValue(ITEM_EARTH_ELEMENT)) { - LoadRoomEntityList(&gUnk_080F77F0); - } - if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(ITEM_EARTH_ELEMENT)) { - LoadRoomEntityList(&gUnk_080F7810); - } - if (!CheckKinstoneFused(0x29)) { - LoadRoomEntityList(&gUnk_080F7860); - SetTile(0x4072, 0xd88, 1); - SetTile(0x4096, 0xdc8, 1); - } - if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { - LoadRoomEntityList(&gUnk_080F78A0); - } -} - -extern u32 gUnk_080F7CD0; -extern void sub_0804F5E8(); -extern u32 gUnk_080F7C80; -extern void sub_0804F4E4(); - -u32 sub_unk3_HyruleField_OutsideCastle(void) { - if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(0x11)) { - gRoomVars.field_0x6c[0] = &gUnk_080F7CD0; - gRoomVars.field_0x6c[7] = sub_0804F5E8; - } -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8a)) { -#else - if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8c)) { -#endif - gRoomVars.field_0x6c[0] = &gUnk_080F7C80; - gRoomVars.field_0x6c[7] = sub_0804F4E4; - gRoomVars.field_0x6c[2] = NULL; - } -#ifndef EU - if (CheckGlobalFlag(TABIDACHI)) { - ClearGlobalFlag(CASTLE_BGM); - } -#endif - return 1; -} - -void sub_0804F4E4() { - Manager18_Main(NULL); - sub_0804F578(); -} - -extern EntityData gUnk_080F7D70; - -void sub_StateChange_HyruleField_OutsideCastle(void) { - sub_0804F4E4(); -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x89)) { -#else - if (!CheckLocalFlag(0x8b)) { -#endif - LoadRoomEntityList(&gUnk_080F7D70); - SetTileType(0x174, 0x7a2, 1); - SetTileType(0x174, 0x7a3, 1); - SetTileType(0x174, 0x7a5, 1); - SetTileType(0x174, 0x7a6, 1); - SetTileType(0x174, 0x7a7, 1); - } - if (!CheckGlobalFlag(TABIDACHI)) { -#ifdef EU - gArea.pMusicIndex = 0x10; -#else - gArea.pMusicIndex = 0x13; -#endif - } -} - -extern EntityData gUnk_080F7DC0; - -void sub_0804F578(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x8c)) { -#else - if (!CheckLocalFlag(0x8e)) { -#endif - LoadRoomEntityList(&gUnk_080F7DC0); - } else { - SetTileType(0x37, 0x94a, 1); - SetTileType(0x37, 0x94b, 1); - SetTileType(0x37, 0x94c, 1); - SetTileType(0x37, 0x98a, 1); - SetTileType(0x37, 0x98b, 1); - SetTileType(0x37, 0x98c, 1); - } -} - -void sub_0804F5E8(void) { - sub_0804F4E4(); - SetTileType(0x1d3, 0xbde, 1); - SetTileType(0x1d6, 0xbe2, 1); - SetTileType(0x1d4, 0xc1f, 1); - SetTileType(0x1d5, 0xc20, 1); - SetTileType(0x1d6, 0xc5e, 1); - SetTileType(0x4072, 0xb9b, 1); - SetTileType(0x4072, 0xbdb, 1); - SetTileType(0x4072, 0xaa4, 1); - SetTileType(0x4072, 0xae4, 1); -} - -void sub_0804F680(Entity* parent, s32 x, s32 y) { - Entity* fx; - - fx = CreateFx(parent, FX_DEATH, 0); - if (fx != NULL) { - fx->x.HALF.HI = gRoomControls.roomOriginX + x; - fx->y.HALF.HI = gRoomControls.roomOriginY + y; - } -} - -void sub_0804F6A8(Entity* this) { - sub_0804F680(this, 0x1d8, 0x108); - sub_0804F680(this, 0x218, 0x188); -} - -void sub_0804F6C8(Entity* this) { - sub_0804F680(this, 0x1e8, 0x108); - sub_0804F680(this, 0x208, 0x188); -} - -void sub_0804F6E8(Entity* this) { - sub_0804F680(this, 0x1f8, 0x108); - sub_0804F680(this, 0x258, 0x138); - sub_0804F680(this, 0x1f8, 0x188); - sub_0804F680(this, 0x198, 0x158); -} - -void sub_0804F724(Entity* this) { - sub_0804F680(this, 0x208, 0x108); - sub_0804F680(this, 0x258, 0x148); - sub_0804F680(this, 0x1e8, 0x188); - sub_0804F680(this, 0x198, 0x148); -} - -void sub_0804F760(Entity* this) { - sub_0804F680(this, 0x218, 0x108); - sub_0804F680(this, 0x258, 0x158); - sub_0804F680(this, 0x1d8, 0x188); - sub_0804F680(this, 0x198, 0x138); -} - -void sub_0804F79C(Entity* parent) { - Entity* fx; - - fx = CreateFx(parent, FX_BIG_EXPLOSION, 0); - if (fx != NULL) { - fx->spriteRendering.b3 = 0; - fx->x.HALF.HI = gRoomControls.roomOriginX + 0x1b8; - fx->y.HALF.HI = gRoomControls.roomOriginY + 0x148; - } - fx = CreateFx(parent, FX_BIG_EXPLOSION, 0); - if (fx != NULL) { - fx->spriteRendering.b3 = 0; - fx->x.HALF.HI = gRoomControls.roomOriginX + 0x238; - fx->y.HALF.HI = gRoomControls.roomOriginY + 0x148; - } -} - -void sub_0804F808(void) { - SetTileType(0x1d3, 0x41d, 1); - SetTileType(0x1d3, 0x621, 1); -} - -void sub_0804F830(void) { - SetTileType(0x1d4, 0x41e, 1); - SetTileType(0x1d4, 0x620, 1); -} - -void sub_0804F854(void) { - SetTileType(0x1d5, 0x41f, 1); - SetTileType(0x1d4, 0x4e5, 1); - SetTileType(0x1d5, 0x61f, 1); - SetTileType(0x1d4, 0x559, 1); -} - -void sub_0804F89C(void) { - SetTileType(0x1d6, 0x420, 1); - SetTileType(0x1d5, 0x525, 1); - SetTileType(0x1d6, 0x61e, 1); - SetTileType(0x1d5, 0x519, 1); -} - -void sub_0804F8E0(void) { - SetTileType(0x1d3, 0x421, 1); - SetTileType(0x1d6, 0x565, 1); - SetTileType(0x1d3, 0x61d, 1); - SetTileType(0x1d6, 0x4d9, 1); -} - -void sub_0804F928(void) { - sub_0807BA8C(0x41d, 1); - sub_0807BA8C(0x621, 1); -} - -void sub_0804F944(void) { - sub_0807BA8C(0x41e, 1); - sub_0807BA8C(0x620, 1); -} - -void sub_0804F960(void) { - sub_0807BA8C(0x41f, 1); - sub_0807BA8C(0x4e5, 1); - sub_0807BA8C(0x61f, 1); - sub_0807BA8C(0x559, 1); -} - -void sub_0804F994(void) { - sub_0807BA8C(0x420, 1); - sub_0807BA8C(0x525, 1); - sub_0807BA8C(0x61e, 1); - sub_0807BA8C(0x519, 1); -} - -void sub_0804F9C8(void) { - sub_0807BA8C(0x421, 1); - sub_0807BA8C(0x565, 1); - sub_0807BA8C(0x61d, 1); - sub_0807BA8C(0x4d9, 1); -} - -u32 sub_unk3_HyruleField_OutsideCastleWest() { - return 1; -} - -extern EntityData gUnk_080F806C; - -void sub_StateChange_HyruleField_OutsideCastleWest(void) { - Manager18_Main(NULL); - if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { - LoadRoomEntityList(&gUnk_080F806C); - } -} - -u32 sub_unk3_HyruleField_TrilbyHighlands() { - return 1; -} - -extern EntityData gUnk_080F82E0; - -void sub_StateChange_HyruleField_TrilbyHighlands(void) { - Manager18_Main(NULL); -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(ITEM_RED_SWORD) && !CheckLocalFlag(0x9b)) { -#else - if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(ITEM_RED_SWORD) && !CheckLocalFlag(0x9c)) { -#endif - LoadRoomEntityList(&gUnk_080F82E0); - } -} - -u32 sub_unk3_HyruleField_PercysHouse() { - return 1; -} - -extern EntityData gUnk_080F8430; - -void sub_StateChange_HyruleField_PercysHouse(void) { - Manager18_Main(NULL); - if (CheckKinstoneFused(0x21) && !CheckLocalFlagByBank(0x200, 0x42)) { - LoadRoomEntityList(&gUnk_080F8430); - } -} - -u32 sub_unk3_Caves_Boomerang() { - return 1; -} - -extern EntityData gUnk_080F85F8; -extern EntityData gUnk_080F85D8; - -void sub_StateChange_Caves_Boomerang(void) { - if (CheckGlobalFlag(SOUGEN_06_HASHIGO)) { - LoadRoomEntityList(&gUnk_080F85D8); - } else { - LoadRoomEntityList(&gUnk_080F85F8); - } - if (!GetInventoryValue(0xc)) { - ClearLocalFlag(8); - } -} - -u32 sub_unk3_Caves_ToGraveyard() { - return 1; -} - -void sub_StateChange_Caves_ToGraveyard() { -} - -u32 sub_unk3_Caves_2() { - return 1; -} - -void sub_StateChange_Caves_2() { -} - -u32 sub_unk3_Caves_3() { - return 1; -} - -void sub_StateChange_Caves_3() { -} - -u32 sub_unk3_Caves_4() { - return 1; -} - -void sub_StateChange_Caves_4() { -} - -u32 sub_unk3_Caves_5() { - return 1; -} - -void sub_StateChange_Caves_5() { -} - -u32 sub_unk3_Caves_6() { - return 1; -} - -void sub_StateChange_Caves_6() { -} - -u32 sub_unk3_Caves_KeeseChest() { - return 1; -} - -void sub_StateChange_Caves_KeeseChest() { -} - -u32 sub_unk3_Caves_FairyFountainTrilbyHighlands() { - return 1; -} - -void sub_StateChange_Caves_FairyFountainTrilbyHighlands() { -} - -u32 sub_unk3_Caves_FairyFountainLinksHouse() { - return 1; -} - -void sub_StateChange_Caves_FairyFountainLinksHouse() { -} - -u32 sub_unk3_Caves_A() { - return 1; -} - -void sub_StateChange_Caves_A() { -} - -u32 sub_unk3_Caves_HyruleTownWaterfall() { - return 1; -} - -void sub_StateChange_Caves_HyruleTownWaterfall() { -} - -u32 sub_unk3_Caves_LonLonRanch() { - return 1; -} - -void sub_StateChange_Caves_LonLonRanch() { -} - -u32 sub_unk3_Caves_LonLonRanchSecret() { - return 1; -} - -void sub_StateChange_Caves_LonLonRanchSecret(void) { - if (CheckLocalFlag(0x11)) { - SetRoomFlag(0); - SetRoomFlag(1); - ChangeLightLevel(0x100); - if (!CheckLocalFlag(0x12)) { - SetTileType(0x73, 0xcb, 1); - } - } -} - -u32 sub_unk3_Caves_TrilbyHighlands() { - return 1; -} - -void sub_StateChange_Caves_TrilbyHighlands() { -} - -u32 sub_unk3_Caves_LonLonRanchWallet() { - return 1; -} - -void sub_StateChange_Caves_LonLonRanchWallet() { -} - -u32 sub_unk3_Caves_RupeeLinksHouse() { - return 1; -} - -void sub_StateChange_Caves_RupeeLinksHouse() { -} - -u32 sub_unk3_Caves_RupeeTrilbyHighlands() { - return 1; -} - -void sub_StateChange_Caves_RupeeTrilbyHighlands() { -} - -u32 sub_unk3_Caves_FairyFountainMoleMitts() { - return 1; -} - -void sub_StateChange_Caves_FairyFountainMoleMitts() { -} - -u32 sub_unk3_Caves_KeeseChestSoutheastHyrule() { - return 1; -} -void sub_StateChange_Caves_KeeseChestSoutheastHyrule() { -} - -u32 sub_unk3_Caves_BottleBusinessScrub() { - return 1; -} - -void sub_StateChange_Caves_BottleBusinessScrub() { -} - -u32 sub_unk3_Caves_HeartPieceHallway() { - return 1; -} - -void sub_StateChange_Caves_HeartPieceHallway() { -} - -u32 sub_unk3_Caves_FairyFountainBoomerang() { - return 1; -} - -void sub_StateChange_Caves_FairyFountainBoomerang() { -} - -u32 sub_unk3_Caves_KinstoneBusinessScrub() { - return 1; -} - -void sub_StateChange_Caves_KinstoneBusinessScrub() { -} - -u32 sub_unk3_VeilFalls_Main() { - return 1; -} - -extern EntityData gUnk_080F9304; - -void sub_StateChange_VeilFalls_Main(void) { - if ((gSave.windcrests & 0x2000000) == 0) { - LoadRoomEntityList(&gUnk_080F9304); - } -} - -void sub_unk1_VeilFalls_Main(void) { - if ((gSave.windcrests & 0x2000000) == 0) { - LoadRoomEntityList(&gUnk_080F9304); - } -} - -u32 sub_unk3_VeilFallsCaves_Hallway2F() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_Hallway2F() { -} - -u32 sub_unk3_VeilFallsCaves_Hallway1F() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_Hallway1F() { -} - -u32 sub_unk3_VeilFallsCaves_SecretRoom() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_SecretRoom() { -} - -u32 sub_unk3_VeilFallsCaves_Entrance() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_Entrance() { -} - -u32 sub_unk3_VeilFallsCaves_Exit() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_Exit() { -} - -u32 sub_unk3_VeilFallsCaves_SecretChest() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_SecretChest() { -} - -u32 sub_unk3_VeilFallsCaves_SecretStaircases() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_SecretStaircases() { -} - -u32 sub_unk3_VeilFallsCaves_BlockPuzzle() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_BlockPuzzle() { -} - -u32 sub_unk3_VeilFallsCaves_RupeePath() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_RupeePath() { -} - -u32 sub_unk3_VeilFallsCaves_HeartPiece() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_HeartPiece() { -} - -extern u32 gUnk_080F9BF8; - -u32 sub_unk3_VeilFallsTop_Main(void) { - if (!CheckKinstoneFused(0xe)) { - gRoomVars.field_0x6c[0] = &gUnk_080F9BF8; - } - return 1; -} - -void sub_StateChange_VeilFallsTop_Main() { - sub_0805B4D0(2); - sub_0806D0B0(0); -} - -u32 sub_unk3_47_0() { - return 1; -} - -void sub_StateChange_47_0() { -} - -u32 sub_unk3_47_1() { - return 1; -} - -void sub_StateChange_47_1() { -} - -u32 sub_unk3_47_2() { - return 1; -} - -void sub_StateChange_47_2() { -} - -u32 sub_unk3_47_3() { - return 1; -} - -void sub_StateChange_47_3() { -} - -u32 sub_unk3_47_4() { - return 1; -} - -void sub_StateChange_47_4() { -} - -u32 sub_unk3_TreeInteriors_WitchHut() { - return 1; -} - -extern EntityData gUnk_080F9FA8; -extern EntityData gUnk_080F9F88; - -void sub_StateChange_TreeInteriors_WitchHut(void) { - if (CheckKinstoneFused(0x14)) { - LoadRoomEntityList(&gUnk_080F9FA8); - } - if (!GetInventoryValue(ITEM_QST_MUSHROOM)) { - LoadRoomEntityList(&gUnk_080F9F88); - } -} - -u32 sub_0804FCD4() { - return 1; -} - -void nullsub_434() { -} - -u32 sub_0804FCDC() { - return 1; -} - -void nullsub_435() { -} - -u32 sub_0804FCE4() { - return 1; -} - -void nullsub_436() { -} - -u32 sub_0804FCEC() { - return 1; -} - -void nullsub_437() { -} - -u32 sub_0804FCF4() { - return 1; -} - -void nullsub_438() { -} - -u32 sub_0804FCFC() { - return 1; -} - -void nullsub_439() { -} - -u32 sub_0804FD04() { - return 1; -} - -void nullsub_440() { -} - -u32 sub_0804FD0C() { - return 1; -} - -void nullsub_441() { -} - -u32 sub_0804FD14() { - return 1; -} - -void nullsub_442() { -} - -u32 sub_0804FD1C() { - return 1; -} - -void nullsub_443() { -} - -u32 sub_0804FD24() { - return 1; -} - -void nullsub_444() { -} - -u32 sub_0804FD2C() { - return 1; -} - -void nullsub_445() { -} - -u32 sub_0804FD34() { - return 1; -} - -void nullsub_446() { -} - -u32 sub_0804FD3C() { - return 1; -} - -void nullsub_447() { -} - -u32 sub_0804FD44() { - return 1; -} - -void nullsub_448() { -} - -u32 sub_unk3_TreeInteriors_StairsToCarlov() { - return 1; -} - -void sub_StateChange_TreeInteriors_StairsToCarlov() { -} - -u32 sub_unk3_TreeInteriors_PercysTreehouse() { - return 1; -} - -extern EntityData gUnk_080FA5D0; - -void sub_StateChange_TreeInteriors_PercysTreehouse(void) { - if (!CheckKinstoneFused(0x21)) { - LoadRoomEntityList(&gUnk_080FA5D0); - } -} - -u32 sub_unk3_TreeInteriors_HeartPiece() { - return 1; -} -void sub_StateChange_TreeInteriors_HeartPiece() { -} - -u32 sub_unk3_TreeInteriors_StairsToBladeBrother() { - return 1; -} - -void sub_StateChange_TreeInteriors_StairsToBladeBrother() { -} - -u32 sub_unk3_TreeInteriors_14() { - return 1; -} - -void sub_StateChange_TreeInteriors_14() { -} - -u32 sub_unk3_TreeInteriors_BoomerangNorthwest() { - return 1; -} - -void sub_StateChange_TreeInteriors_BoomerangNorthwest() { -} - -u32 sub_unk3_TreeInteriors_BoomerangNortheast() { - return 1; -} - -void sub_StateChange_TreeInteriors_BoomerangNortheast() { -} - -u32 sub_unk3_TreeInteriors_BoomerangSouthwest() { - return 1; -} - -void sub_StateChange_TreeInteriors_BoomerangSouthwest() { -} - -u32 sub_unk3_TreeInteriors_BoomerangSoutheast() { - return 1; -} - -void sub_StateChange_TreeInteriors_BoomerangSoutheast() { -} - -u32 sub_unk3_TreeInteriors_HeartPieceSouthwestField() { - return 1; -} - -void sub_StateChange_TreeInteriors_HeartPieceSouthwestField() { -} - -u32 sub_unk3_TreeInteriors_StairsToFairyFountain() { - return 1; -} - -void sub_StateChange_TreeInteriors_StairsToFairyFountain() { -} - -u32 sub_unk3_TreeInteriors_StairsToWalletFairy() { - return 1; -} - -void sub_StateChange_TreeInteriors_StairsToWalletFairy() { -} - -u32 sub_unk3_TreeInteriors_1C() { - return 1; -} - -void sub_StateChange_TreeInteriors_1C() { -} - -u32 sub_unk3_TreeInteriors_StairsToBusinessScrub() { - return 1; -} - -void sub_StateChange_TreeInteriors_StairsToBusinessScrub() { -} - -u32 sub_unk3_TreeInteriors_1E() { - return 1; -} - -void sub_StateChange_TreeInteriors_1E() { -} - -u32 sub_unk3_TreeInteriors_1F() { - return 1; -} - -void sub_StateChange_TreeInteriors_1F() { -} - -extern u32 gUnk_080FAD48; - -u32 sub_unk3_MtCrenel_MountainTop(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080FAD48; - gRoomVars.field_0x6c[2] = NULL; - } - return 1; -} - -extern EntityData gUnk_080FACB8; - -void sub_StateChange_MtCrenel_MountainTop(void) { - if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } else { - LoadRoomEntityList(&gUnk_080FACB8); - } - sub_0805B4D0(0); - sub_08059994(); -} - -void sub_unk1_MtCrenel_MountainTop() { - sub_0805B4D0(0); -} - -u32 sub_unk3_MtCrenel_WallClimb() { - return 1; -} - -void sub_StateChange_MtCrenel_WallClimb() { -} - -u32 sub_unk3_MtCrenel_CaveOfFlamesEntrance() { - return 1; -} - -extern EntityData gUnk_080FAFE4; -extern EntityData gUnk_080FB004; - -void sub_StateChange_MtCrenel_CaveOfFlamesEntrance(void) { - sub_0805B4D0(1); - if (CheckGlobalFlag(LV2_CLEAR) && !CheckLocalFlag(LV1_CLEAR)) { - LoadRoomEntityList(&gUnk_080FAFE4); - } - if ((gSave.windcrests & 0x1000000) == 0) { - LoadRoomEntityList(&gUnk_080FB004); - } - if (GetInventoryValue(0x2)) { - SetGlobalFlag(WHITE_SWORD_END); - } -} - -void sub_unk1_MtCrenel_CaveOfFlamesEntrance(void) { - if ((gSave.windcrests & 0x1000000) == 0) { - LoadRoomEntityList(&gUnk_080FB004); - } -} - -u32 sub_unk3_MtCrenel_GustJarShortcut() { - return 1; -} - -void sub_StateChange_MtCrenel_GustJarShortcut() { -} - -u32 sub_unk3_MtCrenel_Entrance() { - return 1; -} - -void sub_StateChange_MtCrenel_Entrance(void) { -#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) - SetTileType(0x176, 0x66f, 1); -#endif -} - -u32 sub_unk3_CrenelCaves_BlockPushing() { - return 1; -} - -void sub_StateChange_CrenelCaves_BlockPushing() { -} - -u32 sub_unk3_CrenelCaves_PillarCave() { - return 1; -} - -void sub_StateChange_CrenelCaves_PillarCave() { -} - -u32 sub_unk3_CrenelCaves_BridgeSwitch() { - return 1; -} - -void sub_StateChange_CrenelCaves_BridgeSwitch() { -} - -u32 sub_unk3_CrenelCaves_ExitToMines() { - return 1; -} - -void sub_StateChange_CrenelCaves_ExitToMines() { -} - -u32 sub_unk3_CrenelCaves_GripRing() { - return 1; -} - -void sub_StateChange_CrenelCaves_GripRing() { -} - -u32 sub_unk3_CrenelCaves_FairyFountain() { - return 1; -} - -void sub_StateChange_CrenelCaves_FairyFountain() { -} - -u32 sub_unk3_CrenelCaves_SpinyChuPuzzle() { - return 1; -} - -void sub_StateChange_CrenelCaves_SpinyChuPuzzle() { -} - -u32 sub_unk3_CrenelCaves_ChuchuPotChest() { - return 1; -} - -void sub_StateChange_CrenelCaves_ChuchuPotChest() { -} - -u32 sub_unk3_CrenelCaves_WaterHeartPiece() { - return 1; -} - -void sub_StateChange_CrenelCaves_WaterHeartPiece() { -} - -u32 sub_unk3_CrenelCaves_RupeeFairyFountain() { - return 1; -} - -void sub_StateChange_CrenelCaves_RupeeFairyFountain() { -} - -u32 sub_unk3_CrenelCaves_HelmasaurHallway() { - return 1; -} - -void sub_StateChange_CrenelCaves_HelmasaurHallway() { -} - -u32 sub_unk3_CrenelCaves_MushroomKeese() { - return 1; -} - -void sub_StateChange_CrenelCaves_MushroomKeese() { -} - -u32 sub_unk3_CrenelCaves_LadderToGreenWater() { - return 1; -} - -void sub_StateChange_CrenelCaves_LadderToGreenWater() { -} - -u32 sub_unk3_CrenelCaves_BombBusinessScrub() { - return 1; -} - -void sub_StateChange_CrenelCaves_BombBusinessScrub() { -} - -u32 sub_unk3_CrenelCaves_Hermit() { - return 1; -} - -void sub_StateChange_CrenelCaves_Hermit(void) { - if (!CheckLocalFlag(0x70)) { - SetLocalFlag(0x70); - } -} - -u32 sub_unk3_CrenelCaves_HintScrub() { - return 1; -} - -void sub_StateChange_CrenelCaves_HintScrub() { -} - -u32 sub_unk3_CrenelCaves_ToGrayblade() { - return 1; -} - -void sub_StateChange_CrenelCaves_ToGrayblade() { -} - -void sub_0804FF84(u32 arg0) { - gSaveHeader->brightnessPref = arg0; - gUsedPalettes = 0xffffffff; -} diff --git a/src/roomInit.c b/src/roomInit.c new file mode 100644 index 00000000..f6484343 --- /dev/null +++ b/src/roomInit.c @@ -0,0 +1,6667 @@ +#include "global.h" + +#include "main.h" +#include "random.h" + +#include "functions.h" +#include "structures.h" + +#include "audio.h" +#include "effects.h" +#include "screen.h" +#include "flags.h" +#include "item.h" +#include "save.h" +#include "script.h" + +#include "area.h" +#include "room.h" + +#include "entity.h" +#include "npc.h" +#include "player.h" + +u32 sub_unk3_ArmosInteriors_RuinsEntranceNorth(u32 arg0) { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsEntranceNorth() { + sub_08030118(0); +} + +u32 sub_unk3_ArmosInteriors_RuinsEntranceSouth() { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsEntranceSouth() { + sub_08030118(1); +} + +u32 sub_unk3_ArmosInteriors_RuinsLeft() { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsLeft() { + sub_08030118(2); +} + +u32 sub_unk3_ArmosInteriors_RuinsMiddleLeft() { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsMiddleLeft() { + sub_08030118(3); +} + +u32 sub_unk3_ArmosInteriors_RuinsMiddleRight() { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsMiddleRight() { + sub_08030118(4); +} + +u32 sub_unk3_ArmosInteriors_RuinsRight() { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsRight() { + sub_08030118(5); +} + +u32 sub_unk3_ArmosInteriors_6() { + return 1; +} + +void sub_StateChange_ArmosInteriors_6() { + sub_08030118(6); +} + +u32 sub_unk3_ArmosInteriors_RuinsGrassPath() { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsGrassPath() { + sub_08030118(7); +} + +u32 sub_unk3_ArmosInteriors_8() { + return 1; +} + +void sub_StateChange_ArmosInteriors_8() { + sub_08030118(8); +} + +u32 sub_unk3_ArmosInteriors_FortressOfWindsLeft() { + return 1; +} + +void sub_StateChange_ArmosInteriors_FortressOfWindsLeft() { + sub_08030118(9); + gArea.dungeon_idx = 3; + gArea.areaMetadata = 0x4e; +} + +u32 sub_unk3_ArmosInteriors_FortressOfWindsRight() { + return 1; +} + +void sub_StateChange_ArmosInteriors_FortressOfWindsRight() { + sub_08030118(10); + gArea.dungeon_idx = 3; + gArea.areaMetadata = 0x4e; +} + +u32 sub_unk3_CrenelMinishPaths_CrenelBean() { + return 1; +} + +void sub_StateChange_CrenelMinishPaths_CrenelBean() { + sub_080575C8(35); + sub_08057688(); +} + +u32 sub_unk3_CrenelMinishPaths_CrenelWater() { + return 1; +} + +void sub_StateChange_CrenelMinishPaths_CrenelWater() { + sub_080575C8(35); +} + +void sub_unk1_CrenelMinishPaths_CrenelWater() { + sub_080575C8(35); +} + +u32 sub_unk3_CrenelMinishPaths_Rainfall() { + return 1; +} + +void sub_StateChange_CrenelMinishPaths_Rainfall() { + sub_080580B0(34); +} + +void sub_unk1_CrenelMinishPaths_Rainfall() { + sub_080580B0(34); +} + +u32 sub_unk3_CrenelMinishPaths_MelarisMine() { + return 1; +} + +void sub_StateChange_CrenelMinishPaths_MelarisMine(void) { + sub_080580B0(0x22); + // white sword + if (GetInventoryValue(0x2)) + SetGlobalFlag(WHITE_SWORD_END); +} + +void sub_unk1_CrenelMinishPaths_MelarisMine() { + sub_080580B0(34); +} + +u32 sub_unk3_MinishPaths1_ToMinishVillage() { + return 1; +} + +void sub_StateChange_MinishPaths1_ToMinishVillage() { + sub_080575C8(30); +} + +void sub_unk1_MinishPaths1_ToMinishVillage() { + sub_080575C8(30); +} + +u32 sub_unk3_MinishPaths1_CastorWilds() { + return 1; +} + +void sub_StateChange_MinishPaths1_CastorWilds() { + sub_080575C8(33); +} + +void sub_unk1_MinishPaths1_CastorWilds() { + sub_080575C8(33); +} + +u32 sub_unk3_MinishPaths1_HyruleTown() { + return 1; +} + +void sub_StateChange_MinishPaths1_HyruleTown() { + sub_080575C8(31); +} + +void sub_unk1_MinishPaths1_HyruleTown() { + sub_080575C8(31); +} + +u32 sub_unk3_MinishPaths1_LonLonRanch() { + return 1; +} + +void sub_StateChange_MinishPaths1_LonLonRanch() { + sub_080575C8(32); +} + +void sub_unk1_MinishPaths1_LonLonRanch() { + sub_080575C8(32); +} + +u32 sub_unk3_MinishPaths1_MayorsCabin() { + return 1; +} + +extern EntityData Entities_MinishPaths1_MayorsCabin_gUnk_080D6138; + +void sub_StateChange_MinishPaths1_MayorsCabin(void) { + + sub_080575C8(0x20); + + if (gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY > 0x40) + LoadRoomEntityList(&Entities_MinishPaths1_MayorsCabin_gUnk_080D6138); +} + +void sub_unk1_MinishPaths1_MayorsCabin() { + sub_080575C8(32); +} + +u32 sub_unk3_HouseInteriors1_Mayor() { + return 1; +} + +extern EntityData Entities_HouseInteriors1_Mayor_080D6210; + +void sub_StateChange_HouseInteriors1_Mayor(void) { + + if ((u16)gScreenTransition.player_status.start_pos.HALF.y > 0x40) + LoadRoomEntityList(&Entities_HouseInteriors1_Mayor_080D6210); +} + +u32 sub_unk3_HouseInteriors1_PostOffice() { + return 1; +} + +extern EntityData gUnk_080D6340; +extern EntityData gUnk_080D6360; +extern EntityData gUnk_080D6380; +extern EntityData gUnk_080D63A0; +extern EntityData gUnk_080D63C0; +extern EntityData gUnk_080D63E0; +extern EntityData gUnk_080D6400; +extern EntityData gUnk_080D6420; +extern EntityData gUnk_080D6440; + +extern u16 gUnk_080D64F8; +extern u16 gUnk_080D6508; + +void sub_StateChange_HouseInteriors1_PostOffice(void) { + u16 itemID; + s32 i; + u16* itemArr; + u16* flagArr; + s32 j; + + if (CheckKinstoneFused(0x2c)) { + LoadRoomEntityList(&gUnk_080D6340); + } + j = 0; + itemArr = &gUnk_080D64F8; + for (i = 7; i >= 0; i--) { + itemID = *itemArr; + itemArr++; + if (GetInventoryValue(itemID)) { + j++; + } + } + if (CheckLocalFlag(BILL01_TESSIN_RESERVED)) { + flagArr = &gUnk_080D6508; + i = 0; + while (i < j) { + if (CheckLocalFlag(*flagArr) == 0) { + SetLocalFlag(*flagArr); + ClearLocalFlag(BILL01_TESSIN_RESERVED); + SetLocalFlag(BILL01_TESSIN_BRANDNEW); + break; + } + i++; + flagArr++; + } + } + + if (CheckLocalFlag(BILL01_TESSIN_1)) + LoadRoomEntityList(&gUnk_080D6360); + + if (CheckLocalFlag(BILL01_TESSIN_2)) + LoadRoomEntityList(&gUnk_080D6380); + + if (CheckLocalFlag(BILL01_TESSIN_3)) + LoadRoomEntityList(&gUnk_080D63A0); + + if (CheckLocalFlag(BILL01_TESSIN_4)) + LoadRoomEntityList(&gUnk_080D63C0); + + if (CheckLocalFlag(BILL01_TESSIN_5)) + LoadRoomEntityList(&gUnk_080D63E0); + + if (CheckLocalFlag(BILL01_TESSIN_6)) + LoadRoomEntityList(&gUnk_080D6400); + + if (CheckLocalFlag(BILL01_TESSIN_7)) + LoadRoomEntityList(&gUnk_080D6420); + + if (CheckLocalFlag(BILL01_TESSIN_8)) + LoadRoomEntityList(&gUnk_080D6440); +} + +u32 sub_unk3_HouseInteriors1_Library2F() { + return 1; +} + +extern EntityData gUnk_080D6578; +extern EntityData gUnk_080D6638; +extern EntityData gUnk_080D6558; +extern EntityData gUnk_080D6618; + +void sub_StateChange_HouseInteriors1_Library2F(void) { + // flippers + if (GetInventoryValue(0x46) == 0) { + LoadRoomEntityList(&gUnk_080D6578); + if (CheckLocalFlag(MIZUKAKI_BOOK_ALLBACK) == 0) { + LoadRoomEntityList(&gUnk_080D6638); + return; + } + } else { + LoadRoomEntityList(&gUnk_080D6558); + } + LoadRoomEntityList(&gUnk_080D6618); +} + +u32 sub_unk3_HouseInteriors1_Library1F() { + return 1; +} + +extern EntityData gUnk_080D6714; +extern EntityData gUnk_additional_9_HouseInteriors1_Library1F; +extern EntityData gUnk_additional_8_HouseInteriors1_Library1F; + +void sub_StateChange_HouseInteriors1_Library1F(void) { + if (gSave.global_progress > 4) { + LoadRoomEntityList(&gUnk_080D6714); + } + // flippers + if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && CheckLocalFlag(MIZUKAKI_KOBITO)) { + LoadRoomEntityList(&gUnk_additional_9_HouseInteriors1_Library1F); + } else { + LoadRoomEntityList(&gUnk_additional_8_HouseInteriors1_Library1F); + } +} + +u32 sub_unk3_HouseInteriors1_Inn1F() { + return 1; +} + +extern EntityData gUnk_080D6924; + +void sub_StateChange_HouseInteriors1_Inn1F(void) { + if (gSave.global_progress > 7) { + LoadRoomEntityList(&gUnk_080D6924); + } +} + +extern u32* gUnk_080D6A74[]; + +u32 sub_unk3_HouseInteriors1_InnWestRoom(void) { + u32 index; + + if (CheckLocalFlag(YADO_CHECKIN)) { + index = (s32)Random() % 3; + ClearLocalFlag(BILL05_YADO1F_MATSU_T0); + } else { + index = 0; + SetLocalFlag(BILL05_YADO1F_MATSU_T0); + } + gRoomVars.field_0x6c[3] = gUnk_080D6A74[index]; + return 1; +} + +extern void* script_08010A5C[]; + +void sub_StateChange_HouseInteriors1_InnWestRoom(void) { + if (CheckLocalFlag(YADO_CHECKIN)) { + ClearLocalFlag(YADO_CHECKIN); + DoFade(5, 256); + gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; + gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; + sub_080751E8(1, 2, &script_08010A5C); + } +} + +extern u32* gUnk_080D6B18[]; + +u32 sub_unk3_HouseInteriors1_InnMiddleRoom(void) { + u32 index; + + if (CheckLocalFlag(YADO_CHECKIN) != 0) { + index = Random() & 1; + ClearLocalFlag(BILL06_YADO1F_TAKE_T0); + } else { + index = 0; + SetLocalFlag(BILL06_YADO1F_TAKE_T0); + } + gRoomVars.field_0x6c[3] = gUnk_080D6B18[index]; + return 1; +} + +void sub_StateChange_HouseInteriors1_InnMiddleRoom(void) { + if (CheckLocalFlag(YADO_CHECKIN) != 0) { + ClearLocalFlag(YADO_CHECKIN); + DoFade(5, 256); + gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; + gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; + sub_080751E8(1, 2, &script_08010A5C); + } +} + +extern u32* gUnk_080D6BB8[]; + +u32 sub_unk3_HouseInteriors1_InnEastRoom(void) { + s32 index; + + if (CheckLocalFlag(YADO_CHECKIN) != 0) { + index = (s32)Random() % 3; + ClearLocalFlag(BILL07_YADO1F_UME_T0); + } else { + index = 0; + SetLocalFlag(BILL07_YADO1F_UME_T0); + } + gRoomVars.field_0x6c[3] = gUnk_080D6BB8[index]; + return 1; +} + +void sub_StateChange_HouseInteriors1_InnEastRoom(void) { + if (CheckLocalFlag(YADO_CHECKIN)) { + ClearLocalFlag(YADO_CHECKIN); + DoFade(5, 256); + gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x60; + gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; + sub_080751E8(1, 2, &script_08010A5C); + } +} + +u32 sub_unk3_HouseInteriors1_InnWest2F() { + return 1; +} + +extern EntityData UpperInn_Oracles; +extern EntityData UpperInn_NoFarore; +extern EntityData UpperInn_NoNayru; +extern EntityData UpperInn_NoDin; +extern EntityData UpperInn_Farore; +extern EntityData UpperInn_Nayru; +extern EntityData UpperInn_Din; + +void sub_StateChange_HouseInteriors1_InnWest2F(void) { + int iVar1; + + if (gSave.global_progress < 4) + return; + + if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { + if (!CheckGlobalFlag(NEW_HOUSE_NAYRU)) + if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) + LoadRoomEntityList(&UpperInn_NoDin); + else + LoadRoomEntityList(&UpperInn_Nayru); + else + LoadRoomEntityList(&UpperInn_Farore); + } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { + if (CheckGlobalFlag(NEW_HOUSE_DIN)) + LoadRoomEntityList(&UpperInn_Farore); + else if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) + LoadRoomEntityList(&UpperInn_NoNayru); + else + LoadRoomEntityList(&UpperInn_Din); + } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { + if (CheckGlobalFlag(NEW_HOUSE_DIN)) + LoadRoomEntityList(&UpperInn_Nayru); + else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) + LoadRoomEntityList(&UpperInn_Din); + else + LoadRoomEntityList(&UpperInn_NoFarore); + } else + LoadRoomEntityList(&UpperInn_Oracles); +} + +u32 sub_unk3_HouseInteriors1_InnEast2F() { + return 1; +} + +void sub_StateChange_HouseInteriors1_InnEast2F() { +} + +u32 sub_unk3_HouseInteriors1_InnMinishHeartPiece() { + return 1; +} + +void sub_StateChange_HouseInteriors1_InnMinishHeartPiece() { +} + +u32 sub_unk3_HouseInteriors1_SchoolWest() { + return 1; +} + +extern EntityData gUnk_080D7038; + +void sub_StateChange_HouseInteriors1_SchoolWest(void) { + if (gSave.global_progress < 8) { + LoadRoomEntityList(&gUnk_080D7038); + } + if (gRoomVars.field_0x0 == 0) { + sub_08052CA4(2, 0, 0x2c8, 0xa8); + } +} + +u32 sub_unk3_HouseInteriors1_SchoolEast() { + return 1; +} + +extern EntityData gUnk_080D7140; +extern EntityData gUnk_080D7170; +extern EntityData gUnk_080D71A0; +extern EntityData gUnk_080D71D0; +extern EntityData gUnk_080D71F0; + +void sub_StateChange_HouseInteriors1_SchoolEast(void) { + + if (gSave.global_progress == 6) + LoadRoomEntityList(&gUnk_080D7140); + + if (gSave.global_progress == 7) + LoadRoomEntityList(&gUnk_080D7170); + + if ((gSave.global_progress < 8) || (LoadRoomEntityList(&gUnk_080D71A0), gSave.global_progress < 8)) + LoadRoomEntityList(&gUnk_080D71D0); + else + LoadRoomEntityList(&gUnk_080D71F0); +} + +extern u32 gUnk_080D7348; + +u32 sub_unk3_HyruleCastle_0(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080D7348; + gRoomVars.field_0x6c[2] = 0; + } + return 1; +} + +extern EntityData gUnk_080D7328; + +void sub_StateChange_HyruleCastle_0(void) { + if (!CheckGlobalFlag(LV2_CLEAR)) { + LoadRoomEntityList(&gUnk_080D7328); + } + +#if defined(JP) || defined(DEMO_JP) + if (CheckGlobalFlag(CASTLE_BGM) || CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } +#elif defined(EU) + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } +#else + if (CheckGlobalFlag(CASTLE_BGM)) { + gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; + } else if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } +#endif +} + +extern u32 gUnk_080D7410; + +u32 sub_unk3_HyruleCastle_1(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080D7410; + gRoomVars.field_0x6c[2] = 0; + } + return 1; +} + +extern EntityData gUnk_080D73B0; +extern EntityData gUnk_080D73E0; + +void sub_StateChange_HyruleCastle_1(void) { + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } else { + if (!CheckGlobalFlag(LV2_CLEAR)) { + LoadRoomEntityList(&gUnk_080D73B0); + } + if (!CheckGlobalFlag(LV1_CLEAR) && CheckGlobalFlag(TABIDACHI)) { + LoadRoomEntityList(&gUnk_080D73E0); + } +#ifndef EU + if (CheckGlobalFlag(CASTLE_BGM)) { + gArea.pMusicIndex = gArea.musicIndex; + } +#endif + } +} + +u32 sub_unk3_HyruleCastle_2() { + return 1; +} + +extern EntityData gUnk_080D74C8; +extern EntityData gUnk_080D7588; +extern EntityData gUnk_080D75D8; +extern EntityData gUnk_080D7618; + +void sub_StateChange_HyruleCastle_2(void) { +#ifndef EU + if (CheckGlobalFlag(CASTLE_BGM)) { + gArea.pMusicIndex = gArea.musicIndex; + } +#endif + + if (CheckGlobalFlag(ENDING)) { + LoadRoomEntityList(&gUnk_080D7618); + gArea.pMusicIndex = gArea.musicIndex; + } else if (CheckGlobalFlag(TABIDACHI) == 0) { + LoadRoomEntityList(&gUnk_080D74C8); + gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; + } else if (CheckGlobalFlag(LV1_CLEAR) == 0) { + LoadRoomEntityList(&gUnk_080D7588); + } else { + LoadRoomEntityList(&gUnk_080D75D8); + } +} + +u32 sub_unk3_HyruleCastle_3() { + return 1; +} + +extern EntityData gUnk_additional_8_HyruleCastle_3; + +void sub_StateChange_HyruleCastle_3(void) { + if (CheckLocalFlag(SOUGEN_08_TORITSUKI)) { + LoadRoomEntityList(&gUnk_additional_8_HyruleCastle_3); + } +} + +u32 sub_unk3_HyruleCastle_4(void) { + if (!CheckLocalFlag(CASTLE_04_MEZAME)) { + gScreenTransition.player_status.spawn_type = PL_SPAWN_SPECIAL; + ClearGlobalFlag(ZELDA_CHASE); + } + return 1; +} + +extern u32 script_08009E88; + +void sub_StateChange_HyruleCastle_4(void) { + if (!CheckLocalFlag(CASTLE_04_MEZAME)) { + DoFade(5, 256); + gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0xb0; + gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x40; + sub_080751E8(0, 6, &script_08009E88); +#ifdef EU + SoundReq(0x80010000); + gArea.musicIndex = gArea.pMusicIndex; + } +#else + } + + if (!CheckGlobalFlag(TABIDACHI)) { + sub_08052878(); +#if !(defined(JP) || defined(DEMO_JP)) + } else { +#else + } +#endif + if (CheckGlobalFlag(CASTLE_BGM)) { +#if defined(JP) || defined(DEMO_JP) + gArea.pMusicIndex = gArea.musicIndex; +#else + gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; +#endif + } +#if !(defined(JP) || defined(DEMO_JP)) + } +#endif +#endif +} + +extern ScreenTransitionData gUnk_0813AB80; + +void sub_0804BCDC() { + sub_0808091C(&gUnk_0813AB80, 4); +} + +u32 sub_unk3_HyruleCastle_5() { + return 1; +} + +void sub_StateChange_HyruleCastle_5() { +} + +u32 sub_unk3_87_Main() { + return 1; +} + +void sub_StateChange_87_Main() { +} + +u32 sub_unk3_45_Main() { + return 1; +} + +void sub_StateChange_45_Main() { +} + +u32 sub_unk3_4D_Main() { + return 1; +} + +void sub_StateChange_4D_Main() { +} + +u32 sub_unk3_57_Main() { + return 1; +} + +void sub_StateChange_57_Main() { +} + +u32 sub_unk3_5F_Main() { + return 1; +} + +void sub_StateChange_5F_Main() { +} + +u32 sub_unk3_67_Main() { + return 1; +} + +void sub_StateChange_67_Main() { +} + +u32 sub_unk3_6F_Main() { + return 1; +} + +void sub_StateChange_6F_Main() { +} + +u32 sub_unk3_77_Main() { + return 1; +} + +void sub_StateChange_77_Main() { +} + +u32 sub_unk3_7F_Main() { + return 1; +} + +void sub_StateChange_7F_Main() { +} + +u32 sub_unk3_8F_Main() { + return 1; +} + +void sub_StateChange_8F_Main() { +} + +u32 sub_unk3_GreatFairies_Entrance() { + return 1; +} + +void sub_StateChange_GreatFairies_Entrance() { +} + +u32 sub_unk3_GreatFairies_Exit() { + return 1; +} + +extern EntityData gUnk_080D7D34; + +void sub_StateChange_GreatFairies_Exit(void) { + // four sword + if (GetInventoryValue(0x6)) { + SetTile(0x4072, 0x14d, 1); + SetTile(0x4072, 0x10c, 1); + SetTile(0x4090, 0x14c, 1); + SetTile(0x4090, 0x18c, 1); + LoadRoomEntityList(&gUnk_080D7D34); + } +} + +u32 sub_unk3_Dojos_Grayblade() { + return 1; +} + +void sub_StateChange_Dojos_Grayblade() { +} + +u32 sub_unk3_Dojos_Splitblade() { + return 1; +} + +void sub_StateChange_Dojos_Splitblade() { +} + +u32 sub_unk3_Dojos_Greatblade() { + return 1; +} + +void sub_StateChange_Dojos_Greatblade() { +} + +u32 sub_unk3_Dojos_Scarblade() { + return 1; +} + +void sub_StateChange_Dojos_Scarblade() { +} + +u32 sub_unk3_Dojos_Swiftblade() { + return 1; +} + +void sub_StateChange_Dojos_Swiftblade() { +} + +u32 sub_unk3_Dojos_Grimblade() { + return 1; +} + +extern EntityData gUnk_080D827C; + +void sub_StateChange_Dojos_Grimblade(void) { + if (!CheckLocalFlag(3)) { + LoadRoomEntityList(&gUnk_080D827C); + } else { + sub_0805BC4C(); + SetTileType(0x76, 0x82, 2); + SetTileType(0x76, 0x8c, 2); + } +} + +u32 sub_unk3_Dojos_Waveblade() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade() { +} + +u32 sub_unk3_Dojos_7() { + return 1; +} + +void sub_StateChange_Dojos_7() { +} + +u32 sub_unk3_Dojos_8() { + return 1; +} + +void sub_StateChange_Dojos_8() { +} + +u32 sub_unk3_Dojos_9() { + return 1; +} + +void sub_StateChange_Dojos_9() { +} + +u32 sub_unk3_Dojos_ToGrimblade() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade() { +} + +u32 sub_unk3_Dojos_ToSplitblade() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade() { +} + +u32 sub_unk3_Dojos_ToGreatblade() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade() { +} + +u32 sub_unk3_Dojos_ToScarblade() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade() { +} + +u32 sub_unk3_GoronCave_StairsToCave() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave() { +} + +u32 sub_unk3_GoronCave_Main() { + return 1; +} + +extern EntityData gUnk_080D8B24; +extern EntityData gUnk_080D8AC4; +extern EntityData gUnk_080D8A74; +extern EntityData gUnk_080D8A34; +extern EntityData gUnk_080D8A04; +extern EntityData gUnk_080D89E4; + +extern u32 gUnk_080D8BBC; +extern u32 gUnk_080D8BFA; +extern u32 gUnk_080D8C68; + +void sub_StateChange_GoronCave_Main(void) { + if (!CheckLocalFlag(GORON_DOUKUTU_APPEAR)) + SetLocalFlag(GORON_DOUKUTU_APPEAR); + + if (CheckKinstoneFused(0x2f)) + LoadRoomEntityList(&gUnk_080D8B24); + else if (CheckKinstoneFused(0x2b)) + LoadRoomEntityList(&gUnk_080D8AC4); + else if (CheckKinstoneFused(0x26)) + LoadRoomEntityList(&gUnk_080D8A74); + else if (CheckKinstoneFused(0x2a)) + LoadRoomEntityList(&gUnk_080D8A34); + else if (CheckKinstoneFused(0x25)) + LoadRoomEntityList(&gUnk_080D8A04); + else + LoadRoomEntityList(&gUnk_080D89E4); + + if (CheckKinstoneFused(0x25)) + sub_0807BB68(&gUnk_080D8BBC, 0x7c5, 1); + + if (CheckKinstoneFused(0x26)) + sub_0807BB68(&gUnk_080D8BFA, 0x503, 1); + + if (CheckKinstoneFused(0x2f)) + sub_0807BB68(&gUnk_080D8C68, 0x281, 1); +} + +#if 0 +typedef struct { + u32 a; + u16 x, y; + u16 entCnt; + u16 shakeTime, shakeMag, sfx; +} struct_080D8E54; + +typedef struct { + u32 field_0x0; + u32 field_0x4; +} struct_0804BF38; + +extern struct_080D8E54 gUnk_080D8E50[]; + +void sub_0804BF38(u32 arg0, struct_0804BF38* arg1) +{ + u32 numEnts; + u32 iVar2; + u32 iVar3; + Entity *fx; + u32 entCnt; + u32 xOff; + + iVar2 = arg1->field_0x4; + iVar3 = iVar2 * 0x10; + sub_0807BB68(gUnk_080D8E50[iVar2].a, ((gUnk_080D8E50[iVar3].x >> 4) & 0x3f | (gUnk_080D8E50[iVar3].y >> 4) & 0x3f) << 6, 1); + numEnts = gUnk_080D8E50[iVar3].entCnt; + entCnt = 0; + + if (numEnts != 0) { + for (xOff = 0; entCnt < numEnts; xOff += 0x10, entCnt++) { + fx = CreateObject(SPECIAL_FX, 0xf, 0); + if (fx != NULL) { + fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.roomOriginX + xOff; + fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.roomOriginY + (entCnt & 1) * 8; + } + fx = CreateObject(SPECIAL_FX, 0x54, 0); + if (fx != NULL) { + fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.roomOriginX + xOff; + fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.roomOriginY + -0xc + (entCnt & 1) * 8; + fx->direction = 0; + fx->speed = 0x100; + } + } + } + + sub_08080964(gUnk_080D8E50[iVar3].shakeTime, gUnk_080D8E50[iVar3].shakeMag); + SoundReq(gUnk_080D8E50[iVar2].sfx); +} +#else +ASM_FUNC("asm/non_matching/sub_0804BF38.inc", void sub_0804BF38(Entity* this, ScriptExecutionContext* context)) +#endif + +u32 sub_unk3_EzloCutscene_Main() { + return 1; +} + +void sub_StateChange_EzloCutscene_Main() { +} + +u32 sub_unk3_RoyalValley_Main() { + return 1; +} + +extern EntityData gUnk_080D90C8; +extern EntityData gUnk_080D9108; +extern EntityData gUnk_080D9098; + +void sub_StateChange_RoyalValley_Main(void) { + if (!CheckGlobalFlag(HAKA_KEY_LOST)) { + if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) == 1) { + LoadRoomEntityList(&gUnk_080D90C8); + LoadRoomEntityList(&gUnk_080D9108); + } + } else if (!CheckGlobalFlag(HAKA_KEY_FOUND)) + LoadRoomEntityList(&gUnk_080D9108); + + if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) != 2) { + LoadRoomEntityList(&gUnk_080D9098); + SetTileType(0x17a, 0x58e, 1); + SetTileType(0x17b, 0x58f, 1); + SetTileType(0x17c, 0x5ce, 1); + SetTileType(0x17d, 0x5cf, 1); + } + + sub_08054570(); + sub_08059278(); + SetTile(0x4072, 0xa47, 1); + SetTile(0x4072, 0xc47, 1); + + if (CheckGlobalFlag(MAZE_CLEAR)) + if (gScreenTransition.player_status.start_pos.WORD == 0x2780078) // todo: wtf + SoundReq(SFX_SECRET); + + ClearGlobalFlag(MAZE_CLEAR); +} + +u32 sub_unk3_RoyalValley_ForestMaze() { + return 1; +} + +void sub_StateChange_RoyalValley_ForestMaze(void) { + gArea.areaMetadata |= 0x40; + sub_0804C128(gArea.filler[7] |= 1); +} + +ASM_FUNC("asm/non_matching/sub_0804C128.inc", void sub_0804C128(u32 arg0)) + +ASM_FUNC("asm/non_matching/sub_0804C258.inc", void sub_0804C258(void)) + +ASM_FUNC("asm/non_matching/sub_0804C290.inc", void sub_0804C290(void)) + +u32 sub_unk3_RoyalValleyGraves_HeartPiece() { + return 1; +} + +void sub_StateChange_RoyalValleyGraves_HeartPiece() { +} + +u32 sub_unk3_RoyalValleyGraves_Gina() { + return 1; +} + +void sub_StateChange_RoyalValleyGraves_Gina() { +} + +u32 sub_unk3_MinishRafters_Cafe() { + return 1; +} + +void sub_StateChange_MinishRafters_Cafe() { + sub_08058324(0); +} + +u32 sub_unk3_MinishRafters_Stockwell() { + return 1; +} + +void sub_StateChange_MinishRafters_Stockwell() { + sub_08058324(1); +} + +u32 sub_unk3_MinishRafters_DrLeft() { + return 1; +} + +extern EntityData gUnk_080D9800; + +void sub_StateChange_MinishRafters_DrLeft(void) { + + sub_08058324(2); + + if (CheckGlobalFlag(MIZUKAKI_START) && !CheckGlobalFlag(MIZUKAKI_HARIFALL)) + LoadRoomEntityList(&gUnk_080D9800); +} + +void sub_unk1_MinishRafters_DrLeft() { + sub_StateChange_MinishRafters_DrLeft(); +} + +u32 sub_unk3_MinishRafters_Bakery() { + return 1; +} + +void sub_StateChange_MinishRafters_Bakery() { + sub_08058324(3); +} + +u32 sub_unk3_CastorWilds_Main() { + return 1; +} + +extern EntityData gUnk_080D9CC8; +extern EntityData gUnk_080D9CE8; +extern EntityData gUnk_080D9C38; + +void sub_StateChange_CastorWilds_Main(void) { + + SetGlobalFlag(DASHBOOTS); + + if (CheckKinstoneFused(0x5b)) + LoadRoomEntityList(&gUnk_080D9CC8); + + if ((gSave.windcrests & 0x20000000) == 0) + LoadRoomEntityList(&gUnk_080D9CE8); + + if (!GetInventoryValue(ITEM_PEGASUS_BOOTS)) + LoadRoomEntityList(&gUnk_080D9C38); +} + +void sub_unk1_CastorWilds_Main(void) { + if ((gSave.windcrests & 0x20000000) == 0) + LoadRoomEntityList(&gUnk_080D9CE8); +} + +u32 sub_unk3_CastorCaves_South() { + return 1; +} + +void sub_StateChange_CastorCaves_South() { +} + +u32 sub_unk3_CastorCaves_North() { + return 1; +} + +void sub_StateChange_CastorCaves_North() { +} + +u32 sub_unk3_CastorCaves_WindRuins() { + return 1; +} + +void sub_StateChange_CastorCaves_WindRuins() { +} + +u32 sub_unk3_CastorCaves_Darknut() { + return 1; +} + +void sub_StateChange_CastorCaves_Darknut() { +} + +u32 sub_unk3_CastorCaves_HeartPiece() { + return 1; +} + +void sub_StateChange_CastorCaves_HeartPiece() { +} + +extern u32 gUnk_080DA230; + +u32 sub_unk3_CastorDarknut_Main(void) { + if (!CheckLocalFlag(LV4_0a_TSUBO)) + gRoomVars.field_0x6c[0] = &gUnk_080DA230; + + return 1; +} + +void sub_StateChange_CastorDarknut_Main() { +} + +u32 sub_unk3_CastorDarknut_Hall() { + return 1; +} + +void sub_StateChange_CastorDarknut_Hall() { +} + +u32 sub_unk3_GreatFairies_Graveyard() { + return 1; +} + +void sub_StateChange_GreatFairies_Graveyard() { +} + +u32 sub_unk3_GreatFairies_MinishWoods() { + return 1; +} + +void sub_StateChange_GreatFairies_MinishWoods() { +} + +u32 sub_unk3_GreatFairies_MtCrenel() { + return 1; +} + +void sub_StateChange_GreatFairies_MtCrenel() { +} + +u32 sub_unk3_GardenFountains_East() { + return 1; +} + +void sub_StateChange_GardenFountains_East() { +} + +u32 sub_unk3_GardenFountains_West() { + return 1; +} + +void sub_StateChange_GardenFountains_West() { +} + +u32 sub_unk3_MinishHouseInteriors_GentariMain() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_GentariMain() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_GentariExit() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_GentariExit() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_Festari() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_Festari() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_Red() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_Red() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_Green() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_Green() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_Blue() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_Blue() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_SideArea() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_SideArea() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_ShoeMinish() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_ShoeMinish() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_PotMinish() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_PotMinish() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_BarrelMinish() { + return 1; +} + +extern EntityData gUnk_080DAB44; +extern EntityData gUnk_080DAB64; +extern EntityData gUnk_080DAB84; +extern EntityData gUnk_080DAC54; +extern EntityData gUnk_080DAD24; +extern EntityData gUnk_080DABC4; +extern EntityData gUnk_080DAC94; +extern EntityData gUnk_080DAD64; +extern EntityData gUnk_080DAC04; +extern EntityData gUnk_080DACD4; +extern EntityData gUnk_080DADA4; + +void sub_StateChange_MinishHouseInteriors_BarrelMinish(void) { + u32 uVar1; + + if (!GetInventoryValue(ITEM_JABBERNUT)) + LoadRoomEntityList(&gUnk_080DAB44); + else + LoadRoomEntityList(&gUnk_080DAB64); + + if (CheckGlobalFlag(DRUG_COUNT) && sub_08060354()) { + SetRoomFlag(0); + if (!CheckGlobalFlag(DRUG_1)) + uVar1 = 0x3200; + else if (!CheckGlobalFlag(DRUG_2)) + uVar1 = 0x4600; + else + uVar1 = 0x4880; + } else { + if (CheckGlobalFlag(DRUG_3)) + uVar1 = 0x4900; + else if (CheckGlobalFlag(DRUG_2)) + uVar1 = 0x4a00; + else if (CheckGlobalFlag(DRUG_1)) + uVar1 = 0x5200; + else + uVar1 = 0x9200; + } + if (uVar1 & 0x8000) + LoadRoomEntityList(&gUnk_080DAB84); + + if (uVar1 & 0x4000) + LoadRoomEntityList(&gUnk_080DAC54); + + if (uVar1 & 0x2000) + LoadRoomEntityList(&gUnk_080DAD24); + + if (uVar1 & 0x1000) + LoadRoomEntityList(&gUnk_080DABC4); + + if (uVar1 & 0x800) + LoadRoomEntityList(&gUnk_080DAC94); + + if (uVar1 & 0x400) + LoadRoomEntityList(&gUnk_080DAD64); + + if (uVar1 & 0x200) + LoadRoomEntityList(&gUnk_080DAC04); + + if (uVar1 & 0x100) + LoadRoomEntityList(&gUnk_080DACD4); + + if (uVar1 & 0x80) + LoadRoomEntityList(&gUnk_080DADA4); + + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_MelariMinesSouthwest() { + return 1; +} + +extern EntityData gUnk_080DAEE8; + +void sub_StateChange_MinishHouseInteriors_MelariMinesSouthwest(void) { + if (CheckGlobalFlag(WHITE_SWORD_END)) + LoadRoomEntityList(&gUnk_080DAEE8); + + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_MelariMinesSoutheast() { + return 1; +} + +extern EntityData gUnk_080DAF80; + +void sub_StateChange_MinishHouseInteriors_MelariMinesSoutheast(void) { + if (CheckGlobalFlag(WHITE_SWORD_END)) + LoadRoomEntityList(&gUnk_080DAF80); + + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_MelariMinesEast() { + return 1; +} + +extern EntityData gUnk_080DB018; + +void sub_StateChange_MinishHouseInteriors_MelariMinesEast(void) { + if (CheckGlobalFlag(WHITE_SWORD_END)) + LoadRoomEntityList(&gUnk_080DB018); + + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_HyruleFieldSouthwest() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_HyruleFieldSouthwest() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_HyruleFieldOutsideLinksHouse() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_HyruleFieldOutsideLinksHouse() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_NextToKnuckle() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_NextToKnuckle() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_Librari() { + return 1; +} + +extern EntityData gUnk_080DB238; + +void sub_StateChange_MinishHouseInteriors_Librari(void) { + if (gSave.global_progress > 8) + LoadRoomEntityList(&gUnk_080DB238); + + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_HyruleFieldExit() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_HyruleFieldExit() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_HyruleTown() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_HyruleTown() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_MinishWoodsBomb() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_MinishWoodsBomb() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_LakeHyliaOcarina() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_LakeHyliaOcarina() { + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_MayorsHouse() { + return 1; +} + +extern EntityData gUnk_080DB4D0; +extern EntityData gUnk_080DB4A0; + +void sub_StateChange_TownMinishHoles_MayorsHouse(void) { + if (!GetInventoryValue(ITEM_FLIPPERS) && !GetInventoryValue(ITEM_QST_BOOK3) && CheckLocalFlag(KOBITO_DOUKUTU_04_T0)) + LoadRoomEntityList(&gUnk_080DB4D0); + else + LoadRoomEntityList(&gUnk_080DB4A0); + + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_WestOracle() { + return 1; +} + +void sub_StateChange_TownMinishHoles_WestOracle() { + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_DrLeft() { + return 1; +} + +void sub_StateChange_TownMinishHoles_DrLeft() { + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_Carpenter() { + return 1; +} + +void sub_StateChange_TownMinishHoles_Carpenter() { + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_Cafe() { + return 1; +} + +void sub_StateChange_TownMinishHoles_Cafe() { + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_5() { + return 1; +} + +void sub_StateChange_TownMinishHoles_5() { + sub_0801AFE4(); +} + +extern u32 gUnk_080DB910; + +u32 sub_unk3_TownMinishHoles_LibraryBookshelf(void) { + if (CheckGlobalFlag(MIZUKAKI_START) && !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { + gRoomVars.field_0x6c[1] = &gUnk_080DB910; + } + return 1; +} + +extern EntityData gUnk_080DB8F0; +extern EntityData gUnk_additional_a_TownMinishHoles_LibraryBookshelf; + +void sub_StateChange_TownMinishHoles_LibraryBookshelf(void) { + LoadRoomEntityList(&gUnk_080DB8F0); + if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START)) { + LoadRoomEntityList(&gUnk_additional_a_TownMinishHoles_LibraryBookshelf); + } + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_LibrariBookHouse() { + return 1; +} + +extern EntityData gUnk_080DBA08; + +void sub_StateChange_TownMinishHoles_LibrariBookHouse(void) { + if (GetInventoryValue(ITEM_FLIPPERS) || !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { + LoadRoomEntityList(&gUnk_080DBA08); + } + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_RemShoeShop() { + return 1; +} + +extern EntityData gUnk_080DBB50; +extern EntityData gUnk_080DBB70; +extern EntityData gUnk_080DBB10; +extern EntityData gUnk_080DBAD0; +extern EntityData gUnk_080DBB90; + +void sub_StateChange_TownMinishHoles_RemShoeShop(void) { + u32 tilePos; + u32 i; + + if (!CheckLocalFlag(KOBITO_DOUKUTU_00_T0)) { + LoadRoomEntityList(&gUnk_080DBB50); + } + + if (GetInventoryValue(ITEM_PEGASUS_BOOTS) == 1) { + LoadRoomEntityList(&gUnk_080DBB70); + LoadRoomEntityList(&gUnk_080DBB10); + } else { + LoadRoomEntityList(&gUnk_080DBAD0); + } + if (!CheckLocalFlag(KOBITO_DOUKUTU_05_T0)) { + tilePos = 0x140; + for (i = 0; i < 0x13; i++, tilePos++) { + SetTileType(0x4072, tilePos, 1); + } + } + LoadRoomEntityList(&gUnk_080DBB90); + sub_0801AFE4(); +} + +u32 sub_unk3_MinishCaves_BeanPesto() { + return 1; +} + +void sub_StateChange_MinishCaves_BeanPesto() { +} + +u32 sub_unk3_MinishCaves_SoutheastWater1() { + return 1; +} + +void sub_StateChange_MinishCaves_SoutheastWater1() { +} + +u32 sub_unk3_MinishCaves_SoutheastWater2() { + return 1; +} + +void sub_StateChange_MinishCaves_SoutheastWater2() { +} + +u32 sub_unk3_MinishCaves_Ruins() { + return 1; +} + +void sub_StateChange_MinishCaves_Ruins() { +} + +u32 sub_unk3_MinishCaves_OutsideLinksHouse() { + return 1; +} + +void sub_StateChange_MinishCaves_OutsideLinksHouse() { +} + +u32 sub_unk3_MinishCaves_MinishWoodsNorth1() { + return 1; +} + +void sub_StateChange_MinishCaves_MinishWoodsNorth1() { +} + +u32 sub_unk3_MinishCaves_MinishWoodsNorth2() { + return 1; +} + +void sub_StateChange_MinishCaves_MinishWoodsNorth2() { +} + +u32 sub_unk3_MinishCaves_LakeHyliaNorth() { + return 1; +} + +void sub_StateChange_MinishCaves_LakeHyliaNorth() { +} + +u32 sub_unk3_MinishCaves_LakeHyliaLibrari() { + return 1; +} + +void sub_StateChange_MinishCaves_LakeHyliaLibrari() { +} + +u32 sub_unk3_MinishCaves_MinishWoodsSouthwest() { + return 1; +} + +void sub_StateChange_MinishCaves_MinishWoodsSouthwest() { +} + +u32 sub_unk3_MinishVillage_Main() { + return 1; +} + +extern EntityData gUnk_080DC390; +extern EntityData gUnk_080DC3F0; +extern EntityData gUnk_080DC430; +extern EntityData gUnk_080DC530; +extern EntityData gUnk_080DC470; +extern EntityData gUnk_080DC4C0; + +void sub_StateChange_MinishVillage_Main(void) { + if (!GetInventoryValue(ITEM_JABBERNUT)) { + LoadRoomEntityList(&gUnk_080DC390); + if (!CheckLocalFlagByBank(0x200, 0x80)) { + LoadRoomEntityList(&gUnk_080DC3F0); + } + } else { + LoadRoomEntityList(&gUnk_080DC430); + if (!GetInventoryValue(ITEM_GUST_JAR)) { + LoadRoomEntityList(&gUnk_080DC530); + } + } + if ((!CheckLocalFlagByBank(FLAG_BANK_2, M_ELDER_TALK2ND)) && GetInventoryValue(ITEM_GUST_JAR)) { + LoadRoomEntityList(&gUnk_080DC470); + } + if (!CheckLocalFlag(0x8d)) { + LoadRoomEntityList(&gUnk_080DC4C0); + } + sub_08057E64(); +} + +u32 sub_unk3_MinishVillage_SideHouse() { + return 1; +} + +void sub_StateChange_MinishVillage_SideHouse() { +} + +typedef struct { + u8 LO[0x4000]; + u8 HI[0x4000]; +} struct_086D4460; + +extern struct_086D4460 gUnk_086D4460; + +void sub_unk2_MinishVillage_SideHouse(void) { + LoadResourceAsync(&gUnk_086D4460.LO, 0x6000000, 0x4000); + LoadResourceAsync(&gUnk_086D4460.HI, 0x6008000, 0x4000); + LoadPaletteGroup(0x19); +} + +u32 sub_unk3_CastleGardenMinishHoles_East() { + return 1; +} + +void sub_StateChange_CastleGardenMinishHoles_East() { +} + +u32 sub_unk3_CastleGardenMinishHoles_West() { + return 1; +} + +void sub_StateChange_CastleGardenMinishHoles_West() { +} + +u32 sub_unk3_37_0() { + return 1; +} + +void sub_StateChange_37_0() { +} + +u32 sub_unk3_37_1() { + return 1; +} + +void sub_StateChange_37_1() { +} + +u32 sub_unk3_MinishCracks_LonLonRanchNorth() { + return 1; +} + +void sub_StateChange_MinishCracks_LonLonRanchNorth() { +} + +u32 sub_unk3_MinishCracks_LakeHyliaEast() { + return 1; +} + +void sub_StateChange_MinishCracks_LakeHyliaEast() { +} + +u32 sub_unk3_MinishCracks_HyruleCastleGarden() { + return 1; +} + +void sub_StateChange_MinishCracks_HyruleCastleGarden() { +} + +u32 sub_unk3_MinishCracks_MtCrenel() { + return 1; +} + +void sub_StateChange_MinishCracks_MtCrenel() { +} + +u32 sub_unk3_MinishCracks_EastHyruleCastle() { + return 1; +} + +void sub_StateChange_MinishCracks_EastHyruleCastle() { +} + +u32 sub_unk3_MinishCracks_5() { + return 1; +} + +void sub_StateChange_MinishCracks_5() { +} + +u32 sub_unk3_MinishCracks_CastleWildsBowHole() { + return 1; +} + +extern EntityData gUnk_080DCB10; + +void sub_StateChange_MinishCracks_CastleWildsBowHole(void) { + if (!GetInventoryValue(ITEM_BOW)) { + LoadRoomEntityList(&gUnk_080DCB10); + } +} + +u32 sub_unk3_MinishCracks_RuinsEntrance() { + return 1; +} + +void sub_StateChange_MinishCracks_RuinsEntrance() { +} + +u32 sub_unk3_MinishCracks_MinishWoodsSouth() { + return 1; +} + +void sub_StateChange_MinishCracks_MinishWoodsSouth() { +} + +u32 sub_unk3_MinishCracks_CastorWildsNorth() { + return 1; +} + +void sub_StateChange_MinishCracks_CastorWildsNorth() { +} + +u32 sub_unk3_MinishCracks_CastorWildsWest() { + return 1; +} + +void sub_StateChange_MinishCracks_CastorWildsWest() { +} + +u32 sub_unk3_MinishCracks_CastorWildsMiddle() { + return 1; +} + +void sub_StateChange_MinishCracks_CastorWildsMiddle() { +} + +u32 sub_unk3_MinishCracks_RuinsTektite() { + return 1; +} + +void sub_StateChange_MinishCracks_RuinsTektite() { +} + +u32 sub_unk3_MinishCracks_CastorWildsNextToBow() { + return 1; +} + +void sub_StateChange_MinishCracks_CastorWildsNextToBow() { +} + +u32 sub_unk3_MinishCracks_E() { + return 1; +} + +void sub_StateChange_MinishCracks_E() { +} + +u32 sub_unk3_MinishCracks_F() { + return 1; +} + +void sub_StateChange_MinishCracks_F() { +} + +u32 sub_unk3_MinishCracks_10() { + return 1; +} + +void sub_StateChange_MinishCracks_10() { +} + +u32 sub_unk3_MinishCracks_11() { + return 1; +} + +void sub_StateChange_MinishCracks_11() { +} + +u32 sub_unk3_MelarisMine_Main() { + return 1; +} + +extern EntityData gUnk_additional_8_MelarisMine_Main; +extern EntityData gUnk_additional_9_MelarisMine_Main; +extern EntityData gUnk_080DD294; + +void sub_StateChange_MelarisMine_Main(void) { + if (!CheckGlobalFlag(WHITE_SWORD_END)) { + LoadRoomEntityList(&gUnk_additional_8_MelarisMine_Main); + } + if (!CheckLocalFlag(0x7f)) { + LoadRoomEntityList(&gUnk_additional_9_MelarisMine_Main); + } else { + LoadRoomEntityList(&gUnk_080DD294); + } + SetLocalFlag(0x8e); +} + +u32 sub_unk3_CloudTops_House() { + return 1; +} + +extern EntityData gUnk_080DD364; + +void sub_StateChange_CloudTops_House(void) { + if (!(gSave.windcrests & 0x4000000)) { + LoadRoomEntityList(&gUnk_080DD364); + } +} + +void sub_unk1_CloudTops_House(void) { + if (!(gSave.windcrests & 0x4000000)) { + LoadRoomEntityList(&gUnk_080DD364); + } +} + +u32 sub_unk3_CloudTops_Middle() { + return 1; +} + +void sub_StateChange_CloudTops_Middle() { +} + +u32 sub_unk3_CloudTops_Bottom() { + return 1; +} + +extern EntityData gUnk_080DD7E0; +extern EntityData gUnk_080DD840; + +void sub_StateChange_CloudTops_Bottom(void) { + + if (CheckGlobalFlag(KUMOTATSUMAKI)) { + sub_0809F814(0x6de); + } +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckLocalFlag(0xf0)) { +#else + if (CheckLocalFlag(0xf3)) { +#endif + sub_0809F814(0xe0); + } else { + LoadRoomEntityList(&gUnk_080DD7E0); + } +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckLocalFlag(0xf2)) { +#else + if (CheckLocalFlag(0xf5)) { +#endif + sub_0809F814(0xba3); + } else { + LoadRoomEntityList(&gUnk_080DD840); + } +} + +u32 sub_unk3_Ruins_Entrance() { + return 1; +} + +void sub_StateChange_Ruins_Entrance() { + sub_080300E8(); +#if defined(JP) || defined(EU) || defined(DEMO_JP) + SetLocalFlag(0x25); +#else + SetLocalFlag(0x24); +#endif +} + +u32 sub_unk3_Ruins_Beanstalk() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk() { +} + +u32 sub_unk3_Ruins_TripleTektites() { + return 1; +} + +extern EntityData gUnk_080DDE88; + +void sub_StateChange_Ruins_TripleTektites(void) { + + if (CheckKinstoneFused(0x41)) { + LoadRoomEntityList(&gUnk_080DDE88); + } +} + +void sub_unk1_Ruins_TripleTektites(void) { +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_03_00)) { +#else + if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_02_00)) { +#endif + SetDirtTile(0x85); + } +} + +u32 sub_unk3_Ruins_LadderToTektites() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites() { +} + +u32 sub_unk3_Ruins_FortressEntrance() { + return 1; +} + +extern EntityData gUnk_080DE008; + +void sub_StateChange_Ruins_FortressEntrance(void) { + sub_080300E8(); + if (CheckGlobalFlag(LV3_CLEAR) && !CheckLocalFlag(3)) { + LoadRoomEntityList(&gUnk_080DE008); + } +} + +u32 sub_unk3_Ruins_Armos() { + return 1; +} + +extern EntityData gUnk_080DE1E0; +extern EntityData gUnk_080DE200; + +void sub_StateChange_Ruins_Armos(void) { + sub_080300E8(); +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x31)) { +#else + if (!CheckLocalFlag(0x30)) { +#endif + LoadRoomEntityList(&gUnk_080DE1E0); + } +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x32)) { +#else + if (!CheckLocalFlag(0x31)) { +#endif + LoadRoomEntityList(&gUnk_080DE200); + } +} + +u32 sub_unk3_DeepwoodShrine_Madderpillar() { + return 1; +} + +extern EntityData gUnk_080DE4C8; + +void sub_StateChange_DeepwoodShrine_Madderpillar(void) { + if ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) < (gRoomControls.height >> 1)) { + if (!CheckLocalFlag(0x17)) { + LoadRoomEntityList(&gUnk_080DE4C8); + } + } +} + +u32 sub_unk3_DeepwoodShrine_BluePortal() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_BluePortal() { +} + +u32 sub_unk3_DeepwoodShrine_StairsToB1() { + return 1; +} + +extern EntityData gUnk_080DE814; +extern EntityData gUnk_additional_8_DeepwoodShrine_StairsToB1; + +void sub_StateChange_DeepwoodShrine_StairsToB1(void) { + if (!CheckLocalFlag(0x4b)) { + LoadRoomEntityList(&gUnk_080DE814); + } else { + if (!CheckLocalFlag(0x4c)) { + LoadRoomEntityList(&gUnk_additional_8_DeepwoodShrine_StairsToB1); + SetTileType(0x79, 0x285, 1); + } else { + SetTileType(0x7a, 0x285, 1); + if (!CheckLocalFlag(0x24)) { + SetTileType(0x73, 0x205, 1); + } + } + } +} + +u32 sub_unk3_DeepwoodShrine_PotBridge() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_PotBridge() { +} + +u32 sub_unk3_DeepwoodShrine_DoubleStatue() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_DoubleStatue() { +} + +u32 sub_unk3_DeepwoodShrine_Map() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Map() { +} + +u32 sub_unk3_DeepwoodShrine_Barrel() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Barrel(void) { + if (gSave.unk7 == 0) { + goto a; + } + if (gSave.unk7 != 2) { + a: + SetTileType(0x90, 0x20b, 1); + SetTileType(0x90, 0x411, 1); + } else { + SetTileType(0x90, 0x211, 1); + SetTileType(0x90, 0x40b, 1); + } + if (CheckLocalFlag(0x15)) { + SetTileType(0x76, 0x304, 2); + } + if (CheckLocalFlag(0x16)) { + SetTileType(0x76, 0x318, 2); + } +} + +u32 sub_unk3_DeepwoodShrine_Button() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Button() { +} + +u32 sub_unk3_DeepwoodShrine_Mulldozer() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Mulldozer() { +} + +u32 sub_unk3_DeepwoodShrine_Pillars() { + return 1; +} +void sub_StateChange_DeepwoodShrine_Pillars() { +} + +u32 sub_unk3_DeepwoodShrine_Lever() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Lever() { +} + +u32 sub_unk3_DeepwoodShrine_Entrance() { + return 1; +} + +#if defined(DEMO_USA) || defined(DEMO_JP) +void sub_StateChange_DeepwoodShrine_Entrance() { +#ifdef DEMO_USA + if (gSaveHeader->saveFileId != 0 && GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { +#else +#ifdef DEMO_JP + if (GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { +#endif +#endif + SetTileType(0x365, 0x349, 1); + SetTileType(0x365, 0x34a, 1); + SetTileType(0x365, 0x34b, 1); + } +} +#else +void sub_StateChange_DeepwoodShrine_Entrance() { +} +#endif + +u32 sub_unk3_DeepwoodShrine_Torch() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Torch() { +} + +u32 sub_unk3_DeepwoodShrine_BossKey() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_BossKey() { +} + +u32 sub_unk3_DeepwoodShrine_Compass() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Compass() { +} + +u32 sub_unk3_DeepwoodShrine_13() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_13() { +} + +u32 sub_unk3_DeepwoodShrine_LilyPadWest() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_LilyPadWest() { +} + +u32 sub_unk3_DeepwoodShrine_LilyPadEast() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_LilyPadEast() { +} + +u32 sub_unk3_DeepwoodShrineBoss_Main() { + return 1; +} + +extern EntityData gUnk_additional_a_DeepwoodShrineBoss_Main; + +extern u8 gUpdateVisibleTiles; +extern u32 gUsedPalettes; + +void sub_StateChange_DeepwoodShrineBoss_Main(void) { + + if (!CheckLocalFlag(0x48)) { + SetLocalFlag(0x48); + MenuFadeIn(5, 0); + gUpdateVisibleTiles = 0; + gFadeControl.active = 0; + gUsedPalettes = 0; + *(u16*)0x5000000 = 0x7fff; + DispReset(1); + } + if (CheckGlobalFlag(LV1_CLEAR)) { + LoadRoomEntityList(&gUnk_additional_a_DeepwoodShrineBoss_Main); + } else { + SoundReq(SONG_STOP_BGM); + gArea.musicIndex = gArea.pMusicIndex; + } +} + +u32 sub_unk3_DeepwoodShrine_PreBoss() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_PreBoss() { +} + +u32 sub_unk3_DeepwoodShrine_InsideBarrel() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_InsideBarrel(void) { + sub_08058D34(); + gArea.areaMetadata |= 0x40; + gMain.transition = 5; +} + +u32 sub_unk3_DeepwoodShrineEntry_Main() { + return 1; +} + +extern EntityData gUnk_080DFB78; + +void sub_StateChange_DeepwoodShrineEntry_Main(void) { + if (CheckGlobalFlag(LV1_CLEAR) && !CheckLocalFlagByBank(FLAG_BANK_1, LV1_CLEAR_MES)) { + LoadRoomEntityList(&gUnk_080DFB78); + } +} + +u32 sub_unk3_CaveOfFlames_AfterCane() { + return 1; +} + +void sub_StateChange_CaveOfFlames_AfterCane() { +} + +u32 sub_unk3_CaveOfFlames_SpinyChus() { + return 1; +} + +void sub_StateChange_CaveOfFlames_SpinyChus() { +} + +u32 sub_unk3_CaveOfFlames_CartToSpinyChus() { + return 1; +} + +void sub_StateChange_CaveOfFlames_CartToSpinyChus() { +} + +u32 sub_unk3_CaveOfFlames_Entrance() { + return 1; +} + +#ifdef DEMO_USA +void sub_StateChange_CaveOfFlames_Entrance() { + if (GetInventoryValue(ITEM_FIRE_ELEMENT) == 0) { + SetTileType(0x365, 0x287, 2); + SetTileType(0x365, 0x288, 2); + SetTileType(0x365, 0x289, 2); + } +} +#else +void sub_StateChange_CaveOfFlames_Entrance() { +} +#endif + +u32 sub_unk3_CaveOfFlames_MainCart() { + return 1; +} + +void sub_StateChange_CaveOfFlames_MainCart() { +} + +u32 sub_unk3_CaveOfFlames_NorthEntrance() { + return 1; +} + +void sub_StateChange_CaveOfFlames_NorthEntrance() { +} + +u32 sub_unk3_CaveOfFlames_CartWest() { + return 1; +} + +void sub_StateChange_CaveOfFlames_CartWest() { +} + +u32 sub_unk3_CaveOfFlames_Helmasaur() { + return 1; +} + +void sub_StateChange_CaveOfFlames_Helmasaur() { +} + +u32 sub_unk3_CaveOfFlames_Rollobite() { + return 1; +} + +void sub_StateChange_CaveOfFlames_Rollobite() { +} + +u32 sub_unk3_CaveOfFlames_MinishLava() { + return 1; +} + +void sub_StateChange_CaveOfFlames_MinishLava() { +} + +u32 sub_unk3_CaveOfFlames_MinishSpikes() { + return 1; +} + +void sub_StateChange_CaveOfFlames_MinishSpikes() { +} + +u32 sub_unk3_CaveOfFlames_RollobiteSwitch() { + return 1; +} + +void sub_StateChange_CaveOfFlames_RollobiteSwitch() { +} + +extern u32 gUnk_080E103C; + +u32 sub_unk3_CaveOfFlames_BeforeGleerok(void) { + if (CheckGlobalFlag(LV2_CLEAR)) { + gRoomVars.field_0x6c[1] = &gUnk_080E103C; + } + return 1; +} + +void sub_StateChange_CaveOfFlames_BeforeGleerok() { +} + +u32 sub_unk3_CaveOfFlames_PathBossKey() { + return 1; +} + +void sub_StateChange_CaveOfFlames_PathBossKey() { +} + +u32 sub_unk3_CaveOfFlames_PathBossKey2() { + return 1; +} + +void sub_StateChange_CaveOfFlames_PathBossKey2() { +} + +u32 sub_unk3_CaveOfFlames_Compass() { + return 1; +} + +void sub_StateChange_CaveOfFlames_Compass() { +} + +u32 sub_unk3_CaveOfFlames_Bobomb() { + return 1; +} + +void sub_StateChange_CaveOfFlames_Bobomb() { +} + +u32 sub_unk3_CaveOfFlames_BossDoor() { + return 1; +} + +void sub_StateChange_CaveOfFlames_BossDoor() { +} + +u32 sub_unk3_CaveOfFlames_18() { + return 1; +} + +void sub_StateChange_CaveOfFlames_18() { +} + +u32 sub_unk3_CaveOfFlamesBoss_Main() { + return 1; +} + +extern EntityData gUnk_additional_a_CaveOfFlamesBoss_Main; + +extern u32 gUnk_0200B650; + +void sub_StateChange_CaveOfFlamesBoss_Main(void) { + + if (CheckGlobalFlag(LV2_CLEAR)) { + gUnk_0200B650 = 0; + gScreen.lcd.displayControl &= ~DISPCNT_BG1_ON; + sub_0807AABC(&gPlayerEntity); + LoadRoomEntityList(&gUnk_additional_a_CaveOfFlamesBoss_Main); + } else { + SoundReq(SONG_STOP_BGM); + gArea.musicIndex = gArea.pMusicIndex; + } +} + +u32 sub_unk3_FortressOfWinds_Eyegore() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Eyegore() { +} + +u32 sub_unk3_FortressOfWinds_BeforeMazaal() { + return 1; +} + +void sub_StateChange_FortressOfWinds_BeforeMazaal(void) { + gScreenTransition.field_0x38 = 0; + gScreenTransition.field_0x39 = 0x5a; +} + +u32 sub_unk3_FortressOfWinds_EastKeyLever() { + return 1; +} + +void sub_StateChange_FortressOfWinds_EastKeyLever() { + sub_080300E8(); +} + +u32 sub_unk3_FortressOfWinds_PitPlatforms() { + return 1; +} + +void sub_StateChange_FortressOfWinds_PitPlatforms() { +} + +u32 sub_unk3_FortressOfWinds_WestKeyLever() { + return 1; +} + +void sub_StateChange_FortressOfWinds_WestKeyLever() { + sub_080300E8(); +} + +u32 sub_unk3_FortressOfWinds_Darknut() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Darknut() { +} + +u32 sub_unk3_FortressOfWinds_EyeBridge() { + return 1; +} + +void sub_StateChange_FortressOfWinds_EyeBridge() { +} + +u32 sub_unk3_FortressOfWinds_Pit() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Pit() { +} + +u32 sub_unk3_FortressOfWinds_Wallmaster() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Wallmaster() { +} + +u32 sub_unk3_FortressOfWinds_Clone() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Clone() { +} + +u32 sub_unk3_FortressOfWinds_SpikeTraps() { + return 1; +} + +void sub_StateChange_FortressOfWinds_SpikeTraps() { +} + +u32 sub_unk3_FortressOfWinds_Mazaal() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Mazaal(void) { + + if (!CheckFlags(0x31)) { + if (gScreenTransition.field_0x38 == 0) { + SoundReq(SONG_STOP_BGM); + } else { + if (gScreenTransition.field_0x39 == 0) { + SoundReq(SONG_STOP); + SetPlayerControl(3); + } + } + gArea.musicIndex = gArea.pMusicIndex; + } +} + +u32 sub_unk3_FortressOfWinds_Stalfos() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Stalfos() { +} + +u32 sub_unk3_FortressOfWinds_EntranceMoleMitts() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade0() { +} + +u32 sub_unk3_FortressOfWinds_Main2F() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade1() { +} + +u32 sub_unk3_FortressOfWinds_MinishHole() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade2() { +} + +u32 sub_unk3_FortressOfWinds_BossKey() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade3() { +} + +u32 sub_unk3_FortressOfWinds_WestStairs2F() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade4() { +} + +u32 sub_unk3_FortressOfWinds_EastStairs2F() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade5() { +} + +u32 sub_unk3_FortressOfWinds_WestStairs1F() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade6() { +} + +u32 sub_unk3_FortressOfWinds_CenterStairs1F() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade7() { +} + +u32 sub_unk3_FortressOfWinds_EastStairs1F() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade8() { +} + +u32 sub_unk3_FortressOfWinds_Wizzrobe() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade9() { +} + +u32 sub_unk3_FortressOfWinds_HeartPiece() { + return 1; +} + +void sub_StateChange_Dojos_70() { +} + +u32 sub_unk3_InnerMazaal_Main() { + return 1; +} + +void sub_StateChange_Dojos_71() { +} + +u32 sub_unk3_FortressOfWindsTop_Main() { + return 1; +} + +extern EntityData gUnk_080E3850; + +void sub_StateChange_FortressOfWindsTop_Main(void) { + SetGlobalFlag(LV3_CLEAR); + UpdateGlobalProgress(); + sub_0805B4D0(3); + if (!GetInventoryValue(ITEM_OCARINA) && CheckLocalFlag(0x45)) { + LoadRoomEntityList(&gUnk_080E3850); + } +} + +u32 sub_unk3_TempleOfDroplets_WestHole() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_WestHole() { + sub_0804D0B4(); +} + +void sub_0804D0B4(void) { + if (!CheckLocalFlag(0x29)) { + SetLocalFlag(0x29); + SetLocalFlag(0x4b); + SetLocalFlag(0x4e); + } +} + +u32 sub_unk3_TempleOfDroplets_NorthSplit() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_NorthSplit() { +} + +u32 sub_unk3_TempleOfDroplets_EastHole() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_EastHole() { +} + +u32 sub_unk3_TempleOfDroplets_Entrance() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_Entrance() { +} + +u32 sub_unk3_TempleOfDroplets_NorthwestStairs() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_NorthwestStairs() { +} + +u32 sub_unk3_TempleOfDroplets_ScissorsMiniboss() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_ScissorsMiniboss() { +} + +u32 sub_unk3_TempleOfDroplets_WaterfallNorthwest() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_WaterfallNorthwest() { +} + +u32 sub_unk3_TempleOfDroplets_WaterfallNortheast() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_WaterfallNortheast() { +} + +u32 sub_unk3_TempleOfDroplets_Element() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_Element() { +} + +u32 sub_unk3_TempleOfDroplets_IceCorner() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_IceCorner() { +} + +u32 sub_unk3_TempleOfDroplets_IcePitMaze() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_IcePitMaze() { +} + +u32 sub_unk3_TempleOfDroplets_HoleToBlueChuchu() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_HoleToBlueChuchu() { +} + +u32 sub_unk3_TempleOfDroplets_WaterfallSoutheast() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_WaterfallSoutheast() { +} + +u32 sub_unk3_TempleOfDroplets_WaterfallSouthwest() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_WaterfallSouthwest() { +} + +u32 sub_unk3_TempleOfDroplets_BigOcto() { + return 1; +} + +extern EntityData gUnk_additional_a_TempleOfDroplets_BigOcto; + +void sub_StateChange_TempleOfDroplets_BigOcto(void) { + ChangeLightLevel(0x100); + if (CheckGlobalFlag(LV4_CLEAR)) { + LoadRoomEntityList(&gUnk_additional_a_TempleOfDroplets_BigOcto); + } else { + SoundReq(SONG_STOP_BGM); + gArea.musicIndex = gArea.pMusicIndex; + } +} + +u32 sub_unk3_TempleOfDroplets_ToBigBlueChuchu() { + return 1; +} + +void sub_StateChange_Dojos_72() { +} + +u32 sub_unk3_TempleOfDroplets_BigBlueChuchu() { + return 1; +} + +extern EntityData gUnk_080E4BD8; + +void sub_StateChange_TempleOfDroplets_BigBlueChuchu(void) { + if (!CheckLocalFlag(0x48)) { + ClearLocalFlag(0x46); + LoadRoomEntityList(&gUnk_080E4BD8); + } +} + +u32 sub_unk3_TempleOfDroplets_BigBlueChuchuKey() { + return 1; +} + +extern EntityData gUnk_080E4CF8; +extern EntityData gUnk_080E4CD8; + +void sub_StateChange_TempleOfDroplets_BigBlueChuchuKey(void) { + sub_0804D0B4(); + if (CheckLocalFlag(0x6c)) { + LoadRoomEntityList(&gUnk_080E4CD8); + } else { + LoadRoomEntityList(&gUnk_080E4CF8); + } + if (!CheckLocalFlag(0x4b)) { + ClearLocalFlag(0x49); + } +} + +u32 sub_unk3_TempleOfDroplets_BossKey() { + return 1; +} + +void sub_StateChange_Dojos_73() { +} + +u32 sub_unk3_TempleOfDroplets_NorthSmallKey() { + return 1; +} + +void sub_StateChange_Dojos_74() { +} + +u32 sub_unk3_TempleOfDroplets_BlockCloneButtonPuzzle() { + return 1; +} + +void sub_StateChange_Dojos_75() { +} + +u32 sub_unk3_TempleOfDroplets_BlockClonePuzzle() { + return 1; +} + +void sub_StateChange_Dojos_76() { +} + +u32 sub_unk3_TempleOfDroplets_BlockCloneIceBridge() { + return 1; +} + +void sub_StateChange_Dojos_77() { +} + +u32 sub_unk3_TempleOfDroplets_StairsToScissorsMiniboss() { + return 1; +} + +void sub_StateChange_Dojos_78() { +} + +u32 sub_unk3_TempleOfDroplets_SpikeBar() { + return 1; +} + +void sub_StateChange_Dojos_79() { +} + +u32 sub_unk3_TempleOfDroplets_Lanterns() { + return 1; +} + +void sub_StateChange_Dojos_80() { +} + +u32 sub_unk3_TempleOfDroplets_LilypadIceBlocks() { + return 1; +} + +extern EntityData gUnk_080E5660; +extern EntityData gUnk_080E5680; + +void sub_StateChange_TempleOfDroplets_LilypadIceBlocks(void) { + if (!CheckLocalFlag(0x59)) { + LoadRoomEntityList(&gUnk_080E5660); + } else { + LoadRoomEntityList(&gUnk_080E5680); + } +} + +u32 sub_unk3_TempleOfDroplets_Pit() { + return 1; +} + +void sub_StateChange_Dojos_81() { +} + +u32 sub_unk3_TempleOfDroplets_FireBars() { + return 1; +} + +void sub_StateChange_Dojos_82() { +} + +u32 sub_unk3_TempleOfDroplets_LanternMaze() { + return 1; +} + +void sub_StateChange_Dojos_83() { +} + +u32 sub_unk3_TempleOfDroplets_Madderpillars() { + return 1; +} + +void sub_StateChange_Dojos_84() { +} + +u32 sub_unk3_TempleOfDroplets_AfterMadderpillars() { + return 1; +} + +void sub_StateChange_Dojos_85() { +} + +u32 sub_unk3_TempleOfDroplets_BlueChuchuKeyLever() { + return 1; +} + +extern EntityData gUnk_080E5E3C; +extern EntityData gUnk_080E5E5C; + +void sub_StateChange_TempleOfDroplets_BlueChuchuKeyLever(void) { + sub_0804D0B4(); + if (!CheckLocalFlag(0x4b)) { + LoadRoomEntityList(&gUnk_080E5E3C); + } else { + LoadRoomEntityList(&gUnk_080E5E5C); + } +} + +u32 sub_unk3_TempleOfDroplets_MulldozerKey() { + return 1; +} + +void sub_StateChange_Dojos_86() { +} + +u32 sub_unk3_TempleOfDroplets_BombWall() { + return 1; +} + +void sub_StateChange_Dojos_87() { +} + +u32 sub_unk3_TempleOfDroplets_LilypadWestB2() { + return 1; +} + +void sub_StateChange_Dojos_88() { +} + +u32 sub_unk3_TempleOfDroplets_CompassRoom() { + return 1; +} + +void sub_StateChange_Dojos_89() { +} + +u32 sub_unk3_TempleOfDroplets_LanternScissors() { + return 1; +} + +void sub_StateChange_Dojos_90() { +} + +u32 sub_unk3_TempleOfDroplets_LilypadMiddleB2() { + return 1; +} + +void sub_StateChange_Dojos_91() { +} + +u32 sub_unk3_TempleOfDroplets_LilypadEastB2() { + return 1; +} + +void sub_StateChange_Dojos_92() { +} + +u32 sub_unk3_TempleOfDroplets_FlameBarBlockPuzzle() { + return 1; +} + +void sub_StateChange_Dojos_93() { +} + +u32 sub_unk3_RoyalCrypt_KingGustaf() { + return 1; +} + +extern EntityData gUnk_080E693C; + +void sub_StateChange_RoyalCrypt_KingGustaf(void) { + if (!CheckLocalFlag(0x32)) { + LoadRoomEntityList(&gUnk_080E693C); + } +} + +u32 sub_unk3_RoyalCrypt_WaterRope() { + return 1; +} + +void sub_StateChange_Dojos_94() { +} + +u32 sub_unk3_RoyalCrypt_Gibdo() { + return 1; +} + +void sub_StateChange_Dojos_95() { +} + +u32 sub_unk3_RoyalCrypt_3() { + return 1; +} + +void sub_StateChange_Dojos_96() { +} + +u32 sub_unk3_RoyalCrypt_KeyBlock() { + return 1; +} + +void sub_StateChange_Dojos_97() { +} + +u32 sub_unk3_RoyalCrypt_5() { + return 1; +} + +void sub_StateChange_Dojos_98() { +} + +u32 sub_unk3_RoyalCrypt_6() { + return 1; +} + +void sub_StateChange_Dojos_99() { +} + +u32 sub_unk3_RoyalCrypt_MushroomPit() { + return 1; +} + +void sub_StateChange_RoyalCrypt_MushroomPit() { + sub_08054570(); +} + +u32 sub_unk3_RoyalCrypt_Entrance() { + return 1; +} + +extern EntityData gUnk_080E718C; +extern EntityData gUnk_080E71AC; + +void sub_StateChange_RoyalCrypt_Entrance(void) { + SetTileType(0x312, 0x108, 1); + sub_08054570(); + if (!CheckLocalFlag(0xc4)) { + LoadRoomEntityList(&gUnk_080E718C); + } + if (!CheckLocalFlag(0xc5)) { + LoadRoomEntityList(&gUnk_080E71AC); + } +} + +u32 sub_unk3_PalaceOfWinds_0() { + return 1; +} + +extern EntityData gUnk_additional_9_PalaceOfWinds_0; +extern EntityData gUnk_080E72C4; +extern EntityData gUnk_additional_8_PalaceOfWinds_0; + +void sub_StateChange_PalaceOfWinds_0(void) { + Manager19_Main(NULL); + if (CheckGlobalFlag(LV5_CLEAR)) { + LoadRoomEntityList(&gUnk_additional_9_PalaceOfWinds_0); + } + if (!CheckLocalFlag(0x7b)) { + LoadRoomEntityList(&gUnk_080E72C4); + } else { + SetGlobalFlag(LV5_CLEAR); + if (!GetInventoryValue(ITEM_WIND_ELEMENT)) { + SetPlayerControl(3); + LoadRoomEntityList(&gUnk_additional_8_PalaceOfWinds_0); + gArea.musicIndex = gArea.pMusicIndex; + SoundReq(SONG_STOP_BGM); + } + } +} + +u32 sub_unk3_PalaceOfWinds_1() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_1() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_2() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_2() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_3() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_3() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_4() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_4() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_5() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_5() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_6() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_6() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_7() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_7() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_8() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_8() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_9() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_9() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_10() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_10() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_11() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_11() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_12() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_12() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_13() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_13() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_14() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_14() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_15() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_15() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_16() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_16() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_17() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_17() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_18() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_18() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_19() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_19() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_20() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_20() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_21() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_21() { +} + +u32 sub_unk3_PalaceOfWinds_22() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_22() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_23() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_23() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_24() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_24() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_25() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_25() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_26() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_26() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_27() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_27() { +} + +u32 sub_unk3_PalaceOfWinds_28() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_28() { +} + +u32 sub_unk3_PalaceOfWinds_29() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_29() { +} + +u32 sub_unk3_PalaceOfWinds_30() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_30() { +} + +u32 sub_unk3_PalaceOfWinds_31() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_31() { +} + +u32 sub_unk3_PalaceOfWinds_32() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_32() { +} + +u32 sub_unk3_PalaceOfWinds_33() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_33() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_34() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_34() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_35() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_35() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_36() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_36() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_37() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_37() { +} + +u32 sub_unk3_PalaceOfWinds_38() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_38() { +} + +u32 sub_unk3_PalaceOfWinds_39() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_39() { +} + +u32 sub_unk3_PalaceOfWinds_40() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_40() { +} + +u32 sub_unk3_PalaceOfWinds_41() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_41() { +} + +u32 sub_unk3_PalaceOfWinds_42() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_42() { +} + +u32 sub_unk3_PalaceOfWinds_43() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_43() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_44() { + return 1; +} + +extern EntityData gUnk_080EA09C; + +void sub_StateChange_PalaceOfWinds_44(void) { + Manager19_Main(NULL); + if (!CheckLocalFlag(0x70)) { + LoadRoomEntityList(&gUnk_080EA09C); + } +} + +u32 sub_unk3_PalaceOfWinds_45() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_45() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_46() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_46() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_47() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_47() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_48() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_48() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_49() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_49() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_50() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_50() { +} + +u32 sub_unk3_PalaceOfWindsBoss_Main() { + return 1; +} + +void sub_StateChange_PalaceOfWindsBoss_Main() { +} + +u32 sub_unk3_Vaati2_Main() { + return 1; +} + +void sub_StateChange_Vaati2_Main(void) { + SoundReq(SONG_STOP_BGM); + gArea.musicIndex = gArea.pMusicIndex; +} + +u32 sub_unk3_Vaati3_Main() { + return 1; +} + +void sub_StateChange_Vaati3_Main(void) { + Manager2F_Main(NULL); + + if ((gScreenTransition.field_0x38 & 1) && gScreenTransition.field_0x39) { + if (gScreenTransition.field_0x3c == 1) { + gPlayerEntity.x.HALF.HI = gScreenTransition.field_0x48; + gPlayerEntity.y.HALF.HI = gScreenTransition.field_0x4a + 8; + } else { + if (gScreenTransition.field_0x3c) { + return; + } + gPlayerEntity.x.HALF.HI = gScreenTransition.field_0x44; + gPlayerEntity.y.HALF.HI = gScreenTransition.field_0x46 + 8; + } + } +} + +u32 sub_unk3_DarkHyruleCastleBridge_Main() { + return 1; +} + +void sub_StateChange_DarkHyruleCastleBridge_Main() { + sub_0805B4D0(6); +} + +u32 sub_unk3_VaatisArms_First() { + return 1; +} + +void sub_StateChange_VaatisArms_First() { +} + +u32 sub_unk3_VaatisArms_Second() { + return 1; +} + +void sub_StateChange_VaatisArms_Second() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_ZeldaStatuePlatform() { + sub_080534AC(); + return 1; +} + +extern EntityData gUnk_080EAD68; +extern EntityData gUnk_080EADB8; + +void sub_StateChange_DarkHyruleCastleOutside_ZeldaStatuePlatform(void) { + sub_0805B4D0(4); + if (!CheckLocalFlag(0x77)) { + LoadRoomEntityList(&gUnk_080EAD68); + } else if (!CheckLocalFlag(0x79)) { + LoadRoomEntityList(&gUnk_080EADB8); + SetTileType(0x4072, 0x145, 1); + SetTileType(0x4072, 0x149, 1); + gArea.pMusicIndex = 0; + } +} + +extern u16 gUnk_080EAE00; + +void sub_0804D7EC(void) { + u16 temp; + u16* tilePos; + + tilePos = &gUnk_080EAE00; + while (*tilePos != 0) { + temp = *tilePos; + tilePos++; + SetTileType(0x4072, temp, 1); + } +} + +void sub_0804D810(void) { + u16 uVar1; + u16* puVar2; + + puVar2 = &gUnk_080EAE00; + while (*puVar2 != 0) { + uVar1 = *puVar2; + puVar2++; + sub_0807BA8C(uVar1, 1); + } +} + +u32 sub_unk3_DarkHyruleCastleOutside_Garden() { + return 1; +} + +extern EntityData gUnk_080EAE60; +extern EntityData gUnk_080EAEC0; +extern EntityData gUnk_080EAF20; + +void sub_StateChange_DarkHyruleCastleOutside_Garden(void) { + gArea.areaMetadata = 0x40; + gArea.locationIndex = 0; + if (CheckGlobalFlag(ENDING)) { + if (!CheckLocalFlag(0x7f)) { + LoadRoomEntityList(&gUnk_080EAEC0); + SetLocalFlag(0x7f); + gArea.pMusicIndex = 0x11; + } else { + LoadRoomEntityList(&gUnk_080EAF20); + gArea.pMusicIndex = gArea.musicIndex; + } + } else { + if (CheckLocalFlag(0x79)) { + gArea.pMusicIndex = gArea.musicIndex; + } + if (!CheckLocalFlag(1)) { + LoadRoomEntityList(&gUnk_080EAE60); + } + } + ClearGlobalFlag(0x5d); +} + +u32 sub_unk3_DarkHyruleCastleOutside_OutsideNorthwest() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade0() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_OutsideNortheast() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade1() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_OutsideEast() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade2() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouthwest() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade3() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouth() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade4() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_OutsideSoutheast() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade5() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_8() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade6() { +} + +extern u32 gUnk_080EB604; +extern u32 gUnk_080EB5D4; + +u32 sub_unk3_DarkHyruleCastle_0(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080EB604; + gRoomVars.field_0x6c[2] = 0; + gArea.musicIndex = gArea.pMusicIndex = BGM_BEAT_VAATI; + } else if (CheckLocalFlag(0x79)) { + gRoomVars.field_0x6c[0] = NULL; + if (!CheckLocalFlag(0x7a)) { + SetGlobalFlag(ZELDA_CHASE); + gRoomVars.field_0x6c[0] = &gUnk_080EB5D4; + gRoomVars.field_0x6c[7] = sub_0804D9B0; + gRoomVars.field_0x6c[2] = 0; + } + } + return 1; +} + +void sub_StateChange_DarkHyruleCastle_0(void) { + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } + + if (CheckLocalFlag(0x79)) { + sub_0804D9B0(); + } +} + +extern EntityData gUnk_080EB684; + +void sub_0804D9B0(void) { + sub_0807BB98(0x797, 1, 5, 1); + sub_0807BB98(0x357, 1, 5, 1); + sub_0807BB98(0x55f, 1, 2, 1); + LoadRoomEntityList(&gUnk_080EB684); + gArea.pMusicIndex = gArea.musicIndex; +} + +u32 sub_unk3_DarkHyruleCastle_1() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade7() { +} + +u32 sub_unk3_DarkHyruleCastle_2() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade8() { +} + +u32 sub_unk3_DarkHyruleCastle_3() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade9() { +} + +u32 sub_unk3_DarkHyruleCastle_4() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade0() { +} + +u32 sub_unk3_DarkHyruleCastle_5() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade1() { +} + +u32 sub_unk3_DarkHyruleCastle_6(void) { + if (!CheckLocalFlag(0x77)) { + gRoomVars.field_0x6c[0] = 0; + gRoomVars.field_0x6c[2] = 0; + } + return 1; +} + +extern EntityData gUnk_080EB9F4; +extern EntityData gUnk_080EBAA4; +extern EntityData gUnk_080EBAF4; + +void sub_StateChange_DarkHyruleCastle_6(void) { + if (!CheckLocalFlag(0x77)) { + LoadRoomEntityList(&gUnk_080EB9F4); + } else { + if (!CheckLocalFlag(0x78)) { + LoadRoomEntityList(&gUnk_080EBAA4); + SetLocalFlag(0x75); + } + if (CheckLocalFlag(0x7b)) { + LoadRoomEntityList(&gUnk_080EBAF4); + SetLocalFlag(0x76); + } + } +} + +u32 sub_unk3_DarkHyruleCastle_7() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade2() { +} + +u32 sub_unk3_DarkHyruleCastle_8() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade3() { +} + +u32 sub_unk3_DarkHyruleCastle_9() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade4() { +} + +u32 sub_unk3_DarkHyruleCastle_10() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade5() { +} + +u32 sub_unk3_DarkHyruleCastle_11() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade6() { +} + +u32 sub_unk3_DarkHyruleCastle_12() { + return 1; +} +void sub_StateChange_Dojos_ToSplitblade7() { +} + +u32 sub_unk3_DarkHyruleCastle_13() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade8() { +} + +u32 sub_unk3_DarkHyruleCastle_14() { + return 1; +} + +extern EntityData gUnk_080EC2CC; + +void sub_StateChange_DarkHyruleCastle_14(void) { + if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x4c)) { + LoadRoomEntityList(&gUnk_080EC2CC); + } +} + +u32 sub_unk3_DarkHyruleCastle_15() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade9() { +} + +u32 sub_unk3_DarkHyruleCastle_16() { + return 1; +} + +extern EntityData gUnk_080EC4E8; + +void sub_StateChange_DarkHyruleCastle_16(void) { + if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x4d)) { + LoadRoomEntityList(&gUnk_080EC4E8); + } +} + +u32 sub_unk3_DarkHyruleCastle_17() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade0() { +} + +u32 sub_unk3_DarkHyruleCastle_18() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade1() { +} + +u32 sub_unk3_DarkHyruleCastle_19() { + return 1; +} + +extern EntityData gUnk_080EC820; + +void sub_StateChange_DarkHyruleCastle_19(void) { + if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x53)) { + LoadRoomEntityList(&gUnk_080EC820); + } +} + +u32 sub_unk3_DarkHyruleCastle_20() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade2() { +} + +u32 sub_unk3_DarkHyruleCastle_21() { + return 1; +} + +extern EntityData gUnk_080ECA60; + +void sub_StateChange_DarkHyruleCastle_21(void) { + if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x56)) { + LoadRoomEntityList(&gUnk_080ECA60); + } +} + +u32 sub_unk3_DarkHyruleCastle_22() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade3() { +} + +u32 sub_unk3_DarkHyruleCastle_23() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade4() { +} + +u32 sub_unk3_DarkHyruleCastle_24() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade5() { +} + +u32 sub_unk3_DarkHyruleCastle_25() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade6() { +} + +u32 sub_unk3_DarkHyruleCastle_26() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade7() { +} + +u32 sub_unk3_DarkHyruleCastle_27() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade8() { +} + +u32 sub_unk3_DarkHyruleCastle_28(void) { + if (CheckLocalFlag(0x79)) { + gRoomVars.field_0x6c[2] = 0; + } + return 1; +} + +extern EntityData gUnk_080ECFCC; + +void sub_StateChange_DarkHyruleCastle_28(void) { + if (CheckLocalFlag(0x79)) { + sub_0807BB98(0x90, 1, 1, 5); + LoadRoomEntityList(&gUnk_080ECFCC); + gArea.pMusicIndex = gArea.musicIndex; + } +} + +u32 sub_unk3_DarkHyruleCastle_29() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade9() { +} + +u32 sub_unk3_DarkHyruleCastle_30() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade0() { +} + +extern u32 gUnk_080ED1E4; + +u32 sub_unk3_DarkHyruleCastle_31(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080ED1E4; + gRoomVars.field_0x6c[2] = 0; + } + return 1; +} + +void sub_StateChange_DarkHyruleCastle_31(void) { + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } +} + +u32 sub_unk3_DarkHyruleCastle_32() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade1() { +} + +u32 sub_unk3_DarkHyruleCastle_33() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade2() { +} + +u32 sub_unk3_DarkHyruleCastle_34() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade3() { +} + +u32 sub_unk3_DarkHyruleCastle_35() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade4() { +} + +u32 sub_unk3_DarkHyruleCastle_36() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade5() { +} + +u32 sub_unk3_DarkHyruleCastle_37() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade6() { +} + +u32 sub_unk3_DarkHyruleCastle_38() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade7() { +} + +u32 sub_unk3_DarkHyruleCastle_39() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade8() { +} + +u32 sub_unk3_DarkHyruleCastle_40() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade9() { +} + +u32 sub_unk3_DarkHyruleCastle_41() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave0() { +} + +u32 sub_unk3_DarkHyruleCastle_42() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave1() { +} + +u32 sub_unk3_DarkHyruleCastle_43() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave2() { +} + +u32 sub_unk3_DarkHyruleCastle_44() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave3() { +} + +u32 sub_unk3_DarkHyruleCastle_45() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave4() { +} + +u32 sub_unk3_DarkHyruleCastle_46() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave5() { +} + +u32 sub_unk3_DarkHyruleCastle_47() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave6() { +} + +u32 sub_unk3_DarkHyruleCastle_48() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave7() { +} + +u32 sub_unk3_DarkHyruleCastle_49() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave8() { +} + +u32 sub_unk3_DarkHyruleCastle_50() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave9() { +} + +u32 sub_unk3_DarkHyruleCastle_51() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk0() { +} + +u32 sub_unk3_DarkHyruleCastle_52() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk1() { +} + +u32 sub_unk3_DarkHyruleCastle_53(void) { + if (CheckLocalFlag(0x79)) { + gRoomVars.field_0x6c[2] = 0; + gRoomVars.field_0x6c[0] = 0; + } + return 1; +} + +extern EntityData gUnk_080EE314; + +void sub_StateChange_DarkHyruleCastle_53(void) { + if (CheckLocalFlag(0x79)) { + sub_0807BB98(3, 2, 5, 1); + LoadRoomEntityList(&gUnk_080EE314); + gArea.pMusicIndex = gArea.musicIndex; + } +} + +u32 sub_unk3_DarkHyruleCastle_54() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk2() { +} + +u32 sub_unk3_DarkHyruleCastle_55(void) { + if (CheckLocalFlag(0x79)) { + gRoomVars.field_0x6c[2] = 0; + } + return 1; +} + +extern EntityData gUnk_080EE5DC; + +void sub_StateChange_DarkHyruleCastle_55(void) { + if (CheckLocalFlag(0x79)) { + sub_0807BB98(0x392, 2, 2, 5); + LoadRoomEntityList(&gUnk_080EE5DC); + gArea.pMusicIndex = gArea.musicIndex; + } +} + +u32 sub_unk3_DarkHyruleCastle_56() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk3() { +} + +u32 sub_unk3_DarkHyruleCastle_57() { + return 1; +} + +extern EntityData gUnk_080EE71C; + +void sub_StateChange_DarkHyruleCastle_57(void) { + if (CheckLocalFlag(1)) { + LoadRoomEntityList(&gUnk_080EE71C); + } +} + +u32 sub_unk3_DarkHyruleCastle_58() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk4() { +} + +ASM_FUNC("asm/non_matching/sub_unk3_HyruleTown_0.inc", u32 sub_unk3_HyruleTown_0(void)) + +extern EntityData gUnk_080EEB6C; +extern EntityData gUnk_080EEB8C; +extern EntityData gUnk_080EE88C; +extern EntityData gUnk_080EE8FC; +extern EntityData gUnk_080EE91C; +extern EntityData gUnk_080EECBC; +extern EntityData gUnk_080EE93C; +extern EntityData gUnk_080EE95C; +extern EntityData gUnk_080EE97C; +extern EntityData gUnk_080EE9BC; +extern EntityData gUnk_080EE99C; +extern EntityData gUnk_080EE9DC; +extern EntityData gUnk_080EEA3C; +extern EntityData gUnk_080EEA1C; +extern EntityData gUnk_080EE9FC; +extern EntityData gUnk_080EEA5C; +extern EntityData gUnk_080EEABC; +extern EntityData gUnk_080EEA7C; +extern EntityData gUnk_080EEA9C; +extern EntityData gUnk_080EEBAC; + +void sub_StateChange_HyruleTown_0(void) { + sub_08054570(); + TryLoadPrologueHyruleTown(); +#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) + SetTileType(0x176, 0x66b, 1); +#endif + if (gSave.global_progress == 1) { + sub_0801D000(0); + } else { + sub_08018C58(0xdb4); + if (!CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE04_DANRO)) { + LoadRoomEntityList(&gUnk_080EEB6C); + } + if (!CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE06_DANRO)) { + LoadRoomEntityList(&gUnk_080EEB8C); + } + + if ((!GetInventoryValue(ITEM_KINSTONE_BAG)) && CheckGlobalFlag(LV1_CLEAR)) { + LoadRoomEntityList(&gUnk_080EE88C); + } + if (!CheckKinstoneFused(0x28)) { + LoadRoomEntityList(&gUnk_080EE8FC); + } + if (CheckKinstoneFused(0x33)) { + LoadRoomEntityList(&gUnk_080EE91C); + } + if (CheckGlobalFlag(MACHI_MACHIHOKORI)) { + LoadRoomEntityList(&gUnk_080EE93C); + } else { + LoadRoomEntityList(&gUnk_080EECBC); + } + if (CheckKinstoneFused(0x1b) && (gSave.global_progress > 3)) { + if (!(CheckGlobalFlag(NEW_HOUSE_DIN) || CheckGlobalFlag(NEW_HOUSE_NAYRU) || + CheckGlobalFlag(NEW_HOUSE_FARORE))) { + if (!(CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || + CheckGlobalFlag(RENTED_HOUSE_FARORE))) { + LoadRoomEntityList(&gUnk_080EE95C); + } else { + if (!CheckGlobalFlag(TATEKAKE_HOUSE)) { + LoadRoomEntityList(&gUnk_080EE97C); + } else { + LoadRoomEntityList(&gUnk_080EE9BC); + } + } + } else { + LoadRoomEntityList(&gUnk_080EE99C); + } + } + if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { + LoadRoomEntityList(&gUnk_080EE9FC); + } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { + LoadRoomEntityList(&gUnk_080EEA1C); + } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { + LoadRoomEntityList(&gUnk_080EEA3C); + } else { + LoadRoomEntityList(&gUnk_080EE9DC); + } + if ((gSave.global_progress > 4) && !CheckKinstoneFused(0xb) && + (CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || + CheckGlobalFlag(RENTED_HOUSE_FARORE))) { + LoadRoomEntityList(&gUnk_080EEA5C); + } + // rocs cape +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0xcd) && GetInventoryValue(ITEM_ROCS_CAPE)) { +#else + if (!CheckLocalFlag(0xd0) && GetInventoryValue(ITEM_ROCS_CAPE)) { +#endif + LoadRoomEntityList(&gUnk_080EEABC); + } + if ((gSave.global_progress > 3) && CheckGlobalFlag(INLOCK)) { + LoadRoomEntityList(&gUnk_080EEA7C); + } + if ((gSave.global_progress < 6) && !CheckGlobalFlag(MIZUKAKI_START)) { + LoadRoomEntityList(&gUnk_080EEA9C); + } + if ((gSave.windcrests & 0x8000000) == 0) { + LoadRoomEntityList(&gUnk_080EEBAC); + } + sub_0804E150(); + } +} + +void sub_unk1_HyruleTown_8(void) { + if ((gSave.windcrests & 0x8000000) == 0) { + LoadRoomEntityList(&gUnk_080EEBAC); + } +} + +ASM_FUNC("asm/non_matching/sub_0804E150.inc", void sub_0804E150(void)) + +u32 sub_unk3_HyruleTownMinishCaves_Entrance() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_Entrance() { +} + +u32 sub_unk3_HyruleTownMinishCaves_NorthRoom() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_NorthRoom() { +} + +u32 sub_unk3_HyruleTownMinishCaves_PacciJump() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_PacciJump() { +} + +u32 sub_unk3_HyruleTownMinishCaves_MulldozerFight() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_MulldozerFight() { +} + +u32 sub_unk3_HyruleTownMinishCaves_WestChest() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_WestChest() { +} + +u32 sub_unk3_HyruleTownMinishCaves_Flippers() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_Flippers() { +} + +u32 sub_unk3_HyruleTownMinishCaves_Librari() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_Librari() { +} + +u32 sub_unk3_HyruleTownMinishCaves_WestFrozenChest() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_WestFrozenChest() { +} + +u32 sub_unk3_HyruleTownMinishCaves_CrossIntersection() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_CrossIntersection() { +} + +u32 sub_unk3_HyruleTownMinishCaves_SoutheastCorner() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_SoutheastCorner() { +} + +u32 sub_unk3_HyruleTownMinishCaves_Entrance2() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_Entrance2() { +} + +u32 sub_unk3_HyruleTownUnderground_Main() { + return 1; +} + +void sub_StateChange_HyruleTownUnderground_Main() { +} + +u32 sub_unk3_HyruleTownUnderground_Well() { + return 1; +} + +void sub_StateChange_HyruleTownUnderground_Well() { +} + +extern u32 gUnk_080F09A0; + +u32 sub_unk3_CastleGarden_Main(void) { + if (GetInventoryValue(ITEM_FOURSWORD)) { + gRoomVars.field_0x6c[1] = &gUnk_080F09A0; + } + return 1; +} + +extern EntityData gUnk_080F0650; +extern EntityData gUnk_080F0800; +extern EntityData gUnk_080F08F0; +extern EntityData gUnk_080F0850; +extern EntityData gUnk_080F0870; +extern EntityData gUnk_080F0890; +extern EntityData gUnk_080F0920; + +void sub_StateChange_CastleGarden_Main(void) { + if (!CheckGlobalFlag(TABIDACHI)) { + LoadRoomEntityList(&gUnk_080F0650); +#ifdef EU + gArea.pMusicIndex = BGM_FESTIVAL_APPROACH; +#else + gArea.pMusicIndex = BGM_BEANSTALK; + SetGlobalFlag(CASTLE_BGM); + } else { + if (CheckGlobalFlag(CASTLE_BGM)) { +#if defined(JP) || defined(DEMO_JP) + gArea.pMusicIndex = gArea.musicIndex; +#else + gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; +#endif + } +#endif + } +#if defined(JP) || defined(DEMO_JP) || defined(EU) + if (!CheckLocalFlag(0x9b)) { +#else + if (!CheckLocalFlag(0x9c)) { +#endif + LoadRoomEntityList(&gUnk_080F0800); + SetTileType(0x4072, 600, 1); + SetTileType(0x4072, 0x298, 1); + SetTileType(0x4072, 0x266, 1); + SetTileType(0x4072, 0x2a6, 1); + } else { + if (!GetInventoryValue(ITEM_FOURSWORD)) { + LoadRoomEntityList(&gUnk_080F08F0); + SetTileType(0x4072, 0x9e, 1); + SetTileType(0x4072, 0x9f, 1); + SetTileType(0x4072, 0xa0, 1); + } + LoadRoomEntityList(&gUnk_080F0850); + if (!GetInventoryValue(ITEM_WATER_ELEMENT)) { + LoadRoomEntityList(&gUnk_080F0870); + } else { + LoadRoomEntityList(&gUnk_080F0890); + } + SetTileType(0x4072, 600, 1); + SetTileType(0x4072, 0x298, 1); +#if defined(JP) || defined(DEMO_JP) || defined(EU) + if (CheckLocalFlag(0x11)) { +#else + if (CheckLocalFlag(0x10)) { +#endif + LoadRoomEntityList(&gUnk_080F0920); +#if defined(JP) || defined(DEMO_JP) || defined(EU) + ClearLocalFlag(0x11); +#else + ClearLocalFlag(0x10); +#endif + } + } + sub_080AF284(); +} + +u32 sub_unk3_SimonsSimulation_Main() { + ClearLocalFlag(1); + return 1; +} + +extern u8* gUnk_080F0D58[4]; +extern Entity* gUnk_080F0CB8[15]; +extern u8* gUnk_080F0E08[]; +extern struct { + u32 unk_00; + u32 unk_04; +} gUnk_080F0E1C[]; + +void sub_StateChange_SimonsSimulation_Main() { + u32 r; + u32 index; + u32 tmp; + tmp = CheckGlobalFlag(LV4_CLEAR); + index = BOOLCAST(tmp); + if (CheckGlobalFlag(LV5_CLEAR)) { + index = 2; + } + if (CheckGlobalFlag(GAMECLEAR)) { + index = 3; + } + r = Random(); + index = gUnk_080F0D58[index][r & 0x1f]; + LoadRoomEntityList((EntityData*)gUnk_080F0CB8[index & 0xF]); + index >>= 4; + r >>= 8; + index = gUnk_080F0E08[index][r & 0x1F]; + if (!CheckLocalFlag(0xC6)) { + SetLocalFlag(0xC6); + index = 0xE; + } + sub_0804B3C4(&gUnk_080F0E1C[index]); + SoundReq(SONG_STOP_BGM); +} + +u32 sub_unk3_HouseInteriors2_Stranger() { + return 1; +} + +extern EntityData gUnk_080F1C68; +extern EntityData gUnk_080F1C88; + +void sub_StateChange_HouseInteriors2_Stranger(void) { + if (!CheckGlobalFlag(POWERGLOVE_HINT)) { + LoadRoomEntityList(&gUnk_080F1C68); + } else { + LoadRoomEntityList(&gUnk_080F1C88); + } +} + +u32 sub_unk3_HouseInteriors2_WestOracle() { + return 1; +} + +extern EntityData gUnk_080F1D90; +extern EntityData gUnk_080F1DB0; +extern EntityData gUnk_080F1DD0; + +void sub_StateChange_HouseInteriors2_WestOracle(void) { + if (CheckGlobalFlag(NEW_HOUSE_DIN)) { + LoadRoomEntityList(&gUnk_080F1D90); + } else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) { + LoadRoomEntityList(&gUnk_080F1DB0); + } else if (CheckGlobalFlag(NEW_HOUSE_FARORE)) { + LoadRoomEntityList(&gUnk_080F1DD0); + } +} + +u32 sub_unk3_HouseInteriors2_2() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk5() { +} + +u32 sub_unk3_HouseInteriors2_3() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk6() { +} + +u32 sub_unk3_HouseInteriors2_DrLeft() { + return 1; +} + +extern EntityData gUnk_080F2174; +extern EntityData gUnk_080F2194; +extern EntityData gUnk_080F21B4; + +void sub_StateChange_HouseInteriors2_DrLeft(void) { + LoadRoomEntityList(&gUnk_080F2174); + if (!GetInventoryValue(ITEM_QST_BOOK2) && CheckGlobalFlag(MIZUKAKI_HARIFALL)) { + LoadRoomEntityList(&gUnk_080F2194); + } + if (gScreenTransition.player_status.spawn_type == PL_SPAWN_MINISH) { + LoadRoomEntityList(&gUnk_080F21B4); + } +} + +u32 sub_unk3_HouseInteriors2_Romio() { + return 1; +} + +extern EntityData gUnk_080F23BC; +extern EntityData gUnk_080F238C; +extern EntityData gUnk_additional_c_HouseInteriors2_Romio; + +void sub_StateChange_HouseInteriors2_Romio(void) { + if (gSave.global_progress > 7) { + LoadRoomEntityList(&gUnk_080F23BC); + } + if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START)) { + LoadRoomEntityList(&gUnk_080F238C); + } else { + LoadRoomEntityList(&gUnk_additional_c_HouseInteriors2_Romio); + } +} + +u32 sub_unk3_HouseInteriors2_Julietta() { + return 1; +} + +extern EntityData gUnk_080F2570; +extern EntityData gUnk_080F2590; +extern EntityData gUnk_080F25C0; +extern EntityData gUnk_080F2600; + +void sub_StateChange_HouseInteriors2_Julietta(void) { + switch (gSave.global_progress) { + case 0: + case 2: + case 4: + LoadRoomEntityList(&gUnk_080F2570); + break; + case 1: + case 3: + break; + case 5: + if (!GetInventoryValue(ITEM_FLIPPERS)) { + if (!CheckGlobalFlag(MIZUKAKI_START)) { + LoadRoomEntityList(&gUnk_080F2570); + break; + } + if (!GetInventoryValue(0x39)) { + LoadRoomEntityList(&gUnk_080F25C0); + } + } else { + LoadRoomEntityList(&gUnk_080F2590); + } + break; + case 8: + case 9: + LoadRoomEntityList(&gUnk_080F2600); + case 6: + case 7: + LoadRoomEntityList(&gUnk_080F2590); + } +} + +u32 sub_unk3_HouseInteriors2_Percy() { + return 1; +} + +extern EntityData gUnk_additional_9_HouseInteriors2_Percy; +extern EntityData gUnk_080F2860; +extern EntityData gUnk_additional_a_HouseInteriors2_Percy; +extern EntityData gUnk_080F27D8; +extern EntityData gUnk_080F2798; + +void sub_StateChange_HouseInteriors2_Percy(void) { + if (CheckKinstoneFused(0x21)) { + if (!CheckLocalFlag(0x42)) { + if (!CheckLocalFlag(0x43)) { + LoadRoomEntityList(&gUnk_additional_9_HouseInteriors2_Percy); + LoadRoomTileEntities(&gUnk_080F2860); + } else { + LoadRoomEntityList(&gUnk_additional_a_HouseInteriors2_Percy); + } + } else if (!CheckLocalFlag(0x3f)) { + LoadRoomEntityList(&gUnk_080F27D8); + } else { + LoadRoomEntityList(&gUnk_080F2798); + } + } +} + +u32 sub_unk3_HouseInteriors2_EastOracle() { + return 1; +} + +extern EntityData gUnk_080F28D4; +extern EntityData gUnk_080F28F4; +extern EntityData gUnk_080F2914; + +void sub_StateChange_HouseInteriors2_EastOracle(void) { + if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { + LoadRoomEntityList(&gUnk_080F28D4); + } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { + LoadRoomEntityList(&gUnk_080F28F4); + } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { + LoadRoomEntityList(&gUnk_080F2914); + } +} + +u32 sub_unk3_HouseInteriors2_A() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk7() { +} + +u32 sub_unk3_HouseInteriors2_B() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk8() { +} + +u32 sub_unk3_HouseInteriors2_Cucco() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk9() { +} + +u32 sub_unk3_HouseInteriors2_LinksHouseEntrance() { + return 1; +} + +extern EntityData gUnk_080F2E2C; + +void sub_StateChange_HouseInteriors2_LinksHouseEntrance(void) { + if (!CheckGlobalFlag(OUTDOOR)) { + gArea.musicIndex = gArea.pMusicIndex; + SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); + } + if (!CheckGlobalFlag(START)) { + LoadRoomEntityList(&gUnk_080F2E2C); + } +} + +u32 sub_unk3_HouseInteriors2_LinksHouseSmith() { + return 1; +} + +extern EntityData gUnk_080F2E94; +extern EntityData gUnk_080F2EC4; + +void sub_StateChange_HouseInteriors2_LinksHouseSmith(void) { + if (!CheckGlobalFlag(OUTDOOR)) { + gArea.musicIndex = gArea.pMusicIndex; + SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); + } + if (!CheckGlobalFlag(START)) { + LoadRoomEntityList(&gUnk_080F2E94); + } else { + LoadRoomEntityList(&gUnk_080F2EC4); + } +} + +u32 sub_unk3_HouseInteriors2_Dampe() { + return 1; +} + +extern EntityData gUnk_080F2FD4; + +void sub_StateChange_HouseInteriors2_Dampe(void) { + if (!CheckLocalFlag(0x69) || GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) > 1) { + LoadRoomEntityList(&gUnk_080F2FD4); + } +} + +u32 sub_unk3_HouseInteriors2_Stockwell() { + return 1; +} + +extern EntityData gUnk_080F30CC; + +void sub_StateChange_HouseInteriors2_Stockwell(void) { + if ((GetInventoryValue(ITEM_QST_DOGFOOD) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) && (gPlayerState.flags & PL_MINISH) == 0) { + LoadRoomEntityList(&gUnk_080F30CC); + } +} + +u32 sub_unk3_HouseInteriors2_LinksHouseBedroom() { + return 1; +} + +extern EntityData gUnk_080F31D8; +extern u32 script_08009B30; + +void sub_StateChange_HouseInteriors2_LinksHouseBedroom(void) { + if (!CheckGlobalFlag(START) && !CheckLocalFlag(0x46)) { + sub_080A71C4(5, 1, 4, 4); + gUpdateVisibleTiles = 0; + DoFade(5, 256); + sub_080751E8(0, 6, &script_08009B30); + } + if (!CheckGlobalFlag(OUTDOOR)) { + gArea.musicIndex = gArea.pMusicIndex; + SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); + } + if ((gPlayerState.flags & 8) == 0) { + LoadRoomEntityList(&gUnk_080F31D8); + } +} + +extern u32 script_08009E58; + +void sub_0804E864(void) { + gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x90; + gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; + sub_080751E8(1, 6, &script_08009E58); + ModHealth(0xa0); +} + +u32 sub_unk3_HouseInteriors4_Carpenter() { + return 1; +} + +extern EntityData gUnk_080F3260; + +void sub_StateChange_HouseInteriors4_Carpenter(void) { + if (GetInventoryValue(ITEM_PACCI_CANE)) { + LoadRoomEntityList(&gUnk_080F3260); + SetTileType(0x4072, 0x202, 1); + SetTileType(0x4072, 0x242, 1); + SetTileType(0x4072, 0x204, 1); + SetTileType(0x4072, 0x244, 1); + } +} + +u32 sub_unk3_HouseInteriors4_Swiftblade() { + return 1; +} + +void sub_StateChange_HouseInteriors4_Swiftblade() { + sub_08054564(); +} + +u32 sub_unk3_HouseInteriors4_RanchHouseWest() { + return 1; +} + +extern EntityData gUnk_080F36FC; +extern EntityData gUnk_080F3604; + +void sub_StateChange_HouseInteriors4_RanchHouseWest(void) { + if (!CheckGlobalFlag(INLOCK)) { + LoadRoomEntityList(&gUnk_080F36FC); + } else if (gSave.global_progress < 4) { + LoadRoomEntityList(&gUnk_080F3604); + } +} + +u32 sub_unk3_HouseInteriors4_RanchHouseEast() { + return 1; +} + +extern EntityData gUnk_080F37D0; + +void sub_StateChange_HouseInteriors4_RanchHouseEast(void) { + if (CheckGlobalFlag(INLOCK)) { + LoadRoomEntityList(&gUnk_080F37D0); + } +} + +u32 sub_unk3_HouseInteriors4_FarmHouse() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites0() { +} + +u32 sub_unk3_HouseInteriors4_Mayor() { + return 1; +} + +extern EntityData gUnk_080F3A48; + +void sub_StateChange_HouseInteriors4_Mayor(void) { + if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(ITEM_QST_BOOK3)) { + LoadRoomEntityList(&gUnk_080F3A48); + } + gScreenTransition.player_status.field_0x20 = 0xf28; + gScreenTransition.player_status.field_0x22 = 0x82d; +} + +extern u32 Enemies_LakeHylia_Main; +extern u32 gUnk_080F3EA4; + +u32 sub_unk3_LakeHylia_Main(void) { + if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) { + gRoomVars.field_0x6c[2] = &gUnk_080F3EA4; + } else { + gRoomVars.field_0x6c[2] = &Enemies_LakeHylia_Main; + } + return 1; +} + +extern EntityData gUnk_080F3C64; +extern EntityData gUnk_080F3C94; +extern EntityData gUnk_080F3C44; + +void sub_StateChange_LakeHylia_Main(void) { + if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) { + LoadRoomEntityList(&gUnk_080F3C64); + } + if (CheckKinstoneFused(0x12)) { + LoadRoomEntityList(&gUnk_080F3C94); + } + if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { + LoadRoomEntityList(&gUnk_080F3C44); + } + SetTile(0x4091, 0x590, 1); + SetTile(0x4091, 0x591, 1); + SetTile(0x4091, 0x592, 1); + SetTile(0x4091, 0x593, 1); + SetTile(0x4091, 0x594, 1); + SetTile(0x4091, 0x5d0, 1); + SetTile(0x4091, 0x610, 1); + SetTile(0x4091, 0x650, 1); + SetTile(0x4091, 0x5d4, 1); + SetTile(0x4091, 0x614, 1); + SetTile(0x4091, 0x654, 1); + SetTile(0x4091, 0x690, 1); + SetTile(0x4091, 0x691, 1); + SetTile(0x4091, 0x692, 1); + SetTile(0x4091, 0x693, 1); + SetTile(0x4091, 0x694, 1); +} + +u32 sub_unk3_LakeHylia_Beanstalk() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites1() { +} + +u32 sub_unk3_LakeWoodsCave_Main() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites2() { +} + +u32 sub_unk3_HyliaDigCaves_Middle() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites3() { +} + +u32 sub_unk3_HyliaDigCaves_North() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites4() { +} + +u32 sub_unk3_CastorWildsDigCave_Main() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites5() { +} + +u32 sub_unk3_HyruleDigCaves_Main() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites6() { +} + +u32 sub_unk3_CrenelDigCave_Main() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites7() { +} + +u32 sub_unk3_DigCaves1_HyruleFieldFarm() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites8() { +} + +u32 sub_unk3_DigCaves1_TrilbyHighlands() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites9() { +} + +u32 sub_unk3_VeilFallsDigCave_Main() { + return 1; +} + +void sub_StateChange_VeilFallsDigCave_Main() { +} + +u32 sub_unk3_OuterFortressOfWinds_EntranceHall(void) { + gArea.areaMetadata |= 0x48; + return 1; +} + +void sub_StateChange_OuterFortressOfWinds_EntranceHall() { +} + +u32 sub_unk3_OuterFortressOfWinds_2F(void) { + gArea.areaMetadata |= 0x48; + return 1; +} + +void sub_StateChange_OuterFortressOfWinds_2F() { +} + +u32 sub_unk3_OuterFortressOfWinds_3F(void) { + gArea.areaMetadata |= 0x48; + return 1; +} + +void sub_StateChange_OuterFortressOfWinds_3F() { +} + +u32 sub_unk3_OuterFortressOfWinds_MoleMitts(void) { + sub_0801DD58(0x58, 5); + gArea.areaMetadata |= 0x48; + return 1; +} + +void sub_StateChange_OuterFortressOfWinds_MoleMitts() { +} + +u32 sub_unk3_OuterFortressOfWinds_SmallKey(void) { + sub_0801DD58(0x58, 6); + gArea.areaMetadata |= 0x48; + return 1; +} + +void sub_StateChange_OuterFortressOfWinds_SmallKey() { +} + +extern u32 gUnk_080F4EB0; + +u32 sub_unk3_MinishWoods_Main(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080F4EB0; + gRoomVars.field_0x6c[2] = NULL; + } + return 1; +} + +extern EntityData gUnk_080F4D50; +extern EntityData gUnk_080F4DB0; +extern EntityData gUnk_080F4DD0; +extern EntityData gUnk_080F4DF0; +extern EntityData gUnk_080F4F10; +extern EntityData gUnk_080F4E10; + +void sub_StateChange_MinishWoods_Main(void) { + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } + if (!CheckGlobalFlag(EZERO_1ST)) { + LoadRoomEntityList(&gUnk_080F4D50); + } +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x3d)) { + if (!CheckLocalFlag(0x3a)) { +#else + if (!CheckLocalFlag(0x3e)) { + if (!CheckLocalFlag(0x3b)) { +#endif + LoadRoomEntityList(&gUnk_080F4DB0); + } else { + LoadRoomEntityList(&gUnk_080F4DD0); + } + LoadRoomEntityList(&gUnk_080F4DF0); + } + if (CheckKinstoneFused(0x4e)) { + LoadRoomEntityList(&gUnk_080F4F10); + } + if ((s32)gSave.windcrests > -1) { + LoadRoomEntityList(&gUnk_080F4E10); + } +#ifdef DEMO_USA + SetTileType(0x177, 0x5b4, 1); + SetTileType(0x177, 0x5f4, 1); +#endif +} + +void sub_unk1_MinishWoods_Main(void) { + if ((s32)gSave.windcrests > -1) { + LoadRoomEntityList(&gUnk_080F4E10); + } +} + +u32 sub_unk3_Empty_Main() { + return 1; +} + +void sub_StateChange_Empty_Main() { +} + +extern u32 gUnk_080F5348; + +u32 sub_unk3_SanctuaryEntrance_Main(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080F5348; + gRoomVars.field_0x6c[7] = sub_0804ED18; + gRoomVars.field_0x6c[2] = NULL; + } + return 1; +} + +extern EntityData gUnk_080F5328; +extern EntityData gUnk_080F5308; + +void sub_StateChange_SanctuaryEntrance_Main(void) { + if (GetInventoryValue(ITEM_GREEN_SWORD)) { + LoadRoomEntityList(&gUnk_080F5328); +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x15)) { +#else + if (!CheckLocalFlag(0x14)) { +#endif + LoadRoomEntityList(&gUnk_080F5308); + } + } +} + +void sub_0804ED18(void) { + gArea.pMusicIndex = gArea.musicIndex; +} + +u32 sub_unk3_Sanctuary_Hall() { + return 1; +} + +void sub_StateChange_Sanctuary_Hall(void) { + sub_080AF2E4(); + if (CheckGlobalFlag(SEIIKI_BGM)) { + gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; + } +} + +u32 sub_unk3_Sanctuary_Main() { + return 1; +} + +extern EntityData gUnk_080F54E8; +extern EntityData gUnk_080F5508; +extern EntityData gUnk_080F5558; +extern EntityData gUnk_080F5598; +extern EntityData gUnk_080F55D8; +extern EntityData gUnk_080F5528; +extern EntityData gUnk_080F5578; +extern EntityData gUnk_080F55B8; + +void sub_StateChange_Sanctuary_Main(void) { + if (!CheckLocalFlag(0x79)) { + LoadRoomEntityList(&gUnk_080F54E8); + } + if (!CheckLocalFlag(0x7a)) { + if (GetInventoryValue(ITEM_GREEN_SWORD) && !GetInventoryValue(ITEM_RED_SWORD) && GetInventoryValue(ITEM_EARTH_ELEMENT) && GetInventoryValue(ITEM_FIRE_ELEMENT)) { + LoadRoomEntityList(&gUnk_080F5508); + } + } else { + if (!CheckLocalFlag(0x7b)) { + if (GetInventoryValue(ITEM_RED_SWORD) && !GetInventoryValue(ITEM_BLUE_SWORD) && GetInventoryValue(ITEM_WATER_ELEMENT)) { + LoadRoomEntityList(&gUnk_080F5558); + } + } else { + if (!CheckLocalFlag(0x7c)) { + if (!GetInventoryValue(ITEM_FOURSWORD) && GetInventoryValue(ITEM_WIND_ELEMENT)) { + LoadRoomEntityList(&gUnk_080F5598); + } + } else { + LoadRoomEntityList(&gUnk_080F55D8); + } + } + } + if (CheckLocalFlag(0x7a)) { + LoadRoomEntityList(&gUnk_080F5528); + } + if (CheckLocalFlag(0x7b)) { + LoadRoomEntityList(&gUnk_080F5578); + } + if (CheckLocalFlag(0x7c)) { + LoadRoomEntityList(&gUnk_080F55B8); + } + if (CheckGlobalFlag(SEIIKI_BGM)) { + gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; + } +} + +u32 sub_unk3_Sanctuary_StainedGlass() { + return 1; +} + +extern EntityData gUnk_080F5660; + +void sub_StateChange_Sanctuary_StainedGlass(void) { + if (!CheckLocalFlag(0x78) && CheckLocalFlag(0x7c)) { + LoadRoomEntityList(&gUnk_080F5660); + } + if (CheckGlobalFlag(SEIIKI_BGM)) { + gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; + } +} + +u32 sub_unk3_HouseInteriors3_StockwellShop() { + return 1; +} + +extern EntityData gUnk_080F5758; +extern EntityData gUnk_080F57E8; +extern EntityData gUnk_080F57A8; +extern EntityData gUnk_080F57C8; +extern EntityData gUnk_080F5888; +extern EntityData gUnk_080F58A8; +extern EntityData gUnk_080F5868; +extern EntityData gUnk_080F5828; +extern EntityData gUnk_080F5848; +extern EntityData gUnk_080F5788; + +void sub_StateChange_HouseInteriors3_StockwellShop(void) { + LoadRoomEntityList(&gUnk_080F5758); + if (!GetInventoryValue(0x36) && CheckLocalFlagByBank(0x200, 0x8f)) { + LoadRoomEntityList(&gUnk_080F57E8); + } + if (!CheckLocalFlag(0x55)) { + LoadRoomEntityList(&gUnk_080F57A8); + } else { + if (gBombBagSizes[gSave.stats.bombBagType] >= 30) { + LoadRoomEntityList(&gUnk_080F57C8); + } + if (!GetInventoryValue(ITEM_BOOMERANG) && !GetInventoryValue(ITEM_MAGIC_BOOMERANG)) { + LoadRoomEntityList(&gUnk_080F5888); +#ifndef EU + } else { + if (!CheckLocalFlag(0xcd)) { + LoadRoomEntityList(&gUnk_080F58A8); + } +#endif + } + } + if (GetInventoryValue(ITEM_BOW) || CheckGlobalFlag(LV3_CLEAR)) { + LoadRoomEntityList(&gUnk_080F5868); + if (!CheckLocalFlag(0x56)) { + LoadRoomEntityList(&gUnk_080F5828); + } else { + LoadRoomEntityList(&gUnk_080F5848); + } + } + if (gSave.stats.filler3[0] == 0) { + LoadRoomEntityList(&gUnk_080F5788); + } +} + +u32 sub_unk3_HouseInteriors3_Cafe() { + return 1; +} + +void sub_StateChange_HouseInteriors3_Cafe() { +} + +u32 sub_unk3_HouseInteriors3_RemShoeShop() { + return 1; +} + +extern EntityData gUnk_080F5B3C; + +void sub_StateChange_HouseInteriors3_RemShoeShop(void) { +#ifndef EU + if (GetInventoryValue(0x38) == 1) { + LoadRoomEntityList(&gUnk_080F5B3C); + } +#endif +} + +u32 sub_unk3_HouseInteriors3_Bakery() { + return 1; +} +void sub_StateChange_HouseInteriors3_Bakery() { +} + +u32 sub_unk3_HouseInteriors3_Simon(void) { + if (CheckGlobalFlag(MAROYA_WAKEUP)) { + gScreenTransition.player_status.spawn_type = 5; + } + return 1; +} + +extern EntityData gUnk_080F5DD0; +extern u32 script_08011C50; + +void sub_StateChange_HouseInteriors3_Simon(void) { + if (gSave.global_progress > 7) { + LoadRoomEntityList(&gUnk_080F5DD0); + } + if (CheckGlobalFlag(MAROYA_WAKEUP)) { + sub_080751E8(1, 2, &script_08011C50); + } +} + +u32 sub_unk3_HouseInteriors3_FigurineHouse() { + return 1; +} + +extern EntityData gUnk_080F5E68; + +void sub_StateChange_HouseInteriors3_FigurineHouse(void) { +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlagByBank(0x100, 0xce)) { +#else + if (!CheckLocalFlagByBank(0x100, 0xd1)) { +#endif + LoadRoomEntityList(&gUnk_080F5E68); + } +} + +u32 sub_unk3_HouseInteriors3_BorlovEntrance() { + return 1; +} + +extern EntityData gUnk_additional_8_HouseInteriors3_BorlovEntrance; +extern EntityData gUnk_additional_9_HouseInteriors3_BorlovEntrance; +extern EntityData gUnk_additional_a_HouseInteriors3_BorlovEntrance; + +void sub_StateChange_HouseInteriors3_BorlovEntrance(void) { + if (gSave.global_progress > 4) { + LoadRoomEntityList(&gUnk_additional_8_HouseInteriors3_BorlovEntrance); + } + if (!CheckLocalFlag(0x92)) { + LoadRoomEntityList(&gUnk_additional_9_HouseInteriors3_BorlovEntrance); + } else { + LoadRoomEntityList(&gUnk_additional_a_HouseInteriors3_BorlovEntrance); + } +} + +u32 sub_unk3_HouseInteriors3_Carlov() { + return 1; +} + +void sub_StateChange_HouseInteriors3_Carlov() { +} + +u32 sub_unk3_HouseInteriors3_Borlov() { + return 1; +} + +void sub_StateChange_HouseInteriors3_Borlov() { +} + +u32 sub_unk3_WindTribeTower_Entrance(void) { +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByBank(0x100, 0xd9)) { +#else + if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByBank(0x100, 0xdc)) { +#endif + SetGlobalFlag(WARP_EVENT_END); + } + return 1; +} + +extern EntityData gUnk_080F61BC; + +void sub_StateChange_WindTribeTower_Entrance(void) { +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckLocalFlagByBank(0x100, 0xd9)) { +#else + if (CheckLocalFlagByBank(0x100, 0xdc)) { +#endif + SetLocalFlag(0x90); + } + if (CheckKinstoneFused(0xf)) { + LoadRoomEntityList(&gUnk_080F61BC); + } + if (!CheckGlobalFlag(WARP_EVENT_END)) { + SetTileType(0x4072, 0x4c7, 1); + SetTileType(0x4072, 0x507, 1); + } + sub_08052CA4(8, 0, 0x1e8, 0x158); +} + +u32 sub_unk3_WindTribeTower_Floor2() { + return 1; +} + +extern EntityData gUnk_080F62E4; +extern EntityData gUnk_080F6324; + +void sub_StateChange_WindTribeTower_Floor2(void) { + if (!CheckGlobalFlag(WARP_EVENT_END)) { + LoadRoomEntityList(&gUnk_080F62E4); + } else { + if (CheckLocalFlag(99)) { + LoadRoomEntityList(&gUnk_080F6324); + } + } +} + +u32 sub_unk3_WindTribeTower_Floor3() { + return 1; +} + +void sub_StateChange_WindTribeTower_Floor3() { +} + +u32 sub_unk3_WindTribeTower_Floor4() { + return 1; +} + +extern EntityData gUnk_080F6564; +extern EntityData gUnk_080F6584; + +void sub_StateChange_WindTribeTower_Floor4(void) { + if (!CheckLocalFlag(0xb1)) { + LoadRoomEntityList(&gUnk_080F6564); + } else { + LoadRoomEntityList(&gUnk_080F6584); + } +} + +u32 sub_unk3_WindTribeTowerRoof_Main() { + return 1; +} + +extern EntityData gUnk_080F66AC; + +void sub_StateChange_WindTribeTowerRoof_Main(void) { + sub_0805B4D0(5); + if (CheckGlobalFlag(LV5_CLEAR) && !CheckLocalFlagByBank(0x100, 5)) { + LoadRoomEntityList(&gUnk_080F66AC); + } + sub_08052CA4(8, 0, 0x1e8, 0x158); +#ifndef EU + gArea.areaMetadata |= 0x80; +#endif +} + +u32 sub_unk3_Beanstalks_MountCrenel() { + return 1; +} + +void sub_StateChange_Beanstalks_MountCrenel() { +} + +u32 sub_unk3_Beanstalks_LakeHylia() { + return 1; +} + +void sub_StateChange_Beanstalks_LakeHylia() { +} + +u32 sub_unk3_Beanstalks_Ruins() { + return 1; +} + +void sub_StateChange_Beanstalks_Ruins() { +} + +u32 sub_unk3_Beanstalks_EasternHills() { + return 1; +} + +void sub_StateChange_Beanstalks_EasternHills() { +} + +u32 sub_unk3_Beanstalks_WesternWoods() { + return 1; +} + +void sub_StateChange_Beanstalks_WesternWoods() { +} + +u32 sub_unk3_Beanstalks_MountCrenelClimb() { + return 1; +} + +void sub_StateChange_Beanstalks_MountCrenelClimb() { +} + +u32 sub_unk3_Beanstalks_LakeHyliaClimb() { + return 1; +} + +void sub_StateChange_Beanstalks_LakeHyliaClimb() { +} + +u32 sub_unk3_Beanstalks_RuinsClimb() { + return 1; +} + +void sub_StateChange_Beanstalks_RuinsClimb() { +} + +u32 sub_unk3_Beanstalks_EasternHillsClimb() { + return 1; +} + +void sub_StateChange_Beanstalks_EasternHillsClimb() { +} + +u32 sub_unk3_Beanstalks_WesternWoodsClimb() { + return 1; +} + +void sub_StateChange_Beanstalks_WesternWoodsClimb() { +} + +u32 sub_unk3_HyruleField_WesternWoodSouth() { + return 1; +} + +void sub_StateChange_HyruleField_WesternWoodSouth() { + Manager18_Main(0); +} + +u32 sub_unk3_HyruleField_LinksHouseExterior(void) { +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x6b)) { +#else + if (!CheckLocalFlag(0x6d)) { +#endif + DoFade(7, 256); + } + SetGlobalFlag(OUTDOOR); + return 1; +} + +extern EntityData gUnk_080F70A8; +extern EntityData gUnk_080F70D8; +extern EntityData gUnk_080F7088; + +void sub_StateChange_HyruleField_LinksHouseExterior(void) { + Manager18_Main(NULL); +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x6b)) { +#else + if (!CheckLocalFlag(0x6d)) { +#endif + LoadRoomEntityList(&gUnk_080F70A8); + ClearGlobalFlag(ZELDA_CHASE); + } + if (!CheckGlobalFlag(TABIDACHI)) { + gArea.pMusicIndex = BGM_FESTIVAL_APPROACH; + } + if ((gSave.windcrests & 0x40000000) == 0) { + LoadRoomEntityList(&gUnk_080F70D8); + } + if (gSave.global_progress > 3) { + LoadRoomEntityList(&gUnk_080F7088); + } +} + +void sub_unk1_HyruleField_LinksHouseExterior(void) { + if ((gSave.windcrests & 0x40000000) == 0) { + LoadRoomEntityList(&gUnk_080F70D8); + } +} + +u32 sub_unk3_HyruleField_FromMinishWoods() { + return 1; +} + +void sub_StateChange_HyruleField_FromMinishWoods() { + Manager18_Main(NULL); +} + +u32 sub_unk3_HyruleField_FromMinishWoodsNorth() { + return 1; +} + +void sub_StateChange_HyruleField_FromMinishWoodsNorth() { + Manager18_Main(NULL); +} + +extern u32 gUnk_080F7680; + +u32 sub_unk3_HyruleField_Farmers(void) { + if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { + gRoomVars.field_0x6c[2] = &gUnk_080F7680; + } + return 1; +} + +extern EntityData gUnk_080F7500; +extern EntityData gUnk_080F7550; + +void sub_StateChange_HyruleField_Farmers(void) { + Manager18_Main(NULL); + if (gSave.global_progress > 3) { + LoadRoomEntityList(&gUnk_080F7500); + } + if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { + LoadRoomEntityList(&gUnk_080F7550); + SetTileType(0x4072, 0x311, 1); + SetTileType(0x4072, 0x351, 1); + SetTileType(0x4072, 0x3d9, 1); + SetTileType(0x4072, 0x419, 1); + } +} + +u32 sub_unk3_HyruleField_LonLonRanch() { + return 1; +} + +extern EntityData gUnk_080F77F0; +extern EntityData gUnk_080F77C0; +extern EntityData gUnk_080F7810; +extern EntityData gUnk_080F7860; +extern EntityData gUnk_080F78A0; + +void sub_StateChange_HyruleField_LonLonRanch(void) { + + Manager18_Main(0); + if (CheckLocalFlagByBank(0x200, 0x8f)) { + if (!CheckGlobalFlag(INLOCK)) { + LoadRoomEntityList(&gUnk_080F77C0); + } + } else if (GetInventoryValue(ITEM_EARTH_ELEMENT)) { + LoadRoomEntityList(&gUnk_080F77F0); + } + if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(ITEM_EARTH_ELEMENT)) { + LoadRoomEntityList(&gUnk_080F7810); + } + if (!CheckKinstoneFused(0x29)) { + LoadRoomEntityList(&gUnk_080F7860); + SetTile(0x4072, 0xd88, 1); + SetTile(0x4096, 0xdc8, 1); + } + if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { + LoadRoomEntityList(&gUnk_080F78A0); + } +} + +extern u32 gUnk_080F7CD0; +extern void sub_0804F5E8(); +extern u32 gUnk_080F7C80; +extern void sub_0804F4E4(); + +u32 sub_unk3_HyruleField_OutsideCastle(void) { + if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(0x11)) { + gRoomVars.field_0x6c[0] = &gUnk_080F7CD0; + gRoomVars.field_0x6c[7] = sub_0804F5E8; + } +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8a)) { +#else + if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8c)) { +#endif + gRoomVars.field_0x6c[0] = &gUnk_080F7C80; + gRoomVars.field_0x6c[7] = sub_0804F4E4; + gRoomVars.field_0x6c[2] = NULL; + } +#ifndef EU + if (CheckGlobalFlag(TABIDACHI)) { + ClearGlobalFlag(CASTLE_BGM); + } +#endif + return 1; +} + +void sub_0804F4E4() { + Manager18_Main(NULL); + sub_0804F578(); +} + +extern EntityData gUnk_080F7D70; + +void sub_StateChange_HyruleField_OutsideCastle(void) { + sub_0804F4E4(); +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x89)) { +#else + if (!CheckLocalFlag(0x8b)) { +#endif + LoadRoomEntityList(&gUnk_080F7D70); + SetTileType(0x174, 0x7a2, 1); + SetTileType(0x174, 0x7a3, 1); + SetTileType(0x174, 0x7a5, 1); + SetTileType(0x174, 0x7a6, 1); + SetTileType(0x174, 0x7a7, 1); + } + if (!CheckGlobalFlag(TABIDACHI)) { +#ifdef EU + gArea.pMusicIndex = 0x10; +#else + gArea.pMusicIndex = 0x13; +#endif + } +} + +extern EntityData gUnk_080F7DC0; + +void sub_0804F578(void) { +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x8c)) { +#else + if (!CheckLocalFlag(0x8e)) { +#endif + LoadRoomEntityList(&gUnk_080F7DC0); + } else { + SetTileType(0x37, 0x94a, 1); + SetTileType(0x37, 0x94b, 1); + SetTileType(0x37, 0x94c, 1); + SetTileType(0x37, 0x98a, 1); + SetTileType(0x37, 0x98b, 1); + SetTileType(0x37, 0x98c, 1); + } +} + +void sub_0804F5E8(void) { + sub_0804F4E4(); + SetTileType(0x1d3, 0xbde, 1); + SetTileType(0x1d6, 0xbe2, 1); + SetTileType(0x1d4, 0xc1f, 1); + SetTileType(0x1d5, 0xc20, 1); + SetTileType(0x1d6, 0xc5e, 1); + SetTileType(0x4072, 0xb9b, 1); + SetTileType(0x4072, 0xbdb, 1); + SetTileType(0x4072, 0xaa4, 1); + SetTileType(0x4072, 0xae4, 1); +} + +void sub_0804F680(Entity* parent, s32 x, s32 y) { + Entity* fx; + + fx = CreateFx(parent, FX_DEATH, 0); + if (fx != NULL) { + fx->x.HALF.HI = gRoomControls.roomOriginX + x; + fx->y.HALF.HI = gRoomControls.roomOriginY + y; + } +} + +void sub_0804F6A8(Entity* this) { + sub_0804F680(this, 0x1d8, 0x108); + sub_0804F680(this, 0x218, 0x188); +} + +void sub_0804F6C8(Entity* this) { + sub_0804F680(this, 0x1e8, 0x108); + sub_0804F680(this, 0x208, 0x188); +} + +void sub_0804F6E8(Entity* this) { + sub_0804F680(this, 0x1f8, 0x108); + sub_0804F680(this, 0x258, 0x138); + sub_0804F680(this, 0x1f8, 0x188); + sub_0804F680(this, 0x198, 0x158); +} + +void sub_0804F724(Entity* this) { + sub_0804F680(this, 0x208, 0x108); + sub_0804F680(this, 0x258, 0x148); + sub_0804F680(this, 0x1e8, 0x188); + sub_0804F680(this, 0x198, 0x148); +} + +void sub_0804F760(Entity* this) { + sub_0804F680(this, 0x218, 0x108); + sub_0804F680(this, 0x258, 0x158); + sub_0804F680(this, 0x1d8, 0x188); + sub_0804F680(this, 0x198, 0x138); +} + +void sub_0804F79C(Entity* parent) { + Entity* fx; + + fx = CreateFx(parent, FX_BIG_EXPLOSION, 0); + if (fx != NULL) { + fx->spriteRendering.b3 = 0; + fx->x.HALF.HI = gRoomControls.roomOriginX + 0x1b8; + fx->y.HALF.HI = gRoomControls.roomOriginY + 0x148; + } + fx = CreateFx(parent, FX_BIG_EXPLOSION, 0); + if (fx != NULL) { + fx->spriteRendering.b3 = 0; + fx->x.HALF.HI = gRoomControls.roomOriginX + 0x238; + fx->y.HALF.HI = gRoomControls.roomOriginY + 0x148; + } +} + +void sub_0804F808(void) { + SetTileType(0x1d3, 0x41d, 1); + SetTileType(0x1d3, 0x621, 1); +} + +void sub_0804F830(void) { + SetTileType(0x1d4, 0x41e, 1); + SetTileType(0x1d4, 0x620, 1); +} + +void sub_0804F854(void) { + SetTileType(0x1d5, 0x41f, 1); + SetTileType(0x1d4, 0x4e5, 1); + SetTileType(0x1d5, 0x61f, 1); + SetTileType(0x1d4, 0x559, 1); +} + +void sub_0804F89C(void) { + SetTileType(0x1d6, 0x420, 1); + SetTileType(0x1d5, 0x525, 1); + SetTileType(0x1d6, 0x61e, 1); + SetTileType(0x1d5, 0x519, 1); +} + +void sub_0804F8E0(void) { + SetTileType(0x1d3, 0x421, 1); + SetTileType(0x1d6, 0x565, 1); + SetTileType(0x1d3, 0x61d, 1); + SetTileType(0x1d6, 0x4d9, 1); +} + +void sub_0804F928(void) { + sub_0807BA8C(0x41d, 1); + sub_0807BA8C(0x621, 1); +} + +void sub_0804F944(void) { + sub_0807BA8C(0x41e, 1); + sub_0807BA8C(0x620, 1); +} + +void sub_0804F960(void) { + sub_0807BA8C(0x41f, 1); + sub_0807BA8C(0x4e5, 1); + sub_0807BA8C(0x61f, 1); + sub_0807BA8C(0x559, 1); +} + +void sub_0804F994(void) { + sub_0807BA8C(0x420, 1); + sub_0807BA8C(0x525, 1); + sub_0807BA8C(0x61e, 1); + sub_0807BA8C(0x519, 1); +} + +void sub_0804F9C8(void) { + sub_0807BA8C(0x421, 1); + sub_0807BA8C(0x565, 1); + sub_0807BA8C(0x61d, 1); + sub_0807BA8C(0x4d9, 1); +} + +u32 sub_unk3_HyruleField_OutsideCastleWest() { + return 1; +} + +extern EntityData gUnk_080F806C; + +void sub_StateChange_HyruleField_OutsideCastleWest(void) { + Manager18_Main(NULL); + if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { + LoadRoomEntityList(&gUnk_080F806C); + } +} + +u32 sub_unk3_HyruleField_TrilbyHighlands() { + return 1; +} + +extern EntityData gUnk_080F82E0; + +void sub_StateChange_HyruleField_TrilbyHighlands(void) { + Manager18_Main(NULL); +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(ITEM_RED_SWORD) && !CheckLocalFlag(0x9b)) { +#else + if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(ITEM_RED_SWORD) && !CheckLocalFlag(0x9c)) { +#endif + LoadRoomEntityList(&gUnk_080F82E0); + } +} + +u32 sub_unk3_HyruleField_PercysHouse() { + return 1; +} + +extern EntityData gUnk_080F8430; + +void sub_StateChange_HyruleField_PercysHouse(void) { + Manager18_Main(NULL); + if (CheckKinstoneFused(0x21) && !CheckLocalFlagByBank(0x200, 0x42)) { + LoadRoomEntityList(&gUnk_080F8430); + } +} + +u32 sub_unk3_Caves_Boomerang() { + return 1; +} + +extern EntityData gUnk_080F85F8; +extern EntityData gUnk_080F85D8; + +void sub_StateChange_Caves_Boomerang(void) { + if (CheckGlobalFlag(SOUGEN_06_HASHIGO)) { + LoadRoomEntityList(&gUnk_080F85D8); + } else { + LoadRoomEntityList(&gUnk_080F85F8); + } + if (!GetInventoryValue(0xc)) { + ClearLocalFlag(8); + } +} + +u32 sub_unk3_Caves_ToGraveyard() { + return 1; +} + +void sub_StateChange_Caves_ToGraveyard() { +} + +u32 sub_unk3_Caves_2() { + return 1; +} + +void sub_StateChange_Caves_2() { +} + +u32 sub_unk3_Caves_3() { + return 1; +} + +void sub_StateChange_Caves_3() { +} + +u32 sub_unk3_Caves_4() { + return 1; +} + +void sub_StateChange_Caves_4() { +} + +u32 sub_unk3_Caves_5() { + return 1; +} + +void sub_StateChange_Caves_5() { +} + +u32 sub_unk3_Caves_6() { + return 1; +} + +void sub_StateChange_Caves_6() { +} + +u32 sub_unk3_Caves_KeeseChest() { + return 1; +} + +void sub_StateChange_Caves_KeeseChest() { +} + +u32 sub_unk3_Caves_FairyFountainTrilbyHighlands() { + return 1; +} + +void sub_StateChange_Caves_FairyFountainTrilbyHighlands() { +} + +u32 sub_unk3_Caves_FairyFountainLinksHouse() { + return 1; +} + +void sub_StateChange_Caves_FairyFountainLinksHouse() { +} + +u32 sub_unk3_Caves_A() { + return 1; +} + +void sub_StateChange_Caves_A() { +} + +u32 sub_unk3_Caves_HyruleTownWaterfall() { + return 1; +} + +void sub_StateChange_Caves_HyruleTownWaterfall() { +} + +u32 sub_unk3_Caves_LonLonRanch() { + return 1; +} + +void sub_StateChange_Caves_LonLonRanch() { +} + +u32 sub_unk3_Caves_LonLonRanchSecret() { + return 1; +} + +void sub_StateChange_Caves_LonLonRanchSecret(void) { + if (CheckLocalFlag(0x11)) { + SetRoomFlag(0); + SetRoomFlag(1); + ChangeLightLevel(0x100); + if (!CheckLocalFlag(0x12)) { + SetTileType(0x73, 0xcb, 1); + } + } +} + +u32 sub_unk3_Caves_TrilbyHighlands() { + return 1; +} + +void sub_StateChange_Caves_TrilbyHighlands() { +} + +u32 sub_unk3_Caves_LonLonRanchWallet() { + return 1; +} + +void sub_StateChange_Caves_LonLonRanchWallet() { +} + +u32 sub_unk3_Caves_RupeeLinksHouse() { + return 1; +} + +void sub_StateChange_Caves_RupeeLinksHouse() { +} + +u32 sub_unk3_Caves_RupeeTrilbyHighlands() { + return 1; +} + +void sub_StateChange_Caves_RupeeTrilbyHighlands() { +} + +u32 sub_unk3_Caves_FairyFountainMoleMitts() { + return 1; +} + +void sub_StateChange_Caves_FairyFountainMoleMitts() { +} + +u32 sub_unk3_Caves_KeeseChestSoutheastHyrule() { + return 1; +} +void sub_StateChange_Caves_KeeseChestSoutheastHyrule() { +} + +u32 sub_unk3_Caves_BottleBusinessScrub() { + return 1; +} + +void sub_StateChange_Caves_BottleBusinessScrub() { +} + +u32 sub_unk3_Caves_HeartPieceHallway() { + return 1; +} + +void sub_StateChange_Caves_HeartPieceHallway() { +} + +u32 sub_unk3_Caves_FairyFountainBoomerang() { + return 1; +} + +void sub_StateChange_Caves_FairyFountainBoomerang() { +} + +u32 sub_unk3_Caves_KinstoneBusinessScrub() { + return 1; +} + +void sub_StateChange_Caves_KinstoneBusinessScrub() { +} + +u32 sub_unk3_VeilFalls_Main() { + return 1; +} + +extern EntityData gUnk_080F9304; + +void sub_StateChange_VeilFalls_Main(void) { + if ((gSave.windcrests & 0x2000000) == 0) { + LoadRoomEntityList(&gUnk_080F9304); + } +} + +void sub_unk1_VeilFalls_Main(void) { + if ((gSave.windcrests & 0x2000000) == 0) { + LoadRoomEntityList(&gUnk_080F9304); + } +} + +u32 sub_unk3_VeilFallsCaves_Hallway2F() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_Hallway2F() { +} + +u32 sub_unk3_VeilFallsCaves_Hallway1F() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_Hallway1F() { +} + +u32 sub_unk3_VeilFallsCaves_SecretRoom() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_SecretRoom() { +} + +u32 sub_unk3_VeilFallsCaves_Entrance() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_Entrance() { +} + +u32 sub_unk3_VeilFallsCaves_Exit() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_Exit() { +} + +u32 sub_unk3_VeilFallsCaves_SecretChest() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_SecretChest() { +} + +u32 sub_unk3_VeilFallsCaves_SecretStaircases() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_SecretStaircases() { +} + +u32 sub_unk3_VeilFallsCaves_BlockPuzzle() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_BlockPuzzle() { +} + +u32 sub_unk3_VeilFallsCaves_RupeePath() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_RupeePath() { +} + +u32 sub_unk3_VeilFallsCaves_HeartPiece() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_HeartPiece() { +} + +extern u32 gUnk_080F9BF8; + +u32 sub_unk3_VeilFallsTop_Main(void) { + if (!CheckKinstoneFused(0xe)) { + gRoomVars.field_0x6c[0] = &gUnk_080F9BF8; + } + return 1; +} + +void sub_StateChange_VeilFallsTop_Main() { + sub_0805B4D0(2); + sub_0806D0B0(0); +} + +u32 sub_unk3_47_0() { + return 1; +} + +void sub_StateChange_47_0() { +} + +u32 sub_unk3_47_1() { + return 1; +} + +void sub_StateChange_47_1() { +} + +u32 sub_unk3_47_2() { + return 1; +} + +void sub_StateChange_47_2() { +} + +u32 sub_unk3_47_3() { + return 1; +} + +void sub_StateChange_47_3() { +} + +u32 sub_unk3_47_4() { + return 1; +} + +void sub_StateChange_47_4() { +} + +u32 sub_unk3_TreeInteriors_WitchHut() { + return 1; +} + +extern EntityData gUnk_080F9FA8; +extern EntityData gUnk_080F9F88; + +void sub_StateChange_TreeInteriors_WitchHut(void) { + if (CheckKinstoneFused(0x14)) { + LoadRoomEntityList(&gUnk_080F9FA8); + } + if (!GetInventoryValue(ITEM_QST_MUSHROOM)) { + LoadRoomEntityList(&gUnk_080F9F88); + } +} + +u32 sub_0804FCD4() { + return 1; +} + +void nullsub_434() { +} + +u32 sub_0804FCDC() { + return 1; +} + +void nullsub_435() { +} + +u32 sub_0804FCE4() { + return 1; +} + +void nullsub_436() { +} + +u32 sub_0804FCEC() { + return 1; +} + +void nullsub_437() { +} + +u32 sub_0804FCF4() { + return 1; +} + +void nullsub_438() { +} + +u32 sub_0804FCFC() { + return 1; +} + +void nullsub_439() { +} + +u32 sub_0804FD04() { + return 1; +} + +void nullsub_440() { +} + +u32 sub_0804FD0C() { + return 1; +} + +void nullsub_441() { +} + +u32 sub_0804FD14() { + return 1; +} + +void nullsub_442() { +} + +u32 sub_0804FD1C() { + return 1; +} + +void nullsub_443() { +} + +u32 sub_0804FD24() { + return 1; +} + +void nullsub_444() { +} + +u32 sub_0804FD2C() { + return 1; +} + +void nullsub_445() { +} + +u32 sub_0804FD34() { + return 1; +} + +void nullsub_446() { +} + +u32 sub_0804FD3C() { + return 1; +} + +void nullsub_447() { +} + +u32 sub_0804FD44() { + return 1; +} + +void nullsub_448() { +} + +u32 sub_unk3_TreeInteriors_StairsToCarlov() { + return 1; +} + +void sub_StateChange_TreeInteriors_StairsToCarlov() { +} + +u32 sub_unk3_TreeInteriors_PercysTreehouse() { + return 1; +} + +extern EntityData gUnk_080FA5D0; + +void sub_StateChange_TreeInteriors_PercysTreehouse(void) { + if (!CheckKinstoneFused(0x21)) { + LoadRoomEntityList(&gUnk_080FA5D0); + } +} + +u32 sub_unk3_TreeInteriors_HeartPiece() { + return 1; +} +void sub_StateChange_TreeInteriors_HeartPiece() { +} + +u32 sub_unk3_TreeInteriors_StairsToBladeBrother() { + return 1; +} + +void sub_StateChange_TreeInteriors_StairsToBladeBrother() { +} + +u32 sub_unk3_TreeInteriors_14() { + return 1; +} + +void sub_StateChange_TreeInteriors_14() { +} + +u32 sub_unk3_TreeInteriors_BoomerangNorthwest() { + return 1; +} + +void sub_StateChange_TreeInteriors_BoomerangNorthwest() { +} + +u32 sub_unk3_TreeInteriors_BoomerangNortheast() { + return 1; +} + +void sub_StateChange_TreeInteriors_BoomerangNortheast() { +} + +u32 sub_unk3_TreeInteriors_BoomerangSouthwest() { + return 1; +} + +void sub_StateChange_TreeInteriors_BoomerangSouthwest() { +} + +u32 sub_unk3_TreeInteriors_BoomerangSoutheast() { + return 1; +} + +void sub_StateChange_TreeInteriors_BoomerangSoutheast() { +} + +u32 sub_unk3_TreeInteriors_HeartPieceSouthwestField() { + return 1; +} + +void sub_StateChange_TreeInteriors_HeartPieceSouthwestField() { +} + +u32 sub_unk3_TreeInteriors_StairsToFairyFountain() { + return 1; +} + +void sub_StateChange_TreeInteriors_StairsToFairyFountain() { +} + +u32 sub_unk3_TreeInteriors_StairsToWalletFairy() { + return 1; +} + +void sub_StateChange_TreeInteriors_StairsToWalletFairy() { +} + +u32 sub_unk3_TreeInteriors_1C() { + return 1; +} + +void sub_StateChange_TreeInteriors_1C() { +} + +u32 sub_unk3_TreeInteriors_StairsToBusinessScrub() { + return 1; +} + +void sub_StateChange_TreeInteriors_StairsToBusinessScrub() { +} + +u32 sub_unk3_TreeInteriors_1E() { + return 1; +} + +void sub_StateChange_TreeInteriors_1E() { +} + +u32 sub_unk3_TreeInteriors_1F() { + return 1; +} + +void sub_StateChange_TreeInteriors_1F() { +} + +extern u32 gUnk_080FAD48; + +u32 sub_unk3_MtCrenel_MountainTop(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080FAD48; + gRoomVars.field_0x6c[2] = NULL; + } + return 1; +} + +extern EntityData gUnk_080FACB8; + +void sub_StateChange_MtCrenel_MountainTop(void) { + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } else { + LoadRoomEntityList(&gUnk_080FACB8); + } + sub_0805B4D0(0); + sub_08059994(); +} + +void sub_unk1_MtCrenel_MountainTop() { + sub_0805B4D0(0); +} + +u32 sub_unk3_MtCrenel_WallClimb() { + return 1; +} + +void sub_StateChange_MtCrenel_WallClimb() { +} + +u32 sub_unk3_MtCrenel_CaveOfFlamesEntrance() { + return 1; +} + +extern EntityData gUnk_080FAFE4; +extern EntityData gUnk_080FB004; + +void sub_StateChange_MtCrenel_CaveOfFlamesEntrance(void) { + sub_0805B4D0(1); + if (CheckGlobalFlag(LV2_CLEAR) && !CheckLocalFlag(LV1_CLEAR)) { + LoadRoomEntityList(&gUnk_080FAFE4); + } + if ((gSave.windcrests & 0x1000000) == 0) { + LoadRoomEntityList(&gUnk_080FB004); + } + if (GetInventoryValue(0x2)) { + SetGlobalFlag(WHITE_SWORD_END); + } +} + +void sub_unk1_MtCrenel_CaveOfFlamesEntrance(void) { + if ((gSave.windcrests & 0x1000000) == 0) { + LoadRoomEntityList(&gUnk_080FB004); + } +} + +u32 sub_unk3_MtCrenel_GustJarShortcut() { + return 1; +} + +void sub_StateChange_MtCrenel_GustJarShortcut() { +} + +u32 sub_unk3_MtCrenel_Entrance() { + return 1; +} + +void sub_StateChange_MtCrenel_Entrance(void) { +#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) + SetTileType(0x176, 0x66f, 1); +#endif +} + +u32 sub_unk3_CrenelCaves_BlockPushing() { + return 1; +} + +void sub_StateChange_CrenelCaves_BlockPushing() { +} + +u32 sub_unk3_CrenelCaves_PillarCave() { + return 1; +} + +void sub_StateChange_CrenelCaves_PillarCave() { +} + +u32 sub_unk3_CrenelCaves_BridgeSwitch() { + return 1; +} + +void sub_StateChange_CrenelCaves_BridgeSwitch() { +} + +u32 sub_unk3_CrenelCaves_ExitToMines() { + return 1; +} + +void sub_StateChange_CrenelCaves_ExitToMines() { +} + +u32 sub_unk3_CrenelCaves_GripRing() { + return 1; +} + +void sub_StateChange_CrenelCaves_GripRing() { +} + +u32 sub_unk3_CrenelCaves_FairyFountain() { + return 1; +} + +void sub_StateChange_CrenelCaves_FairyFountain() { +} + +u32 sub_unk3_CrenelCaves_SpinyChuPuzzle() { + return 1; +} + +void sub_StateChange_CrenelCaves_SpinyChuPuzzle() { +} + +u32 sub_unk3_CrenelCaves_ChuchuPotChest() { + return 1; +} + +void sub_StateChange_CrenelCaves_ChuchuPotChest() { +} + +u32 sub_unk3_CrenelCaves_WaterHeartPiece() { + return 1; +} + +void sub_StateChange_CrenelCaves_WaterHeartPiece() { +} + +u32 sub_unk3_CrenelCaves_RupeeFairyFountain() { + return 1; +} + +void sub_StateChange_CrenelCaves_RupeeFairyFountain() { +} + +u32 sub_unk3_CrenelCaves_HelmasaurHallway() { + return 1; +} + +void sub_StateChange_CrenelCaves_HelmasaurHallway() { +} + +u32 sub_unk3_CrenelCaves_MushroomKeese() { + return 1; +} + +void sub_StateChange_CrenelCaves_MushroomKeese() { +} + +u32 sub_unk3_CrenelCaves_LadderToGreenWater() { + return 1; +} + +void sub_StateChange_CrenelCaves_LadderToGreenWater() { +} + +u32 sub_unk3_CrenelCaves_BombBusinessScrub() { + return 1; +} + +void sub_StateChange_CrenelCaves_BombBusinessScrub() { +} + +u32 sub_unk3_CrenelCaves_Hermit() { + return 1; +} + +void sub_StateChange_CrenelCaves_Hermit(void) { + if (!CheckLocalFlag(0x70)) { + SetLocalFlag(0x70); + } +} + +u32 sub_unk3_CrenelCaves_HintScrub() { + return 1; +} + +void sub_StateChange_CrenelCaves_HintScrub() { +} + +u32 sub_unk3_CrenelCaves_ToGrayblade() { + return 1; +} + +void sub_StateChange_CrenelCaves_ToGrayblade() { +} diff --git a/src/sub_08050008.c b/src/sub_08050008.c deleted file mode 100644 index 4124df8f..00000000 --- a/src/sub_08050008.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "global.h" -#include "utils.h" -#include "structures.h" - -void sub_08050008() { - MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0)); - gFadeControl.mask = 0xFFFFFFFF; -}