From a4a019348016836f69d2f213466de29bdaf2d70a Mon Sep 17 00:00:00 2001 From: theo3 Date: Sat, 18 Jul 2020 22:53:42 -0700 Subject: [PATCH] room.c --- asm/code_08000E44.s | 4 +- asm/code_0801D79C.s | 2 +- asm/code_0804B9F8.s | 3273 ----------------------------- asm/code_08056418.s | 2 +- asm/code_0805E744.s | 2 +- asm/code_080A3BD0.s | 2 +- asm/manager10.s | 2 +- asm/manager12.s | 6 +- asm/manager1A.s | 2 +- asm/manager7.s | 4 +- asm/managerF.s | 6 +- asm/non_matching/sub_0804BF38.inc | 111 + asm/non_matching/sub_0804C128.inc | 148 ++ asm/non_matching/sub_0804C258.inc | 28 + asm/non_matching/sub_0804C290.inc | 23 + include/area.h | 4 + include/functions.h | 21 + include/room.h | 5 +- src/room.c | 1917 ++++++++++++++++- 19 files changed, 2208 insertions(+), 3354 deletions(-) create mode 100644 asm/non_matching/sub_0804BF38.inc create mode 100644 asm/non_matching/sub_0804C128.inc create mode 100644 asm/non_matching/sub_0804C258.inc create mode 100644 asm/non_matching/sub_0804C290.inc diff --git a/asm/code_08000E44.s b/asm/code_08000E44.s index 5754b16d..2104990f 100644 --- a/asm/code_08000E44.s +++ b/asm/code_08000E44.s @@ -59,8 +59,8 @@ sub_08000E92: @ 0x08000E92 movs r3, #1 b _08000E98 - non_word_aligned_thumb_func_start sub_08000E96 -sub_08000E96: @ 0x08000E96 + non_word_aligned_thumb_func_start LoadAssetAsync +LoadAssetAsync: @ 0x08000E96 movs r3, #0 _08000E98: push {r4, r5} diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index 297a0689..6fdf451e 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -803,7 +803,7 @@ sub_0801DD88: @ 0x0801DD88 ldr r1, _0801DD9C @ =0x06006000 movs r2, #0x80 lsls r2, r2, #6 - bl sub_08000E96 + bl LoadAssetAsync pop {pc} .align 2, 0 _0801DD98: .4byte gUnk_0201AEE0 diff --git a/asm/code_0804B9F8.s b/asm/code_0804B9F8.s index 3223f113..9394dcab 100644 --- a/asm/code_0804B9F8.s +++ b/asm/code_0804B9F8.s @@ -4,3279 +4,6 @@ .syntax unified .text - - thumb_func_start sub_0804B9F8 -sub_0804B9F8: @ 0x0804B9F8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_176 -nullsub_176: @ 0x0804B9FC - bx lr - .align 2, 0 - - thumb_func_start sub_0804BA00 -sub_0804BA00: @ 0x0804BA00 - movs r0, #1 - bx lr - - thumb_func_start nullsub_177 -nullsub_177: @ 0x0804BA04 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BA08 -sub_0804BA08: @ 0x0804BA08 - movs r0, #1 - bx lr - - thumb_func_start sub_0804BA0C -sub_0804BA0C: @ 0x0804BA0C - push {lr} - ldr r0, _0804BA34 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #7 - bhi _0804BA1C - ldr r0, _0804BA38 @ =gUnk_080D7038 - bl LoadRoomEntityList -_0804BA1C: - ldr r0, _0804BA3C @ =gRoomVars - ldrb r0, [r0] - cmp r0, #0 - bne _0804BA32 - movs r2, #0xb2 - lsls r2, r2, #2 - movs r0, #2 - movs r1, #0 - movs r3, #0xa8 - bl sub_08052CA4 -_0804BA32: - pop {pc} - .align 2, 0 -_0804BA34: .4byte gUnk_02002A40 -_0804BA38: .4byte gUnk_080D7038 -_0804BA3C: .4byte gRoomVars - - thumb_func_start sub_0804BA40 -sub_0804BA40: @ 0x0804BA40 - movs r0, #1 - bx lr - - thumb_func_start sub_0804BA44 -sub_0804BA44: @ 0x0804BA44 - push {r4, lr} - ldr r4, _0804BA7C @ =gUnk_02002A40 - ldrb r0, [r4, #8] - cmp r0, #6 - bne _0804BA54 - ldr r0, _0804BA80 @ =gUnk_080D7140 - bl LoadRoomEntityList -_0804BA54: - ldrb r0, [r4, #8] - cmp r0, #7 - bne _0804BA60 - ldr r0, _0804BA84 @ =gUnk_080D7170 - bl LoadRoomEntityList -_0804BA60: - ldrb r0, [r4, #8] - cmp r0, #7 - bls _0804BA72 - ldr r0, _0804BA88 @ =gUnk_080D71A0 - bl LoadRoomEntityList - ldrb r0, [r4, #8] - cmp r0, #7 - bhi _0804BA90 -_0804BA72: - ldr r0, _0804BA8C @ =gUnk_080D71D0 - bl LoadRoomEntityList - b _0804BA96 - .align 2, 0 -_0804BA7C: .4byte gUnk_02002A40 -_0804BA80: .4byte gUnk_080D7140 -_0804BA84: .4byte gUnk_080D7170 -_0804BA88: .4byte gUnk_080D71A0 -_0804BA8C: .4byte gUnk_080D71D0 -_0804BA90: - ldr r0, _0804BA98 @ =gUnk_080D71F0 - bl LoadRoomEntityList -_0804BA96: - pop {r4, pc} - .align 2, 0 -_0804BA98: .4byte gUnk_080D71F0 - - thumb_func_start sub_0804BA9C -sub_0804BA9C: @ 0x0804BA9C - push {lr} - movs r0, #0x51 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804BAB2 - ldr r0, _0804BAB8 @ =gRoomVars - ldr r1, _0804BABC @ =gUnk_080D7348 - str r1, [r0, #0x6c] - movs r1, #0 - str r1, [r0, #0x74] -_0804BAB2: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804BAB8: .4byte gRoomVars -_0804BABC: .4byte gUnk_080D7348 - - thumb_func_start sub_0804BAC0 -sub_0804BAC0: @ 0x0804BAC0 - push {lr} - movs r0, #3 - bl CheckGlobalFlag - cmp r0, #0 - bne _0804BAD2 - ldr r0, _0804BAE8 @ =gUnk_080D7328 - bl LoadRoomEntityList -_0804BAD2: - movs r0, #0x64 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804BAF4 - ldr r0, _0804BAEC @ =gArea - ldr r1, _0804BAF0 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x1b - str r1, [r0] - b _0804BB0C - .align 2, 0 -_0804BAE8: .4byte gUnk_080D7328 -_0804BAEC: .4byte gArea -_0804BAF0: .4byte 0x00000864 -_0804BAF4: - movs r0, #0x51 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804BB0C - ldr r0, _0804BB10 @ =gArea - ldr r2, _0804BB14 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804BB0C: - pop {pc} - .align 2, 0 -_0804BB10: .4byte gArea -_0804BB14: .4byte 0x00000864 - - thumb_func_start sub_0804BB18 -sub_0804BB18: @ 0x0804BB18 - push {lr} - movs r0, #0x51 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804BB2E - ldr r0, _0804BB34 @ =gRoomVars - ldr r1, _0804BB38 @ =gUnk_080D7410 - str r1, [r0, #0x6c] - movs r1, #0 - str r1, [r0, #0x74] -_0804BB2E: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804BB34: .4byte gRoomVars -_0804BB38: .4byte gUnk_080D7410 - - thumb_func_start sub_0804BB3C -sub_0804BB3C: @ 0x0804BB3C - push {lr} - movs r0, #0x51 - bl CheckGlobalFlag - cmp r0, #0 - bne _0804BB7C - movs r0, #3 - bl CheckGlobalFlag - cmp r0, #0 - bne _0804BB58 - ldr r0, _0804BB8C @ =gUnk_080D73B0 - bl LoadRoomEntityList -_0804BB58: - movs r0, #2 - bl CheckGlobalFlag - cmp r0, #0 - bne _0804BB72 - movs r0, #0x15 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804BB72 - ldr r0, _0804BB90 @ =gUnk_080D73E0 - bl LoadRoomEntityList -_0804BB72: - movs r0, #0x64 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804BB8A -_0804BB7C: - ldr r0, _0804BB94 @ =gArea - ldr r2, _0804BB98 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804BB8A: - pop {pc} - .align 2, 0 -_0804BB8C: .4byte gUnk_080D73B0 -_0804BB90: .4byte gUnk_080D73E0 -_0804BB94: .4byte gArea -_0804BB98: .4byte 0x00000864 - - thumb_func_start sub_0804BB9C -sub_0804BB9C: @ 0x0804BB9C - movs r0, #1 - bx lr - - thumb_func_start sub_0804BBA0 -sub_0804BBA0: @ 0x0804BBA0 - push {lr} - movs r0, #0x64 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804BBBA - ldr r0, _0804BBDC @ =gArea - ldr r2, _0804BBE0 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804BBBA: - movs r0, #0x51 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804BBE8 - ldr r0, _0804BBE4 @ =gUnk_080D7618 - bl LoadRoomEntityList - ldr r0, _0804BBDC @ =gArea - ldr r2, _0804BBE0 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - b _0804BC2E - .align 2, 0 -_0804BBDC: .4byte gArea -_0804BBE0: .4byte 0x00000864 -_0804BBE4: .4byte gUnk_080D7618 -_0804BBE8: - movs r0, #0x15 - bl CheckGlobalFlag - cmp r0, #0 - bne _0804BC10 - ldr r0, _0804BC04 @ =gUnk_080D74C8 - bl LoadRoomEntityList - ldr r0, _0804BC08 @ =gArea - ldr r1, _0804BC0C @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x1b - str r1, [r0] - b _0804BC2E - .align 2, 0 -_0804BC04: .4byte gUnk_080D74C8 -_0804BC08: .4byte gArea -_0804BC0C: .4byte 0x00000864 -_0804BC10: - movs r0, #2 - bl CheckGlobalFlag - cmp r0, #0 - bne _0804BC28 - ldr r0, _0804BC24 @ =gUnk_080D7588 - bl LoadRoomEntityList - b _0804BC2E - .align 2, 0 -_0804BC24: .4byte gUnk_080D7588 -_0804BC28: - ldr r0, _0804BC30 @ =gUnk_080D75D8 - bl LoadRoomEntityList -_0804BC2E: - pop {pc} - .align 2, 0 -_0804BC30: .4byte gUnk_080D75D8 - - thumb_func_start sub_0804BC34 -sub_0804BC34: @ 0x0804BC34 - movs r0, #1 - bx lr - - thumb_func_start sub_0804BC38 -sub_0804BC38: @ 0x0804BC38 - push {lr} - movs r0, #0x9c - bl CheckLocalFlag - cmp r0, #0 - beq _0804BC4A - ldr r0, _0804BC4C @ =gUnk_080D7690 - bl LoadRoomEntityList -_0804BC4A: - pop {pc} - .align 2, 0 -_0804BC4C: .4byte gUnk_080D7690 - - thumb_func_start sub_0804BC50 -sub_0804BC50: @ 0x0804BC50 - push {lr} - movs r0, #0x9f - bl CheckLocalFlag - cmp r0, #0 - bne _0804BC68 - ldr r1, _0804BC6C @ =gUnk_030010A0 - movs r0, #5 - strb r0, [r1, #0xf] - movs r0, #0x1c - bl ClearGlobalFlag -_0804BC68: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804BC6C: .4byte gUnk_030010A0 - - thumb_func_start sub_0804BC70 -sub_0804BC70: @ 0x0804BC70 - push {lr} - movs r0, #0x9f - bl CheckLocalFlag - cmp r0, #0 - bne _0804BCA0 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl DoFade - ldr r2, _0804BCB0 @ =gLinkEntity - ldr r1, _0804BCB4 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #0xb0 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #8] - adds r0, #0x40 - strh r0, [r2, #0x32] - ldr r2, _0804BCB8 @ =gUnk_08009E88 - movs r0, #0 - movs r1, #6 - bl sub_080751E8 -_0804BCA0: - movs r0, #0x15 - bl CheckGlobalFlag - cmp r0, #0 - bne _0804BCBC - bl sub_08052878 - b _0804BCD0 - .align 2, 0 -_0804BCB0: .4byte gLinkEntity -_0804BCB4: .4byte gRoomControls -_0804BCB8: .4byte gUnk_08009E88 -_0804BCBC: - movs r0, #0x64 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804BCD0 - ldr r0, _0804BCD4 @ =gArea - ldr r1, _0804BCD8 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x1b - str r1, [r0] -_0804BCD0: - pop {pc} - .align 2, 0 -_0804BCD4: .4byte gArea -_0804BCD8: .4byte 0x00000864 - - thumb_func_start sub_0804BCDC -sub_0804BCDC: @ 0x0804BCDC - push {lr} - ldr r0, _0804BCE8 @ =gUnk_0813AB80 - movs r1, #4 - bl sub_0808091C - pop {pc} - .align 2, 0 -_0804BCE8: .4byte gUnk_0813AB80 - - thumb_func_start sub_0804BCEC -sub_0804BCEC: @ 0x0804BCEC - movs r0, #1 - bx lr - - thumb_func_start nullsub_178 -nullsub_178: @ 0x0804BCF0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BCF4 -sub_0804BCF4: @ 0x0804BCF4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_179 -nullsub_179: @ 0x0804BCF8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BCFC -sub_0804BCFC: @ 0x0804BCFC - movs r0, #1 - bx lr - - thumb_func_start nullsub_180 -nullsub_180: @ 0x0804BD00 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD04 -sub_0804BD04: @ 0x0804BD04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_181 -nullsub_181: @ 0x0804BD08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD0C -sub_0804BD0C: @ 0x0804BD0C - movs r0, #1 - bx lr - - thumb_func_start nullsub_182 -nullsub_182: @ 0x0804BD10 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD14 -sub_0804BD14: @ 0x0804BD14 - movs r0, #1 - bx lr - - thumb_func_start nullsub_183 -nullsub_183: @ 0x0804BD18 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD1C -sub_0804BD1C: @ 0x0804BD1C - movs r0, #1 - bx lr - - thumb_func_start nullsub_184 -nullsub_184: @ 0x0804BD20 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD24 -sub_0804BD24: @ 0x0804BD24 - movs r0, #1 - bx lr - - thumb_func_start nullsub_185 -nullsub_185: @ 0x0804BD28 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD2C -sub_0804BD2C: @ 0x0804BD2C - movs r0, #1 - bx lr - - thumb_func_start nullsub_186 -nullsub_186: @ 0x0804BD30 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD34 -sub_0804BD34: @ 0x0804BD34 - movs r0, #1 - bx lr - - thumb_func_start nullsub_187 -nullsub_187: @ 0x0804BD38 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD3C -sub_0804BD3C: @ 0x0804BD3C - movs r0, #1 - bx lr - - thumb_func_start nullsub_188 -nullsub_188: @ 0x0804BD40 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD44 -sub_0804BD44: @ 0x0804BD44 - movs r0, #1 - bx lr - - thumb_func_start nullsub_189 -nullsub_189: @ 0x0804BD48 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD4C -sub_0804BD4C: @ 0x0804BD4C - movs r0, #1 - bx lr - - thumb_func_start sub_0804BD50 -sub_0804BD50: @ 0x0804BD50 - push {r4, lr} - movs r0, #6 - bl GetInventoryValue - cmp r0, #0 - beq _0804BD94 - ldr r4, _0804BD98 @ =0x00004072 - ldr r1, _0804BD9C @ =0x0000014D - adds r0, r4, #0 - movs r2, #1 - bl SetTile - movs r1, #0x86 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #1 - bl SetTile - adds r4, #0x1e - movs r1, #0xa6 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #1 - bl SetTile - movs r1, #0xc6 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #1 - bl SetTile - ldr r0, _0804BDA0 @ =gUnk_080D7D34 - bl LoadRoomEntityList -_0804BD94: - pop {r4, pc} - .align 2, 0 -_0804BD98: .4byte 0x00004072 -_0804BD9C: .4byte 0x0000014D -_0804BDA0: .4byte gUnk_080D7D34 - - thumb_func_start sub_0804BDA4 -sub_0804BDA4: @ 0x0804BDA4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_190 -nullsub_190: @ 0x0804BDA8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BDAC -sub_0804BDAC: @ 0x0804BDAC - movs r0, #1 - bx lr - - thumb_func_start nullsub_191 -nullsub_191: @ 0x0804BDB0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BDB4 -sub_0804BDB4: @ 0x0804BDB4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_192 -nullsub_192: @ 0x0804BDB8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BDBC -sub_0804BDBC: @ 0x0804BDBC - movs r0, #1 - bx lr - - thumb_func_start nullsub_193 -nullsub_193: @ 0x0804BDC0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BDC4 -sub_0804BDC4: @ 0x0804BDC4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_194 -nullsub_194: @ 0x0804BDC8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BDCC -sub_0804BDCC: @ 0x0804BDCC - movs r0, #1 - bx lr - - thumb_func_start sub_0804BDD0 -sub_0804BDD0: @ 0x0804BDD0 - push {lr} - movs r0, #3 - bl CheckLocalFlag - cmp r0, #0 - bne _0804BDE8 - ldr r0, _0804BDE4 @ =gUnk_080D827C - bl LoadRoomEntityList - b _0804BE00 - .align 2, 0 -_0804BDE4: .4byte gUnk_080D827C -_0804BDE8: - bl sub_0805BC4C - movs r0, #0x76 - movs r1, #0x82 - movs r2, #2 - bl SetTileType - movs r0, #0x76 - movs r1, #0x8c - movs r2, #2 - bl SetTileType -_0804BE00: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804BE04 -sub_0804BE04: @ 0x0804BE04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_28 -nullsub_28: @ 0x0804BE08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE0C -sub_0804BE0C: @ 0x0804BE0C - movs r0, #1 - bx lr - - thumb_func_start nullsub_29 -nullsub_29: @ 0x0804BE10 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE14 -sub_0804BE14: @ 0x0804BE14 - movs r0, #1 - bx lr - - thumb_func_start nullsub_30 -nullsub_30: @ 0x0804BE18 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE1C -sub_0804BE1C: @ 0x0804BE1C - movs r0, #1 - bx lr - - thumb_func_start nullsub_31 -nullsub_31: @ 0x0804BE20 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE24 -sub_0804BE24: @ 0x0804BE24 - movs r0, #1 - bx lr - - thumb_func_start nullsub_32 -nullsub_32: @ 0x0804BE28 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE2C -sub_0804BE2C: @ 0x0804BE2C - movs r0, #1 - bx lr - - thumb_func_start nullsub_33 -nullsub_33: @ 0x0804BE30 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE34 -sub_0804BE34: @ 0x0804BE34 - movs r0, #1 - bx lr - - thumb_func_start nullsub_34 -nullsub_34: @ 0x0804BE38 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE3C -sub_0804BE3C: @ 0x0804BE3C - movs r0, #1 - bx lr - - thumb_func_start nullsub_35 -nullsub_35: @ 0x0804BE40 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE44 -sub_0804BE44: @ 0x0804BE44 - movs r0, #1 - bx lr - - thumb_func_start nullsub_36 -nullsub_36: @ 0x0804BE48 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE4C -sub_0804BE4C: @ 0x0804BE4C - movs r0, #1 - bx lr - - thumb_func_start sub_0804BE50 -sub_0804BE50: @ 0x0804BE50 - push {lr} - movs r0, #0x68 - bl CheckLocalFlag - cmp r0, #0 - bne _0804BE62 - movs r0, #0x68 - bl SetLocalFlag -_0804BE62: - movs r0, #0x2f - bl CheckKinstoneFused - cmp r0, #0 - beq _0804BE78 - ldr r0, _0804BE74 @ =gUnk_080D8B24 - bl LoadRoomEntityList - b _0804BEDE - .align 2, 0 -_0804BE74: .4byte gUnk_080D8B24 -_0804BE78: - movs r0, #0x2b - bl CheckKinstoneFused - cmp r0, #0 - beq _0804BE90 - ldr r0, _0804BE8C @ =gUnk_080D8AC4 - bl LoadRoomEntityList - b _0804BEDE - .align 2, 0 -_0804BE8C: .4byte gUnk_080D8AC4 -_0804BE90: - movs r0, #0x26 - bl CheckKinstoneFused - cmp r0, #0 - beq _0804BEA8 - ldr r0, _0804BEA4 @ =gUnk_080D8A74 - bl LoadRoomEntityList - b _0804BEDE - .align 2, 0 -_0804BEA4: .4byte gUnk_080D8A74 -_0804BEA8: - movs r0, #0x2a - bl CheckKinstoneFused - cmp r0, #0 - beq _0804BEC0 - ldr r0, _0804BEBC @ =gUnk_080D8A34 - bl LoadRoomEntityList - b _0804BEDE - .align 2, 0 -_0804BEBC: .4byte gUnk_080D8A34 -_0804BEC0: - movs r0, #0x25 - bl CheckKinstoneFused - cmp r0, #0 - beq _0804BED8 - ldr r0, _0804BED4 @ =gUnk_080D8A04 - bl LoadRoomEntityList - b _0804BEDE - .align 2, 0 -_0804BED4: .4byte gUnk_080D8A04 -_0804BED8: - ldr r0, _0804BF1C @ =gUnk_080D89E4 - bl LoadRoomEntityList -_0804BEDE: - movs r0, #0x25 - bl CheckKinstoneFused - cmp r0, #0 - beq _0804BEF2 - ldr r0, _0804BF20 @ =gUnk_080D8BBC - ldr r1, _0804BF24 @ =0x000007C5 - movs r2, #1 - bl sub_0807BB68 -_0804BEF2: - movs r0, #0x26 - bl CheckKinstoneFused - cmp r0, #0 - beq _0804BF06 - ldr r0, _0804BF28 @ =gUnk_080D8BFA - ldr r1, _0804BF2C @ =0x00000503 - movs r2, #1 - bl sub_0807BB68 -_0804BF06: - movs r0, #0x2f - bl CheckKinstoneFused - cmp r0, #0 - beq _0804BF1A - ldr r0, _0804BF30 @ =gUnk_080D8C68 - ldr r1, _0804BF34 @ =0x00000281 - movs r2, #1 - bl sub_0807BB68 -_0804BF1A: - pop {pc} - .align 2, 0 -_0804BF1C: .4byte gUnk_080D89E4 -_0804BF20: .4byte gUnk_080D8BBC -_0804BF24: .4byte 0x000007C5 -_0804BF28: .4byte gUnk_080D8BFA -_0804BF2C: .4byte 0x00000503 -_0804BF30: .4byte gUnk_080D8C68 -_0804BF34: .4byte 0x00000281 - - thumb_func_start sub_0804BF38 -sub_0804BF38: @ 0x0804BF38 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, [r1, #4] - lsls r0, r0, #4 - ldr r1, _0804C000 @ =gUnk_080D8E50 - adds r4, r0, r1 - ldr r0, [r4] - ldrh r1, [r4, #4] - lsrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - ldrh r2, [r4, #6] - lsrs r2, r2, #4 - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #1 - bl sub_0807BB68 - ldrh r0, [r4, #8] - mov r8, r0 - movs r5, #0 - cmp r5, r8 - bhs _0804BFE8 - ldr r7, _0804C004 @ =gRoomControls - movs r1, #0 - mov sl, r1 - movs r6, #0 - movs r3, #1 - mov sb, r3 -_0804BF7A: - movs r0, #0xf - movs r1, #0xf - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0804BFA6 - ldrh r0, [r7, #6] - ldrh r1, [r4, #4] - adds r0, r0, r1 - adds r0, r0, r6 - strh r0, [r2, #0x2e] - ldrh r1, [r7, #8] - ldrh r3, [r4, #6] - adds r1, r1, r3 - adds r0, r5, #0 - mov r3, sb - ands r0, r3 - lsls r0, r0, #3 - adds r1, r1, r0 - strh r1, [r2, #0x32] -_0804BFA6: - movs r0, #0xf - movs r1, #0x54 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0804BFE0 - ldrh r0, [r7, #6] - ldrh r1, [r4, #4] - adds r0, r0, r1 - adds r0, r0, r6 - strh r0, [r2, #0x2e] - ldrh r1, [r7, #8] - ldrh r3, [r4, #6] - adds r1, r1, r3 - ldr r0, _0804C008 @ =0x0000FFF4 - adds r1, r1, r0 - adds r0, r5, #0 - mov r3, sb - ands r0, r3 - lsls r0, r0, #3 - adds r1, r1, r0 - strh r1, [r2, #0x32] - mov r0, sl - strb r0, [r2, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2, #0x24] -_0804BFE0: - adds r6, #0x10 - adds r5, #1 - cmp r5, r8 - blo _0804BF7A -_0804BFE8: - ldrh r0, [r4, #0xa] - ldrh r1, [r4, #0xc] - bl sub_08080964 - ldrh r0, [r4, #0xe] - bl PlaySFX - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804C000: .4byte gUnk_080D8E50 -_0804C004: .4byte gRoomControls -_0804C008: .4byte 0x0000FFF4 - - thumb_func_start sub_0804C00C -sub_0804C00C: @ 0x0804C00C - movs r0, #1 - bx lr - - thumb_func_start nullsub_195 -nullsub_195: @ 0x0804C010 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C014 -sub_0804C014: @ 0x0804C014 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C018 -sub_0804C018: @ 0x0804C018 - push {r4, lr} - movs r0, #0x20 - bl CheckGlobalFlag - cmp r0, #0 - bne _0804C044 - movs r0, #0x3c - bl GetInventoryValue - cmp r0, #1 - bne _0804C054 - ldr r0, _0804C03C @ =gUnk_080D90C8 - bl LoadRoomEntityList - ldr r0, _0804C040 @ =gUnk_080D9108 - bl LoadRoomEntityList - b _0804C054 - .align 2, 0 -_0804C03C: .4byte gUnk_080D90C8 -_0804C040: .4byte gUnk_080D9108 -_0804C044: - movs r0, #0x21 - bl CheckGlobalFlag - cmp r0, #0 - bne _0804C054 - ldr r0, _0804C0D0 @ =gUnk_080D9108 - bl LoadRoomEntityList -_0804C054: - movs r0, #0x3c - bl GetInventoryValue - cmp r0, #2 - beq _0804C090 - ldr r0, _0804C0D4 @ =gUnk_080D9098 - bl LoadRoomEntityList - movs r0, #0xbd - lsls r0, r0, #1 - ldr r1, _0804C0D8 @ =0x0000058E - movs r2, #1 - bl SetTileType - ldr r0, _0804C0DC @ =0x0000017B - ldr r1, _0804C0E0 @ =0x0000058F - movs r2, #1 - bl SetTileType - movs r0, #0xbe - lsls r0, r0, #1 - ldr r1, _0804C0E4 @ =0x000005CE - movs r2, #1 - bl SetTileType - ldr r0, _0804C0E8 @ =0x0000017D - ldr r1, _0804C0EC @ =0x000005CF - movs r2, #1 - bl SetTileType -_0804C090: - bl sub_08054570 - bl sub_08059278 - ldr r4, _0804C0F0 @ =0x00004072 - ldr r1, _0804C0F4 @ =0x00000A47 - adds r0, r4, #0 - movs r2, #1 - bl SetTile - ldr r1, _0804C0F8 @ =0x00000C47 - adds r0, r4, #0 - movs r2, #1 - bl SetTile - movs r0, #0x62 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804C0C8 - ldr r0, _0804C0FC @ =gUnk_030010A0 - ldr r1, [r0, #0x10] - ldr r0, _0804C100 @ =0x02780078 - cmp r1, r0 - bne _0804C0C8 - movs r0, #0x72 - bl PlaySFX -_0804C0C8: - movs r0, #0x62 - bl ClearGlobalFlag - pop {r4, pc} - .align 2, 0 -_0804C0D0: .4byte gUnk_080D9108 -_0804C0D4: .4byte gUnk_080D9098 -_0804C0D8: .4byte 0x0000058E -_0804C0DC: .4byte 0x0000017B -_0804C0E0: .4byte 0x0000058F -_0804C0E4: .4byte 0x000005CE -_0804C0E8: .4byte 0x0000017D -_0804C0EC: .4byte 0x000005CF -_0804C0F0: .4byte 0x00004072 -_0804C0F4: .4byte 0x00000A47 -_0804C0F8: .4byte 0x00000C47 -_0804C0FC: .4byte gUnk_030010A0 -_0804C100: .4byte 0x02780078 - - thumb_func_start sub_0804C104 -sub_0804C104: @ 0x0804C104 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C108 -sub_0804C108: @ 0x0804C108 - push {lr} - ldr r2, _0804C124 @ =gArea - ldrb r1, [r2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r2, #0xd] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0xd] - bl sub_0804C128 - pop {pc} - .align 2, 0 -_0804C124: .4byte gArea - - thumb_func_start sub_0804C128 -sub_0804C128: @ 0x0804C128 - push {r4, r5, lr} - movs r0, #0 - bl sub_080AF250 - ldr r0, _0804C15C @ =gRoomVars - ldrb r0, [r0] - cmp r0, #0 - bne _0804C13A - b _0804C24C -_0804C13A: - ldr r1, _0804C160 @ =gArea - ldrb r3, [r1, #0xd] - movs r0, #0xe - ands r0, r3 - adds r5, r1, #0 - cmp r0, #0 - bne _0804C164 - movs r0, #0xf0 - ands r0, r3 - cmp r0, #0 - bne _0804C19C - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r3 - movs r1, #2 - orrs r0, r1 - b _0804C19A - .align 2, 0 -_0804C15C: .4byte gRoomVars -_0804C160: .4byte gArea -_0804C164: - ldr r2, _0804C18C @ =gRoomControls - ldr r1, _0804C190 @ =gUnk_080D9338 - lsls r4, r3, #0x1c - lsrs r0, r4, #0x1d - adds r0, r0, r1 - ldrb r1, [r2, #0x10] - ldrb r0, [r0] - cmp r1, r0 - bne _0804C194 - lsrs r0, r4, #0x1d - adds r0, #1 - movs r1, #7 - ands r0, r1 - lsls r0, r0, #1 - movs r1, #0xf - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r0 - strb r1, [r5, #0xd] - b _0804C19C - .align 2, 0 -_0804C18C: .4byte gRoomControls -_0804C190: .4byte gUnk_080D9338 -_0804C194: - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r3 -_0804C19A: - strb r0, [r5, #0xd] -_0804C19C: - ldrb r3, [r5, #0xd] - movs r0, #0xe - ands r0, r3 - cmp r0, #0 - bne _0804C1DE - ldr r2, _0804C1D0 @ =gRoomControls - ldr r1, _0804C1D4 @ =gUnk_080D9340 - lsls r4, r3, #0x18 - lsrs r0, r4, #0x1c - adds r0, r0, r1 - ldrb r1, [r2, #0x10] - ldrb r0, [r0] - cmp r1, r0 - bne _0804C1D8 - lsrs r0, r4, #0x1c - adds r0, #1 - lsls r0, r0, #4 - movs r1, #0xf - ands r1, r3 - orrs r1, r0 - movs r0, #0xf - rsbs r0, r0, #0 - ands r1, r0 - strb r1, [r5, #0xd] - b _0804C1DE - .align 2, 0 -_0804C1D0: .4byte gRoomControls -_0804C1D4: .4byte gUnk_080D9340 -_0804C1D8: - movs r0, #0xf - ands r0, r3 - strb r0, [r5, #0xd] -_0804C1DE: - adds r4, r5, #0 - ldrb r1, [r4, #0xd] - movs r0, #0xe - ands r0, r1 - cmp r0, #0xc - bne _0804C206 - movs r0, #1 - bl sub_080AF250 - movs r0, #0x62 - bl SetGlobalFlag - bl sub_0804C290 - ldrb r1, [r4, #0xd] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0xd] - b _0804C254 -_0804C206: - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x60 - bne _0804C250 - movs r0, #1 - bl sub_080AF250 - movs r0, #0x5c - bl CheckLocalFlag - cmp r0, #0 - bne _0804C228 - ldr r1, _0804C244 @ =0x00000107 - movs r0, #0x73 - movs r2, #1 - bl SetTileType -_0804C228: - ldr r0, _0804C248 @ =gUnk_080D9328 - bl sub_0804B1AC - movs r0, #0x62 - bl SetGlobalFlag - bl sub_0804C290 - ldrb r1, [r5, #0xd] - movs r0, #0xf - ands r0, r1 - strb r0, [r5, #0xd] - b _0804C254 - .align 2, 0 -_0804C244: .4byte 0x00000107 -_0804C248: .4byte gUnk_080D9328 -_0804C24C: - bl sub_0804C258 -_0804C250: - bl sub_0804C290 -_0804C254: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0804C258 -sub_0804C258: @ 0x0804C258 - push {lr} - ldr r3, _0804C288 @ =gArea - ldrb r0, [r3, #0xd] - movs r2, #0xf - rsbs r2, r2, #0 - ands r2, r0 - movs r0, #2 - orrs r2, r0 - movs r0, #0xf - ands r2, r0 - strb r2, [r3, #0xd] - ldr r0, _0804C28C @ =gUnk_030010A0 - ldrb r0, [r0, #0xe] - cmp r0, #4 - bne _0804C284 - movs r1, #0xe - adds r0, r2, #0 - orrs r0, r1 - strb r0, [r3, #0xd] - movs r0, #1 - bl sub_080AF250 -_0804C284: - pop {pc} - .align 2, 0 -_0804C288: .4byte gArea -_0804C28C: .4byte gUnk_030010A0 - - thumb_func_start sub_0804C290 -sub_0804C290: @ 0x0804C290 - push {lr} - ldr r0, _0804C2B4 @ =gArea - ldrb r1, [r0, #0xd] - movs r0, #0xe - ands r0, r1 - cmp r0, #0 - beq _0804C2B2 - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1d - lsls r1, r1, #2 - ldr r0, _0804C2B8 @ =gUnk_080D9348 - adds r1, r1, r0 - ldrh r0, [r1] - ldrh r1, [r1, #2] - movs r2, #1 - bl SetTileType -_0804C2B2: - pop {pc} - .align 2, 0 -_0804C2B4: .4byte gArea -_0804C2B8: .4byte gUnk_080D9348 - - thumb_func_start sub_0804C2BC -sub_0804C2BC: @ 0x0804C2BC - movs r0, #1 - bx lr - - thumb_func_start nullsub_196 -nullsub_196: @ 0x0804C2C0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C2C4 -sub_0804C2C4: @ 0x0804C2C4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_197 -nullsub_197: @ 0x0804C2C8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C2CC -sub_0804C2CC: @ 0x0804C2CC - movs r0, #1 - bx lr - - thumb_func_start sub_0804C2D0 -sub_0804C2D0: @ 0x0804C2D0 - push {lr} - movs r0, #0 - bl sub_08058324 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804C2DC -sub_0804C2DC: @ 0x0804C2DC - movs r0, #1 - bx lr - - thumb_func_start sub_0804C2E0 -sub_0804C2E0: @ 0x0804C2E0 - push {lr} - movs r0, #1 - bl sub_08058324 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804C2EC -sub_0804C2EC: @ 0x0804C2EC - movs r0, #1 - bx lr - - thumb_func_start sub_0804C2F0 -sub_0804C2F0: @ 0x0804C2F0 - push {lr} - movs r0, #2 - bl sub_08058324 - movs r0, #0x29 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804C312 - movs r0, #0x2a - bl CheckGlobalFlag - cmp r0, #0 - bne _0804C312 - ldr r0, _0804C314 @ =gUnk_080D9800 - bl LoadRoomEntityList -_0804C312: - pop {pc} - .align 2, 0 -_0804C314: .4byte gUnk_080D9800 - - thumb_func_start sub_0804C318 -sub_0804C318: @ 0x0804C318 - push {lr} - bl sub_0804C2F0 - pop {pc} - - thumb_func_start sub_0804C320 -sub_0804C320: @ 0x0804C320 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C324 -sub_0804C324: @ 0x0804C324 - push {lr} - movs r0, #3 - bl sub_08058324 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804C330 -sub_0804C330: @ 0x0804C330 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C334 -sub_0804C334: @ 0x0804C334 - push {lr} - movs r0, #0x1e - bl SetGlobalFlag - movs r0, #0x5b - bl CheckKinstoneFused - cmp r0, #0 - beq _0804C34C - ldr r0, _0804C374 @ =gUnk_080D9CC8 - bl LoadRoomEntityList -_0804C34C: - ldr r0, _0804C378 @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x16 - ands r0, r1 - cmp r0, #0 - bne _0804C360 - ldr r0, _0804C37C @ =gUnk_080D9CE8 - bl LoadRoomEntityList -_0804C360: - movs r0, #0x15 - bl GetInventoryValue - cmp r0, #0 - bne _0804C370 - ldr r0, _0804C380 @ =gUnk_080D9C38 - bl LoadRoomEntityList -_0804C370: - pop {pc} - .align 2, 0 -_0804C374: .4byte gUnk_080D9CC8 -_0804C378: .4byte gUnk_02002A40 -_0804C37C: .4byte gUnk_080D9CE8 -_0804C380: .4byte gUnk_080D9C38 - - thumb_func_start sub_0804C384 -sub_0804C384: @ 0x0804C384 - push {lr} - ldr r0, _0804C39C @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x16 - ands r0, r1 - cmp r0, #0 - bne _0804C39A - ldr r0, _0804C3A0 @ =gUnk_080D9CE8 - bl LoadRoomEntityList -_0804C39A: - pop {pc} - .align 2, 0 -_0804C39C: .4byte gUnk_02002A40 -_0804C3A0: .4byte gUnk_080D9CE8 - - thumb_func_start sub_0804C3A4 -sub_0804C3A4: @ 0x0804C3A4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_198 -nullsub_198: @ 0x0804C3A8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3AC -sub_0804C3AC: @ 0x0804C3AC - movs r0, #1 - bx lr - - thumb_func_start nullsub_199 -nullsub_199: @ 0x0804C3B0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3B4 -sub_0804C3B4: @ 0x0804C3B4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_200 -nullsub_200: @ 0x0804C3B8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3BC -sub_0804C3BC: @ 0x0804C3BC - movs r0, #1 - bx lr - - thumb_func_start nullsub_201 -nullsub_201: @ 0x0804C3C0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3C4 -sub_0804C3C4: @ 0x0804C3C4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_202 -nullsub_202: @ 0x0804C3C8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3CC -sub_0804C3CC: @ 0x0804C3CC - push {lr} - movs r0, #0x39 - bl CheckLocalFlag - cmp r0, #0 - bne _0804C3DE - ldr r1, _0804C3E4 @ =gRoomVars - ldr r0, _0804C3E8 @ =gUnk_080DA230 - str r0, [r1, #0x6c] -_0804C3DE: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804C3E4: .4byte gRoomVars -_0804C3E8: .4byte gUnk_080DA230 - - thumb_func_start nullsub_203 -nullsub_203: @ 0x0804C3EC - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3F0 -sub_0804C3F0: @ 0x0804C3F0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_204 -nullsub_204: @ 0x0804C3F4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3F8 -sub_0804C3F8: @ 0x0804C3F8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_205 -nullsub_205: @ 0x0804C3FC - bx lr - .align 2, 0 - - thumb_func_start sub_0804C400 -sub_0804C400: @ 0x0804C400 - movs r0, #1 - bx lr - - thumb_func_start nullsub_206 -nullsub_206: @ 0x0804C404 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C408 -sub_0804C408: @ 0x0804C408 - movs r0, #1 - bx lr - - thumb_func_start nullsub_207 -nullsub_207: @ 0x0804C40C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C410 -sub_0804C410: @ 0x0804C410 - movs r0, #1 - bx lr - - thumb_func_start nullsub_208 -nullsub_208: @ 0x0804C414 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C418 -sub_0804C418: @ 0x0804C418 - movs r0, #1 - bx lr - - thumb_func_start nullsub_209 -nullsub_209: @ 0x0804C41C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C420 -sub_0804C420: @ 0x0804C420 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C424 -sub_0804C424: @ 0x0804C424 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C42C -sub_0804C42C: @ 0x0804C42C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C430 -sub_0804C430: @ 0x0804C430 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C438 -sub_0804C438: @ 0x0804C438 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C43C -sub_0804C43C: @ 0x0804C43C - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C444 -sub_0804C444: @ 0x0804C444 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C448 -sub_0804C448: @ 0x0804C448 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C450 -sub_0804C450: @ 0x0804C450 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C454 -sub_0804C454: @ 0x0804C454 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C45C -sub_0804C45C: @ 0x0804C45C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C460 -sub_0804C460: @ 0x0804C460 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C468 -sub_0804C468: @ 0x0804C468 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C46C -sub_0804C46C: @ 0x0804C46C - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C474 -sub_0804C474: @ 0x0804C474 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C478 -sub_0804C478: @ 0x0804C478 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C480 -sub_0804C480: @ 0x0804C480 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C484 -sub_0804C484: @ 0x0804C484 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C48C -sub_0804C48C: @ 0x0804C48C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C490 -sub_0804C490: @ 0x0804C490 - push {r4, lr} - movs r0, #0x5b - bl GetInventoryValue - cmp r0, #0 - bne _0804C4A8 - ldr r0, _0804C4A4 @ =gUnk_080DAB44 - bl LoadRoomEntityList - b _0804C4AE - .align 2, 0 -_0804C4A4: .4byte gUnk_080DAB44 -_0804C4A8: - ldr r0, _0804C4D8 @ =gUnk_080DAB64 - bl LoadRoomEntityList -_0804C4AE: - movs r0, #0x54 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804C4F0 - bl sub_08060354 - cmp r0, #0 - beq _0804C4F0 - movs r0, #0 - bl SetRoomFlag - movs r0, #0x3b - bl CheckGlobalFlag - cmp r0, #0 - bne _0804C4DC - movs r4, #0xc8 - lsls r4, r4, #6 - b _0804C522 - .align 2, 0 -_0804C4D8: .4byte gUnk_080DAB64 -_0804C4DC: - movs r0, #0x3c - bl CheckGlobalFlag - movs r4, #0x91 - lsls r4, r4, #7 - cmp r0, #0 - bne _0804C522 - movs r4, #0x8c - lsls r4, r4, #7 - b _0804C522 -_0804C4F0: - movs r0, #0x3d - bl CheckGlobalFlag - cmp r0, #0 - beq _0804C500 - movs r4, #0x92 - lsls r4, r4, #7 - b _0804C522 -_0804C500: - movs r0, #0x3c - bl CheckGlobalFlag - cmp r0, #0 - beq _0804C510 - movs r4, #0x94 - lsls r4, r4, #7 - b _0804C522 -_0804C510: - movs r0, #0x3b - bl CheckGlobalFlag - movs r4, #0x92 - lsls r4, r4, #8 - cmp r0, #0 - beq _0804C522 - movs r4, #0xa4 - lsls r4, r4, #7 -_0804C522: - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r4 - cmp r0, #0 - beq _0804C532 - ldr r0, _0804C5B8 @ =gUnk_080DAB84 - bl LoadRoomEntityList -_0804C532: - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r4 - cmp r0, #0 - beq _0804C542 - ldr r0, _0804C5BC @ =gUnk_080DAC54 - bl LoadRoomEntityList -_0804C542: - movs r0, #0x80 - lsls r0, r0, #6 - ands r0, r4 - cmp r0, #0 - beq _0804C552 - ldr r0, _0804C5C0 @ =gUnk_080DAD24 - bl LoadRoomEntityList -_0804C552: - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r4 - cmp r0, #0 - beq _0804C562 - ldr r0, _0804C5C4 @ =gUnk_080DABC4 - bl LoadRoomEntityList -_0804C562: - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r4 - cmp r0, #0 - beq _0804C572 - ldr r0, _0804C5C8 @ =gUnk_080DAC94 - bl LoadRoomEntityList -_0804C572: - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r4 - cmp r0, #0 - beq _0804C582 - ldr r0, _0804C5CC @ =gUnk_080DAD64 - bl LoadRoomEntityList -_0804C582: - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r4 - cmp r0, #0 - beq _0804C592 - ldr r0, _0804C5D0 @ =gUnk_080DAC04 - bl LoadRoomEntityList -_0804C592: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0804C5A2 - ldr r0, _0804C5D4 @ =gUnk_080DACD4 - bl LoadRoomEntityList -_0804C5A2: - movs r0, #0x80 - ands r4, r0 - cmp r4, #0 - beq _0804C5B0 - ldr r0, _0804C5D8 @ =gUnk_080DADA4 - bl LoadRoomEntityList -_0804C5B0: - bl sub_0801AFE4 - pop {r4, pc} - .align 2, 0 -_0804C5B8: .4byte gUnk_080DAB84 -_0804C5BC: .4byte gUnk_080DAC54 -_0804C5C0: .4byte gUnk_080DAD24 -_0804C5C4: .4byte gUnk_080DABC4 -_0804C5C8: .4byte gUnk_080DAC94 -_0804C5CC: .4byte gUnk_080DAD64 -_0804C5D0: .4byte gUnk_080DAC04 -_0804C5D4: .4byte gUnk_080DACD4 -_0804C5D8: .4byte gUnk_080DADA4 - - thumb_func_start sub_0804C5DC -sub_0804C5DC: @ 0x0804C5DC - movs r0, #1 - bx lr - - thumb_func_start sub_0804C5E0 -sub_0804C5E0: @ 0x0804C5E0 - push {lr} - movs r0, #0x56 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804C5F2 - ldr r0, _0804C5F8 @ =gUnk_080DAEE8 - bl LoadRoomEntityList -_0804C5F2: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C5F8: .4byte gUnk_080DAEE8 - - thumb_func_start sub_0804C5FC -sub_0804C5FC: @ 0x0804C5FC - movs r0, #1 - bx lr - - thumb_func_start sub_0804C600 -sub_0804C600: @ 0x0804C600 - push {lr} - movs r0, #0x56 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804C612 - ldr r0, _0804C618 @ =gUnk_080DAF80 - bl LoadRoomEntityList -_0804C612: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C618: .4byte gUnk_080DAF80 - - thumb_func_start sub_0804C61C -sub_0804C61C: @ 0x0804C61C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C620 -sub_0804C620: @ 0x0804C620 - push {lr} - movs r0, #0x56 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804C632 - ldr r0, _0804C638 @ =gUnk_080DB018 - bl LoadRoomEntityList -_0804C632: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C638: .4byte gUnk_080DB018 - - thumb_func_start sub_0804C63C -sub_0804C63C: @ 0x0804C63C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C640 -sub_0804C640: @ 0x0804C640 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C648 -sub_0804C648: @ 0x0804C648 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C64C -sub_0804C64C: @ 0x0804C64C - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C654 -sub_0804C654: @ 0x0804C654 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C658 -sub_0804C658: @ 0x0804C658 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C660 -sub_0804C660: @ 0x0804C660 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C664 -sub_0804C664: @ 0x0804C664 - push {lr} - ldr r0, _0804C67C @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #8 - bls _0804C674 - ldr r0, _0804C680 @ =gUnk_080DB238 - bl LoadRoomEntityList -_0804C674: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C67C: .4byte gUnk_02002A40 -_0804C680: .4byte gUnk_080DB238 - - thumb_func_start sub_0804C684 -sub_0804C684: @ 0x0804C684 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C688 -sub_0804C688: @ 0x0804C688 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C690 -sub_0804C690: @ 0x0804C690 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C694 -sub_0804C694: @ 0x0804C694 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C69C -sub_0804C69C: @ 0x0804C69C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C6A0 -sub_0804C6A0: @ 0x0804C6A0 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C6A8 -sub_0804C6A8: @ 0x0804C6A8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C6AC -sub_0804C6AC: @ 0x0804C6AC - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C6B4 -sub_0804C6B4: @ 0x0804C6B4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C6B8 -sub_0804C6B8: @ 0x0804C6B8 - push {lr} - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0804C6E4 - movs r0, #0x3b - bl GetInventoryValue - cmp r0, #0 - bne _0804C6E4 - movs r0, #0x71 - bl CheckLocalFlag - cmp r0, #0 - beq _0804C6E4 - ldr r0, _0804C6E0 @ =gUnk_080DB4D0 - bl LoadRoomEntityList - b _0804C6EA - .align 2, 0 -_0804C6E0: .4byte gUnk_080DB4D0 -_0804C6E4: - ldr r0, _0804C6F0 @ =gUnk_080DB4A0 - bl LoadRoomEntityList -_0804C6EA: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C6F0: .4byte gUnk_080DB4A0 - - thumb_func_start sub_0804C6F4 -sub_0804C6F4: @ 0x0804C6F4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C6F8 -sub_0804C6F8: @ 0x0804C6F8 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C700 -sub_0804C700: @ 0x0804C700 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C704 -sub_0804C704: @ 0x0804C704 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C70C -sub_0804C70C: @ 0x0804C70C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C710 -sub_0804C710: @ 0x0804C710 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C718 -sub_0804C718: @ 0x0804C718 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C71C -sub_0804C71C: @ 0x0804C71C - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C724 -sub_0804C724: @ 0x0804C724 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C728 -sub_0804C728: @ 0x0804C728 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C730 -sub_0804C730: @ 0x0804C730 - push {lr} - movs r0, #0x29 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804C74C - movs r0, #0x73 - bl CheckLocalFlag - cmp r0, #0 - bne _0804C74C - ldr r1, _0804C750 @ =gRoomVars - ldr r0, _0804C754 @ =gUnk_080DB910 - str r0, [r1, #0x70] -_0804C74C: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804C750: .4byte gRoomVars -_0804C754: .4byte gUnk_080DB910 - - thumb_func_start sub_0804C758 -sub_0804C758: @ 0x0804C758 - push {lr} - ldr r0, _0804C780 @ =gUnk_080DB8F0 - bl LoadRoomEntityList - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0804C77A - movs r0, #0x29 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804C77A - ldr r0, _0804C784 @ =gUnk_080DB820 - bl LoadRoomEntityList -_0804C77A: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C780: .4byte gUnk_080DB8F0 -_0804C784: .4byte gUnk_080DB820 - - thumb_func_start sub_0804C788 -sub_0804C788: @ 0x0804C788 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C78C -sub_0804C78C: @ 0x0804C78C - push {lr} - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0804C7A2 - movs r0, #0x73 - bl CheckLocalFlag - cmp r0, #0 - bne _0804C7A8 -_0804C7A2: - ldr r0, _0804C7B0 @ =gUnk_080DBA08 - bl LoadRoomEntityList -_0804C7A8: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C7B0: .4byte gUnk_080DBA08 - - thumb_func_start sub_0804C7B4 -sub_0804C7B4: @ 0x0804C7B4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C7B8 -sub_0804C7B8: @ 0x0804C7B8 - push {r4, r5, lr} - movs r0, #0x60 - bl CheckLocalFlag - cmp r0, #0 - bne _0804C7CA - ldr r0, _0804C7E4 @ =gUnk_080DBB50 - bl LoadRoomEntityList -_0804C7CA: - movs r0, #0x15 - bl GetInventoryValue - cmp r0, #1 - bne _0804C7F0 - ldr r0, _0804C7E8 @ =gUnk_080DBB70 - bl LoadRoomEntityList - ldr r0, _0804C7EC @ =gUnk_080DBB10 - bl LoadRoomEntityList - b _0804C7F6 - .align 2, 0 -_0804C7E4: .4byte gUnk_080DBB50 -_0804C7E8: .4byte gUnk_080DBB70 -_0804C7EC: .4byte gUnk_080DBB10 -_0804C7F0: - ldr r0, _0804C824 @ =gUnk_080DBAD0 - bl LoadRoomEntityList -_0804C7F6: - movs r0, #0x62 - bl CheckLocalFlag - cmp r0, #0 - bne _0804C818 - movs r5, #0xa0 - lsls r5, r5, #1 - movs r4, #0 -_0804C806: - ldr r0, _0804C828 @ =0x00004072 - adds r1, r5, #0 - movs r2, #1 - bl SetTileType - adds r4, #1 - adds r5, #1 - cmp r4, #0x12 - bls _0804C806 -_0804C818: - ldr r0, _0804C82C @ =gUnk_080DBB90 - bl LoadRoomEntityList - bl sub_0801AFE4 - pop {r4, r5, pc} - .align 2, 0 -_0804C824: .4byte gUnk_080DBAD0 -_0804C828: .4byte 0x00004072 -_0804C82C: .4byte gUnk_080DBB90 - - thumb_func_start sub_0804C830 -sub_0804C830: @ 0x0804C830 - movs r0, #1 - bx lr - - thumb_func_start nullsub_210 -nullsub_210: @ 0x0804C834 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C838 -sub_0804C838: @ 0x0804C838 - movs r0, #1 - bx lr - - thumb_func_start nullsub_211 -nullsub_211: @ 0x0804C83C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C840 -sub_0804C840: @ 0x0804C840 - movs r0, #1 - bx lr - - thumb_func_start nullsub_212 -nullsub_212: @ 0x0804C844 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C848 -sub_0804C848: @ 0x0804C848 - movs r0, #1 - bx lr - - thumb_func_start nullsub_213 -nullsub_213: @ 0x0804C84C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C850 -sub_0804C850: @ 0x0804C850 - movs r0, #1 - bx lr - - thumb_func_start nullsub_214 -nullsub_214: @ 0x0804C854 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C858 -sub_0804C858: @ 0x0804C858 - movs r0, #1 - bx lr - - thumb_func_start nullsub_215 -nullsub_215: @ 0x0804C85C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C860 -sub_0804C860: @ 0x0804C860 - movs r0, #1 - bx lr - - thumb_func_start nullsub_216 -nullsub_216: @ 0x0804C864 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C868 -sub_0804C868: @ 0x0804C868 - movs r0, #1 - bx lr - - thumb_func_start nullsub_217 -nullsub_217: @ 0x0804C86C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C870 -sub_0804C870: @ 0x0804C870 - movs r0, #1 - bx lr - - thumb_func_start nullsub_218 -nullsub_218: @ 0x0804C874 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C878 -sub_0804C878: @ 0x0804C878 - movs r0, #1 - bx lr - - thumb_func_start nullsub_219 -nullsub_219: @ 0x0804C87C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C880 -sub_0804C880: @ 0x0804C880 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C884 -sub_0804C884: @ 0x0804C884 - push {lr} - movs r0, #0x5b - bl GetInventoryValue - cmp r0, #0 - bne _0804C8B4 - ldr r0, _0804C8AC @ =gUnk_080DC390 - bl LoadRoomEntityList - movs r0, #0x80 - lsls r0, r0, #2 - movs r1, #0x80 - bl CheckLocalFlagByOffset - cmp r0, #0 - bne _0804C8CA - ldr r0, _0804C8B0 @ =gUnk_080DC3F0 - bl LoadRoomEntityList - b _0804C8CA - .align 2, 0 -_0804C8AC: .4byte gUnk_080DC390 -_0804C8B0: .4byte gUnk_080DC3F0 -_0804C8B4: - ldr r0, _0804C900 @ =gUnk_080DC430 - bl LoadRoomEntityList - movs r0, #0x11 - bl GetInventoryValue - cmp r0, #0 - bne _0804C8CA - ldr r0, _0804C904 @ =gUnk_080DC530 - bl LoadRoomEntityList -_0804C8CA: - movs r0, #0x80 - lsls r0, r0, #2 - movs r1, #0x83 - bl CheckLocalFlagByOffset - cmp r0, #0 - bne _0804C8E8 - movs r0, #0x11 - bl GetInventoryValue - cmp r0, #0 - beq _0804C8E8 - ldr r0, _0804C908 @ =gUnk_080DC470 - bl LoadRoomEntityList -_0804C8E8: - movs r0, #0x8d - bl CheckLocalFlag - cmp r0, #0 - bne _0804C8F8 - ldr r0, _0804C90C @ =gUnk_080DC4C0 - bl LoadRoomEntityList -_0804C8F8: - bl sub_08057E64 - pop {pc} - .align 2, 0 -_0804C900: .4byte gUnk_080DC430 -_0804C904: .4byte gUnk_080DC530 -_0804C908: .4byte gUnk_080DC470 -_0804C90C: .4byte gUnk_080DC4C0 - - thumb_func_start sub_0804C910 -sub_0804C910: @ 0x0804C910 - movs r0, #1 - bx lr - - thumb_func_start nullsub_220 -nullsub_220: @ 0x0804C914 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C918 -sub_0804C918: @ 0x0804C918 - push {r4, r5, lr} - ldr r4, _0804C940 @ =gUnk_086D4460 - movs r1, #0xc0 - lsls r1, r1, #0x13 - movs r5, #0x80 - lsls r5, r5, #7 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_08000E96 - adds r4, r4, r5 - ldr r1, _0804C944 @ =0x06008000 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_08000E96 - movs r0, #0x19 - bl LoadPalettesByPaletteGroupIndex - pop {r4, r5, pc} - .align 2, 0 -_0804C940: .4byte gUnk_086D4460 -_0804C944: .4byte 0x06008000 - - thumb_func_start sub_0804C948 -sub_0804C948: @ 0x0804C948 - movs r0, #1 - bx lr - - thumb_func_start nullsub_221 -nullsub_221: @ 0x0804C94C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C950 -sub_0804C950: @ 0x0804C950 - movs r0, #1 - bx lr - - thumb_func_start nullsub_222 -nullsub_222: @ 0x0804C954 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C958 -sub_0804C958: @ 0x0804C958 - movs r0, #1 - bx lr - - thumb_func_start nullsub_223 -nullsub_223: @ 0x0804C95C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C960 -sub_0804C960: @ 0x0804C960 - movs r0, #1 - bx lr - - thumb_func_start nullsub_224 -nullsub_224: @ 0x0804C964 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C968 -sub_0804C968: @ 0x0804C968 - movs r0, #1 - bx lr - - thumb_func_start nullsub_225 -nullsub_225: @ 0x0804C96C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C970 -sub_0804C970: @ 0x0804C970 - movs r0, #1 - bx lr - - thumb_func_start nullsub_226 -nullsub_226: @ 0x0804C974 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C978 -sub_0804C978: @ 0x0804C978 - movs r0, #1 - bx lr - - thumb_func_start nullsub_227 -nullsub_227: @ 0x0804C97C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C980 -sub_0804C980: @ 0x0804C980 - movs r0, #1 - bx lr - - thumb_func_start nullsub_228 -nullsub_228: @ 0x0804C984 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C988 -sub_0804C988: @ 0x0804C988 - movs r0, #1 - bx lr - - thumb_func_start nullsub_229 -nullsub_229: @ 0x0804C98C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C990 -sub_0804C990: @ 0x0804C990 - movs r0, #1 - bx lr - - thumb_func_start nullsub_230 -nullsub_230: @ 0x0804C994 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C998 -sub_0804C998: @ 0x0804C998 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C99C -sub_0804C99C: @ 0x0804C99C - push {lr} - movs r0, #9 - bl GetInventoryValue - cmp r0, #0 - bne _0804C9AE - ldr r0, _0804C9B0 @ =gUnk_080DCB10 - bl LoadRoomEntityList -_0804C9AE: - pop {pc} - .align 2, 0 -_0804C9B0: .4byte gUnk_080DCB10 - - thumb_func_start sub_0804C9B4 -sub_0804C9B4: @ 0x0804C9B4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_231 -nullsub_231: @ 0x0804C9B8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9BC -sub_0804C9BC: @ 0x0804C9BC - movs r0, #1 - bx lr - - thumb_func_start nullsub_232 -nullsub_232: @ 0x0804C9C0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9C4 -sub_0804C9C4: @ 0x0804C9C4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_233 -nullsub_233: @ 0x0804C9C8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9CC -sub_0804C9CC: @ 0x0804C9CC - movs r0, #1 - bx lr - - thumb_func_start nullsub_234 -nullsub_234: @ 0x0804C9D0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9D4 -sub_0804C9D4: @ 0x0804C9D4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_235 -nullsub_235: @ 0x0804C9D8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9DC -sub_0804C9DC: @ 0x0804C9DC - movs r0, #1 - bx lr - - thumb_func_start nullsub_236 -nullsub_236: @ 0x0804C9E0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9E4 -sub_0804C9E4: @ 0x0804C9E4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_237 -nullsub_237: @ 0x0804C9E8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9EC -sub_0804C9EC: @ 0x0804C9EC - movs r0, #1 - bx lr - - thumb_func_start nullsub_238 -nullsub_238: @ 0x0804C9F0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9F4 -sub_0804C9F4: @ 0x0804C9F4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_239 -nullsub_239: @ 0x0804C9F8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9FC -sub_0804C9FC: @ 0x0804C9FC - movs r0, #1 - bx lr - - thumb_func_start nullsub_240 -nullsub_240: @ 0x0804CA00 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CA04 -sub_0804CA04: @ 0x0804CA04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_241 -nullsub_241: @ 0x0804CA08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CA0C -sub_0804CA0C: @ 0x0804CA0C - movs r0, #1 - bx lr - - thumb_func_start sub_0804CA10 -sub_0804CA10: @ 0x0804CA10 - push {lr} - movs r0, #0x56 - bl CheckGlobalFlag - cmp r0, #0 - bne _0804CA22 - ldr r0, _0804CA34 @ =gUnk_080DD214 - bl LoadRoomEntityList -_0804CA22: - movs r0, #0x7f - bl CheckLocalFlag - cmp r0, #0 - bne _0804CA3C - ldr r0, _0804CA38 @ =gUnk_080DD274 - bl LoadRoomEntityList - b _0804CA42 - .align 2, 0 -_0804CA34: .4byte gUnk_080DD214 -_0804CA38: .4byte gUnk_080DD274 -_0804CA3C: - ldr r0, _0804CA4C @ =gUnk_080DD294 - bl LoadRoomEntityList -_0804CA42: - movs r0, #0x8e - bl SetLocalFlag - pop {pc} - .align 2, 0 -_0804CA4C: .4byte gUnk_080DD294 - - thumb_func_start sub_0804CA50 -sub_0804CA50: @ 0x0804CA50 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CA54 -sub_0804CA54: @ 0x0804CA54 - push {lr} - ldr r0, _0804CA6C @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x13 - ands r0, r1 - cmp r0, #0 - bne _0804CA6A - ldr r0, _0804CA70 @ =gUnk_080DD364 - bl LoadRoomEntityList -_0804CA6A: - pop {pc} - .align 2, 0 -_0804CA6C: .4byte gUnk_02002A40 -_0804CA70: .4byte gUnk_080DD364 - - thumb_func_start sub_0804CA74 -sub_0804CA74: @ 0x0804CA74 - push {lr} - ldr r0, _0804CA8C @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x13 - ands r0, r1 - cmp r0, #0 - bne _0804CA8A - ldr r0, _0804CA90 @ =gUnk_080DD364 - bl LoadRoomEntityList -_0804CA8A: - pop {pc} - .align 2, 0 -_0804CA8C: .4byte gUnk_02002A40 -_0804CA90: .4byte gUnk_080DD364 - - thumb_func_start sub_0804CA94 -sub_0804CA94: @ 0x0804CA94 - movs r0, #1 - bx lr - - thumb_func_start nullsub_242 -nullsub_242: @ 0x0804CA98 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CA9C -sub_0804CA9C: @ 0x0804CA9C - movs r0, #1 - bx lr - - thumb_func_start sub_0804CAA0 -sub_0804CAA0: @ 0x0804CAA0 - push {lr} - movs r0, #0x24 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804CAB2 - ldr r0, _0804CAC4 @ =0x000006DE - bl sub_0809F814 -_0804CAB2: - movs r0, #0xf3 - bl CheckLocalFlag - cmp r0, #0 - beq _0804CAC8 - movs r0, #0xe0 - bl sub_0809F814 - b _0804CACE - .align 2, 0 -_0804CAC4: .4byte 0x000006DE -_0804CAC8: - ldr r0, _0804CAE0 @ =gUnk_080DD7E0 - bl LoadRoomEntityList -_0804CACE: - movs r0, #0xf5 - bl CheckLocalFlag - cmp r0, #0 - beq _0804CAE8 - ldr r0, _0804CAE4 @ =0x00000BA3 - bl sub_0809F814 - b _0804CAEE - .align 2, 0 -_0804CAE0: .4byte gUnk_080DD7E0 -_0804CAE4: .4byte 0x00000BA3 -_0804CAE8: - ldr r0, _0804CAF0 @ =gUnk_080DD840 - bl LoadRoomEntityList -_0804CAEE: - pop {pc} - .align 2, 0 -_0804CAF0: .4byte gUnk_080DD840 - - thumb_func_start sub_0804CAF4 -sub_0804CAF4: @ 0x0804CAF4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CAF8 -sub_0804CAF8: @ 0x0804CAF8 - push {lr} - bl sub_080300E8 - movs r0, #0x24 - bl SetLocalFlag - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804CB08 -sub_0804CB08: @ 0x0804CB08 - movs r0, #1 - bx lr - - thumb_func_start nullsub_37 -nullsub_37: @ 0x0804CB0C - bx lr - .align 2, 0 - - thumb_func_start sub_0804CB10 -sub_0804CB10: @ 0x0804CB10 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CB14 -sub_0804CB14: @ 0x0804CB14 - push {lr} - movs r0, #0x41 - bl CheckKinstoneFused - cmp r0, #0 - beq _0804CB26 - ldr r0, _0804CB28 @ =gUnk_080DDE88 - bl LoadRoomEntityList -_0804CB26: - pop {pc} - .align 2, 0 -_0804CB28: .4byte gUnk_080DDE88 - - thumb_func_start sub_0804CB2C -sub_0804CB2C: @ 0x0804CB2C - push {lr} - movs r0, #0x80 - lsls r0, r0, #1 - movs r1, #0x27 - bl CheckLocalFlagByOffset - cmp r0, #0 - beq _0804CB42 - movs r0, #0x85 - bl sub_08059340 -_0804CB42: - pop {pc} - - thumb_func_start sub_0804CB44 -sub_0804CB44: @ 0x0804CB44 - movs r0, #1 - bx lr - - thumb_func_start nullsub_38 -nullsub_38: @ 0x0804CB48 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CB4C -sub_0804CB4C: @ 0x0804CB4C - movs r0, #1 - bx lr - - thumb_func_start sub_0804CB50 -sub_0804CB50: @ 0x0804CB50 - push {lr} - bl sub_080300E8 - movs r0, #4 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804CB70 - movs r0, #3 - bl CheckLocalFlag - cmp r0, #0 - bne _0804CB70 - ldr r0, _0804CB74 @ =gUnk_080DE008 - bl LoadRoomEntityList -_0804CB70: - pop {pc} - .align 2, 0 -_0804CB74: .4byte gUnk_080DE008 - - thumb_func_start sub_0804CB78 -sub_0804CB78: @ 0x0804CB78 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CB7C -sub_0804CB7C: @ 0x0804CB7C - push {lr} - bl sub_080300E8 - movs r0, #0x30 - bl CheckLocalFlag - cmp r0, #0 - bne _0804CB92 - ldr r0, _0804CBA4 @ =gUnk_080DE1E0 - bl LoadRoomEntityList -_0804CB92: - movs r0, #0x31 - bl CheckLocalFlag - cmp r0, #0 - bne _0804CBA2 - ldr r0, _0804CBA8 @ =gUnk_080DE200 - bl LoadRoomEntityList -_0804CBA2: - pop {pc} - .align 2, 0 -_0804CBA4: .4byte gUnk_080DE1E0 -_0804CBA8: .4byte gUnk_080DE200 - - thumb_func_start sub_0804CBAC -sub_0804CBAC: @ 0x0804CBAC - movs r0, #1 - bx lr - - thumb_func_start sub_0804CBB0 -sub_0804CBB0: @ 0x0804CBB0 - push {lr} - ldr r0, _0804CBD8 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r0, r2] - ldr r2, _0804CBDC @ =gRoomControls - ldrh r0, [r2, #8] - subs r1, r1, r0 - ldrh r0, [r2, #0x20] - lsrs r0, r0, #1 - cmp r1, r0 - bge _0804CBD6 - movs r0, #0x17 - bl CheckLocalFlag - cmp r0, #0 - bne _0804CBD6 - ldr r0, _0804CBE0 @ =gUnk_080DE4C8 - bl LoadRoomEntityList -_0804CBD6: - pop {pc} - .align 2, 0 -_0804CBD8: .4byte gLinkEntity -_0804CBDC: .4byte gRoomControls -_0804CBE0: .4byte gUnk_080DE4C8 - - thumb_func_start sub_0804CBE4 -sub_0804CBE4: @ 0x0804CBE4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_243 -nullsub_243: @ 0x0804CBE8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CBEC -sub_0804CBEC: @ 0x0804CBEC - movs r0, #1 - bx lr - - thumb_func_start sub_0804CBF0 -sub_0804CBF0: @ 0x0804CBF0 - push {lr} - movs r0, #0x4b - bl CheckLocalFlag - cmp r0, #0 - bne _0804CC08 - ldr r0, _0804CC04 @ =gUnk_080DE814 - bl LoadRoomEntityList - b _0804CC4A - .align 2, 0 -_0804CC04: .4byte gUnk_080DE814 -_0804CC08: - movs r0, #0x4c - bl CheckLocalFlag - cmp r0, #0 - bne _0804CC2C - ldr r0, _0804CC24 @ =gUnk_080DE834 - bl LoadRoomEntityList - ldr r1, _0804CC28 @ =0x00000285 - movs r0, #0x79 - movs r2, #1 - bl SetTileType - b _0804CC4A - .align 2, 0 -_0804CC24: .4byte gUnk_080DE834 -_0804CC28: .4byte 0x00000285 -_0804CC2C: - ldr r1, _0804CC4C @ =0x00000285 - movs r0, #0x7a - movs r2, #1 - bl SetTileType - movs r0, #0x24 - bl CheckLocalFlag - cmp r0, #0 - bne _0804CC4A - ldr r1, _0804CC50 @ =0x00000205 - movs r0, #0x73 - movs r2, #1 - bl SetTileType -_0804CC4A: - pop {pc} - .align 2, 0 -_0804CC4C: .4byte 0x00000285 -_0804CC50: .4byte 0x00000205 - - thumb_func_start sub_0804CC54 -sub_0804CC54: @ 0x0804CC54 - movs r0, #1 - bx lr - - thumb_func_start nullsub_244 -nullsub_244: @ 0x0804CC58 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CC5C -sub_0804CC5C: @ 0x0804CC5C - movs r0, #1 - bx lr - - thumb_func_start nullsub_245 -nullsub_245: @ 0x0804CC60 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CC64 -sub_0804CC64: @ 0x0804CC64 - movs r0, #1 - bx lr - - thumb_func_start nullsub_246 -nullsub_246: @ 0x0804CC68 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CC6C -sub_0804CC6C: @ 0x0804CC6C - movs r0, #1 - bx lr - - thumb_func_start sub_0804CC70 -sub_0804CC70: @ 0x0804CC70 - push {lr} - ldr r0, _0804CC94 @ =gUnk_02002A40 - ldrb r0, [r0, #7] - cmp r0, #0 - beq _0804CC7E - cmp r0, #2 - beq _0804CCA0 -_0804CC7E: - ldr r1, _0804CC98 @ =0x0000020B - movs r0, #0x90 - movs r2, #1 - bl SetTileType - ldr r1, _0804CC9C @ =0x00000411 - movs r0, #0x90 - movs r2, #1 - bl SetTileType - b _0804CCB4 - .align 2, 0 -_0804CC94: .4byte gUnk_02002A40 -_0804CC98: .4byte 0x0000020B -_0804CC9C: .4byte 0x00000411 -_0804CCA0: - ldr r1, _0804CCE4 @ =0x00000211 - movs r0, #0x90 - movs r2, #1 - bl SetTileType - ldr r1, _0804CCE8 @ =0x0000040B - movs r0, #0x90 - movs r2, #1 - bl SetTileType -_0804CCB4: - movs r0, #0x15 - bl CheckLocalFlag - cmp r0, #0 - beq _0804CCCA - movs r1, #0xc1 - lsls r1, r1, #2 - movs r0, #0x76 - movs r2, #2 - bl SetTileType -_0804CCCA: - movs r0, #0x16 - bl CheckLocalFlag - cmp r0, #0 - beq _0804CCE0 - movs r1, #0xc6 - lsls r1, r1, #2 - movs r0, #0x76 - movs r2, #2 - bl SetTileType -_0804CCE0: - pop {pc} - .align 2, 0 -_0804CCE4: .4byte 0x00000211 -_0804CCE8: .4byte 0x0000040B - - thumb_func_start sub_0804CCEC -sub_0804CCEC: @ 0x0804CCEC - movs r0, #1 - bx lr - - thumb_func_start nullsub_247 -nullsub_247: @ 0x0804CCF0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CCF4 -sub_0804CCF4: @ 0x0804CCF4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_248 -nullsub_248: @ 0x0804CCF8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CCFC -sub_0804CCFC: @ 0x0804CCFC - movs r0, #1 - bx lr - - thumb_func_start nullsub_249 -nullsub_249: @ 0x0804CD00 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD04 -sub_0804CD04: @ 0x0804CD04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_250 -nullsub_250: @ 0x0804CD08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD0C -sub_0804CD0C: @ 0x0804CD0C - movs r0, #1 - bx lr - - thumb_func_start nullsub_251 -nullsub_251: @ 0x0804CD10 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD14 -sub_0804CD14: @ 0x0804CD14 - movs r0, #1 - bx lr - - thumb_func_start nullsub_252 -nullsub_252: @ 0x0804CD18 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD1C -sub_0804CD1C: @ 0x0804CD1C - movs r0, #1 - bx lr - - thumb_func_start nullsub_253 -nullsub_253: @ 0x0804CD20 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD24 -sub_0804CD24: @ 0x0804CD24 - movs r0, #1 - bx lr - - thumb_func_start nullsub_254 -nullsub_254: @ 0x0804CD28 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD2C -sub_0804CD2C: @ 0x0804CD2C - movs r0, #1 - bx lr - - thumb_func_start nullsub_255 -nullsub_255: @ 0x0804CD30 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD34 -sub_0804CD34: @ 0x0804CD34 - movs r0, #1 - bx lr - - thumb_func_start nullsub_256 -nullsub_256: @ 0x0804CD38 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD3C -sub_0804CD3C: @ 0x0804CD3C - movs r0, #1 - bx lr - - thumb_func_start nullsub_257 -nullsub_257: @ 0x0804CD40 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD44 -sub_0804CD44: @ 0x0804CD44 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CD48 -sub_0804CD48: @ 0x0804CD48 - push {r4, lr} - movs r0, #0x48 - bl CheckLocalFlag - adds r4, r0, #0 - cmp r4, #0 - bne _0804CD80 - movs r0, #0x48 - bl SetLocalFlag - movs r0, #5 - movs r1, #0 - bl MenuFadeIn - ldr r0, _0804CD94 @ =gUnk_02000070 - strb r4, [r0] - ldr r0, _0804CD98 @ =gUnk_03000FD0 - strb r4, [r0] - ldr r0, _0804CD9C @ =gUnk_0200B644 - str r4, [r0] - movs r1, #0xa0 - lsls r1, r1, #0x13 - ldr r2, _0804CDA0 @ =0x00007FFF - adds r0, r2, #0 - strh r0, [r1] - movs r0, #1 - bl sub_0801DA90 -_0804CD80: - movs r0, #2 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804CDA8 - ldr r0, _0804CDA4 @ =gUnk_080DF94C - bl LoadRoomEntityList - b _0804CDBE - .align 2, 0 -_0804CD94: .4byte gUnk_02000070 -_0804CD98: .4byte gUnk_03000FD0 -_0804CD9C: .4byte gUnk_0200B644 -_0804CDA0: .4byte 0x00007FFF -_0804CDA4: .4byte gUnk_080DF94C -_0804CDA8: - ldr r0, _0804CDC0 @ =0x80100000 - bl PlaySFX - ldr r0, _0804CDC4 @ =gArea - movs r2, #0x86 - lsls r2, r2, #4 - adds r1, r0, r2 - adds r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804CDBE: - pop {r4, pc} - .align 2, 0 -_0804CDC0: .4byte 0x80100000 -_0804CDC4: .4byte gArea - - thumb_func_start sub_0804CDC8 -sub_0804CDC8: @ 0x0804CDC8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_258 -nullsub_258: @ 0x0804CDCC - bx lr - .align 2, 0 - - thumb_func_start sub_0804CDD0 -sub_0804CDD0: @ 0x0804CDD0 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CDD4 -sub_0804CDD4: @ 0x0804CDD4 - push {lr} - bl sub_08058D34 - ldr r2, _0804CDEC @ =gArea - ldrb r1, [r2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0804CDF0 @ =gUnk_03001000 - movs r0, #5 - strb r0, [r1, #4] - pop {pc} - .align 2, 0 -_0804CDEC: .4byte gArea -_0804CDF0: .4byte gUnk_03001000 - - thumb_func_start sub_0804CDF4 -sub_0804CDF4: @ 0x0804CDF4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CDF8 -sub_0804CDF8: @ 0x0804CDF8 - push {lr} - movs r0, #2 - bl CheckGlobalFlag - cmp r0, #0 - beq _0804CE18 - movs r0, #0x80 - lsls r0, r0, #1 - movs r1, #1 - bl CheckLocalFlagByOffset - cmp r0, #0 - bne _0804CE18 - ldr r0, _0804CE1C @ =gUnk_080DFB78 - bl LoadRoomEntityList -_0804CE18: - pop {pc} - .align 2, 0 -_0804CE1C: .4byte gUnk_080DFB78 thumb_func_start sub_0804CE20 sub_0804CE20: @ 0x0804CE20 diff --git a/asm/code_08056418.s b/asm/code_08056418.s index 78e1d68d..6120eabb 100644 --- a/asm/code_08056418.s +++ b/asm/code_08056418.s @@ -1468,7 +1468,7 @@ sub_08056F70: @ 0x08056F70 ldr r1, _08056F84 @ =0x0600D040 movs r2, #0xd0 lsls r2, r2, #4 - bl sub_08000E96 + bl LoadAssetAsync pop {pc} .align 2, 0 _08056F80: .4byte gUnk_02000D00 diff --git a/asm/code_0805E744.s b/asm/code_0805E744.s index 9b5ea693..c57c1fd1 100644 --- a/asm/code_0805E744.s +++ b/asm/code_0805E744.s @@ -2483,7 +2483,7 @@ _0805F962: ldr r0, _0805F990 @ =gUnk_02036AD8 mov r1, sl movs r2, #0xe0 - bl sub_08000E96 + bl LoadAssetAsync pop {r3, r4, r5} mov r8, r3 mov sb, r4 diff --git a/asm/code_080A3BD0.s b/asm/code_080A3BD0.s index 7d23f6c8..20ecf8e0 100644 --- a/asm/code_080A3BD0.s +++ b/asm/code_080A3BD0.s @@ -1983,7 +1983,7 @@ _080A4B2C: .4byte gUnk_081281A8 _080A4B30: .4byte 0x06014000 _080A4B34: ldr r1, _080A4B40 @ =0x06014000 - bl sub_08000E96 + bl LoadAssetAsync _080A4B3A: pop {r3} mov r8, r3 diff --git a/asm/manager10.s b/asm/manager10.s index c618ca61..501c21e7 100644 --- a/asm/manager10.s +++ b/asm/manager10.s @@ -342,7 +342,7 @@ _08059800: ldr r1, _08059820 @ =0x0600E800 adds r0, r4, #0 adds r2, r5, #0 - bl sub_08000E96 + bl LoadAssetAsync b _08059838 .align 2, 0 _0805981C: .4byte gUnk_02001A40 diff --git a/asm/manager12.s b/asm/manager12.s index 146726db..bdc90ef9 100644 --- a/asm/manager12.s +++ b/asm/manager12.s @@ -245,7 +245,7 @@ _08059B94: ldr r1, _08059BE8 @ =0x06001800 movs r2, #0x80 lsls r2, r2, #4 - bl sub_08000E96 + bl LoadAssetAsync b _08059C5E .align 2, 0 _08059BD8: .4byte 0x000004AB @@ -384,12 +384,12 @@ _08059CEC: movs r5, #0x80 lsls r5, r5, #5 adds r2, r5, #0 - bl sub_08000E96 + bl LoadAssetAsync ldr r0, [r6, #8] adds r0, r0, r4 ldr r1, [r6, #0xc] adds r2, r5, #0 - bl sub_08000E96 + bl LoadAssetAsync pop {r4, r5, r6, pc} .align 2, 0 _08059D10: .4byte gUnk_08108468 diff --git a/asm/manager1A.s b/asm/manager1A.s index 446763f8..7163e018 100644 --- a/asm/manager1A.s +++ b/asm/manager1A.s @@ -424,7 +424,7 @@ sub_0805B328: @ 0x0805B328 movs r4, #0x80 lsls r4, r4, #4 adds r2, r4, #0 - bl sub_08000E96 + bl LoadAssetAsync ldr r1, _0805B380 @ =gScreen ldr r0, _0805B384 @ =0x00001E07 strh r0, [r1, #0x2c] diff --git a/asm/manager7.s b/asm/manager7.s index 1a499d1f..72d934b0 100644 --- a/asm/manager7.s +++ b/asm/manager7.s @@ -81,7 +81,7 @@ _08057DD6: ldr r1, [r2, #4] movs r2, #0x80 lsls r2, r2, #5 - bl sub_08000E96 + bl LoadAssetAsync ldr r0, _08057E00 @ =gUnk_081081E4 adds r0, r5, r0 ldrb r0, [r0] @@ -100,7 +100,7 @@ _08057E04: ldr r1, [r1, #4] movs r2, #0x80 lsls r2, r2, #5 - bl sub_08000E96 + bl LoadAssetAsync b _08057E24 .align 2, 0 _08057E1C: .4byte gUnk_085A2E80 diff --git a/asm/managerF.s b/asm/managerF.s index beda696f..1c92cc1f 100644 --- a/asm/managerF.s +++ b/asm/managerF.s @@ -560,7 +560,7 @@ sub_080592EC: @ 0x080592EC ands r1, r2 lsls r1, r1, #6 orrs r0, r1 - bl sub_08059340 + bl SetDirtTile pop {pc} thumb_func_start sub_0805930C @@ -592,8 +592,8 @@ _0805933A: .align 2, 0 _0805933C: .4byte gRoomControls - thumb_func_start sub_08059340 -sub_08059340: @ 0x08059340 + thumb_func_start SetDirtTile +SetDirtTile: @ 0x08059340 push {r4, lr} adds r4, r0, #0 movs r0, #0x1d diff --git a/asm/non_matching/sub_0804BF38.inc b/asm/non_matching/sub_0804BF38.inc new file mode 100644 index 00000000..2d1cd9cb --- /dev/null +++ b/asm/non_matching/sub_0804BF38.inc @@ -0,0 +1,111 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, [r1, #4] + lsls r0, r0, #4 + ldr r1, _0804C000 @ =gUnk_080D8E50 + adds r4, r0, r1 + ldr r0, [r4] + ldrh r1, [r4, #4] + lsrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + ldrh r2, [r4, #6] + lsrs r2, r2, #4 + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #1 + bl sub_0807BB68 + ldrh r0, [r4, #8] + mov r8, r0 + movs r5, #0 + cmp r5, r8 + bhs _0804BFE8 + ldr r7, _0804C004 @ =gRoomControls + movs r1, #0 + mov sl, r1 + movs r6, #0 + movs r3, #1 + mov sb, r3 +_0804BF7A: + movs r0, #0xf + movs r1, #0xf + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0804BFA6 + ldrh r0, [r7, #6] + ldrh r1, [r4, #4] + adds r0, r0, r1 + adds r0, r0, r6 + strh r0, [r2, #0x2e] + ldrh r1, [r7, #8] + ldrh r3, [r4, #6] + adds r1, r1, r3 + adds r0, r5, #0 + mov r3, sb + ands r0, r3 + lsls r0, r0, #3 + adds r1, r1, r0 + strh r1, [r2, #0x32] +_0804BFA6: + movs r0, #0xf + movs r1, #0x54 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0804BFE0 + ldrh r0, [r7, #6] + ldrh r1, [r4, #4] + adds r0, r0, r1 + adds r0, r0, r6 + strh r0, [r2, #0x2e] + ldrh r1, [r7, #8] + ldrh r3, [r4, #6] + adds r1, r1, r3 + ldr r0, _0804C008 @ =0x0000FFF4 + adds r1, r1, r0 + adds r0, r5, #0 + mov r3, sb + ands r0, r3 + lsls r0, r0, #3 + adds r1, r1, r0 + strh r1, [r2, #0x32] + mov r0, sl + strb r0, [r2, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] +_0804BFE0: + adds r6, #0x10 + adds r5, #1 + cmp r5, r8 + blo _0804BF7A +_0804BFE8: + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #0xc] + bl sub_08080964 + ldrh r0, [r4, #0xe] + bl PlaySFX + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804C000: .4byte gUnk_080D8E50 +_0804C004: .4byte gRoomControls +_0804C008: .4byte 0x0000FFF4 + .syntax divided \ No newline at end of file diff --git a/asm/non_matching/sub_0804C128.inc b/asm/non_matching/sub_0804C128.inc new file mode 100644 index 00000000..13378ccd --- /dev/null +++ b/asm/non_matching/sub_0804C128.inc @@ -0,0 +1,148 @@ + .syntax unified + push {r4, r5, lr} + movs r0, #0 + bl sub_080AF250 + ldr r0, _0804C15C @ =gRoomVars + ldrb r0, [r0] + cmp r0, #0 + bne _0804C13A + b _0804C24C +_0804C13A: + ldr r1, _0804C160 @ =gArea + ldrb r3, [r1, #0xd] + movs r0, #0xe + ands r0, r3 + adds r5, r1, #0 + cmp r0, #0 + bne _0804C164 + movs r0, #0xf0 + ands r0, r3 + cmp r0, #0 + bne _0804C19C + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r3 + movs r1, #2 + orrs r0, r1 + b _0804C19A + .align 2, 0 +_0804C15C: .4byte gRoomVars +_0804C160: .4byte gArea +_0804C164: + ldr r2, _0804C18C @ =gRoomControls + ldr r1, _0804C190 @ =gUnk_080D9338 + lsls r4, r3, #0x1c + lsrs r0, r4, #0x1d + adds r0, r0, r1 + ldrb r1, [r2, #0x10] + ldrb r0, [r0] + cmp r1, r0 + bne _0804C194 + lsrs r0, r4, #0x1d + adds r0, #1 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #1 + movs r1, #0xf + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r0 + strb r1, [r5, #0xd] + b _0804C19C + .align 2, 0 +_0804C18C: .4byte gRoomControls +_0804C190: .4byte gUnk_080D9338 +_0804C194: + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r3 +_0804C19A: + strb r0, [r5, #0xd] +_0804C19C: + ldrb r3, [r5, #0xd] + movs r0, #0xe + ands r0, r3 + cmp r0, #0 + bne _0804C1DE + ldr r2, _0804C1D0 @ =gRoomControls + ldr r1, _0804C1D4 @ =gUnk_080D9340 + lsls r4, r3, #0x18 + lsrs r0, r4, #0x1c + adds r0, r0, r1 + ldrb r1, [r2, #0x10] + ldrb r0, [r0] + cmp r1, r0 + bne _0804C1D8 + lsrs r0, r4, #0x1c + adds r0, #1 + lsls r0, r0, #4 + movs r1, #0xf + ands r1, r3 + orrs r1, r0 + movs r0, #0xf + rsbs r0, r0, #0 + ands r1, r0 + strb r1, [r5, #0xd] + b _0804C1DE + .align 2, 0 +_0804C1D0: .4byte gRoomControls +_0804C1D4: .4byte gUnk_080D9340 +_0804C1D8: + movs r0, #0xf + ands r0, r3 + strb r0, [r5, #0xd] +_0804C1DE: + adds r4, r5, #0 + ldrb r1, [r4, #0xd] + movs r0, #0xe + ands r0, r1 + cmp r0, #0xc + bne _0804C206 + movs r0, #1 + bl sub_080AF250 + movs r0, #0x62 + bl SetGlobalFlag + bl sub_0804C290 + ldrb r1, [r4, #0xd] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0xd] + b _0804C254 +_0804C206: + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x60 + bne _0804C250 + movs r0, #1 + bl sub_080AF250 + movs r0, #0x5c + bl CheckLocalFlag + cmp r0, #0 + bne _0804C228 + ldr r1, _0804C244 @ =0x00000107 + movs r0, #0x73 + movs r2, #1 + bl SetTileType +_0804C228: + ldr r0, _0804C248 @ =gUnk_080D9328 + bl sub_0804B1AC + movs r0, #0x62 + bl SetGlobalFlag + bl sub_0804C290 + ldrb r1, [r5, #0xd] + movs r0, #0xf + ands r0, r1 + strb r0, [r5, #0xd] + b _0804C254 + .align 2, 0 +_0804C244: .4byte 0x00000107 +_0804C248: .4byte gUnk_080D9328 +_0804C24C: + bl sub_0804C258 +_0804C250: + bl sub_0804C290 +_0804C254: + pop {r4, r5, pc} + .align 2, 0 + .syntax divided \ No newline at end of file diff --git a/asm/non_matching/sub_0804C258.inc b/asm/non_matching/sub_0804C258.inc new file mode 100644 index 00000000..74581376 --- /dev/null +++ b/asm/non_matching/sub_0804C258.inc @@ -0,0 +1,28 @@ + .syntax unified + push {lr} + ldr r3, _0804C288 @ =gArea + ldrb r0, [r3, #0xd] + movs r2, #0xf + rsbs r2, r2, #0 + ands r2, r0 + movs r0, #2 + orrs r2, r0 + movs r0, #0xf + ands r2, r0 + strb r2, [r3, #0xd] + ldr r0, _0804C28C @ =gUnk_030010A0 + ldrb r0, [r0, #0xe] + cmp r0, #4 + bne _0804C284 + movs r1, #0xe + adds r0, r2, #0 + orrs r0, r1 + strb r0, [r3, #0xd] + movs r0, #1 + bl sub_080AF250 +_0804C284: + pop {pc} + .align 2, 0 +_0804C288: .4byte gArea +_0804C28C: .4byte gUnk_030010A0 + .syntax divided \ No newline at end of file diff --git a/asm/non_matching/sub_0804C290.inc b/asm/non_matching/sub_0804C290.inc new file mode 100644 index 00000000..a810d456 --- /dev/null +++ b/asm/non_matching/sub_0804C290.inc @@ -0,0 +1,23 @@ + .syntax unified + push {lr} + ldr r0, _0804C2B4 @ =gArea + ldrb r1, [r0, #0xd] + movs r0, #0xe + ands r0, r1 + cmp r0, #0 + beq _0804C2B2 + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1d + lsls r1, r1, #2 + ldr r0, _0804C2B8 @ =gUnk_080D9348 + adds r1, r1, r0 + ldrh r0, [r1] + ldrh r1, [r1, #2] + movs r2, #1 + bl SetTileType +_0804C2B2: + pop {pc} + .align 2, 0 +_0804C2B4: .4byte gArea +_0804C2B8: .4byte gUnk_080D9348 + .syntax divided \ No newline at end of file diff --git a/include/area.h b/include/area.h index 3717fba4..ce0b325c 100644 --- a/include/area.h +++ b/include/area.h @@ -3,6 +3,7 @@ #include "global.h" + typedef struct { u8 areaMetadata; u8 locationIndex; @@ -13,6 +14,9 @@ typedef struct { u8 filler3[7]; u8 fadeOut; u8 filler2[14]; + u8 filler4[0x835]; + u32 musicIndex; + u32 pMusicIndex; } Area; extern Area gArea; diff --git a/include/functions.h b/include/functions.h index 1fb4b03b..2ce3404a 100644 --- a/include/functions.h +++ b/include/functions.h @@ -31,6 +31,8 @@ extern Entity* GetEmptyEntity(void); extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer); extern void _DmaZero(void* src, u32 count); extern void EraseAllEntities(void); +extern void SetTile(u32, u32, u32); +extern void SetDirtTile(u32); // Unidentified extern void sub_0806ED78(Entity*); @@ -112,4 +114,23 @@ extern void sub_080575C8(u32); extern void sub_08057688(void); extern void sub_080580B0(u32); extern void sub_080751E8(u32, u32, void*); +extern void sub_08052CA4(u32, u32, u32, u32); +extern void sub_08052878(void); +extern void sub_0808091C(u32*, u32); +extern void sub_0805BC4C(void); +extern void sub_0807BB68(u32*, u32, u32); +extern void sub_08054570(void); +extern void sub_08059278(void); +extern void sub_0804C128(u32); +extern void sub_08058324(u32); +extern void sub_0804C2F0(void); +extern void sub_0801AFE4(void); +extern u32 sub_08060354(void); +extern void sub_08057E64(void); +extern void LoadAssetAsync(void*, u32, u32); +extern void LoadPalettesByPaletteGroupIndex(u32); +extern void sub_0809F814(u32); +extern void sub_080300E8(void); +extern void sub_0801DA90(u32); +extern void sub_08058D34(void); #endif diff --git a/include/room.h b/include/room.h index 57e7b80f..3557d78d 100644 --- a/include/room.h +++ b/include/room.h @@ -44,10 +44,13 @@ typedef struct { u8 filler4[48]; u8 filler5[28]; u32 greatFairyState; - u8 field_0x68[9]; + u32* field_0x6c; + u32 field_0x70; + u32 field_0x74; u32 field_0x78; } RoomVars; + //Packets used to store which entities to load in a room typedef struct { u8 entityType; diff --git a/src/room.c b/src/room.c index ff38c438..9d7d1012 100644 --- a/src/room.c +++ b/src/room.c @@ -10,17 +10,32 @@ typedef struct { u8 field_0x0[8]; u8 field_0x8; u8 field_0x9; - u8 field_0xa[8]; - u16 field_0x12; + u8 field_0xa[6]; + union SplitWord field_0x10; } struct_030010A0; typedef struct { u8 filler[8]; u8 field_0x8; + u8 field_0x9[0x34]; + u32 windcrests; } struct_02002A40; +typedef struct { + u8 interruptFlag; + u8 field_0x1; + u8 funcIndex; + u8 field_0x3; + u8 transition; + u8 field_0x5; + u8 muteAudio; + u8 field_0x8; + u8 countdown; +} Main; + extern struct_030010A0 gUnk_030010A0; extern struct_02002A40 gUnk_02002A40; +extern Main gUnk_03001000; void sub_0804B3C4(u32 arg0) { sub_0804B29C(arg0); @@ -224,13 +239,14 @@ u32 sub_0804B57C() { return 1; } -extern EntityData* gUnk_080D6138; +extern EntityData gUnk_080D6138; void sub_0804B580(void) { + sub_080575C8(0x20); - if (gLinkEntity.y.HALF.HI - gRoomControls.roomOriginY > 0x40) { + + if (gLinkEntity.y.HALF.HI - gRoomControls.roomOriginY > 0x40) LoadRoomEntityList(&gUnk_080D6138); - } } void sub_0804B5AC() { @@ -241,27 +257,27 @@ u32 sub_0804B5B8() { return 1; } -extern EntityData* gUnk_080D6210; +extern EntityData gUnk_080D6210; void sub_0804B5BC(void) { - if (gUnk_030010A0.field_0x12 > 0x40) { + + if ((u16)gUnk_030010A0.field_0x10.HALF.HI > 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 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; @@ -299,40 +315,40 @@ void sub_0804B5DC(void) { flagArr++; } } - if (CheckLocalFlag(0x1f)) { + + if (CheckLocalFlag(0x1f)) LoadRoomEntityList(&gUnk_080D6360); - } - if (CheckLocalFlag(0x20)) { + + if (CheckLocalFlag(0x20)) LoadRoomEntityList(&gUnk_080D6380); - } - if (CheckLocalFlag(0x21)) { + + if (CheckLocalFlag(0x21)) LoadRoomEntityList(&gUnk_080D63A0); - } - if (CheckLocalFlag(0x22)) { + + if (CheckLocalFlag(0x22)) LoadRoomEntityList(&gUnk_080D63C0); - } - if (CheckLocalFlag(0x23)) { + + if (CheckLocalFlag(0x23)) LoadRoomEntityList(&gUnk_080D63E0); - } - if (CheckLocalFlag(0x24)) { + + if (CheckLocalFlag(0x24)) LoadRoomEntityList(&gUnk_080D6400); - } - if (CheckLocalFlag(0x25)) { + + if (CheckLocalFlag(0x25)) LoadRoomEntityList(&gUnk_080D6420); - } - if (CheckLocalFlag(0x26)) { + + 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; +extern EntityData gUnk_080D6578; +extern EntityData gUnk_080D6638; +extern EntityData gUnk_080D6558; +extern EntityData gUnk_080D6618; void sub_0804B6F0(void) { // flippers @@ -352,9 +368,9 @@ u32 sub_0804B734() { return 1; } -extern EntityData* gUnk_080D6714; -extern EntityData* gUnk_080D6734; -extern EntityData* gUnk_080D66F4; +extern EntityData gUnk_080D6714; +extern EntityData gUnk_080D6734; +extern EntityData gUnk_080D66F4; void sub_0804B738(void) { if (gUnk_02002A40.field_0x8 > 4) { @@ -372,7 +388,7 @@ u32 sub_0804B788() { return 1; } -extern EntityData* gUnk_080D6924; +extern EntityData gUnk_080D6924; void sub_0804B78C(void) { if (gUnk_02002A40.field_0x8 > 7) { @@ -466,48 +482,1821 @@ 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; +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 (gUnk_02002A40.field_0x8 < 4) { + if (gUnk_02002A40.field_0x8 < 4) return; - } if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { - if (!CheckGlobalFlag(NEW_HOUSE_NAYRU)) { - if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) { + if (!CheckGlobalFlag(NEW_HOUSE_NAYRU)) + if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) LoadRoomEntityList(&UpperInn_NoDin); - } else { + else LoadRoomEntityList(&UpperInn_Nayru); - } - } else { + else LoadRoomEntityList(&UpperInn_Farore); - } } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { - if (CheckGlobalFlag(NEW_HOUSE_DIN)) { + if (CheckGlobalFlag(NEW_HOUSE_DIN)) LoadRoomEntityList(&UpperInn_Farore); - } else if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) { + else if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) LoadRoomEntityList(&UpperInn_NoNayru); - } else { + else LoadRoomEntityList(&UpperInn_Din); - } } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { - if (CheckGlobalFlag(NEW_HOUSE_DIN)) { + if (CheckGlobalFlag(NEW_HOUSE_DIN)) LoadRoomEntityList(&UpperInn_Nayru); - } else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) { + else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) LoadRoomEntityList(&UpperInn_Din); - } else { + 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 (gUnk_02002A40.field_0x8 < 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 (gUnk_02002A40.field_0x8 == 6) + LoadRoomEntityList(&gUnk_080D7140); + + if (gUnk_02002A40.field_0x8 == 7) + LoadRoomEntityList(&gUnk_080D7170); + + if ((gUnk_02002A40.field_0x8 < 8) || (LoadRoomEntityList(&gUnk_080D71A0), gUnk_02002A40.field_0x8 < 8)) + LoadRoomEntityList(&gUnk_080D71D0); + else + LoadRoomEntityList(&gUnk_080D71F0); +} + +extern u32 gUnk_080D7348; + +u32 sub_0804BA9C(void) { + if (CheckGlobalFlag(0x51)) { + gRoomVars.field_0x6c = &gUnk_080D7348; + gRoomVars.field_0x74 = 0; + } + return 1; +} + +extern EntityData gUnk_080D7328; + +void sub_0804BAC0(void) { + if (!CheckGlobalFlag(3)) { + LoadRoomEntityList(&gUnk_080D7328); + } + if (CheckGlobalFlag(0x64)) { + gArea.pMusicIndex = 0x1b; + } else if (CheckGlobalFlag(0x51)) { + gArea.pMusicIndex = gArea.musicIndex; + } +} + +extern u32 gUnk_080D7410; + +u32 sub_0804BB18(void) { + if (CheckGlobalFlag(0x51)) { + 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(0x51)) { + if (!CheckGlobalFlag(3)) { + LoadRoomEntityList(&gUnk_080D73B0); + } + if (!CheckGlobalFlag(2) && CheckGlobalFlag(0x15)) { + LoadRoomEntityList(&gUnk_080D73E0); + } + if (CheckGlobalFlag(0x64)) { + gArea.pMusicIndex = gArea.musicIndex; } } else { - LoadRoomEntityList(&UpperInn_Oracles); + 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(100)) { + gArea.pMusicIndex = gArea.musicIndex; + } + + if (CheckGlobalFlag(0x51)) { + LoadRoomEntityList(&gUnk_080D7618); + gArea.pMusicIndex = gArea.musicIndex; + } else if (CheckGlobalFlag(0x15) == 0) { + LoadRoomEntityList(&gUnk_080D74C8); + gArea.pMusicIndex = 0x1b; + } else if (CheckGlobalFlag(2) == 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)) { + gUnk_030010A0.field_0xa[5] = 5; + ClearGlobalFlag(0x1c); + } + return 1; +} + +extern u32 gUnk_08009E88; + +void sub_0804BC70(void) { + if (!CheckLocalFlag(0x9f)) { + DoFade(5, 0x100); + gLinkEntity.x.HALF.HI = gRoomControls.roomOriginX + 0xb0; + gLinkEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x40; + sub_080751E8(0, 6, &gUnk_08009E88); + } + if (!CheckGlobalFlag(0x15)) { + sub_08052878(); + } else { + if (CheckGlobalFlag(100)) { + gArea.pMusicIndex = 0x1b; + } + } +} + +extern u32 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(0xf, 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(0xf, 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->nonPlanarMovement = 0x100; + } + } + } + + sub_08080964(gUnk_080D8E50[iVar3].shakeTime, gUnk_080D8E50[iVar3].shakeMag); + PlaySFX(gUnk_080D8E50[iVar2].sfx); +} +#else +NAKED +void sub_0804BF38(u32 arg0, void* arg1) { + asm(".include \"asm/non_matching/sub_0804BF38.inc\""); +} +#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(0x20)) { + // graveyard key + if (GetInventoryValue(0x3c) == 1) { + LoadRoomEntityList(&gUnk_080D90C8); + LoadRoomEntityList(&gUnk_080D9108); + } + } else if (!CheckGlobalFlag(0x21)) + 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(0x62)) + if (gUnk_030010A0.field_0x10.WORD == 0x2780078) + PlaySFX(0x72); + + ClearGlobalFlag(0x62); +} + +u32 sub_0804C104() { + return 1; +} + +void sub_0804C108(void) { + gArea.areaMetadata |= 0x40; + sub_0804C128(gArea.filler[7] |= 1); +} + +NAKED +void sub_0804C128(u32 arg0) { + asm(".include \"asm/non_matching/sub_0804C128.inc\""); +} + +NAKED +void sub_0804C258(void) { + asm(".include \"asm/non_matching/sub_0804C258.inc\""); +} + +NAKED +void sub_0804C290(void) { + asm(".include \"asm/non_matching/sub_0804C290.inc\""); +} + +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(0x29) && !CheckGlobalFlag(0x2a)) + 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(0x1e); + + if (CheckKinstoneFused(0x5b)) + LoadRoomEntityList(&gUnk_080D9CC8); + + if ((gUnk_02002A40.windcrests & 0x20000000) == 0) + LoadRoomEntityList(&gUnk_080D9CE8); + + // pegasus boots + if (!GetInventoryValue(0x15)) + LoadRoomEntityList(&gUnk_080D9C38); +} + +void sub_0804C384(void) { + if ((gUnk_02002A40.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(0x54)) + goto a; + + if (sub_08060354()) { + SetRoomFlag(0); + if (!CheckGlobalFlag(0x3b)) + uVar1 = 0x3200; + else if (!CheckGlobalFlag(0x3c)) + uVar1 = 0x4600; + else + uVar1 = 0x4880; + } else { + a: + if (CheckGlobalFlag(0x3d)) + uVar1 = 0x4900; + else if (CheckGlobalFlag(0x3c)) + uVar1 = 0x4a00; + else if (CheckGlobalFlag(0x3b)) + 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(0x56)) + LoadRoomEntityList(&gUnk_080DAEE8); + + sub_0801AFE4(); +} + +u32 sub_0804C5FC() { + return 1; +} + +extern EntityData gUnk_080DAF80; + +void sub_0804C600(void) { + + if (CheckGlobalFlag(0x56)) + LoadRoomEntityList(&gUnk_080DAF80); + + sub_0801AFE4(); +} + +u32 sub_0804C61C() { + return 1; +} + +extern EntityData gUnk_080DB018; + +void sub_0804C620(void) { + + if (CheckGlobalFlag(0x56)) + 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 (gUnk_02002A40.field_0x8 > 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(0x29) && !CheckLocalFlag(0x73)) { + gRoomVars.field_0x70 = (u32)&gUnk_080DB910; + } + return 1; +} + +extern EntityData gUnk_080DB8F0; +extern EntityData gUnk_080DB820; + +void sub_0804C758(void) { + + LoadRoomEntityList(&gUnk_080DB8F0); + // flippers + if (!GetInventoryValue(0x46) && CheckGlobalFlag(0x29)) { + 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) { + LoadAssetAsync(&gUnk_086D4460.LO, 0x6000000, 0x4000); + LoadAssetAsync(&gUnk_086D4460.HI, 0x6008000, 0x4000); + LoadPalettesByPaletteGroupIndex(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(0x56)) { + 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 (!(gUnk_02002A40.windcrests & 0x4000000)) { + LoadRoomEntityList(&gUnk_080DD364); + } +} + +void sub_0804CA74(void) { + if (!(gUnk_02002A40.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(0x24)) { + 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(4) && !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 ((gLinkEntity.y.HALF.HI - gRoomControls.roomOriginY) < (gRoomControls.filler2[4] >> 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 (gUnk_02002A40.filler[7] == 0) { + goto a; + } + if (gUnk_02002A40.filler[7] != 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; +} + +void nullsub_251() { +} + +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 u8 gUnk_03000FD0; +extern u32 gUnk_0200B644; + +void sub_0804CD48(void) { + + if (!CheckLocalFlag(0x48)) { + SetLocalFlag(0x48); + MenuFadeIn(5, 0); + gUnk_02000070 = 0; + gUnk_03000FD0 = 0; + gUnk_0200B644 = 0; + *(u16*)0x5000000 = 0x7fff; + sub_0801DA90(1); + } + if (CheckGlobalFlag(2)) { + LoadRoomEntityList(&gUnk_080DF94C); + } else { + PlaySFX(0x80100000); + 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; + gUnk_03001000.transition = 5; +} + +u32 sub_0804CDF4() { + return 1; +} + +extern EntityData gUnk_080DFB78; + +void sub_0804CDF8(void) { + if (CheckGlobalFlag(2) && !CheckLocalFlagByOffset(0x100, 1)) { + LoadRoomEntityList(&gUnk_080DFB78); } } \ No newline at end of file