diff --git a/asm/code_0807CC3C.s b/asm/code_0807CC3C.s index 79a102ff..4ededc8c 100644 --- a/asm/code_0807CC3C.s +++ b/asm/code_0807CC3C.s @@ -5,237 +5,6 @@ .text - thumb_func_start sub_0807CD9C -sub_0807CD9C: @ 0x0807CD9C - push {lr} - bl sub_080530C8 - pop {pc} - - thumb_func_start sub_0807CDA4 -sub_0807CDA4: @ 0x0807CDA4 - push {lr} - ldr r2, _0807CDB8 @ =gUnk_0811E478 - ldr r1, _0807CDBC @ =gMenu - ldrb r1, [r1, #7] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807CDB8: .4byte gUnk_0811E478 -_0807CDBC: .4byte gMenu - - thumb_func_start sub_0807CDC0 -sub_0807CDC0: @ 0x0807CDC0 - push {lr} - ldr r0, _0807CDE0 @ =gUnk_02021EE0 - ldrh r1, [r0, #0xa] - subs r1, #8 - strh r1, [r0, #0xa] - movs r1, #8 - ldrsh r0, [r0, r1] - cmp r0, #0 - bgt _0807CDDC - ldr r0, _0807CDE4 @ =gMenu - movs r1, #8 - strh r1, [r0, #0xa] - movs r1, #1 - strb r1, [r0, #7] -_0807CDDC: - movs r0, #0 - pop {pc} - .align 2, 0 -_0807CDE0: .4byte gUnk_02021EE0 -_0807CDE4: .4byte gMenu - - thumb_func_start sub_0807CDE8 -sub_0807CDE8: @ 0x0807CDE8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _0807CE08 @ =gMenu - ldrh r0, [r1, #0xa] - cmp r0, #0 - bne _0807CE4C - bl sub_0805616C - cmp r4, #1 - beq _0807CE20 - cmp r4, #1 - blo _0807CE0C - cmp r4, #2 - beq _0807CE2E - b _0807CE38 - .align 2, 0 -_0807CE08: .4byte gMenu -_0807CE0C: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #4] - ldr r1, _0807CE1C @ =gUnk_02002A40 - bl sub_0807CF08 - b _0807CE36 - .align 2, 0 -_0807CE1C: .4byte gUnk_02002A40 -_0807CE20: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #4] - bl sub_0807CF48 - movs r5, #1 - b _0807CE38 -_0807CE2E: - movs r0, #0x80 - lsls r0, r0, #0x12 - bl sub_0807CF10 -_0807CE36: - adds r5, r0, #0 -_0807CE38: - ldr r1, _0807CE48 @ =gMenu - strh r5, [r1, #0xa] - movs r0, #2 - strb r0, [r1, #7] - bl sub_08056208 - b _0807CE50 - .align 2, 0 -_0807CE48: .4byte gMenu -_0807CE4C: - subs r0, #1 - strh r0, [r1, #0xa] -_0807CE50: - movs r0, #0 - pop {r4, r5, pc} - - thumb_func_start sub_0807CE54 -sub_0807CE54: @ 0x0807CE54 - push {r4, r5, lr} - movs r4, #0 - ldr r2, _0807CE88 @ =gUnk_02021EE0 - ldrh r0, [r2, #0xa] - adds r0, #8 - strh r0, [r2, #0xa] - ldrh r3, [r2, #6] - movs r5, #6 - ldrsh r1, [r2, r5] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r1, r0 - bgt _0807CE84 - strh r3, [r2, #0xa] - bl sub_08050384 - ldr r0, _0807CE8C @ =gMenu - movs r1, #0 - strb r1, [r0, #7] - ldrh r0, [r0, #0xa] - subs r4, #1 - cmp r0, #1 - bne _0807CE84 - movs r4, #1 -_0807CE84: - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 -_0807CE88: .4byte gUnk_02021EE0 -_0807CE8C: .4byte gMenu - - thumb_func_start sub_0807CE90 -sub_0807CE90: @ 0x0807CE90 - push {r4, r5, r6, lr} - movs r0, #0x40 - bl sub_080B1520 - movs r0, #4 - bl sub_0807D1C4 - adds r4, r0, #0 - movs r5, #0 - ldrh r0, [r4, #6] - ldr r6, _0807CF04 @ =gUnk_0811E484 - ldrh r2, [r4] - adds r1, r6, #0 - bl sub_0807D24C - cmp r0, #0 - bne _0807CEB4 - movs r5, #1 -_0807CEB4: - ldrh r0, [r4, #8] - ldrh r2, [r4] - adds r1, r6, #0 - bl sub_0807D24C - cmp r0, #0 - bne _0807CEC4 - adds r5, #2 -_0807CEC4: - cmp r5, #0 - beq _0807CEFE - cmp r5, #3 - bne _0807CEEA - movs r0, #5 - bl sub_0807CF68 - movs r0, #3 - bl sub_0807CF68 - movs r0, #2 - bl sub_0807CF68 - movs r0, #1 - bl sub_0807CF68 - movs r0, #0 - bl sub_0807CF68 -_0807CEEA: - ldrh r0, [r4, #8] - ldrh r2, [r4] - adds r1, r6, #0 - bl sub_0807D20C - ldrh r0, [r4, #6] - ldrh r2, [r4] - adds r1, r6, #0 - bl sub_0807D20C -_0807CEFE: - movs r0, #1 - pop {r4, r5, r6, pc} - .align 2, 0 -_0807CF04: .4byte gUnk_0811E484 - - thumb_func_start sub_0807CF08 -sub_0807CF08: @ 0x0807CF08 - push {lr} - bl sub_0807CF88 - pop {pc} - - thumb_func_start sub_0807CF10 -sub_0807CF10: @ 0x0807CF10 - push {lr} - adds r1, r0, #0 - movs r0, #3 - bl sub_0807CF88 - pop {pc} - - thumb_func_start sub_0807CF1C -sub_0807CF1C: @ 0x0807CF1C - push {lr} - adds r1, r0, #0 - movs r0, #5 - bl sub_0807CF88 - pop {pc} - - thumb_func_start sub_0807CF28 -sub_0807CF28: @ 0x0807CF28 - push {lr} - bl sub_0807D008 - pop {pc} - - thumb_func_start sub_0807CF30 -sub_0807CF30: @ 0x0807CF30 - push {lr} - adds r1, r0, #0 - movs r0, #3 - bl sub_0807D008 - pop {pc} - - thumb_func_start sub_0807CF3C -sub_0807CF3C: @ 0x0807CF3C - push {lr} - adds r1, r0, #0 - movs r0, #5 - bl sub_0807D008 - pop {pc} - thumb_func_start sub_0807CF48 sub_0807CF48: @ 0x0807CF48 push {r4, r5, lr} diff --git a/hyrulefield.sna b/hyrulefield.sna new file mode 100644 index 00000000..0f6a50b4 Binary files /dev/null and b/hyrulefield.sna differ diff --git a/include/functions.h b/include/functions.h index 56b28ea6..773655e3 100644 --- a/include/functions.h +++ b/include/functions.h @@ -6,6 +6,7 @@ #include "entity.h" #include "position.h" #include "link.h" +#include "structures.h" // Identified - to be sorted into header files extern u32 Random(void); @@ -205,4 +206,17 @@ extern void sub_0807A108(void); extern void sub_0801766C(Entity*); extern void sub_08004168(Entity*); extern u32 sub_08052638(u32); +extern void sub_0805616C(); +extern u32 sub_0807CF08(u32, u8*); +extern void sub_0807CF48(u32); +extern u32 sub_0807CF10(u8 *); +extern void sub_08056208(); +extern void sub_08050384(); +extern void sub_080B1520(u32); +extern struct_0807D1C4* sub_0807D1C4(u32); +extern u32 sub_0807D24C(u32, char*, u32); +extern void sub_0807CF68(u32); +extern void sub_0807D20C(u32, char*, u32); +extern u32 sub_0807CF88(u32, u8*); +extern u32 sub_0807D008(u32, void*); #endif \ No newline at end of file diff --git a/include/main.h b/include/main.h index 16888e29..4cceb41e 100644 --- a/include/main.h +++ b/include/main.h @@ -45,7 +45,6 @@ extern UI gUnk_02032EC0; extern s32 sub_08055F70(); extern s32 sub_080A3204(s32); -extern s32 sub_0805616C(s32); extern s32 sub_0807CE90(s32); extern s32 sub_080560B8(s32); extern void sub_08056208(s32); diff --git a/include/menu.h b/include/menu.h index 93b77591..7ac003dd 100644 --- a/include/menu.h +++ b/include/menu.h @@ -27,7 +27,8 @@ typedef struct { u8 overlayType; u8 storyPanelIndex; u16 transitionTimer; - u8 fillerA[0x6]; + u16 field_0xa; + u8 field_0xc[0x4]; u8 unk10[2]; u8 field_0x12; u8 unk13; diff --git a/include/npc.h b/include/npc.h index 7b95e745..103df393 100644 --- a/include/npc.h +++ b/include/npc.h @@ -173,22 +173,5 @@ extern void NPC58_Head(Entity*); extern u32 UpdateFuseInteraction(Entity*); extern void ShowNPCDialogue(Entity*, u32*); -typedef struct { - /*0x000*/ u8 filler0[0x6]; - /*0x006*/ u8 unk6; - /*0x007*/ u8 unk7; - /*0x008*/ u8 unk8; - /*0x009*/ u8 field_0x9[0x34]; - /*0x040*/ u32 windcrests; - /*0x044*/ u8 filler44[0xC]; - /*0x050*/ u32 unk50; - /*0x054*/ u8 filler54[0x54]; - /*0x0A8*/ Stats stats; - /*0x0D0*/ u8 filler4[0x3c0]; - /*0x490*/ u32 unk490; -} struct_02002A40; - -extern struct_02002A40 gUnk_02002A40; - #endif \ No newline at end of file diff --git a/include/structures.h b/include/structures.h index 1f042416..ff29f0da 100644 --- a/include/structures.h +++ b/include/structures.h @@ -13,21 +13,48 @@ typedef struct { u8 gameLanguage; } struct_02000000; -extern struct_02000000 gUnk_02000000; +typedef struct { + u16 field_0x0; + u16 field_0x2; + u16 field_0x4; + u16 field_0x6; + u16 field_0x8; + u16 field_0xa; +} struct_0807D1C4; + +#define gUnk_02000000 ((struct_02000000*)(0x2000000)) +//extern struct_02000000 gUnk_02000000; typedef struct { - u16 frameCount; // regular frame count? does anything reset it? + /*0x000*/ u8 filler0[0x6]; + /*0x006*/ u8 unk6; + /*0x007*/ u8 unk7; + /*0x008*/ u8 unk8; + /*0x009*/ u8 field_0x9[0x34]; + /*0x040*/ u32 windcrests; + /*0x044*/ u8 filler44[0xC]; + /*0x050*/ u32 unk50; + /*0x054*/ u8 filler54[0x54]; + /*0x0A8*/ Stats stats; + /*0x0D0*/ u8 filler4[0x3c0]; + /*0x490*/ u32 unk490; +} struct_02002A40; + +extern struct_02002A40 gUnk_02002A40; + +typedef struct { + u16 frameCount; // regular frame count? does anything reset it? u8 field_0x2[6]; bool8 transitioningOut; u8 transitionType; // transition when changing areas - u8 field_0xa; + u8 field_0xa; // seems to be a tile type u8 field_0xb; u8 areaID; u8 roomID; - u8 animState; + u8 playerState; u8 field_0xf; - Coords startPos; - u16 collisionLayer; + Coords playerStartPos; + u16 playerLayer; u8 field_0x14[0xa]; u16 field_0x20; u16 field_0x22; @@ -41,6 +68,8 @@ typedef struct { u16 field_0x46; u16 field_0x48; u16 field_0x4a; + u8 field_0x4c[0x60]; + u16 field_0xac; } ScreenTransition; extern ScreenTransition gScreenTransition; @@ -53,9 +82,9 @@ typedef struct { u8 field_0xa; u8 areaID; u8 roomID; - u8 collisionLayer; + u8 playerLayer; u8 field_0xe; - u8 playerAnimState; + u8 playerState; u16 transitionSFX; } ScreenTransitionData; diff --git a/linker.ld b/linker.ld index 618c284b..f2c52dd1 100644 --- a/linker.ld +++ b/linker.ld @@ -663,8 +663,9 @@ SECTIONS { asm/getInventoryValue.o(.text); asm/code_0807CAA0.o(.text); src/flags.o(.text); - asm/code_0807CC3C.o(.text); src/code_0807CC3C.o(.text); + asm/code_0807CC3C.o(.text); + src/code_080808D8.o(.text); src/code_0808091C.o(.text); /* objects */ asm/itemOnGround.o(.text); diff --git a/src/code_0807CC3C.c b/src/code_0807CC3C.c index e9b9f8f5..b5b1c4ee 100644 --- a/src/code_0807CC3C.c +++ b/src/code_0807CC3C.c @@ -1,25 +1,125 @@ #include "global.h" #include "entity.h" -#include "structures.h" #include "functions.h" +#include "menu.h" +#include "structures.h" -void sub_080808D8(void) { - gScreenTransition.transitionType = 0; +extern void (*const gUnk_0811E478[])(u32); + +extern s16 gUnk_02021EE0[6]; + +void sub_0807CD9C() { + sub_080530C8(); } -void sub_080808E4(void) { +void sub_0807CDA4(u32 arg0) { + gUnk_0811E478[gMenu.storyPanelIndex](arg0); +} - if (sub_08052638(gScreenTransition.areaID)) { - gScreenTransition.transitionType = 0; - } else { - gScreenTransition.transitionType = 5; +u32 sub_0807CDC0(void) { + gUnk_02021EE0[5] -= 8; + if (gUnk_02021EE0[4] <= 0) { + gMenu.field_0xa = 8; + gMenu.storyPanelIndex = 1; } + return 0; } -void sub_08080904(void) { - gScreenTransition.transitionType = 1; +u32 sub_0807CDE8(u32 arg0) { + u32 temp; + + if (gMenu.field_0xa == 0) { + sub_0805616C(); + switch (arg0) { + case 0: + temp = sub_0807CF08(gUnk_02000000->saveFile, gUnk_02002A40.filler0); + break; + case 1: + sub_0807CF48(gUnk_02000000->saveFile); + temp = 1; + break; + case 2: + temp = sub_0807CF10((u8*)gUnk_02000000->header); + break; + } + gMenu.field_0xa = temp; + gMenu.storyPanelIndex = 2; + sub_08056208(); + } else { + gMenu.field_0xa--; + } + return 0; } -void sub_08080910(void) { - gScreenTransition.transitionType = 1; -} \ No newline at end of file +s32 sub_0807CE54(void) { + u32 uVar1; + + uVar1 = 0; + gUnk_02021EE0[5] += 8; + if (gUnk_02021EE0[3] <= gUnk_02021EE0[5]) { + gUnk_02021EE0[5] = gUnk_02021EE0[3]; + sub_08050384(); + gMenu.storyPanelIndex = 0; + if (gMenu.field_0xa == 1) { + uVar1 = 1; + } else { + uVar1 = -1; + } + } + return uVar1; +} + +extern char gUnk_0811E484[]; + +u32 sub_0807CE90(void) +{ + struct_0807D1C4 *puVar1; + int iVar2; + int iVar3; + + sub_080B1520(0x40); + puVar1 = sub_0807D1C4(4); + iVar3 = 0; + if (sub_0807D24C(puVar1->field_0x6, gUnk_0811E484, puVar1->field_0x0) == 0) { + iVar3 += 1; + } + if (sub_0807D24C(puVar1->field_0x8, gUnk_0811E484, puVar1->field_0x0) == 0) { + iVar3 += 2; + } + if (iVar3 != 0) { + if (iVar3 == 3) { + sub_0807CF68(5); + sub_0807CF68(3); + sub_0807CF68(2); + sub_0807CF68(1); + sub_0807CF68(0); + } + sub_0807D20C(puVar1->field_0x8, gUnk_0811E484, puVar1->field_0x0); + sub_0807D20C(puVar1->field_0x6, gUnk_0811E484, puVar1->field_0x0); + } + return 1; +} + +u32 sub_0807CF08(u32 arg0, u8* arg1) { + return sub_0807CF88(arg0, arg1); +} + +u32 sub_0807CF10(u8* arg0) { + return sub_0807CF88(3, arg0); +} + +u32 sub_0807CF1C(u8* arg0) { + return sub_0807CF88(5, arg0); +} + +u32 sub_0807CF28(u32 arg0, void* arg1) { + return sub_0807D008(arg0, arg1); +} + +u32 sub_0807CF30(void* arg0) { + return sub_0807D008(3, arg0); +} + +u32 sub_0807CF3C(void* arg0) { + return sub_0807D008(5, arg0); +} diff --git a/src/code_080808D8.c b/src/code_080808D8.c new file mode 100644 index 00000000..e9b9f8f5 --- /dev/null +++ b/src/code_080808D8.c @@ -0,0 +1,25 @@ +#include "global.h" +#include "entity.h" +#include "structures.h" +#include "functions.h" + +void sub_080808D8(void) { + gScreenTransition.transitionType = 0; +} + +void sub_080808E4(void) { + + if (sub_08052638(gScreenTransition.areaID)) { + gScreenTransition.transitionType = 0; + } else { + gScreenTransition.transitionType = 5; + } +} + +void sub_08080904(void) { + gScreenTransition.transitionType = 1; +} + +void sub_08080910(void) { + gScreenTransition.transitionType = 1; +} \ No newline at end of file diff --git a/src/manager/manager27.c b/src/manager/manager27.c index a4f4fda8..57952513 100644 --- a/src/manager/manager27.c +++ b/src/manager/manager27.c @@ -3,16 +3,10 @@ #include "flags.h" #include "functions.h" -typedef struct { - u8 filler[0xAC]; - u16 unk; -} ScreenTransition; - extern u32 sub_0805C920(Entity*); extern void LoadPalettesByPaletteGroupIndex(u32); extern void (*const gUnk_08108D10[])(Entity*); -extern ScreenTransition gScreenTransition; extern u8 gUnk_08108D20[]; void Manager27(Entity *this) @@ -20,10 +14,10 @@ void Manager27(Entity *this) gUnk_08108D10[this->action](this); if (CheckLocalFlagByOffset(0x300, this->entityType.form + 0x67)) { - gScreenTransition.unk |= (1 << (this->entityType).form); + gScreenTransition.field_0xac |= (1 << (this->entityType).form); } else { - gScreenTransition.unk &= ~(1 << (this->entityType).form); + gScreenTransition.field_0xac &= ~(1 << (this->entityType).form); } } diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c index 09c942e7..3ebb104f 100644 --- a/src/npc/bladeBrothers.c +++ b/src/npc/bladeBrothers.c @@ -6,25 +6,13 @@ #include "room.h" #include "textbox.h" -typedef struct { - /*0x00*/ u8 filler[0x2C]; - /*0x2C*/ u8 unk; -} ScreenTransition; - -typedef struct { - u8 filler[0xa8]; - Stats stats; -} struct_02002A40; - extern void (*gUnk_081115C0[])(Entity*); extern void (*gUnk_081115D0[])(Entity*); -extern ScreenTransition gScreenTransition; extern u16 gUnk_081115DC[]; extern u8 gUnk_08111618[]; extern u32* gUnk_081115EC[]; -extern struct_02002A40 gUnk_02002A40; extern u8 gUnk_08111623[]; extern u8 gUnk_0811162B[]; extern u16 gUnk_08111664[]; @@ -60,7 +48,7 @@ void sub_08068A1C(Entity* this) { int offset; (this->entityType).parameter = (this->entityType).form; - if (gScreenTransition.unk != 0) { + if (gScreenTransition.field_0x24[8] != 0) { offset = 6; bVar1 = 3; @@ -114,7 +102,7 @@ void sub_08068AA4(Entity* this) { } void sub_08068ADC(Entity* this) { - if (gScreenTransition.unk == 2) { + if (gScreenTransition.field_0x24[8] == 2) { GetNextFrame(this); } sub_0806FD3C(this); diff --git a/src/npc/forestMinish.c b/src/npc/forestMinish.c index 32b9c77a..7d0daab7 100644 --- a/src/npc/forestMinish.c +++ b/src/npc/forestMinish.c @@ -4,6 +4,7 @@ #include "flags.h" #include "textbox.h" #include "link.h" +#include "structures.h" extern void sub_0805E3A0(Entity*, u32); extern void StartCutscene(Entity*, void*); diff --git a/src/npc/mayorHagen.c b/src/npc/mayorHagen.c index bedf82be..9c9cbe51 100644 --- a/src/npc/mayorHagen.c +++ b/src/npc/mayorHagen.c @@ -6,6 +6,8 @@ #include "sprite.h" #include "textbox.h" #include "npc.h" +#include "structures.h" + extern void sub_0807DD50(Entity*); extern u32 sub_0806F5A4(u32); extern void sub_0806F118(Entity*); diff --git a/src/npc/mutoh.c b/src/npc/mutoh.c index d9d54769..e20d6ea6 100644 --- a/src/npc/mutoh.c +++ b/src/npc/mutoh.c @@ -4,6 +4,7 @@ #include "flags.h" #include "textbox.h" #include "npc.h" +#include "structures.h" extern void sub_0805E3A0(Entity*, u32); extern void sub_0807DD50(Entity*); diff --git a/src/npc/postman.c b/src/npc/postman.c index e2ed44c8..6df8f21b 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -3,6 +3,7 @@ #include "npc.h" #include "textbox.h" #include "link.h" +#include "structures.h" typedef struct { u8 filler[7]; diff --git a/src/npc/simon.c b/src/npc/simon.c index 73e6da35..d30b869a 100644 --- a/src/npc/simon.c +++ b/src/npc/simon.c @@ -4,11 +4,6 @@ #include "room.h" #include "flags.h" -typedef struct { - u8 filler[9]; - u8 unk; -} ScreenTransition; - typedef struct { u8 filler[4]; u32 unk; @@ -21,7 +16,6 @@ extern void DoFade(u32, u32); extern void gUnk_0813AD60; extern void gUnk_0813AD74; -extern ScreenTransition gScreenTransition; void Simon(Entity *this) { @@ -37,7 +31,7 @@ void Simon(Entity *this) void sub_0806C224(void) { DoExitTransition(&gUnk_0813AD60); - gScreenTransition.unk = 6; + gScreenTransition.transitionType = 6; } void Simon_CreateChest(Entity *this) @@ -51,7 +45,7 @@ void sub_0806C280(void) { SetGlobalFlag(MAROYA_WAKEUP); DoExitTransition(&gUnk_0813AD74); - gScreenTransition.unk = 6; + gScreenTransition.transitionType = 6; } void sub_0806C2A0(u32 *param_1,struct_0806C2A0 *param_2) diff --git a/src/npc/townsperson.c b/src/npc/townsperson.c index c0b1dd76..60748042 100644 --- a/src/npc/townsperson.c +++ b/src/npc/townsperson.c @@ -4,6 +4,7 @@ #include "link.h" #include "textbox.h" #include "flags.h" +#include "structures.h" typedef struct { u8 frame1; diff --git a/src/npc/windTribespeople.c b/src/npc/windTribespeople.c index 60f9905b..620483b3 100644 --- a/src/npc/windTribespeople.c +++ b/src/npc/windTribespeople.c @@ -3,6 +3,7 @@ #include "npc.h" #include "textbox.h" #include "flags.h" +#include "structures.h" extern u32 LoadExtraSpriteData(Entity*, SpriteLoadData*); extern void sub_0807DD50(Entity*); diff --git a/src/object/windcrest.c b/src/object/windcrest.c index 231eb425..3b883f4e 100644 --- a/src/object/windcrest.c +++ b/src/object/windcrest.c @@ -2,11 +2,6 @@ #include "entity.h" #include "functions.h" -typedef struct { - u8 filler[64]; - u32 windcrests; -} struct_02002A40; - extern void sub_0807DD64(Entity*); extern void sub_0807DDAC(Entity*, u32); extern void sub_0807DDE4(Entity*); @@ -15,7 +10,6 @@ extern void PlaySFX(u32); extern Entity* CreateFx (Entity*, u32, u32); extern u8 gUnk_08125010; -extern struct_02002A40 gUnk_02002A40; void Windcrest(Entity *this) { diff --git a/src/room.c b/src/room.c index 202a5bf9..4246c675 100644 --- a/src/room.c +++ b/src/room.c @@ -234,7 +234,7 @@ extern EntityData gUnk_080D6210; void sub_0804B5BC(void) { - if ((u16)gScreenTransition.startPos.HALF.y > 0x40) + if ((u16)gScreenTransition.playerStartPos.HALF.y > 0x40) LoadRoomEntityList(&gUnk_080D6210); } @@ -1024,7 +1024,7 @@ void sub_0804C018(void) { SetTile(0x4072, 0xc47, 1); if (CheckGlobalFlag(MAZE_CLEAR)) - if (gScreenTransition.startPos.WORD == 0x2780078) // todo: wtf + if (gScreenTransition.playerStartPos.WORD == 0x2780078) // todo: wtf PlaySFX(0x72); ClearGlobalFlag(MAZE_CLEAR);