tmc/src/room.c

6594 lines
101 KiB
C

#include "global.h"
#include "audio.h"
#include "entity.h"
#include "area.h"
#include "room.h"
#include "flags.h"
#include "npc.h"
#include "player.h"
#include "screen.h"
#include "main.h"
#include "structures.h"
#include "save.h"
#include "script.h"
#include "random.h"
#include "functions.h"
void sub_0804B3C4(void* arg0) {
sub_0804B29C(arg0);
}
u32 sub_0804B3CC(u32 arg0) {
return 1;
}
void sub_0804B3D0() {
sub_08030118(0);
}
u32 sub_0804B3DC() {
return 1;
}
void sub_0804B3E0() {
sub_08030118(1);
}
u32 sub_0804B3EC() {
return 1;
}
void sub_0804B3F0() {
sub_08030118(2);
}
u32 sub_0804B3FC() {
return 1;
}
void sub_0804B400() {
sub_08030118(3);
}
u32 sub_0804B40C() {
return 1;
}
void sub_0804B410() {
sub_08030118(4);
}
u32 sub_0804B41C() {
return 1;
}
void sub_0804B420() {
sub_08030118(5);
}
u32 sub_0804B42C() {
return 1;
}
void sub_0804B430() {
sub_08030118(6);
}
u32 sub_0804B43C() {
return 1;
}
void sub_0804B440() {
sub_08030118(7);
}
u32 sub_0804B44C() {
return 1;
}
void sub_0804B450() {
sub_08030118(8);
}
u32 sub_0804B45C() {
return 1;
}
void sub_0804B460() {
Area* a;
sub_08030118(9);
a = &gArea;
*((u8*)&a->localFlagOffset - 1) = 3;
a->areaMetadata = 0x4e;
}
u32 sub_0804B478() {
return 1;
}
void sub_0804B47C() {
Area* a;
sub_08030118(10);
a = &gArea;
*((u8*)&a->localFlagOffset - 1) = 3;
a->areaMetadata = 0x4e;
}
u32 sub_0804B494() {
return 1;
}
void sub_0804B498() {
sub_080575C8(35);
sub_08057688();
}
u32 sub_0804B4A8() {
return 1;
}
void sub_0804B4AC() {
sub_080575C8(35);
}
void sub_0804B4B8() {
sub_080575C8(35);
}
u32 sub_0804B4C4() {
return 1;
}
void sub_0804B4C8() {
sub_080580B0(34);
}
void sub_0804B4D4() {
sub_080580B0(34);
}
u32 sub_0804B4E0() {
return 1;
}
void sub_0804B4E4(void) {
sub_080580B0(0x22);
// white sword
if (GetInventoryValue(0x2))
SetGlobalFlag(WHITE_SWORD_END);
}
void sub_0804B500() {
sub_080580B0(34);
}
u32 sub_0804B50C() {
return 1;
}
void sub_0804B510() {
sub_080575C8(30);
}
void sub_0804B51C() {
sub_080575C8(30);
}
u32 sub_0804B528() {
return 1;
}
void sub_0804B52C() {
sub_080575C8(33);
}
void sub_0804B538() {
sub_080575C8(33);
}
u32 sub_0804B544() {
return 1;
}
void sub_0804B548() {
sub_080575C8(31);
}
void sub_0804B554() {
sub_080575C8(31);
}
u32 sub_0804B560() {
return 1;
}
void sub_0804B564() {
sub_080575C8(32);
}
void sub_0804B570() {
sub_080575C8(32);
}
u32 sub_0804B57C() {
return 1;
}
extern EntityData gUnk_080D6138;
void sub_0804B580(void) {
sub_080575C8(0x20);
if (gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY > 0x40)
LoadRoomEntityList(&gUnk_080D6138);
}
void sub_0804B5AC() {
sub_080575C8(32);
}
u32 sub_0804B5B8() {
return 1;
}
extern EntityData gUnk_080D6210;
void sub_0804B5BC(void) {
if ((u16)gScreenTransition.playerStartPos.HALF.y > 0x40)
LoadRoomEntityList(&gUnk_080D6210);
}
u32 sub_0804B5D8() {
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_0804B5DC(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(0x8b)) {
flagArr = &gUnk_080D6508;
i = 0;
while (i < j) {
if (CheckLocalFlag(*flagArr) == 0) {
SetLocalFlag(*flagArr);
ClearLocalFlag(0x8b);
SetLocalFlag(0x8c);
break;
}
i++;
flagArr++;
}
}
if (CheckLocalFlag(0x1f))
LoadRoomEntityList(&gUnk_080D6360);
if (CheckLocalFlag(0x20))
LoadRoomEntityList(&gUnk_080D6380);
if (CheckLocalFlag(0x21))
LoadRoomEntityList(&gUnk_080D63A0);
if (CheckLocalFlag(0x22))
LoadRoomEntityList(&gUnk_080D63C0);
if (CheckLocalFlag(0x23))
LoadRoomEntityList(&gUnk_080D63E0);
if (CheckLocalFlag(0x24))
LoadRoomEntityList(&gUnk_080D6400);
if (CheckLocalFlag(0x25))
LoadRoomEntityList(&gUnk_080D6420);
if (CheckLocalFlag(0x26))
LoadRoomEntityList(&gUnk_080D6440);
}
u32 sub_0804B6EC() {
return 1;
}
extern EntityData gUnk_080D6578;
extern EntityData gUnk_080D6638;
extern EntityData gUnk_080D6558;
extern EntityData gUnk_080D6618;
void sub_0804B6F0(void) {
// flippers
if (GetInventoryValue(0x46) == 0) {
LoadRoomEntityList(&gUnk_080D6578);
if (CheckLocalFlag(0x73) == 0) {
LoadRoomEntityList(&gUnk_080D6638);
return;
}
} else {
LoadRoomEntityList(&gUnk_080D6558);
}
LoadRoomEntityList(&gUnk_080D6618);
}
u32 sub_0804B734() {
return 1;
}
extern EntityData gUnk_080D6714;
extern EntityData gUnk_080D6734;
extern EntityData gUnk_080D66F4;
void sub_0804B738(void) {
if (gSave.unk8 > 4) {
LoadRoomEntityList(&gUnk_080D6714);
}
// flippers
if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && CheckLocalFlag(0x6a)) {
LoadRoomEntityList(&gUnk_080D6734);
} else {
LoadRoomEntityList(&gUnk_080D66F4);
}
}
u32 sub_0804B788() {
return 1;
}
extern EntityData gUnk_080D6924;
void sub_0804B78C(void) {
if (gSave.unk8 > 7) {
LoadRoomEntityList(&gUnk_080D6924);
}
}
extern u32 gUnk_080D6A74[];
u32 sub_0804B7A8(void) {
u32 index;
if (CheckLocalFlag(0x91) != 0) {
index = (s32)Random() % 3;
ClearLocalFlag(1);
} else {
index = 0;
SetLocalFlag(1);
}
gRoomVars.field_0x78 = gUnk_080D6A74[index];
return 1;
}
extern void* script_08010A5C[];
void sub_0804B7E8(void) {
if (CheckLocalFlag(0x91)) {
ClearLocalFlag(0x91);
DoFade(5, 0x100);
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_0804B82C(void) {
u32 index;
if (CheckLocalFlag(0x91) != 0) {
index = Random() & 1;
ClearLocalFlag(2);
} else {
index = 0;
SetLocalFlag(2);
}
gRoomVars.field_0x78 = gUnk_080D6B18[index];
return 1;
}
void sub_0804B86C(void) {
if (CheckLocalFlag(0x91) != 0) {
ClearLocalFlag(0x91);
DoFade(5, 0x100);
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_0804B8B0(void) {
s32 index;
if (CheckLocalFlag(0x91) != 0) {
index = (s32)Random() % 3;
ClearLocalFlag(3);
} else {
index = 0;
SetLocalFlag(3);
}
gRoomVars.field_0x78 = gUnk_080D6BB8[index];
return 1;
}
void sub_0804B8F0(void) {
if (CheckLocalFlag(0x91)) {
ClearLocalFlag(0x91);
DoFade(5, 0x100);
gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x60;
gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38;
sub_080751E8(1, 2, &script_08010A5C);
}
}
u32 sub_0804B934() {
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_0804B938(void) {
int iVar1;
if (gSave.unk8 < 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_0804B9F8() {
return 1;
}
void nullsub_176() {
}
u32 sub_0804BA00() {
return 1;
}
void nullsub_177() {
}
u32 sub_0804BA08() {
return 1;
}
extern EntityData gUnk_080D7038;
void sub_0804BA0C(void) {
if (gSave.unk8 < 8) {
LoadRoomEntityList(&gUnk_080D7038);
}
if (gRoomVars.filler[0] == 0) {
sub_08052CA4(2, 0, 0x2c8, 0xa8);
}
}
u32 sub_0804BA40() {
return 1;
}
extern EntityData gUnk_080D7140;
extern EntityData gUnk_080D7170;
extern EntityData gUnk_080D71A0;
extern EntityData gUnk_080D71D0;
extern EntityData gUnk_080D71F0;
void sub_0804BA44(void) {
if (gSave.unk8 == 6)
LoadRoomEntityList(&gUnk_080D7140);
if (gSave.unk8 == 7)
LoadRoomEntityList(&gUnk_080D7170);
if ((gSave.unk8 < 8) || (LoadRoomEntityList(&gUnk_080D71A0), gSave.unk8 < 8))
LoadRoomEntityList(&gUnk_080D71D0);
else
LoadRoomEntityList(&gUnk_080D71F0);
}
extern u32 gUnk_080D7348;
u32 sub_0804BA9C(void) {
if (CheckGlobalFlag(ENDING)) {
gRoomVars.field_0x6c = &gUnk_080D7348;
gRoomVars.field_0x74 = 0;
}
return 1;
}
extern EntityData gUnk_080D7328;
void sub_0804BAC0(void) {
if (!CheckGlobalFlag(LV2_CLEAR)) {
LoadRoomEntityList(&gUnk_080D7328);
}
if (CheckGlobalFlag(CASTLE_BGM)) {
gArea.pMusicIndex = 0x1b;
} else if (CheckGlobalFlag(ENDING)) {
gArea.pMusicIndex = gArea.musicIndex;
}
}
extern u32 gUnk_080D7410;
u32 sub_0804BB18(void) {
if (CheckGlobalFlag(ENDING)) {
gRoomVars.field_0x6c = &gUnk_080D7410;
gRoomVars.field_0x74 = 0;
}
return 1;
}
extern EntityData gUnk_080D73B0;
extern EntityData gUnk_080D73E0;
void sub_0804BB3C(void) {
if (!CheckGlobalFlag(ENDING)) {
if (!CheckGlobalFlag(LV2_CLEAR)) {
LoadRoomEntityList(&gUnk_080D73B0);
}
if (!CheckGlobalFlag(LV1_CLEAR) && CheckGlobalFlag(TABIDACHI)) {
LoadRoomEntityList(&gUnk_080D73E0);
}
if (CheckGlobalFlag(CASTLE_BGM)) {
gArea.pMusicIndex = gArea.musicIndex;
}
} else {
gArea.pMusicIndex = gArea.musicIndex;
}
}
u32 sub_0804BB9C() {
return 1;
}
extern EntityData gUnk_080D74C8;
extern EntityData gUnk_080D7588;
extern EntityData gUnk_080D75D8;
extern EntityData gUnk_080D7618;
void sub_0804BBA0(void) {
if (CheckGlobalFlag(CASTLE_BGM)) {
gArea.pMusicIndex = gArea.musicIndex;
}
if (CheckGlobalFlag(ENDING)) {
LoadRoomEntityList(&gUnk_080D7618);
gArea.pMusicIndex = gArea.musicIndex;
} else if (CheckGlobalFlag(TABIDACHI) == 0) {
LoadRoomEntityList(&gUnk_080D74C8);
gArea.pMusicIndex = 0x1b;
} else if (CheckGlobalFlag(LV1_CLEAR) == 0) {
LoadRoomEntityList(&gUnk_080D7588);
} else {
LoadRoomEntityList(&gUnk_080D75D8);
}
}
u32 sub_0804BC34() {
return 1;
}
extern EntityData gUnk_080D7690;
void sub_0804bc38(void) {
if (CheckLocalFlag(0x9c)) {
LoadRoomEntityList(&gUnk_080D7690);
}
}
u32 sub_0804BC50(void) {
if (!CheckLocalFlag(0x9f)) {
gScreenTransition.field_0xf = 5;
ClearGlobalFlag(ZELDA_CHASE);
}
return 1;
}
extern u32 script_08009E88;
void sub_0804BC70(void) {
if (!CheckLocalFlag(0x9f)) {
DoFade(5, 0x100);
gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0xb0;
gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x40;
sub_080751E8(0, 6, &script_08009E88);
}
if (!CheckGlobalFlag(TABIDACHI)) {
sub_08052878();
} else {
if (CheckGlobalFlag(CASTLE_BGM)) {
gArea.pMusicIndex = 0x1b;
}
}
}
extern ScreenTransitionData gUnk_0813AB80;
void sub_0804BCDC() {
sub_0808091C(&gUnk_0813AB80, 4);
}
u32 sub_0804BCEC() {
return 1;
}
void nullsub_178() {
}
u32 sub_0804BCF4() {
return 1;
}
void nullsub_179() {
}
u32 sub_0804BCFC() {
return 1;
}
void nullsub_180() {
}
u32 sub_0804BD04() {
return 1;
}
void nullsub_181() {
}
u32 sub_0804BD0C() {
return 1;
}
void nullsub_182() {
}
u32 sub_0804BD14() {
return 1;
}
void nullsub_183() {
}
u32 sub_0804BD1C() {
return 1;
}
void nullsub_184() {
}
u32 sub_0804BD24() {
return 1;
}
void nullsub_185() {
}
u32 sub_0804BD2C() {
return 1;
}
void nullsub_186() {
}
u32 sub_0804BD34() {
return 1;
}
void nullsub_187() {
}
u32 sub_0804BD3C() {
return 1;
}
void nullsub_188() {
}
u32 sub_0804BD44() {
return 1;
}
void nullsub_189() {
}
u32 sub_0804BD4C() {
return 1;
}
extern EntityData gUnk_080D7D34;
void sub_0804BD50(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_0804BDA4() {
return 1;
}
void nullsub_190() {
}
u32 sub_0804BDAC() {
return 1;
}
void nullsub_191() {
}
u32 sub_0804BDB4() {
return 1;
}
void nullsub_192() {
}
u32 sub_0804BDBC() {
return 1;
}
void nullsub_193() {
}
u32 sub_0804BDC4() {
return 1;
}
void nullsub_194() {
}
u32 sub_0804BDCC() {
return 1;
}
extern EntityData gUnk_080D827C;
void sub_0804BDD0(void) {
if (!CheckLocalFlag(3)) {
LoadRoomEntityList(&gUnk_080D827C);
} else {
sub_0805BC4C();
SetTileType(0x76, 0x82, 2);
SetTileType(0x76, 0x8c, 2);
}
}
u32 sub_0804BE04() {
return 1;
}
void nullsub_28() {
}
u32 sub_0804BE0C() {
return 1;
}
void nullsub_29() {
}
u32 sub_0804BE14() {
return 1;
}
void nullsub_30() {
}
u32 sub_0804BE1C() {
return 1;
}
void nullsub_31() {
}
u32 sub_0804BE24() {
return 1;
}
void nullsub_32() {
}
u32 sub_0804BE2C() {
return 1;
}
void nullsub_33() {
}
u32 sub_0804BE34() {
return 1;
}
void nullsub_34() {
}
u32 sub_0804BE3C() {
return 1;
}
void nullsub_35() {
}
u32 sub_0804BE44() {
return 1;
}
void nullsub_36() {
}
u32 sub_0804BE4C() {
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_0804BE50(void) {
if (!CheckLocalFlag(0x68))
SetLocalFlag(0x68);
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_0804C00C() {
return 1;
}
void nullsub_195() {
}
u32 sub_0804C014() {
return 1;
}
extern EntityData gUnk_080D90C8;
extern EntityData gUnk_080D9108;
extern EntityData gUnk_080D9098;
void sub_0804C018(void) {
if (!CheckGlobalFlag(HAKA_KEY_LOST)) {
// graveyard key
if (GetInventoryValue(0x3c) == 1) {
LoadRoomEntityList(&gUnk_080D90C8);
LoadRoomEntityList(&gUnk_080D9108);
}
} else if (!CheckGlobalFlag(HAKA_KEY_FOUND))
LoadRoomEntityList(&gUnk_080D9108);
if (GetInventoryValue(0x3c) != 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.playerStartPos.WORD == 0x2780078) // todo: wtf
SoundReq(SFX_SECRET);
ClearGlobalFlag(MAZE_CLEAR);
}
u32 sub_0804C104() {
return 1;
}
void sub_0804C108(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_0804C2BC() {
return 1;
}
void nullsub_196() {
}
u32 sub_0804C2C4() {
return 1;
}
void nullsub_197() {
}
u32 sub_0804C2CC() {
return 1;
}
void sub_0804C2D0() {
sub_08058324(0);
}
u32 sub_0804C2DC() {
return 1;
}
void sub_0804C2E0() {
sub_08058324(1);
}
u32 sub_0804C2EC() {
return 1;
}
extern EntityData gUnk_080D9800;
void sub_0804C2F0(void) {
sub_08058324(2);
if (CheckGlobalFlag(MIZUKAKI_START) && !CheckGlobalFlag(MIZUKAKI_HARIFALL))
LoadRoomEntityList(&gUnk_080D9800);
}
void sub_0804C318() {
sub_0804C2F0();
}
u32 sub_0804C320() {
return 1;
}
void sub_0804C324() {
sub_08058324(3);
}
u32 sub_0804C330() {
return 1;
}
extern EntityData gUnk_080D9CC8;
extern EntityData gUnk_080D9CE8;
extern EntityData gUnk_080D9C38;
void sub_0804C334(void) {
SetGlobalFlag(DASHBOOTS);
if (CheckKinstoneFused(0x5b))
LoadRoomEntityList(&gUnk_080D9CC8);
if ((gSave.windcrests & 0x20000000) == 0)
LoadRoomEntityList(&gUnk_080D9CE8);
// pegasus boots
if (!GetInventoryValue(0x15))
LoadRoomEntityList(&gUnk_080D9C38);
}
void sub_0804C384(void) {
if ((gSave.windcrests & 0x20000000) == 0)
LoadRoomEntityList(&gUnk_080D9CE8);
}
u32 sub_0804C3A4() {
return 1;
}
void nullsub_198() {
}
u32 sub_0804C3AC() {
return 1;
}
void nullsub_199() {
}
u32 sub_0804C3B4() {
return 1;
}
void nullsub_200() {
}
u32 sub_0804C3BC() {
return 1;
}
void nullsub_201() {
}
u32 sub_0804C3C4() {
return 1;
}
void nullsub_202() {
}
extern u32 gUnk_080DA230;
u32 sub_0804C3CC(void) {
if (!CheckLocalFlag(0x39))
gRoomVars.field_0x6c = &gUnk_080DA230;
return 1;
}
void nullsub_203() {
}
u32 sub_0804C3F0() {
return 1;
}
void nullsub_204() {
}
u32 sub_0804C3F8() {
return 1;
}
void nullsub_205() {
}
u32 sub_0804C400() {
return 1;
}
void nullsub_206() {
}
u32 sub_0804C408() {
return 1;
}
void nullsub_207() {
}
u32 sub_0804C410() {
return 1;
}
void nullsub_208() {
}
u32 sub_0804C418() {
return 1;
}
void nullsub_209() {
}
u32 sub_0804C420() {
return 1;
}
void sub_0804C424() {
sub_0801AFE4();
}
u32 sub_0804C42C() {
return 1;
}
void sub_0804C430() {
sub_0801AFE4();
}
u32 sub_0804C438() {
return 1;
}
void sub_0804C43C() {
sub_0801AFE4();
}
u32 sub_0804C444() {
return 1;
}
void sub_0804C448() {
sub_0801AFE4();
}
u32 sub_0804C450() {
return 1;
}
void sub_0804C454() {
sub_0801AFE4();
}
u32 sub_0804C45C() {
return 1;
}
void sub_0804C460() {
sub_0801AFE4();
}
u32 sub_0804C468() {
return 1;
}
void sub_0804C46C() {
sub_0801AFE4();
}
u32 sub_0804C474() {
return 1;
}
void sub_0804C478() {
sub_0801AFE4();
}
u32 sub_0804C480() {
return 1;
}
void sub_0804C484() {
sub_0801AFE4();
}
u32 sub_0804C48C() {
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_0804C490(void) {
u32 uVar1;
// jabber nut
if (!GetInventoryValue(0x5b))
LoadRoomEntityList(&gUnk_080DAB44);
else
LoadRoomEntityList(&gUnk_080DAB64);
if (!CheckGlobalFlag(DRUG_COUNT))
goto a;
if (sub_08060354()) {
SetRoomFlag(0);
if (!CheckGlobalFlag(DRUG_1))
uVar1 = 0x3200;
else if (!CheckGlobalFlag(DRUG_2))
uVar1 = 0x4600;
else
uVar1 = 0x4880;
} else {
a:
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_0804C5DC() {
return 1;
}
extern EntityData gUnk_080DAEE8;
void sub_0804C5E0(void) {
if (CheckGlobalFlag(WHITE_SWORD_END))
LoadRoomEntityList(&gUnk_080DAEE8);
sub_0801AFE4();
}
u32 sub_0804C5FC() {
return 1;
}
extern EntityData gUnk_080DAF80;
void sub_0804C600(void) {
if (CheckGlobalFlag(WHITE_SWORD_END))
LoadRoomEntityList(&gUnk_080DAF80);
sub_0801AFE4();
}
u32 sub_0804C61C() {
return 1;
}
extern EntityData gUnk_080DB018;
void sub_0804C620(void) {
if (CheckGlobalFlag(WHITE_SWORD_END))
LoadRoomEntityList(&gUnk_080DB018);
sub_0801AFE4();
}
u32 sub_0804C63C() {
return 1;
}
void sub_0804C640() {
sub_0801AFE4();
}
u32 sub_0804C648() {
return 1;
}
void sub_0804C64C() {
sub_0801AFE4();
}
u32 sub_0804C654() {
return 1;
}
void sub_0804C658() {
sub_0801AFE4();
}
u32 sub_0804C660() {
return 1;
}
extern EntityData gUnk_080DB238;
void sub_0804C664(void) {
if (gSave.unk8 > 8)
LoadRoomEntityList(&gUnk_080DB238);
sub_0801AFE4();
}
u32 sub_0804C684() {
return 1;
}
void sub_0804C688() {
sub_0801AFE4();
}
u32 sub_0804C690() {
return 1;
}
void sub_0804C694() {
sub_0801AFE4();
}
u32 sub_0804C69C() {
return 1;
}
void sub_0804C6A0() {
sub_0801AFE4();
}
u32 sub_0804C6A8() {
return 1;
}
void sub_0804C6AC() {
sub_0801AFE4();
}
u32 sub_0804C6B4() {
return 1;
}
extern EntityData gUnk_080DB4D0;
extern EntityData gUnk_080DB4A0;
void sub_0804C6B8(void) {
// flippers and history of masks book
if (!GetInventoryValue(0x46) && !GetInventoryValue(0x3b) && CheckLocalFlag(0x71))
LoadRoomEntityList(&gUnk_080DB4D0);
else
LoadRoomEntityList(&gUnk_080DB4A0);
sub_0801AFE4();
}
u32 sub_0804C6F4() {
return 1;
}
void sub_0804C6F8() {
sub_0801AFE4();
}
u32 sub_0804C700() {
return 1;
}
void sub_0804C704() {
sub_0801AFE4();
}
u32 sub_0804C70C() {
return 1;
}
void sub_0804C710() {
sub_0801AFE4();
}
u32 sub_0804C718() {
return 1;
}
void sub_0804C71C() {
sub_0801AFE4();
}
u32 sub_0804C724() {
return 1;
}
void sub_0804C728() {
sub_0801AFE4();
}
extern u32 gUnk_080DB910;
u32 sub_0804C730(void) {
if (CheckGlobalFlag(MIZUKAKI_START) && !CheckLocalFlag(0x73)) {
gRoomVars.field_0x70 = &gUnk_080DB910;
}
return 1;
}
extern EntityData gUnk_080DB8F0;
extern EntityData gUnk_080DB820;
void sub_0804C758(void) {
LoadRoomEntityList(&gUnk_080DB8F0);
// flippers
if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START)) {
LoadRoomEntityList(&gUnk_080DB820);
}
sub_0801AFE4();
}
u32 sub_0804C788() {
return 1;
}
extern EntityData gUnk_080DBA08;
void sub_0804C78C(void) {
// flippers
if (GetInventoryValue(0x46) || !CheckLocalFlag(0x73)) {
LoadRoomEntityList(&gUnk_080DBA08);
}
sub_0801AFE4();
}
u32 sub_0804C7B4() {
return 1;
}
extern EntityData gUnk_080DBB50;
extern EntityData gUnk_080DBB70;
extern EntityData gUnk_080DBB10;
extern EntityData gUnk_080DBAD0;
extern EntityData gUnk_080DBB90;
void sub_0804C7B8(void) {
u32 tilePos;
u32 i;
if (!CheckLocalFlag(0x60)) {
LoadRoomEntityList(&gUnk_080DBB50);
}
// pegasus boots
if (GetInventoryValue(0x15) == 1) {
LoadRoomEntityList(&gUnk_080DBB70);
LoadRoomEntityList(&gUnk_080DBB10);
} else {
LoadRoomEntityList(&gUnk_080DBAD0);
}
if (!CheckLocalFlag(0x62)) {
tilePos = 0x140;
for (i = 0; i < 0x13; i++, tilePos++) {
SetTileType(0x4072, tilePos, 1);
}
}
LoadRoomEntityList(&gUnk_080DBB90);
sub_0801AFE4();
}
u32 sub_0804C830() {
return 1;
}
void nullsub_210() {
}
u32 sub_0804C838() {
return 1;
}
void nullsub_211() {
}
u32 sub_0804C840() {
return 1;
}
void nullsub_212() {
}
u32 sub_0804C848() {
return 1;
}
void nullsub_213() {
}
u32 sub_0804C850() {
return 1;
}
void nullsub_214() {
}
u32 sub_0804C858() {
return 1;
}
void nullsub_215() {
}
u32 sub_0804C860() {
return 1;
}
void nullsub_216() {
}
u32 sub_0804C868() {
return 1;
}
void nullsub_217() {
}
u32 sub_0804C870() {
return 1;
}
void nullsub_218() {
}
u32 sub_0804C878() {
return 1;
}
void nullsub_219() {
}
u32 sub_0804C880() {
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_0804C884(void) {
// jabber nut
if (!GetInventoryValue(0x5b)) {
LoadRoomEntityList(&gUnk_080DC390);
if (!CheckLocalFlagByOffset(0x200, 0x80)) {
LoadRoomEntityList(&gUnk_080DC3F0);
}
} else {
LoadRoomEntityList(&gUnk_080DC430);
// gust jar
if (!GetInventoryValue(0x11)) {
LoadRoomEntityList(&gUnk_080DC530);
}
}
if ((!CheckLocalFlagByOffset(0x200, 0x83)) && GetInventoryValue(0x11)) {
LoadRoomEntityList(&gUnk_080DC470);
}
if (!CheckLocalFlag(0x8d)) {
LoadRoomEntityList(&gUnk_080DC4C0);
}
sub_08057E64();
}
u32 sub_0804C910() {
return 1;
}
void nullsub_220() {
}
typedef struct {
u8 LO[0x4000];
u8 HI[0x4000];
} struct_086D4460;
extern struct_086D4460 gUnk_086D4460;
void sub_0804C918(void) {
LoadResourceAsync(&gUnk_086D4460.LO, 0x6000000, 0x4000);
LoadResourceAsync(&gUnk_086D4460.HI, 0x6008000, 0x4000);
LoadPaletteGroup(0x19);
}
u32 sub_0804C948() {
return 1;
}
void nullsub_221() {
}
u32 sub_0804C950() {
return 1;
}
void nullsub_222() {
}
u32 sub_0804C958() {
return 1;
}
void nullsub_223() {
}
u32 sub_0804C960() {
return 1;
}
void nullsub_224() {
}
u32 sub_0804C968() {
return 1;
}
void nullsub_225() {
}
u32 sub_0804C970() {
return 1;
}
void nullsub_226() {
}
u32 sub_0804C978() {
return 1;
}
void nullsub_227() {
}
u32 sub_0804C980() {
return 1;
}
void nullsub_228() {
}
u32 sub_0804C988() {
return 1;
}
void nullsub_229() {
}
u32 sub_0804C990() {
return 1;
}
void nullsub_230() {
}
u32 sub_0804C998() {
return 1;
}
extern EntityData gUnk_080DCB10;
void sub_0804C99C(void) {
// bow
if (!GetInventoryValue(0x9)) {
LoadRoomEntityList(&gUnk_080DCB10);
}
}
u32 sub_0804C9B4() {
return 1;
}
void nullsub_231() {
}
u32 sub_0804C9BC() {
return 1;
}
void nullsub_232() {
}
u32 sub_0804C9C4() {
return 1;
}
void nullsub_233() {
}
u32 sub_0804C9CC() {
return 1;
}
void nullsub_234() {
}
u32 sub_0804C9D4() {
return 1;
}
void nullsub_235() {
}
u32 sub_0804C9DC() {
return 1;
}
void nullsub_236() {
}
u32 sub_0804C9E4() {
return 1;
}
void nullsub_237() {
}
u32 sub_0804C9EC() {
return 1;
}
void nullsub_238() {
}
u32 sub_0804C9F4() {
return 1;
}
void nullsub_239() {
}
u32 sub_0804C9FC() {
return 1;
}
void nullsub_240() {
}
u32 sub_0804CA04() {
return 1;
}
void nullsub_241() {
}
u32 sub_0804CA0C() {
return 1;
}
extern EntityData gUnk_080DD214;
extern EntityData gUnk_080DD274;
extern EntityData gUnk_080DD294;
void sub_0804CA10(void) {
if (!CheckGlobalFlag(WHITE_SWORD_END)) {
LoadRoomEntityList(&gUnk_080DD214);
}
if (!CheckLocalFlag(0x7f)) {
LoadRoomEntityList(&gUnk_080DD274);
} else {
LoadRoomEntityList(&gUnk_080DD294);
}
SetLocalFlag(0x8e);
}
u32 sub_0804CA50() {
return 1;
}
extern EntityData gUnk_080DD364;
void sub_0804CA54(void) {
if (!(gSave.windcrests & 0x4000000)) {
LoadRoomEntityList(&gUnk_080DD364);
}
}
void sub_0804CA74(void) {
if (!(gSave.windcrests & 0x4000000)) {
LoadRoomEntityList(&gUnk_080DD364);
}
}
u32 sub_0804CA94() {
return 1;
}
void nullsub_242() {
}
u32 sub_0804CA9C() {
return 1;
}
extern EntityData gUnk_080DD7E0;
extern EntityData gUnk_080DD840;
void sub_0804CAA0(void) {
if (CheckGlobalFlag(KUMOTATSUMAKI)) {
sub_0809F814(0x6de);
}
if (CheckLocalFlag(0xf3)) {
sub_0809F814(0xe0);
} else {
LoadRoomEntityList(&gUnk_080DD7E0);
}
if (CheckLocalFlag(0xf5)) {
sub_0809F814(0xba3);
} else {
LoadRoomEntityList(&gUnk_080DD840);
}
}
u32 sub_0804CAF4() {
return 1;
}
void sub_0804CAF8() {
sub_080300E8();
SetLocalFlag(0x24);
}
u32 sub_0804CB08() {
return 1;
}
void nullsub_37() {
}
u32 sub_0804CB10() {
return 1;
}
extern EntityData gUnk_080DDE88;
void sub_0804CB14(void) {
if (CheckKinstoneFused(0x41)) {
LoadRoomEntityList(&gUnk_080DDE88);
}
}
void sub_0804CB2C(void) {
if (CheckLocalFlagByOffset(0x100, 0x27)) {
SetDirtTile(0x85);
}
}
u32 sub_0804CB44() {
return 1;
}
void nullsub_38() {
}
u32 sub_0804CB4C() {
return 1;
}
extern EntityData gUnk_080DE008;
void sub_0804CB50(void) {
sub_080300E8();
if (CheckGlobalFlag(LV3_CLEAR) && !CheckLocalFlag(3)) {
LoadRoomEntityList(&gUnk_080DE008);
}
}
u32 sub_0804CB78() {
return 1;
}
extern EntityData gUnk_080DE1E0;
extern EntityData gUnk_080DE200;
void sub_0804CB7C(void) {
sub_080300E8();
if (!CheckLocalFlag(0x30)) {
LoadRoomEntityList(&gUnk_080DE1E0);
}
if (!CheckLocalFlag(0x31)) {
LoadRoomEntityList(&gUnk_080DE200);
}
}
u32 sub_0804CBAC() {
return 1;
}
extern EntityData gUnk_080DE4C8;
void sub_0804CBB0(void) {
if ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) < (gRoomControls.height >> 1)) {
if (!CheckLocalFlag(0x17)) {
LoadRoomEntityList(&gUnk_080DE4C8);
}
}
}
u32 sub_0804CBE4() {
return 1;
}
void nullsub_243() {
}
u32 sub_0804CBEC() {
return 1;
}
extern EntityData gUnk_080DE814;
extern EntityData gUnk_080DE834;
void sub_0804CBF0(void) {
if (!CheckLocalFlag(0x4b)) {
LoadRoomEntityList(&gUnk_080DE814);
} else {
if (!CheckLocalFlag(0x4c)) {
LoadRoomEntityList(&gUnk_080DE834);
SetTileType(0x79, 0x285, 1);
} else {
SetTileType(0x7a, 0x285, 1);
if (!CheckLocalFlag(0x24)) {
SetTileType(0x73, 0x205, 1);
}
}
}
}
u32 sub_0804CC54() {
return 1;
}
void nullsub_244() {
}
u32 sub_0804CC5C() {
return 1;
}
void nullsub_245() {
}
u32 sub_0804CC64() {
return 1;
}
void nullsub_246() {
}
u32 sub_0804CC6C() {
return 1;
}
void sub_0804CC70(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_0804CCEC() {
return 1;
}
void nullsub_247() {
}
u32 sub_0804CCF4() {
return 1;
}
void nullsub_248() {
}
u32 sub_0804CCFC() {
return 1;
}
void nullsub_249() {
}
u32 sub_0804CD04() {
return 1;
}
void nullsub_250() {
}
u32 sub_0804CD0C() {
return 1;
}
#ifdef DEMO
void nullsub_251() {
if (gUnk_02000000->saveFileId != 0 && GetInventoryValue(0x40) == 0) {
SetTileType(0x365,0x349,1);
SetTileType(0x365,0x34a,1);
SetTileType(0x365,0x34b,1);
}
}
#else
void nullsub_251() {
}
#endif
u32 sub_0804CD14() {
return 1;
}
void nullsub_252() {
}
u32 sub_0804CD1C() {
return 1;
}
void nullsub_253() {
}
u32 sub_0804CD249() {
return 1;
}
void nullsub_254() {
}
u32 sub_0804CD2C90() {
return 1;
}
void nullsub_255() {
}
u32 sub_0804CD349() {
return 1;
}
void nullsub_256() {
}
u32 sub_0804CD3C() {
return 1;
}
void nullsub_257() {
}
u32 sub_0804CD44() {
return 1;
}
extern EntityData gUnk_080DF94C;
extern u8 gUnk_02000070;
extern u32 gUsedPalettes;
void sub_0804CD48(void) {
if (!CheckLocalFlag(0x48)) {
SetLocalFlag(0x48);
MenuFadeIn(5, 0);
gUnk_02000070 = 0;
gFadeControl.active = 0;
gUsedPalettes = 0;
*(u16*)0x5000000 = 0x7fff;
DispReset(1);
}
if (CheckGlobalFlag(LV1_CLEAR)) {
LoadRoomEntityList(&gUnk_080DF94C);
} else {
SoundReq(SONG_STOP_BGM);
gArea.musicIndex = gArea.pMusicIndex;
}
}
u32 sub_0804CDC8() {
return 1;
}
void nullsub_258() {
}
u32 sub_0804CDD0() {
return 1;
}
void sub_0804CDD4(void) {
sub_08058D34();
gArea.areaMetadata |= 0x40;
gMain.transition = 5;
}
u32 sub_0804CDF4() {
return 1;
}
extern EntityData gUnk_080DFB78;
void sub_0804CDF8(void) {
if (CheckGlobalFlag(LV1_CLEAR) && !CheckLocalFlagByOffset(0x100, 1)) {
LoadRoomEntityList(&gUnk_080DFB78);
}
}
u32 sub_0804CE20() {
return 1;
}
void nullsub_259() {
}
u32 sub_0804CE28() {
return 1;
}
void nullsub_260() {
}
u32 sub_0804CE30() {
return 1;
}
void nullsub_261() {
}
u32 sub_0804CE38() {
return 1;
}
#ifdef DEMO
void nullsub_262() {
if (GetInventoryValue(0x41) == 0) {
SetTileType(0x365,0x287,2);
SetTileType(0x365,0x288,2);
SetTileType(0x365,0x289,2);
}
}
#else
void nullsub_262() {
}
#endif
u32 sub_0804CE40() {
return 1;
}
void nullsub_263() {
}
u32 sub_0804CE48() {
return 1;
}
void nullsub_264() {
}
u32 sub_0804CE50() {
return 1;
}
void nullsub_265() {
}
u32 sub_0804CE58() {
return 1;
}
void nullsub_266() {
}
u32 sub_0804CE60() {
return 1;
}
void nullsub_267() {
}
u32 sub_0804CE68() {
return 1;
}
void nullsub_268() {
}
u32 sub_0804CE70() {
return 1;
}
void nullsub_269() {
}
u32 sub_0804CE78() {
return 1;
}
void nullsub_270() {
}
extern u32 gUnk_080E103C;
u32 sub_0804CE80(void) {
if (CheckGlobalFlag(LV2_CLEAR)) {
gRoomVars.field_0x70 = &gUnk_080E103C;
}
return 1;
}
void nullsub_271() {
}
u32 sub_0804CEA4() {
return 1;
}
void nullsub_272() {
}
u32 sub_0804CEAC() {
return 1;
}
void nullsub_273() {
}
u32 sub_0804CEB4() {
return 1;
}
void nullsub_274() {
}
u32 sub_0804CEBC() {
return 1;
}
void nullsub_275() {
}
u32 sub_0804CEC4() {
return 1;
}
void nullsub_276() {
}
u32 sub_0804CECC() {
return 1;
}
void nullsub_277() {
}
u32 sub_0804CED4() {
return 1;
}
extern EntityData gUnk_080E1814;
extern u32 gUnk_0200B650;
void sub_0804CED8(void) {
if (CheckGlobalFlag(LV2_CLEAR)) {
gUnk_0200B650 = 0;
gScreen.lcd.displayControl &= 0xfdff;
sub_0807AABC(&gPlayerEntity);
LoadRoomEntityList(&gUnk_080E1814);
} else {
SoundReq(SONG_STOP_BGM);
gArea.musicIndex = gArea.pMusicIndex;
}
}
u32 sub_0804CF38() {
return 1;
}
void nullsub_278() {
}
u32 sub_0804CF40() {
return 1;
}
void sub_0804CF44(void) {
gScreenTransition.field_0x38 = 0;
gScreenTransition.field_0x39 = 0x5a;
}
u32 sub_0804CF5C() {
return 1;
}
void sub_0804CF60() {
sub_080300E8();
}
u32 sub_0804CF68() {
return 1;
}
void nullsub_39() {
}
u32 sub_0804CF70() {
return 1;
}
void sub_0804CF74() {
sub_080300E8();
}
u32 sub_0804CF7C() {
return 1;
}
void nullsub_40() {
}
u32 sub_0804CF84() {
return 1;
}
void nullsub_41() {
}
u32 sub_0804CF8C() {
return 1;
}
void nullsub_42() {
}
u32 sub_0804CF94() {
return 1;
}
void nullsub_43() {
}
u32 sub_0804CF9C() {
return 1;
}
void nullsub_44() {
}
u32 sub_0804CFA4() {
return 1;
}
void nullsub_45() {
}
u32 sub_0804CFAC() {
return 1;
}
void sub_0804CFB0(void) {
if (!CheckFlags(0x31)) {
if (gScreenTransition.field_0x38 == 0) {
SoundReq(SONG_STOP_BGM);
} else {
if (gScreenTransition.field_0x39 == 0) {
SoundReq(SONG_STOP);
sub_08078A90(3);
}
}
gArea.musicIndex = gArea.pMusicIndex;
}
}
u32 sub_0804D008() {
return 1;
}
void nullsub_279() {
}
u32 sub_0804D010() {
return 1;
}
void nullsub_280() {
}
u32 sub_0804D018() {
return 1;
}
void nullsub_281() {
}
u32 sub_0804D020() {
return 1;
}
void nullsub_282() {
}
u32 sub_0804D028() {
return 1;
}
void nullsub_283() {
}
u32 sub_0804D030() {
return 1;
}
void nullsub_284() {
}
u32 sub_0804D038() {
return 1;
}
void nullsub_285() {
}
u32 sub_0804D040() {
return 1;
}
void nullsub_286() {
}
u32 sub_0804D048() {
return 1;
}
void nullsub_287() {
}
u32 sub_0804D050() {
return 1;
}
void nullsub_288() {
}
u32 sub_0804D058() {
return 1;
}
void nullsub_289() {
}
u32 sub_0804D060() {
return 1;
}
void nullsub_290() {
}
u32 sub_0804D068() {
return 1;
}
void nullsub_291() {
}
u32 sub_0804D070() {
return 1;
}
extern EntityData gUnk_080E3850;
void sub_0804D074(void) {
SetGlobalFlag(LV3_CLEAR);
sub_080530C8();
sub_0805B4D0(3);
// wind ocarina
if (!GetInventoryValue(0x17) && CheckLocalFlag(0x45)) {
LoadRoomEntityList(&gUnk_080E3850);
}
}
u32 sub_0804D0A8() {
return 1;
}
void sub_0804D0AC() {
sub_0804D0B4();
}
void sub_0804D0B4(void) {
if (!CheckLocalFlag(0x29)) {
SetLocalFlag(0x29);
SetLocalFlag(0x4b);
SetLocalFlag(0x4e);
}
}
u32 sub_0804D0D4() {
return 1;
}
void nullsub_46() {
}
u32 sub_0804D0DC() {
return 1;
}
void nullsub_47() {
}
u32 sub_0804D0E4() {
return 1;
}
void nullsub_48() {
}
u32 sub_0804D0EC() {
return 1;
}
void nullsub_49() {
}
u32 sub_0804D0F4() {
return 1;
}
void nullsub_50() {
}
u32 sub_0804D0FC() {
return 1;
}
void nullsub_51() {
}
u32 sub_0804D104() {
return 1;
}
void nullsub_52() {
}
u32 sub_0804D10C() {
return 1;
}
void nullsub_53() {
}
u32 sub_0804D114() {
return 1;
}
void nullsub_54() {
}
u32 sub_0804D11C() {
return 1;
}
void nullsub_55() {
}
u32 sub_0804D124() {
return 1;
}
void nullsub_56() {
}
u32 sub_0804D12C() {
return 1;
}
void nullsub_57() {
}
u32 sub_0804D134() {
return 1;
}
void nullsub_58() {
}
u32 sub_0804D13C() {
return 1;
}
extern EntityData gUnk_080E49F4;
void sub_0804D140(void) {
sub_0805308C(0x100);
if (CheckGlobalFlag(LV4_CLEAR)) {
LoadRoomEntityList(&gUnk_080E49F4);
} else {
SoundReq(SONG_STOP_BGM);
gArea.musicIndex = gArea.pMusicIndex;
}
}
u32 sub_0804D180() {
return 1;
}
void nullsub_292() {
}
u32 sub_0804D188() {
return 1;
}
extern EntityData gUnk_080E4BD8;
void sub_0804D18C(void) {
if (!CheckLocalFlag(0x48)) {
ClearLocalFlag(0x46);
LoadRoomEntityList(&gUnk_080E4BD8);
}
}
u32 sub_0804D1AC() {
return 1;
}
extern EntityData gUnk_080E4CF8;
extern EntityData gUnk_080E4CD8;
void sub_0804D1B0(void) {
sub_0804D0B4();
if (CheckLocalFlag(0x6c)) {
LoadRoomEntityList(&gUnk_080E4CD8);
} else {
LoadRoomEntityList(&gUnk_080E4CF8);
}
if (!CheckLocalFlag(0x4b)) {
ClearLocalFlag(0x49);
}
}
u32 sub_0804D1E8() {
return 1;
}
void nullsub_293() {
}
u32 sub_0804D1F0() {
return 1;
}
void nullsub_294() {
}
u32 sub_0804D1F8() {
return 1;
}
void nullsub_295() {
}
u32 sub_0804D200() {
return 1;
}
void nullsub_296() {
}
u32 sub_0804D208() {
return 1;
}
void nullsub_297() {
}
u32 sub_0804D210() {
return 1;
}
void nullsub_298() {
}
u32 sub_0804D218() {
return 1;
}
void nullsub_299() {
}
u32 sub_0804D220() {
return 1;
}
void nullsub_300() {
}
u32 sub_0804D228() {
return 1;
}
extern EntityData gUnk_080E5660;
extern EntityData gUnk_080E5680;
void sub_0804D22C(void) {
if (!CheckLocalFlag(0x59)) {
LoadRoomEntityList(&gUnk_080E5660);
} else {
LoadRoomEntityList(&gUnk_080E5680);
}
}
u32 sub_0804D250() {
return 1;
}
void nullsub_301() {
}
u32 sub_0804D258() {
return 1;
}
void nullsub_302() {
}
u32 sub_0804D260() {
return 1;
}
void nullsub_303() {
}
u32 sub_0804D268() {
return 1;
}
void nullsub_304() {
}
u32 sub_0804D270() {
return 1;
}
void nullsub_305() {
}
u32 sub_0804D278() {
return 1;
}
extern EntityData gUnk_080E5E3C;
extern EntityData gUnk_080E5E5C;
void sub_0804D27C(void) {
sub_0804D0B4();
if (!CheckLocalFlag(0x4b)) {
LoadRoomEntityList(&gUnk_080E5E3C);
} else {
LoadRoomEntityList(&gUnk_080E5E5C);
}
}
u32 sub_0804D2A4() {
return 1;
}
void nullsub_306() {
}
u32 sub_0804D2AC() {
return 1;
}
void nullsub_307() {
}
u32 sub_0804D2B4() {
return 1;
}
void nullsub_308() {
}
u32 sub_0804D2BC() {
return 1;
}
void nullsub_309() {
}
u32 sub_0804D2C4() {
return 1;
}
void nullsub_310() {
}
u32 sub_0804D2CC() {
return 1;
}
void nullsub_311() {
}
u32 sub_0804D2D4() {
return 1;
}
void nullsub_312() {
}
u32 sub_0804D2DC() {
return 1;
}
void nullsub_313() {
}
u32 sub_0804D2E4() {
return 1;
}
extern EntityData gUnk_080E693C;
void sub_0804D2E8(void) {
if (!CheckLocalFlag(0x32)) {
LoadRoomEntityList(&gUnk_080E693C);
}
}
u32 sub_0804D300() {
return 1;
}
void nullsub_314() {
}
u32 sub_0804D308() {
return 1;
}
void nullsub_315() {
}
u32 sub_0804D310() {
return 1;
}
void nullsub_316() {
}
u32 sub_0804D318() {
return 1;
}
void nullsub_317() {
}
u32 sub_0804D320() {
return 1;
}
void nullsub_318() {
}
u32 sub_0804D328() {
return 1;
}
void nullsub_319() {
}
u32 sub_0804D330() {
return 1;
}
void sub_0804D334() {
sub_08054570();
}
u32 sub_0804D33C() {
return 1;
}
extern EntityData gUnk_080E718C;
extern EntityData gUnk_080E71AC;
void sub_0804D340(void) {
SetTileType(0x312, 0x108, 1);
sub_08054570();
if (!CheckLocalFlag(0xc4)) {
LoadRoomEntityList(&gUnk_080E718C);
}
if (!CheckLocalFlag(0xc5)) {
LoadRoomEntityList(&gUnk_080E71AC);
}
}
u32 sub_0804D380() {
return 1;
}
extern EntityData gUnk_080E7314;
extern EntityData gUnk_080E72C4;
extern EntityData gUnk_080E72E4;
void sub_0804D384(void) {
sub_0805AF60(0);
if (CheckGlobalFlag(LV5_CLEAR)) {
LoadRoomEntityList(&gUnk_080E7314);
}
if (!CheckLocalFlag(0x7b)) {
LoadRoomEntityList(&gUnk_080E72C4);
} else {
SetGlobalFlag(LV5_CLEAR);
// wind element
if (!GetInventoryValue(0x43)) {
sub_08078A90(3);
LoadRoomEntityList(&gUnk_080E72E4);
gArea.musicIndex = gArea.pMusicIndex;
SoundReq(SONG_STOP_BGM);
}
}
}
u32 sub_0804D3F8() {
return 1;
}
void sub_0804D3FC() {
sub_0805AF60(0);
}
u32 sub_0804D408() {
return 1;
}
void sub_0804D40C() {
sub_0805AF60(0);
}
u32 sub_0804D418() {
return 1;
}
void sub_0804D41C() {
sub_0805AF60(0);
}
u32 sub_0804D428() {
return 1;
}
void sub_0804D42C() {
sub_0805AF60(0);
}
u32 sub_0804D438() {
return 1;
}
void sub_0804D43C() {
sub_0805AF60(0);
}
u32 sub_0804D448() {
return 1;
}
void sub_0804D44C() {
sub_0805AF60(0);
}
u32 sub_0804D458() {
return 1;
}
void sub_0804D45C() {
sub_0805AF60(0);
}
u32 sub_0804D468() {
return 1;
}
void sub_0804D46C() {
sub_0805AF60(0);
}
u32 sub_0804D478() {
return 1;
}
void sub_0804D47C() {
sub_0805AF60(0);
}
u32 sub_0804D488() {
return 1;
}
void sub_0804D48C() {
sub_0805AF60(0);
}
u32 sub_0804D498() {
return 1;
}
void sub_0804D49C() {
sub_0805AF60(0);
}
u32 sub_0804D4A8() {
return 1;
}
void sub_0804D4AC() {
sub_0805AF60(0);
}
u32 sub_0804D4B8() {
return 1;
}
void sub_0804D4BC() {
sub_0805AF60(0);
}
u32 sub_0804D4C8() {
return 1;
}
void sub_0804D4CC() {
sub_0805AF60(0);
}
u32 sub_0804D4D8() {
return 1;
}
void sub_0804D4DC() {
sub_0805AF60(0);
}
u32 sub_0804D4E8() {
return 1;
}
void sub_0804D4EC() {
sub_0805AF60(0);
}
u32 sub_0804D4F8() {
return 1;
}
void sub_0804D4FC() {
sub_0805AF60(0);
}
u32 sub_0804D508() {
return 1;
}
void sub_0804D50C() {
sub_0805AF60(0);
}
u32 sub_0804D518() {
return 1;
}
void sub_0804D51C() {
sub_0805AF60(0);
}
u32 sub_0804D528() {
return 1;
}
void sub_0804D52C() {
sub_0805AF60(0);
}
u32 sub_0804D538() {
return 1;
}
void nullsub_59() {
}
u32 sub_0804D540() {
return 1;
}
void sub_0804D544() {
sub_0805AF60(0);
}
u32 sub_0804D550() {
return 1;
}
void sub_0804D554() {
sub_0805AF60(0);
}
u32 sub_0804D560() {
return 1;
}
void sub_0804D564() {
sub_0805AF60(0);
}
u32 sub_0804D570() {
return 1;
}
void sub_0804D574() {
sub_0805AF60(0);
}
u32 sub_0804D580() {
return 1;
}
void sub_0804D584() {
sub_0805AF60(0);
}
u32 sub_0804D590() {
return 1;
}
void nullsub_60() {
}
u32 sub_0804D598() {
return 1;
}
void nullsub_61() {
}
u32 sub_0804D5A0() {
return 1;
}
void nullsub_62() {
}
u32 sub_0804D5A8() {
return 1;
}
void nullsub_63() {
}
u32 sub_0804D5B0() {
return 1;
}
void nullsub_64() {
}
u32 sub_0804D5B8() {
return 1;
}
void nullsub_65() {
}
u32 sub_0804D5C0() {
return 1;
}
void sub_0804D5C4() {
sub_0805AF60(0);
}
u32 sub_0804D5D0() {
return 1;
}
void sub_0804D5D4() {
sub_0805AF60(0);
}
u32 sub_0804D5E0() {
return 1;
}
void sub_0804D5E4() {
sub_0805AF60(0);
}
u32 sub_0804D5F0() {
return 1;
}
void sub_0804D5F4() {
sub_0805AF60(0);
}
u32 sub_0804D600() {
return 1;
}
void nullsub_66() {
}
u32 sub_0804D608() {
return 1;
}
void nullsub_67() {
}
u32 sub_0804D610() {
return 1;
}
void nullsub_68() {
}
u32 sub_0804D618() {
return 1;
}
void nullsub_69() {
}
u32 sub_0804D620() {
return 1;
}
void nullsub_70() {
}
u32 sub_0804D628() {
return 1;
}
void nullsub_71() {
}
u32 sub_0804D630() {
return 1;
}
void sub_0804D634() {
sub_0805AF60(0);
}
u32 sub_0804D640() {
return 1;
}
extern EntityData gUnk_080EA09C;
void sub_0804D644(void) {
sub_0805AF60(0);
if (!CheckLocalFlag(0x70)) {
LoadRoomEntityList(&gUnk_080EA09C);
}
}
u32 sub_0804D664() {
return 1;
}
void sub_0804D668() {
sub_0805AF60(0);
}
u32 sub_0804D674() {
return 1;
}
void sub_0804D678() {
sub_0805AF60(0);
}
u32 sub_0804D684() {
return 1;
}
void sub_0804D688() {
sub_0805AF60(0);
}
u32 sub_0804D694() {
return 1;
}
void sub_0804D698() {
sub_0805AF60(0);
}
u32 sub_0804D6A4() {
return 1;
}
void sub_0804D6A8() {
sub_0805AF60(0);
}
u32 sub_0804D6B4() {
return 1;
}
void nullsub_72() {
}
u32 sub_0804D6BC() {
return 1;
}
void nullsub_73() {
}
u32 sub_0804D6C4() {
return 1;
}
void sub_0804D6C8(void) {
SoundReq(SONG_STOP_BGM);
gArea.musicIndex = gArea.pMusicIndex;
}
u32 sub_0804D6EC() {
return 1;
}
void sub_0804D6F0(void) {
sub_0805D3C8(0);
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_0804D754() {
return 1;
}
void sub_0804D758() {
sub_0805B4D0(6);
}
u32 sub_0804D764() {
return 1;
}
void nullsub_74() {
}
u32 sub_0804D76C() {
return 1;
}
void nullsub_75() {
}
u32 sub_0804D774() {
sub_080534AC();
return 1;
}
extern EntityData gUnk_080EAD68;
extern EntityData gUnk_080EADB8;
void sub_0804D780(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_0804D830() {
return 1;
}
extern EntityData gUnk_080EAE60;
extern EntityData gUnk_080EAEC0;
extern EntityData gUnk_080EAF20;
void sub_0804D834(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_0804D8CC() {
return 1;
}
void nullsub_320() {
}
u32 sub_0804D8D4() {
return 1;
}
void nullsub_321() {
}
u32 sub_0804D8DC() {
return 1;
}
void nullsub_322() {
}
u32 sub_0804D8E4() {
return 1;
}
void nullsub_323() {
}
u32 sub_0804D8EC() {
return 1;
}
void nullsub_324() {
}
u32 sub_0804D8F4() {
return 1;
}
void nullsub_325() {
}
u32 sub_0804D8FC() {
return 1;
}
void nullsub_326() {
}
extern u32 gUnk_080EB604;
extern u32 gUnk_080EB5D4;
u32 sub_0804D904(void) {
if (CheckGlobalFlag(ENDING)) {
gRoomVars.field_0x6c = &gUnk_080EB604;
gRoomVars.field_0x74 = 0;
gArea.musicIndex = gArea.pMusicIndex = 0x11;
} else if (CheckLocalFlag(0x79)) {
gRoomVars.field_0x6c = NULL;
if (!CheckLocalFlag(0x7a)) {
SetGlobalFlag(ZELDA_CHASE);
gRoomVars.field_0x6c = &gUnk_080EB5D4;
gRoomVars.field_0x88 = sub_0804D9B0;
gRoomVars.field_0x74 = 0;
}
}
return 1;
}
void sub_0804D97C(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_0804DA04() {
return 1;
}
void nullsub_327() {
}
u32 sub_0804DA0C() {
return 1;
}
void nullsub_328() {
}
u32 sub_0804DA14() {
return 1;
}
void nullsub_329() {
}
u32 sub_0804DA1C() {
return 1;
}
void nullsub_330() {
}
u32 sub_0804DA24() {
return 1;
}
void nullsub_331() {
}
u32 sub_0804DA2C(void) {
if (!CheckLocalFlag(0x77)) {
gRoomVars.field_0x6c = 0;
gRoomVars.field_0x74 = 0;
}
return 1;
}
extern EntityData gUnk_080EB9F4;
extern EntityData gUnk_080EBAA4;
extern EntityData gUnk_080EBAF4;
void sub_0804DA48(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_0804DA98() {
return 1;
}
void nullsub_332() {
}
u32 sub_0804DAA0() {
return 1;
}
void nullsub_333() {
}
u32 sub_0804DAA8() {
return 1;
}
void nullsub_334() {
}
u32 sub_0804DAB0() {
return 1;
}
void nullsub_335() {
}
u32 sub_0804DAB8() {
return 1;
}
void nullsub_336() {
}
u32 sub_0804DAC0() {
return 1;
}
void nullsub_337() {
}
u32 sub_0804DAC8() {
return 1;
}
void nullsub_338() {
}
u32 sub_0804DAD0() {
return 1;
}
extern EntityData gUnk_080EC2CC;
void sub_0804DAD4(void) {
if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x4c)) {
LoadRoomEntityList(&gUnk_080EC2CC);
}
}
u32 sub_0804DAF8() {
return 1;
}
void nullsub_339() {
}
u32 sub_0804DB00() {
return 1;
}
extern EntityData gUnk_080EC4E8;
void sub_0804DB04(void) {
if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x4d)) {
LoadRoomEntityList(&gUnk_080EC4E8);
}
}
u32 sub_0804DB28() {
return 1;
}
void nullsub_340() {
}
u32 sub_0804DB30() {
return 1;
}
void nullsub_341() {
}
u32 sub_0804DB38() {
return 1;
}
extern EntityData gUnk_080EC820;
void sub_0804DB3C(void) {
if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x53)) {
LoadRoomEntityList(&gUnk_080EC820);
}
}
u32 sub_0804DB60() {
return 1;
}
void nullsub_342() {
}
u32 sub_0804DB68() {
return 1;
}
extern EntityData gUnk_080ECA60;
void sub_0804DB6C(void) {
if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x56)) {
LoadRoomEntityList(&gUnk_080ECA60);
}
}
u32 sub_0804DB90() {
return 1;
}
void nullsub_343() {
}
u32 sub_0804DB98() {
return 1;
}
void nullsub_344() {
}
u32 sub_0804DBA0() {
return 1;
}
void nullsub_345() {
}
u32 sub_0804DBA8() {
return 1;
}
void nullsub_346() {
}
u32 sub_0804DBB0() {
return 1;
}
void nullsub_347() {
}
u32 sub_0804DBB8() {
return 1;
}
void nullsub_348() {
}
u32 sub_0804DBC0(void) {
if (CheckLocalFlag(0x79)) {
gRoomVars.field_0x74 = 0;
}
return 1;
}
extern EntityData gUnk_080ECFCC;
void sub_0804DBDC(void) {
if (CheckLocalFlag(0x79)) {
sub_0807BB98(0x90, 1, 1, 5);
LoadRoomEntityList(&gUnk_080ECFCC);
gArea.pMusicIndex = gArea.musicIndex;
}
}
u32 sub_0804DC18() {
return 1;
}
void nullsub_349() {
}
u32 sub_0804DC20() {
return 1;
}
void nullsub_350() {
}
extern u32 gUnk_080ED1E4;
u32 sub_0804DC28(void) {
if (CheckGlobalFlag(ENDING)) {
gRoomVars.field_0x6c = &gUnk_080ED1E4;
gRoomVars.field_0x74 = 0;
}
return 1;
}
void sub_0804DC4C(void) {
if (CheckGlobalFlag(ENDING)) {
gArea.pMusicIndex = gArea.musicIndex;
}
}
u32 sub_0804DC70() {
return 1;
}
void nullsub_351() {
}
u32 sub_0804DC78() {
return 1;
}
void nullsub_352() {
}
u32 sub_0804DC80() {
return 1;
}
void nullsub_353() {
}
u32 sub_0804DC88() {
return 1;
}
void nullsub_354() {
}
u32 sub_0804DC90() {
return 1;
}
void nullsub_355() {
}
u32 sub_0804DC98() {
return 1;
}
void nullsub_356() {
}
u32 sub_0804DCA0() {
return 1;
}
void nullsub_357() {
}
u32 sub_0804DCA8() {
return 1;
}
void nullsub_358() {
}
u32 sub_0804DCB0() {
return 1;
}
void nullsub_359() {
}
u32 sub_0804DCB8() {
return 1;
}
void nullsub_360() {
}
u32 sub_0804DCC0() {
return 1;
}
void nullsub_361() {
}
u32 sub_0804DCC8() {
return 1;
}
void nullsub_362() {
}
u32 sub_0804DCD0() {
return 1;
}
void nullsub_363() {
}
u32 sub_0804DCD8() {
return 1;
}
void nullsub_364() {
}
u32 sub_0804DCE0() {
return 1;
}
void nullsub_365() {
}
u32 sub_0804DCE8() {
return 1;
}
void nullsub_366() {
}
u32 sub_0804DCF0() {
return 1;
}
void nullsub_367() {
}
u32 sub_0804DCF8() {
return 1;
}
void nullsub_368() {
}
u32 sub_0804DD00() {
return 1;
}
void nullsub_369() {
}
u32 sub_0804DD08() {
return 1;
}
void nullsub_370() {
}
u32 sub_0804DD10() {
return 1;
}
void nullsub_371() {
}
u32 sub_0804DD18(void) {
if (CheckLocalFlag(0x79)) {
gRoomVars.field_0x74 = 0;
gRoomVars.field_0x6c = 0;
}
return 1;
}
extern EntityData gUnk_080EE314;
void sub_0804DD34(void) {
if (CheckLocalFlag(0x79)) {
sub_0807BB98(3, 2, 5, 1);
LoadRoomEntityList(&gUnk_080EE314);
gArea.pMusicIndex = gArea.musicIndex;
}
}
u32 sub_0804DD70() {
return 1;
}
void nullsub_372() {
}
u32 sub_0804DD78(void) {
if (CheckLocalFlag(0x79)) {
gRoomVars.field_0x74 = 0;
}
return 1;
}
extern EntityData gUnk_080EE5DC;
void sub_0804DD94(void) {
if (CheckLocalFlag(0x79)) {
sub_0807BB98(0x392, 2, 2, 5);
LoadRoomEntityList(&gUnk_080EE5DC);
gArea.pMusicIndex = gArea.musicIndex;
}
}
u32 sub_0804DDD4() {
return 1;
}
void nullsub_373() {
}
u32 sub_0804DDDC() {
return 1;
}
extern EntityData gUnk_080EE71C;
void sub_0804DDE0(void) {
if (CheckLocalFlag(1)) {
LoadRoomEntityList(&gUnk_080EE71C);
}
}
u32 sub_0804DDF8() {
return 1;
}
void nullsub_374() {
}
ASM_FUNC("asm/non_matching/sub_0804DE00.inc", u32 sub_0804DE00(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 LoadHyruleTown(void) {
sub_08054570();
TryLoadPrologueHyruleTown();
SetTileType(0x176, 0x66b, 1);
if (gSave.unk8 == 1) {
sub_0801D000(0);
} else {
sub_08018C58(0xdb4);
if (!CheckLocalFlagByOffset(0x200, 0x84)) {
LoadRoomEntityList(&gUnk_080EEB6C);
}
if (!CheckLocalFlagByOffset(0x200, 0x85)) {
LoadRoomEntityList(&gUnk_080EEB8C);
}
// kinstone bag
if ((!GetInventoryValue(0x67)) && 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.unk8 > 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.unk8 > 4) && !CheckKinstoneFused(0xb) &&
(CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) ||
CheckGlobalFlag(RENTED_HOUSE_FARORE))) {
LoadRoomEntityList(&gUnk_080EEA5C);
}
// rocs cape
if (!CheckLocalFlag(0xd0) && GetInventoryValue(0x14)) {
LoadRoomEntityList(&gUnk_080EEABC);
}
if ((gSave.unk8 > 3) && CheckGlobalFlag(INLOCK)) {
LoadRoomEntityList(&gUnk_080EEA7C);
}
if ((gSave.unk8 < 6) && !CheckGlobalFlag(MIZUKAKI_START)) {
LoadRoomEntityList(&gUnk_080EEA9C);
}
if ((gSave.windcrests & 0x8000000) == 0) {
LoadRoomEntityList(&gUnk_080EEBAC);
}
sub_0804E150();
}
}
void sub_0804E130(void) {
if ((gSave.windcrests & 0x8000000) == 0) {
LoadRoomEntityList(&gUnk_080EEBAC);
}
}
ASM_FUNC("asm/non_matching/sub_0804E150.inc", void sub_0804E150(void))
u32 sub_0804E1F4() {
return 1;
}
void nullsub_76() {
}
u32 sub_0804E1FC() {
return 1;
}
void nullsub_77() {
}
u32 sub_0804E204() {
return 1;
}
void nullsub_78() {
}
u32 sub_0804E20C() {
return 1;
}
void nullsub_79() {
}
u32 sub_0804E214() {
return 1;
}
void nullsub_080() {
}
u32 sub_0804E21C() {
return 1;
}
void nullsub_081() {
}
u32 sub_0804E224() {
return 1;
}
void nullsub_082() {
}
u32 sub_0804E22C() {
return 1;
}
void nullsub_083() {
}
u32 sub_0804E234() {
return 1;
}
void nullsub_084() {
}
u32 sub_0804E23C() {
return 1;
}
void nullsub_085() {
}
u32 sub_0804E244() {
return 1;
}
void nullsub_086() {
}
u32 sub_0804E24C() {
return 1;
}
void nullsub_087() {
}
u32 sub_0804E254() {
return 1;
}
void nullsub_088() {
}
extern u32 gUnk_080F09A0;
u32 sub_0804E25C(void) {
// four sword
if (GetInventoryValue(0x6)) {
gRoomVars.field_0x70 = &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_0804E27C(void) {
if (!CheckGlobalFlag(TABIDACHI)) {
LoadRoomEntityList(&gUnk_080F0650);
gArea.pMusicIndex = 0x13;
SetGlobalFlag(CASTLE_BGM);
} else {
if (CheckGlobalFlag(CASTLE_BGM)) {
gArea.pMusicIndex = 0x1b;
}
}
if (!CheckLocalFlag(0x9c)) {
LoadRoomEntityList(&gUnk_080F0800);
SetTileType(0x4072, 600, 1);
SetTileType(0x4072, 0x298, 1);
SetTileType(0x4072, 0x266, 1);
SetTileType(0x4072, 0x2a6, 1);
} else {
// four sword
if (!GetInventoryValue(0x6)) {
LoadRoomEntityList(&gUnk_080F08F0);
SetTileType(0x4072, 0x9e, 1);
SetTileType(0x4072, 0x9f, 1);
SetTileType(0x4072, 0xa0, 1);
}
LoadRoomEntityList(&gUnk_080F0850);
// water element
if (!GetInventoryValue(0x42)) {
LoadRoomEntityList(&gUnk_080F0870);
} else {
LoadRoomEntityList(&gUnk_080F0890);
}
SetTileType(0x4072, 600, 1);
SetTileType(0x4072, 0x298, 1);
if (CheckLocalFlag(0x10)) {
LoadRoomEntityList(&gUnk_080F0920);
ClearLocalFlag(0x10);
}
}
sub_080AF284();
}
u32 sub_0804E3B8() {
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_0804E3C4() {
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_0804E45C() {
return 1;
}
extern EntityData gUnk_080F1C68;
extern EntityData gUnk_080F1C88;
void sub_0804E460(void) {
if (!CheckGlobalFlag(POWERGLOVE_HINT)) {
LoadRoomEntityList(&gUnk_080F1C68);
} else {
LoadRoomEntityList(&gUnk_080F1C88);
}
}
u32 sub_0804E484() {
return 1;
}
extern EntityData gUnk_080F1D90;
extern EntityData gUnk_080F1DB0;
extern EntityData gUnk_080F1DD0;
void sub_0804E488(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_0804E4D0() {
return 1;
}
void nullsub_375() {
}
u32 sub_0804E4D8() {
return 1;
}
void nullsub_376() {
}
u32 sub_0804E4E0() {
return 1;
}
extern EntityData gUnk_080F2174;
extern EntityData gUnk_080F2194;
extern EntityData gUnk_080F21B4;
void sub_0804E4E4(void) {
LoadRoomEntityList(&gUnk_080F2174);
// picori legend book
if (!GetInventoryValue(0x3a) && CheckGlobalFlag(MIZUKAKI_HARIFALL)) {
LoadRoomEntityList(&gUnk_080F2194);
}
if (gScreenTransition.field_0xf == 1) {
LoadRoomEntityList(&gUnk_080F21B4);
}
}
u32 sub_0804E528() {
return 1;
}
extern EntityData gUnk_080F23BC;
extern EntityData gUnk_080F238C;
extern EntityData gUnk_080F236C;
void sub_0804E52C(void) {
if (gSave.unk8 > 7) {
LoadRoomEntityList(&gUnk_080F23BC);
}
// flippers
if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START)) {
LoadRoomEntityList(&gUnk_080F238C);
} else {
LoadRoomEntityList(&gUnk_080F236C);
}
}
u32 sub_0804E570() {
return 1;
}
extern EntityData gUnk_080F2570;
extern EntityData gUnk_080F2590;
extern EntityData gUnk_080F25C0;
extern EntityData gUnk_080F2600;
void sub_0804E574(void) {
switch (gSave.unk8) {
case 0:
case 2:
case 4:
LoadRoomEntityList(&gUnk_080F2570);
break;
case 1:
case 3:
break;
case 5:
// flippers
if (!GetInventoryValue(0x46)) {
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_0804E614() {
return 1;
}
extern EntityData gUnk_080F2718;
extern EntityData gUnk_080F2860;
extern EntityData gUnk_080F2758;
extern EntityData gUnk_080F27D8;
extern EntityData gUnk_080F2798;
void sub_0804E618(void) {
if (CheckKinstoneFused(0x21)) {
if (!CheckLocalFlag(0x42)) {
if (!CheckLocalFlag(0x43)) {
LoadRoomEntityList(&gUnk_080F2718);
LoadRoomTileEntities(&gUnk_080F2860);
} else {
LoadRoomEntityList(&gUnk_080F2758);
}
} else if (!CheckLocalFlag(0x3f)) {
LoadRoomEntityList(&gUnk_080F27D8);
} else {
LoadRoomEntityList(&gUnk_080F2798);
}
}
}
u32 sub_0804E680() {
return 1;
}
extern EntityData gUnk_080F28D4;
extern EntityData gUnk_080F28F4;
extern EntityData gUnk_080F2914;
void sub_0804E684(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_0804E6CC9() {
return 1;
}
void nullsub_377() {
}
u32 sub_0804E6D4() {
return 1;
}
void nullsub_378() {
}
u32 sub_0804E6DC() {
return 1;
}
void nullsub_379() {
}
u32 sub_0804E6E4() {
return 1;
}
extern EntityData gUnk_080F2E2C;
void sub_0804E6E8(void) {
if (!CheckGlobalFlag(OUTDOOR)) {
gArea.musicIndex = gArea.pMusicIndex;
SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP);
}
if (!CheckGlobalFlag(START)) {
LoadRoomEntityList(&gUnk_080F2E2C);
}
}
u32 sub_0804E728() {
return 1;
}
extern EntityData gUnk_080F2E94;
extern EntityData gUnk_080F2EC4;
void sub_0804E72C(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_0804E778() {
return 1;
}
extern EntityData gUnk_080F2FD4;
void sub_0804E77C(void) {
// graveyard key
if (!CheckLocalFlag(0x69) || GetInventoryValue(0x3c) > 1) {
LoadRoomEntityList(&gUnk_080F2FD4);
}
}
u32 sub_0804E7A0() {
return 1;
}
extern EntityData gUnk_080F30CC;
void sub_0804E7A4(void) {
// dog food
if ((GetInventoryValue(0x36) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) && (gPlayerState.flags.all & 0x80) == 0) {
LoadRoomEntityList(&gUnk_080F30CC);
}
}
u32 sub_0804E7D8() {
return 1;
}
extern EntityData gUnk_080F31D8;
extern u32 script_08009B30;
void sub_0804E7DC(void) {
if (!CheckGlobalFlag(START) && !CheckLocalFlag(0x46)) {
sub_080A71C4(5, 1, 4, 4);
gUnk_02000070 = 0;
DoFade(5, 0x100);
sub_080751E8(0, 6, &script_08009B30);
}
if (!CheckGlobalFlag(OUTDOOR)) {
gArea.musicIndex = gArea.pMusicIndex;
SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP);
}
if ((gPlayerState.flags.all & 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_0804E894() {
return 1;
}
extern EntityData gUnk_080F3260;
void sub_0804E898(void) {
// pacci cane
if (GetInventoryValue(0x12)) {
LoadRoomEntityList(&gUnk_080F3260);
SetTileType(0x4072, 0x202, 1);
SetTileType(0x4072, 0x242, 1);
SetTileType(0x4072, 0x204, 1);
SetTileType(0x4072, 0x244, 1);
}
}
u32 sub_0804E8EC() {
return 1;
}
void sub_0804E8F0() {
sub_08054564();
}
u32 sub_0804E8F8() {
return 1;
}
extern EntityData gUnk_080F36FC;
extern EntityData gUnk_080F3604;
void sub_0804E8FC(void) {
if (!CheckGlobalFlag(INLOCK)) {
LoadRoomEntityList(&gUnk_080F36FC);
} else if (gSave.unk8 < 4) {
LoadRoomEntityList(&gUnk_080F3604);
}
}
u32 sub_0804E92C() {
return 1;
}
extern EntityData gUnk_080F37D0;
void sub_0804E930(void) {
if (CheckGlobalFlag(INLOCK)) {
LoadRoomEntityList(&gUnk_080F37D0);
}
}
u32 sub_0804E948() {
return 1;
}
void nullsub_380() {
}
u32 sub_0804E950() {
return 1;
}
extern EntityData gUnk_080F3A48;
void sub_0804E954(void) {
// flippers, history of masks
if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(0x3b)) {
LoadRoomEntityList(&gUnk_080F3A48);
}
gScreenTransition.field_0x20 = 0xf28;
gScreenTransition.field_0x22 = 0x82d;
}
extern u32 gUnk_080F3D44;
extern u32 gUnk_080F3EA4;
u32 sub_0804E998(void) {
if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) {
gRoomVars.field_0x74 = &gUnk_080F3EA4;
} else {
gRoomVars.field_0x74 = &gUnk_080F3D44;
}
return 1;
}
extern EntityData gUnk_080F3C64;
extern EntityData gUnk_080F3C94;
extern EntityData gUnk_080F3C44;
void sub_0804E9D0(void) {
if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) {
LoadRoomEntityList(&gUnk_080F3C64);
}
if (CheckKinstoneFused(0x12)) {
LoadRoomEntityList(&gUnk_080F3C94);
}
if ((gSave.unk8 > 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_0804EB04() {
return 1;
}
void nullsub_381() {
}
u32 sub_0804EB0C() {
return 1;
}
void nullsub_382() {
}
u32 sub_0804EB14() {
return 1;
}
void nullsub_383() {
}
u32 sub_0804EB1() {
return 1;
}
void nullsub_384() {
}
u32 sub_0804EB24() {
return 1;
}
void nullsub_385() {
}
u32 sub_0804EB2C() {
return 1;
}
void nullsub_386() {
}
u32 sub_0804EB34() {
return 1;
}
void nullsub_387() {
}
u32 sub_0804EB3C() {
return 1;
}
void nullsub_388() {
}
u32 sub_0804EB44() {
return 1;
}
void nullsub_389() {
}
u32 sub_0804EB4C() {
return 1;
}
void nullsub_390() {
}
u32 sub_0804EB54(void) {
gArea.areaMetadata |= 0x48;
return 1;
}
void nullsub_391() {
}
u32 sub_0804EB6C(void) {
gArea.areaMetadata |= 0x48;
return 1;
}
void nullsub_392() {
}
u32 sub_0804EB84(void) {
gArea.areaMetadata |= 0x48;
return 1;
}
void nullsub_393() {
}
u32 sub_0804EB9C(void) {
sub_0801DD58(0x58, 5);
gArea.areaMetadata |= 0x48;
return 1;
}
void nullsub_394() {
}
u32 sub_0804EBBC(void) {
sub_0801DD58(0x58, 6);
gArea.areaMetadata |= 0x48;
return 1;
}
void nullsub_395() {
}
extern u32 gUnk_080F4EB0;
u32 sub_0804EBDC(void) {
if (CheckGlobalFlag(ENDING)) {
gRoomVars.field_0x6c = &gUnk_080F4EB0;
gRoomVars.field_0x74 = 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_0804EC00(void) {
if (CheckGlobalFlag(ENDING)) {
gArea.pMusicIndex = gArea.musicIndex;
}
if (!CheckGlobalFlag(EZERO_1ST)) {
LoadRoomEntityList(&gUnk_080F4D50);
}
if (!CheckLocalFlag(0x3e)) {
if (!CheckLocalFlag(0x3b)) {
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
SetTileType(0x177,0x5b4,1);
SetTileType(0x177,0x5f4,1);
#endif
}
void sub_0804EC98(void) {
if ((s32)gSave.windcrests > -1) {
LoadRoomEntityList(&gUnk_080F4E10);
}
}
u32 sub_0804ECB4() {
return 1;
}
void nullsub_396() {
}
extern u32 gUnk_080F5348;
u32 sub_0804ECBC(void) {
if (CheckGlobalFlag(ENDING)) {
gRoomVars.field_0x6c = &gUnk_080F5348;
gRoomVars.field_0x88 = sub_0804ED18;
gRoomVars.field_0x74 = NULL;
}
return 1;
}
extern EntityData gUnk_080F5328;
extern EntityData gUnk_080F5308;
void sub_0804ECEC(void) {
// white sword
if (GetInventoryValue(0x2)) {
LoadRoomEntityList(&gUnk_080F5328);
if (!CheckLocalFlag(0x14)) {
LoadRoomEntityList(&gUnk_080F5308);
}
}
}
void sub_0804ED18(void) {
gArea.pMusicIndex = gArea.musicIndex;
}
u32 sub_0804ED30() {
return 1;
}
void sub_0804ED34(void) {
sub_080AF2E4();
if (CheckGlobalFlag(SEIIKI_BGM)) {
gArea.pMusicIndex = 0x31;
}
}
u32 sub_0804ED58() {
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_0804ED5C(void) {
if (!CheckLocalFlag(0x79)) {
LoadRoomEntityList(&gUnk_080F54E8);
}
if (!CheckLocalFlag(0x7a)) {
// white sword, white sword 2, earth element, fire element
if (GetInventoryValue(0x2) && !GetInventoryValue(0x3) && GetInventoryValue(0x40) && GetInventoryValue(0x41)) {
LoadRoomEntityList(&gUnk_080F5508);
}
} else {
if (!CheckLocalFlag(0x7b)) {
if (GetInventoryValue(0x3) && !GetInventoryValue(0x4) && GetInventoryValue(0x42)) {
LoadRoomEntityList(&gUnk_080F5558);
}
} else {
if (!CheckLocalFlag(0x7c)) {
if (!GetInventoryValue(0x6) && GetInventoryValue(0x43)) {
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 = 0x31;
}
}
u32 sub_0804EE74() {
return 1;
}
extern EntityData gUnk_080F5660;
void sub_0804EE78(void) {
if (!CheckLocalFlag(0x78) && CheckLocalFlag(0x7c)) {
LoadRoomEntityList(&gUnk_080F5660);
}
if (CheckGlobalFlag(SEIIKI_BGM)) {
gArea.pMusicIndex = 0x31;
}
}
u32 sub_0804EEB8() {
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_0804EEBC(void) {
LoadRoomEntityList(&gUnk_080F5758);
if (!GetInventoryValue(0x36) && CheckLocalFlagByOffset(0x200, 0x8f)) {
LoadRoomEntityList(&gUnk_080F57E8);
}
if (!CheckLocalFlag(0x55)) {
LoadRoomEntityList(&gUnk_080F57A8);
} else {
if (gBombBagSizes[gSave.stats.bombBagType] > 0x1d) {
LoadRoomEntityList(&gUnk_080F57C8);
}
if (!GetInventoryValue(0xb) && !GetInventoryValue(0xc)) {
LoadRoomEntityList(&gUnk_080F5888);
} else {
if (!CheckLocalFlag(0xcd)) {
LoadRoomEntityList(&gUnk_080F58A8);
}
}
}
if (GetInventoryValue(0x9) || 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_0804EFB0() {
return 1;
}
void nullsub_397() {
}
u32 sub_0804EFB8() {
return 1;
}
extern EntityData gUnk_080F5B3C;
void sub_0804EFBC(void) {
if (GetInventoryValue(0x38) == 1) {
LoadRoomEntityList(&gUnk_080F5B3C);
}
}
u32 sub_0804EFD4() {
return 1;
}
void nullsub_398() {
}
u32 sub_0804EFDC(void) {
if (CheckGlobalFlag(MAROYA_WAKEUP)) {
gScreenTransition.field_0xf = 5;
}
return 1;
}
extern EntityData gUnk_080F5DD0;
extern u32 script_08011C50;
void sub_0804EFF8(void) {
if (gSave.unk8 > 7) {
LoadRoomEntityList(&gUnk_080F5DD0);
}
if (CheckGlobalFlag(MAROYA_WAKEUP)) {
sub_080751E8(1, 2, &script_08011C50);
}
}
u32 sub_0804F02C() {
return 1;
}
extern EntityData gUnk_080F5E68;
void sub_0804F030(void) {
if (!CheckLocalFlagByOffset(0x100, 0xd1)) {
LoadRoomEntityList(&gUnk_080F5E68);
}
}
u32 sub_0804F04C() {
return 1;
}
extern EntityData gUnk_080F5F38;
extern EntityData gUnk_080F5F58;
extern EntityData gUnk_080F5F78;
void sub_0804F050(void) {
if (gSave.unk8 > 4) {
LoadRoomEntityList(&gUnk_080F5F38);
}
if (!CheckLocalFlag(0x92)) {
LoadRoomEntityList(&gUnk_080F5F58);
} else {
LoadRoomEntityList(&gUnk_080F5F78);
}
}
u32 sub_0804F08C() {
return 1;
}
void nullsub_399() {
}
u32 sub_0804F094() {
return 1;
}
void nullsub_400() {
}
u32 sub_0804F09C(void) {
if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByOffset(0x100, 0xdc)) {
SetGlobalFlag(WARP_EVENT_END);
}
return 1;
}
extern EntityData gUnk_080F61BC;
void sub_0804F0C0(void) {
if (CheckLocalFlagByOffset(0x100, 0xdc)) {
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_0804F128() {
return 1;
}
extern EntityData gUnk_080F62E4;
extern EntityData gUnk_080F6324;
void sub_0804F12C(void) {
if (!CheckGlobalFlag(WARP_EVENT_END)) {
LoadRoomEntityList(&gUnk_080F62E4);
} else {
if (CheckLocalFlag(99)) {
LoadRoomEntityList(&gUnk_080F6324);
}
}
}
u32 sub_0804F15C() {
return 1;
}
void nullsub_401() {
}
u32 sub_0804F164() {
return 1;
}
extern EntityData gUnk_080F6564;
extern EntityData gUnk_080F6584;
void sub_0804F168(void) {
if (!CheckLocalFlag(0xb1)) {
LoadRoomEntityList(&gUnk_080F6564);
} else {
LoadRoomEntityList(&gUnk_080F6584);
}
}
u32 sub_0804F18C() {
return 1;
}
extern EntityData gUnk_080F66AC;
void sub_0804F190(void) {
sub_0805B4D0(5);
if (CheckGlobalFlag(LV5_CLEAR) && !CheckLocalFlagByOffset(0x100, 5)) {
LoadRoomEntityList(&gUnk_080F66AC);
}
sub_08052CA4(8, 0, 0x1e8, 0x158);
gArea.areaMetadata |= 0x80;
}
u32 sub_0804F1DC() {
return 1;
}
void nullsub_402() {
}
u32 sub_0804F1E4() {
return 1;
}
void nullsub_403() {
}
u32 sub_0804F1EC() {
return 1;
}
void nullsub_404() {
}
u32 sub_0804F1F4() {
return 1;
}
void nullsub_405() {
}
u32 sub_0804F1FC() {
return 1;
}
void nullsub_406() {
}
u32 sub_0804F204() {
return 1;
}
void nullsub_407() {
}
u32 sub_0804F20C() {
return 1;
}
void nullsub_408() {
}
u32 sub_0804F214() {
return 1;
}
void nullsub_409() {
}
u32 sub_0804F21C() {
return 1;
}
void nullsub_410() {
}
u32 sub_0804F224() {
return 1;
}
void nullsub_411() {
}
u32 sub_0804F22C() {
return 1;
}
void sub_0804F230() {
sub_0805ADD8(0);
}
u32 sub_0804F23C(void) {
if (!CheckLocalFlag(0x6d)) {
DoFade(7, 0x100);
}
SetGlobalFlag(OUTDOOR);
return 1;
}
extern EntityData gUnk_080F70A8;
extern EntityData gUnk_080F70D8;
extern EntityData gUnk_080F7088;
void sub_0804F25C(void) {
sub_0805ADD8(0);
if (!CheckLocalFlag(0x6d)) {
LoadRoomEntityList(&gUnk_080F70A8);
ClearGlobalFlag(ZELDA_CHASE);
}
if (!CheckGlobalFlag(TABIDACHI)) {
gArea.pMusicIndex = 0x10;
}
if ((gSave.windcrests & 0x40000000) == 0) {
LoadRoomEntityList(&gUnk_080F70D8);
}
if (gSave.unk8 > 3) {
LoadRoomEntityList(&gUnk_080F7088);
}
}
void sub_0804F2C8(void) {
if ((gSave.windcrests & 0x40000000) == 0) {
LoadRoomEntityList(&gUnk_080F70D8);
}
}
u32 sub_0804F2E8() {
return 1;
}
void sub_0804F2EC() {
sub_0805ADD8(0);
}
u32 sub_0804F2F8() {
return 1;
}
void sub_0804F2FC() {
sub_0805ADD8(0);
}
extern u32 gUnk_080F7680;
u32 sub_0804f308(void) {
if (GetInventoryValue(0x11) && !GetInventoryValue(0x12)) {
gRoomVars.field_0x74 = &gUnk_080F7680;
}
return 1;
}
extern EntityData gUnk_080F7500;
extern EntityData gUnk_080F7550;
void sub_0804F330(void) {
sub_0805ADD8(0);
if (gSave.unk8 > 3) {
LoadRoomEntityList(&gUnk_080F7500);
}
if (GetInventoryValue(0x11) && !GetInventoryValue(0x12)) {
LoadRoomEntityList(&gUnk_080F7550);
SetTileType(0x4072, 0x311, 1);
SetTileType(0x4072, 0x351, 1);
SetTileType(0x4072, 0x3d9, 1);
SetTileType(0x4072, 0x419, 1);
}
}
u32 sub_0804F3AC() {
return 1;
}
extern EntityData gUnk_080F77F0;
extern EntityData gUnk_080F77C0;
extern EntityData gUnk_080F7810;
extern EntityData gUnk_080F7860;
extern EntityData gUnk_080F78A0;
void sub_0804F3B0(void) {
sub_0805ADD8(0);
if (CheckLocalFlagByOffset(0x200, 0x8f)) {
if (!CheckGlobalFlag(INLOCK)) {
LoadRoomEntityList(&gUnk_080F77C0);
}
} else if (GetInventoryValue(0x40)) {
LoadRoomEntityList(&gUnk_080F77F0);
}
if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(0x40)) {
LoadRoomEntityList(&gUnk_080F7810);
}
if (!CheckKinstoneFused(0x29)) {
LoadRoomEntityList(&gUnk_080F7860);
SetTile(0x4072, 0xd88, 1);
SetTile(0x4096, 0xdc8, 1);
}
if ((gSave.unk8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) {
LoadRoomEntityList(&gUnk_080F78A0);
}
}
extern u32 gUnk_080F7CD0;
extern void sub_0804F5E8();
extern u32 gUnk_080F7C80;
extern void sub_0804F4E4();
u32 Vars_HyruleField_OutsideCastle(void) {
if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(0x11)) {
gRoomVars.field_0x6c = &gUnk_080F7CD0;
gRoomVars.field_0x88 = sub_0804F5E8;
}
if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8c)) {
gRoomVars.field_0x6c = &gUnk_080F7C80;
gRoomVars.field_0x88 = sub_0804F4E4;
gRoomVars.field_0x74 = NULL;
}
if (CheckGlobalFlag(TABIDACHI)) {
ClearGlobalFlag(CASTLE_BGM);
}
return 1;
}
void sub_0804F4E4() {
sub_0805ADD8(0);
sub_0804F578();
}
extern EntityData gUnk_080F7D70;
void Load_HyruleField_OutsideCastle(void) {
sub_0804F4E4();
if (!CheckLocalFlag(0x8b)) {
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)) {
gArea.pMusicIndex = 0x13;
}
}
extern EntityData gUnk_080F7DC0;
void sub_0804F578(void) {
if (!CheckLocalFlag(0x8e)) {
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, 2, 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, 0x35, 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, 0x35, 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 Vars_HyruleField_OutsideCastleWest() {
return 1;
}
extern EntityData gUnk_080F806C;
void Load_HyruleField_OutsideCastleWest(void) {
sub_0805ADD8(0);
if ((gSave.unk8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) {
LoadRoomEntityList(&gUnk_080F806C);
}
}
u32 Vars_HyruleField_TrilbyHighlands() {
return 1;
}
extern EntityData gUnk_080F82E0;
void Load_HyruleField_TrilbyHighlands(void) {
sub_0805ADD8(0);
if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x9c)) {
LoadRoomEntityList(&gUnk_080F82E0);
}
}
u32 sub_0804FA64() {
return 1;
}
extern EntityData gUnk_080F8430;
void sub_0804FA68(void) {
sub_0805ADD8(0);
if (CheckKinstoneFused(0x21) && !CheckLocalFlagByOffset(0x200, 0x42)) {
LoadRoomEntityList(&gUnk_080F8430);
}
}
u32 sub_0804FA94() {
return 1;
}
extern EntityData gUnk_080F85F8;
extern EntityData gUnk_080F85D8;
void sub_0804FA98(void) {
if (CheckGlobalFlag(SOUGEN_06_HASHIGO)) {
LoadRoomEntityList(&gUnk_080F85D8);
} else {
LoadRoomEntityList(&gUnk_080F85F8);
}
if (!GetInventoryValue(0xc)) {
ClearLocalFlag(8);
}
}
u32 sub_0804FACC() {
return 1;
}
void nullsub_412() {
}
u32 sub_0804FAD4() {
return 1;
}
void nullsub_413() {
}
u32 sub_0804FADC() {
return 1;
}
void nullsub_414() {
}
u32 sub_0804FAE4() {
return 1;
}
void nullsub_415() {
}
u32 sub_0804FAEC() {
return 1;
}
void nullsub_416() {
}
u32 sub_0804FAF4() {
return 1;
}
void nullsub_417() {
}
u32 sub_0804FAFC() {
return 1;
}
void nullsub_418() {
}
u32 sub_0804FB04() {
return 1;
}
void nullsub_419() {
}
u32 sub_0804FB0C() {
return 1;
}
void nullsub_420() {
}
u32 sub_0804FB14() {
return 1;
}
void nullsub_421() {
}
u32 sub_0804FB1C() {
return 1;
}
void nullsub_422() {
}
u32 sub_0804FB249() {
return 1;
}
void nullsub_423() {
}
u32 sub_0804FB2C() {
return 1;
}
void sub_0804FB30(void) {
if (CheckLocalFlag(0x11)) {
SetRoomFlag(0);
SetRoomFlag(1);
sub_0805308C(0x100);
if (!CheckLocalFlag(0x12)) {
SetTileType(0x73, 0xcb, 1);
}
}
}
u32 sub_0804FB68() {
return 1;
}
void nullsub_089() {
}
u32 sub_0804FB70() {
return 1;
}
void nullsub_90() {
}
u32 sub_0804FB78() {
return 1;
}
void nullsub_91() {
}
u32 sub_0804FB80() {
return 1;
}
void nullsub_92() {
}
u32 sub_0804FB88() {
return 1;
}
void nullsub_93() {
}
u32 sub_0804FB90() {
return 1;
}
void nullsub_94() {
}
u32 sub_0804FB98() {
return 1;
}
void nullsub_95() {
}
u32 sub_0804FBA0() {
return 1;
}
void nullsub_96() {
}
u32 sub_0804FBA8() {
return 1;
}
void nullsub_97() {
}
u32 sub_0804FBB09() {
return 1;
}
void nullsub_98() {
}
u32 sub_0804FBB8() {
return 1;
}
extern EntityData gUnk_080F9304;
void sub_0804FBBC(void) {
if ((gSave.windcrests & 0x2000000) == 0) {
LoadRoomEntityList(&gUnk_080F9304);
}
}
void sub_0804FBDC(void) {
if ((gSave.windcrests & 0x2000000) == 0) {
LoadRoomEntityList(&gUnk_080F9304);
}
}
u32 sub_0804FBFC() {
return 1;
}
void nullsub_424() {
}
u32 sub_0804FC04() {
return 1;
}
void nullsub_425() {
}
u32 sub_0804FC0C() {
return 1;
}
void nullsub_426() {
}
u32 sub_0804FC14() {
return 1;
}
void nullsub_427() {
}
u32 sub_0804FC1C() {
return 1;
}
void nullsub_428() {
}
u32 sub_0804FC24() {
return 1;
}
void nullsub_429() {
}
u32 sub_0804FC2C() {
return 1;
}
void nullsub_430() {
}
u32 sub_0804FC34() {
return 1;
}
void nullsub_431() {
}
u32 sub_0804FC3C() {
return 1;
}
void nullsub_432() {
}
u32 sub_0804FC44() {
return 1;
}
void nullsub_433() {
}
extern u32 gUnk_080F9BF8;
u32 sub_0804FC4C(void) {
if (!CheckKinstoneFused(0xe)) {
gRoomVars.field_0x6c = &gUnk_080F9BF8;
}
return 1;
}
void sub_0804FC6C() {
sub_0805B4D0(2);
sub_0806D0B0(0);
}
u32 sub_0804FC7C() {
return 1;
}
void nullsub_99() {
}
u32 sub_0804FC84() {
return 1;
}
void nullsub_100() {
}
u32 sub_0804FC8C() {
return 1;
}
void nullsub_101() {
}
u32 sub_0804FC94() {
return 1;
}
void nullsub_102() {
}
u32 sub_0804FC9C() {
return 1;
}
void nullsub_103() {
}
u32 sub_0804FCA4() {
return 1;
}
extern EntityData gUnk_080F9FA8;
extern EntityData gUnk_080F9F88;
void sub_0804FCA8(void) {
if (CheckKinstoneFused(0x14)) {
LoadRoomEntityList(&gUnk_080F9FA8);
}
if (!GetInventoryValue(0x38)) {
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_0804FD4C() {
return 1;
}
void nullsub_449() {
}
u32 sub_0804FD54() {
return 1;
}
extern EntityData gUnk_080FA5D0;
void sub_0804FD58(void) {
if (!CheckKinstoneFused(0x21)) {
LoadRoomEntityList(&gUnk_080FA5D0);
}
}
u32 sub_0804FD70() {
return 1;
}
void nullsub_450() {
}
u32 sub_0804FD78() {
return 1;
}
void nullsub_451() {
}
u32 sub_0804FD80() {
return 1;
}
void nullsub_452() {
}
u32 sub_0804FD88() {
return 1;
}
void nullsub_453() {
}
u32 sub_0804FD90() {
return 1;
}
void nullsub_454() {
}
u32 sub_0804FD98() {
return 1;
}
void nullsub_455() {
}
u32 sub_0804FDA0() {
return 1;
}
void nullsub_456() {
}
u32 sub_0804FDA8() {
return 1;
}
void nullsub_457() {
}
u32 sub_0804FDB0() {
return 1;
}
void nullsub_458() {
}
u32 sub_0804FDB8() {
return 1;
}
void nullsub_459() {
}
u32 sub_0804FDC0() {
return 1;
}
void nullsub_460() {
}
u32 sub_0804FDC8() {
return 1;
}
void nullsub_461() {
}
u32 sub_0804FDD0() {
return 1;
}
void nullsub_462() {
}
u32 sub_0804FDD8() {
return 1;
}
void nullsub_463() {
}
extern u32 gUnk_080FAD48;
u32 sub_0804FDE0(void) {
if (CheckGlobalFlag(ENDING)) {
gRoomVars.field_0x6c = &gUnk_080FAD48;
gRoomVars.field_0x74 = NULL;
}
return 1;
}
extern EntityData gUnk_080FACB8;
void sub_0804FE04(void) {
if (CheckGlobalFlag(ENDING)) {
gArea.pMusicIndex = gArea.musicIndex;
} else {
LoadRoomEntityList(&gUnk_080FACB8);
}
sub_0805B4D0(0);
sub_08059994();
}
void sub_0804FE40() {
sub_0805B4D0(0);
}
u32 sub_0804FE4C() {
return 1;
}
void nullsub_104() {
}
u32 sub_0804FE54() {
return 1;
}
extern EntityData gUnk_080FAFE4;
extern EntityData gUnk_080FB004;
void sub_0804FE58(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_0804FEAC(void) {
if ((gSave.windcrests & 0x1000000) == 0) {
LoadRoomEntityList(&gUnk_080FB004);
}
}
u32 sub_0804FECC() {
return 1;
}
void nullsub_464() {
}
u32 sub_0804FED4() {
return 1;
}
void sub_0804FED8(void) {
SetTileType(0x176, 0x66f, 1);
}
u32 sub_0804FEEC() {
return 1;
}
void nullsub_465() {
}
u32 sub_0804FEF4() {
return 1;
}
void nullsub_466() {
}
u32 sub_0804FEFC() {
return 1;
}
void nullsub_467() {
}
u32 sub_0804FF04() {
return 1;
}
void nullsub_468() {
}
u32 sub_0804FF0C() {
return 1;
}
void nullsub_469() {
}
u32 sub_0804FF14() {
return 1;
}
void nullsub_470() {
}
u32 sub_0804FF1C() {
return 1;
}
void nullsub_471() {
}
u32 sub_0804FF24() {
return 1;
}
void nullsub_472() {
}
u32 sub_0804FF2C() {
return 1;
}
void nullsub_473() {
}
u32 sub_0804FF34() {
return 1;
}
void nullsub_474() {
}
u32 sub_0804FF3C() {
return 1;
}
void nullsub_475() {
}
u32 sub_0804FF44() {
return 1;
}
void nullsub_476() {
}
u32 sub_0804FF4C() {
return 1;
}
void nullsub_477() {
}
u32 sub_0804FF54() {
return 1;
}
void nullsub_478() {
}
u32 sub_0804FF5C() {
return 1;
}
void sub_0804FF60(void) {
if (!CheckLocalFlag(0x70)) {
SetLocalFlag(0x70);
}
}
u32 sub_0804FF74() {
return 1;
}
void nullsub_105() {
}
u32 sub_0804FF7C() {
return 1;
}
void nullsub_106() {
}
void sub_0804FF84(u32 arg0) {
((struct_02000000*)0x02000000)->brightnessPref = arg0;
gUsedPalettes = (u32)-1;
}